shell脚本

命令解释器
.bash都是环境配置参数的文件
1、history
2、alias创建别名 
alias soso=“find / -name”
soso lisi(对当前进程有效);
unalias soso(取消);
3、重定向
    标准输出:从屏幕终端上显示出来的称为标准输出
 只要不是在屏幕上输出就是重定向;
cat  .bash.profile  > /root/ 桌面/ming(会覆盖原始文件内容)

echo在屏幕终端显示一句话
echo  “helloworld”> /root/桌面/index.html(会覆盖原始内容)
echo  “thisis啊test” >>    /root/桌面/index.html(追加重定向原始内容还在)

4、 输入重定向:把文件内容输入给一个命令
wc -l < /root/桌面/index.html
5、错误的追加重定向
echo          2>>

6'不管对错都放到文件里面去
find / na lisi &> /root/桌面/index
7、 管道符
rpm -qa | grep ssh
两个命令可以到一行前一个命令的结果是后一条命令的输入
grep “bash$”  /etc/passwd  | awk  -F  '{print  $1,$7}'(awk是指定行);
以冒号分隔输出第1、7列字段;
awk是分列查询文本文件;
8、boy=’tom‘
  echo “hi,i'm a $boy
要用双引号把字符串显示出来(临时)
env环境变量
把用户变量变成系统变量
export将用户自定义的变量导出到环境变量
set GIRL=xiaohong
unset 取消变量名
9、 path=·pwd·
echo $path1
10、expr  5  +  9整数运算
计算字符串的长度   expr length “hello,i am lisi”
                            AA =8
                          BB=9
         let       CC=AA+BB
       echo “$CC”


11系统定义的
 PS1(用户终端名)PS1=“**”
12、$n带表引用第几个参数
   $#显示位置变量的个数
         
 

变量的类型
  自定义变量:由用户自己定义、修改和使用   
  环境变量:由系统维护,用于设置工作环境  
 位置变量:通过命令行给脚本程序传递参数     
预定义变量:Bash中内置的一类变量,不能直接修改 
符号的意义
双引号:允许通过$符号引用其他变量值
 单引号:禁止引用其他变量值,$视为普通字符
 反撇号:命令替换,提取命令执行后的输出结果, 
read  [-p  "提示信息"]  变量名
设置变量的作用范围 
格式1:export   变量名 ... 
格式2: export  变量名=变量值  ...
 
整数变量的运算 
格式:expr  变量1   运算符  变量2  [运算符 变量3] ... 
常用运算符 加法运算:+ 减法运算: - 乘法运算: \* 除法运算: / 求模(取余)运算: %  
环境变量
 由系统提前创建,用来设置用户的工作环境 用户可以用set或者env来查询环境变量 
常见的环境变量: PWD、PATH USER 、LOGNAME、UID、SHELL、HOME PS1、$PS2 
位置变量
表示为 $n,n为1~9之间的数字
预定义变量 
$#:命令行中位置变量的个数 
$*:所有位置变量的内容 
$?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0值表示执行异常或出错
 $0:当前执行的进程/程序名 
有效期
默认情况下,在shell下的用户变量、alias等,只在此次登录中有效。一旦关闭终端或注销后,则将会设置恢复初始值。
 用户可以将这些设置放入一个系统环境配置文件中,使其长期生效。 
每一个用户都有一个登录shell,且默认为bash,当用户打开一个bash时,系统就去读取~/.bashrc配置文件。因此可以将相关的用户设定放入次文件中。 
截取命令   cut 
能说明:显示文件中的某一列语法: cut  <选项>   
文件 常用选项:   
                         -d:指定分隔符   
                         -f:指定显示某一列  
                        -c:指定几个字符对应的列 
文件操作命令  sort 
功能说明:将文本文件内容加以排序 语 法: sort  [选项]    <文件…> 
常用选项:      -o <输出文件>:将排序后的结果存入指定文件   
                       -r:以相反的顺序来排序    
                       -n:显示匹配的行及其行号      
                      -t <分隔字符>: 指定排序时所用的栏位分隔字符。 
                      -k: :以那个区间 (field) 来进行排序的意思   
文件操作命令  uniq 
功能说明:合并文件中相邻的行 语 法:
                 unip  [选项] [文件] 常用选项:    
                  -i  :忽略大小写字符的不同   
                    -c  :进行重复出现行计数    
                   -d:  仅显示重复出现的行列    
                 -u:   仅显示出一次的行列  
