shell基础学习总结(一)

关于shell也多多少少的写了不少文章了。在工作中shell的使用也是相当的普遍了,尤其是基础的学习。今天就简单的总结一下,希望对大家有所帮助。
-->查看局部/全局环境变量
    
printenv
env
set
查看进程对应的环境变量。比如我们想查看oracle中smon进程对于的环境变量,我们可以使用如下的方法查看。如果存在字符集的问题,这也是一个很不错的检查方式。
[ora11g@rac1 ~]$ ps -ef|grep smon
ora11g    9161     1  0 Nov22 ?        00:00:05 ora_smon_TEST01
ora11g   12012 11889  0 05:34 pts/0    00:00:00 grep smon
[ora11g@rac1 ~]$ cat /proc/9161/environ|tr '\0' '\n'
HOSTNAME=rac1
TERM=vt100
SHELL=/bin/bash
HISTSIZE=1000
NLS_LANG=american_america.AL32UTF8
SSH_CLIENT=192.168.3.1 60262 22
SSH_TTY=/dev/pts/0
USER=ora11g
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
ORACLE_SID=TEST01
ORACLE_BASE=/u03/ora11g
MAIL=/var/spool/mail/ora11g
PATH=
PWD=/u01/ora11g
LANG=en_US.UTF-8
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
HISTCONTROL=ignoredups
SHLVL=1
HOME=/u01/ora11g
LOGNAME=ora11g
SSH_CONNECTION=192.168.3.1 60262 192.168.3.140 22
LESSOPEN=|/usr/bin/lesspipe.sh %s
ORACLE_HOME=/u03/ora11g/product/11.2.0/dbhome_1
G_BROKEN_FILENAMES=1
_=/u03/ora11g/product/11.2.0/dbhome_1/bin/sqlplus
ORA_NET2_DESC=9,12
ORACLE_SPAWNED_PROCESS=1
SKGP_SPAWN_DIAG_PRE_FORK_TS=1416659723
SKGP_SPAWN_DIAG_POST_FORK_TS=1416659723
SKGP_HIDDEN_ARGS=
0
SKGP_SPAWN_DIAG_PRE_EXEC_TS=1416659723

-->shell编程之控制结构if-else
if-else大家对于编程是再熟悉不过,shell里面也是类似的格式,可能不同编程语言略有不同。

if-else的结构大体如下面所示,基本脱离不了如下的这些结构。
if command
    then
Comamnds
fi

if command; then
 commands
fi

if command
then
 Commands
else
 commands
fi

if command1
then
 command
elif commands
then
 more commands
fi

-->shell编程之控制结构test
可以使用test命令来判断一个条件的情况。可以使用下面的形式来实现。

if test condition
then
 commands
fi

if [ condition ]
then
 commands
fi

-->shell编程之控制结构之循环
对于循环结构,可能不同的shell使实现上略有差异。但是如下的格式基本都能满足日常的编程。

#数字段形式
for i in {1..100}
do
if((i%4==0))
    then
        echo $i
  fi 
done

#使用shell命令作为循环体
for i in `seq 100`
do
  if((i%4==0))
    then
        echo $i
  fi         
done