文件操作命令  tr 
功能说明:文字替换或者删除一段信息文字 语 法:
                                          tr  [选项] 常用选项:   
                                         -d  :删除信息当中的 SET1 这个字符串  
                                          -s  :取代掉重复的字符  

文件操作命令  paste 
功能说明:合并文件的列 
                             语法: paste  [选项] [文件1] [文件2]
                             常用选项:    -d  :用指定的间隔字符取代跳格字符   
                                                  -s  :串列进行而非平行  
创建脚本;
            1、创建*.sh
            2、编辑文件
                          #! /bin/bash
           3、chmod 777 *.sh
           4、运行脚本
             (1)./*.sh
                (2)bash  *.sh
Shell中的特殊变量 
在Shell脚本中经常会用到下列特殊的变量:
                      $#:位置参数的个数 sh test1.sh  a  b  c  ($#  => 3)
                      $*:位置参数的内容 sh test1.sh  a  b  c ($* => “a”“b”“c”) 
                     $$:当前shell进程的pid值
                     $?:前一命令返回的状态值(0为正常) touch file1 ; echo $?   ( 结果  => 0)
                     $!:最近访问的后台进程的PID 
Shell脚本命令行参数变量
当用户在使用一个带命令行参数的Shell脚本时,脚本名与它的参数名都可以通过一个特殊的变量来获取。 
       例:sh scriptname.sh  [option1] [option2] ….. 引用Shell 脚本命令行参数
                                  $0    命令名本身 
                                  $1    第一个参数(option1) 
                                  $2    第二个参数(option2)
                                  $3    第二个参数(option3) 
                                 $N    第N个参数(optionN) 
执行脚本文件
                       方法一:脚本文件路径 
                       方法二:sh  脚本文件路径 
                      
test命令 
测试特定的表达式是否成立,
      当条件成立时,测试语句的返回值为0, 否则为其他数值 
      格式1:test  条件表达式 格式2:[  条件表达式  ] 
条件测试操作
文件测试 格式:[  操作符  文件或目录  ] 
常用的测试操作符 -d:测试是否为目录(Directory)
                             -e:测试目录或文件是否存在(Exist)
                             -f:测试是否为文件(File)
                             -b:  该文件是否存在且为一个块设备文件 
                             -c:  该文件是否存在且为一个字符设备文件 
                             -S: 该文件是否存在且为一个Socket文件
                             -p:  该文件是否存在且为一个FIFO(pipe)文件 
                             -L:  该文件是否存在且为一个链接文件  
文件权限测试
 格式:[  操作符  文件或目录  ] 常用的测试操作符
                                          -r:测试当前用户是否有权限读取(Read)
                                           -w:测试当前用户是否有权限写入(Write)
                                           -x:测试当前用户是否有权限执行(eXcute) 
                                           -u: 测试该文件是否存在且具有suid属性
                                            -g: 测试该文件是否存在且具有sgid属性 
                                            -k: 测试该文件是否存在且具有sticky bit属性 
                                           -s :测试该文件是否存在且为非空文件 
整数值比较
格式:[  整数1  操作符  整数2  ] 常用的测试操作符
                                               -eq:等于(Equal)
                                                -ne:不等于(Not Equal) 
                                                -gt:大于(Greater Than) 
                                                -lt:小于(Lesser Than)    
                                                -le:小于或等于(Lesser or Equal)
                                                -ge:大于或等于(Greater or Equal) 
字符串比较
格式1:[  字符串1  =  字符串2 ]                   [  字符串1  !=  字符串2 ] 
格式2:[  -z  字符串 ] 
                              常用的测试操作符 =:字符串内容相同 !=:字符串内容不同,! 号表示相反的意思
                                                           -z:字符串内容为空 
                                                 -n: string 判定字符串是否非为0,若string为空字符串,则为false。 注: -n 亦可省略 
两个文件之间的比较测试
                      -nt  (newer than)判断file1是否比file2新 
                      -ot  (older than)判断file1是否比file2旧 
  -ef  判断file1和file2是否为同一文可用在判断  hard link的判定上。 主要意义在判定,两个档案是否均指向同一个inode 
单分支if语句 
                            
双分支if语句 
多分支if语句 
case语句应用示例
function函数功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值