#c语言语法的循环
for((i=1;i
do
    if((i%4==0))
    then
        echo $i
        continue
    fi
done

 

#while循环
  #方括号实现
i=1
while [ $i -lt 100 ]
do
    if(($i%4==0))
    then
        echo $i
    fi
    i=$(($i+1))
done  

  #双括号实现
i=1
while(($i
do
    if(($i%4==0))
    then
        echo $i
    fi
    i=$(($i+1))
done

-->shell编程之数值比较
数值的比较,无非就是>,>=,,=这几种形式。
N1 –eq n2    表示=
N1 –ge n2   表示>=  
N1 –gt n2   表示>
N1 –le n2   表示
N1 –lt n2   表示
N1 –ne n2  表示

[[ $N1 = $n2 ]]
-->shell编程之字符串比较

字符串的比较,可以使用如下的方式。相对于数字比较而言,需要使用两个双括号
str1 = str2
str1 != str2
str1 \
str1 \> str2
-n str1      检查str1的长度是否非0
-z str1      检查str1的长度是否为0

[[ $str1 = $str2 ]]

 

 

时间: 2024-08-03 12:04:17

shell基础学习总结(一)的相关文章

shell基础学习中的字符串操作、for循环语句示例_linux shell

复制代码 代码如下: #!/bin/bashmy_name="jxq" echo $my_nameecho ${my_name} # ------------------------------------# 字符串操作# ------------------------------------ # 单引号字符串的限制,双引号没有这些限制:# 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的# 单引号字串中不能出现单引号(对单引号使用转义符后也不行)name="w

Linux shell脚本基础学习详细介绍(完整版)

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Linux 脚本编写基础 ◆1.1 语法基本介绍1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可

Linux shell脚本基础学习详细介绍(完整版)第1/2页_linux shell

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Linux 脚本编写基础 ◆1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序.当编辑好脚本时,如果要执行该脚本,还必须使其可执行.要使脚本可执行:编译

《鸟哥的Linux 私房菜 基础学习篇(第三版)》——导读

前言 本书是最具知名度的Linux入门书<鸟哥的Linux私房菜基础学习篇>的最新版,全面而详细地介绍了Linux操作系统.全书分为5个部分:第一部分着重说明Linux的起源及功能,如何规划和安装Linux主机:第二部分介绍Linux的文件系统.文件.目录与磁盘的管理:第三部分介绍文字模式接口shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法:第四部分介绍了对于系统安全非常重要的Linux账号的管理,以及主机系统与程序的管理,如查看进程.任务分配和作业管理

拒绝从入门到放弃_《鸟哥的 Linux 私房菜 — 基础学习篇(第三版)》必读目录

目录 目录 前言 关于这本书 必看知识点 最后 前言 相信部分刚进入这个行业的新同学会对一个问题感到疑惑,为什么从培训学校出来的学员不被欢迎? 这里记录下一些我个人的看法(博主也曾有面试新员工的经历):说到底还是一个学习能力的问题.就这一点,从我的经历看来(曾到多家企业培训新人),培训出身的技术人员大体而言确实没有科班出身的学得更快准狠一些.学习能力这个东西其实比较虚,它并没有一个直观的考量方式,所以企业一般都会简单粗暴的使用学历.专业.项目经验来衡量.这之间反映了你的计算机知识框架是否完善.基

《鸟哥的Linux 私房菜 基础学习篇(第三版)》——1.4 重点回顾

1.4 重点回顾 鸟哥的Linux 私房菜 基础学习篇(第三版) ◆ 计算机主要以二进制作为单位,而目前常用的磁盘容量单位为B,其单位换算为1B = 8bit,其他的以1024为其倍数,如1GB=1024MB等. ◆ 操作系统(Operation System)主要用于管理与驱动硬件,因此必须要能够管理内存.管理设备.负责进程管理以及系统调用等.因此,只要能够让硬件准备妥当(Ready)的情况,就是一个很棒的操作系统了. ◆ 操作系统重点仅在驱动与管理硬件,而要使用硬件时,就得需要通过应用软件或

《鸟哥的Linux 私房菜 基础学习篇(第三版)》——0.5 重点回顾

0.5 重点回顾 鸟哥的Linux 私房菜 基础学习篇(第三版) ◆ 计算机的定义为:"接受用户输入指令与数据,经由中央处理器的数据与逻辑单元运算处理后,以产生或存储成有用的信息". ◆ 计算机的五大单元包括输入单元.输出单元.CPU内部的控制单元.算术逻辑单元与内存五大部分. ◆ 数据会流进/流出内存是CPU所发布的控制命令,而CPU实际要处理的数据则完全来自于内存. ◆ CPU依设计理念主要分为精简指令集(RISC)与复杂指令集(CISC)系统. ◆ 关于CPU的频率部分,外频指的

《鸟哥的Linux 私房菜 基础学习篇(第三版)》——第1章 Linux是什么 1.1Linux是什么

第1章 Linux是什么 众所皆知,Linux的内核原型是1991年由托瓦兹(Linus Torvalds)写出来的,但是托瓦兹为何可以写出Linux这个操作系统?为什么他要选择386的计算b机来开发?为什么Linux的开发可以这么迅速?又为什么Linux是免费的?以及目前为何有这么多的Linux版本(distributions)呢?了解这些后,我们才能够知道为何Linux可以免除专利软件之争,并且了解到Linux为何可以同时在个人计算机与大型主机上面大放光彩.所以,在进入Linux的世界之前,

分布式基础学习【一】 —— 分布式文件系统

分布式基础学习 所谓分布式,在这里,很狭义的指代以Google的三驾马车,GFS.Map/Reduce.BigTable 为框架核心的分布式存储和计算系统.通常如我一样初学的人,会以Google这几份经典的论 文作为开端的.它们勾勒出了分布式存储和计算的一个基本蓝图,已可窥见其几分风韵,但 终究还是由于缺少一些实现的代码和示例,色彩有些斑驳,缺少了点感性.幸好我们还有 Open Source,还有Hadoop.Hadoop是一个基于Java实现的,开源的,分布式存储和计算的项 目.作为这个领域最