shell基础语法和简单命令入门

以下都是shell的语法规则和基本命令,一起来吧:

 

touch test.sh 新建一个shell文件,
chmod a=rwx test.sh 更改test.sh的读写权限(这不十分重要,不能忘记), 
vi test.sh编辑test.sh (第一句一定要是 #!/bin/sh),
echo "hello word" 写入shell语句,
./test.sh  在当前目录下执行test.sh

 

 

1.  echo "aaa";  打印出字符串

 

2.  variable_one="bbb"; 定义变量并赋值(赋值等号两边不能有空格)

 

3.  unset variable_one;     清除变量

 

4.  let "bb = $aa - 1";     设置变量的值(赋值等号两边可以有空格,变量bb一定不能有$符号)

 

5.  echo ${aa:-1}           如果aa有值,就打印aa的原值,如果没有值或未定义aa,就打印1;

 

6.  if test -w aa.sh        判断文件是否可写的流程控制语句
     then
         echo 'the file aa.sh allow write in'
     else
         echo "don't allow write in"
     fi

 

7.  test 测试文件状态  参数如下   写法:test -w aa.sh 或者 [ -w aa.sh ] (注意中括号的两边一定要有空格,不然报错)
     -d 目录是否存在 -w -r -x 可写可读可执行
     -s 文件长度是否大于零,非空
     -f 是否是正规文件 -L 是否有链接符号(注意大写) -u 是否有suid位设置

 

8.  字符串测试: = != -z是否为空 -n字符串是否非空

 

9.  数值测试: -eq相等 -ne不等 -gt大于 -lt小于 -ge大于等于 -le小于等于

 

10.  if then else ; if then elif elif fi; 常用的流程控制语句

 

11.  几种循环:
       for i in 1 2 3 4 5
       do
             echo $i
       done
 #----------------------------------
 
        one=1
        until [ $one -gt 5 ]
        do
              echo $one
              let one+=1
        done
 #----------------------------------
 
         one=1
         while [ $one -lt 5 ]
         do
                echo $one
                let "one = $one + 1"
          done
 #------------------------------------
 
         for ((i=1; i<6; i+=1))
         do
               echo $i
         done

 

12.  case语句


           echo "Please input 'yes' or 'no'"
           read var   #接收输入的值
           case $var in
           yes | Yes ) echo "you input variable is yes" ;;
           no  | no  ) echo "you input variable is no " ;;
           * ) echo "input error!" ;;
       esac

 

14.  特定shell变量


       $# 传递到脚本参数的个数
       $* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过九个
       $$ 脚本运行的当前进程ID号
       $! 后台运行的最后一个进程的进程ID号
       $@ 与$#相同,但是使用时加引号,并在引号中返回每个参数
       $- 显示shell使用的当前选项,与set命令功能相同
       $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误

 

15. times ls -l 查看运行ll命令共用了多长时间 (shell内嵌命令)

 

16. type date 查询命令是否有效,是否为内嵌命令类型,如果不是内嵌命令,type将打印命令的路径。(shell内嵌命令)

 

17. 运行shellhanshuu; . nine.sh  运行nine中的函数,如果文件中有输出则打印相应输出。 然后在hello,运行nine中的hello函数,
      注意:如果hello函数修改了,用unset hello进行函数刷新。或者重新运行一次 . nine.sh
      就相当与用 . nine.sh调用nine.sh的shell脚本。然后再调用脚本中个各个函数,如果sell不关闭或者不执行unset hello 脚本中的函数,
      那么函数永远生效。

 

18. read命令:read name sex age 一般用空格隔开,输入时输入如下:a aa aaa

 

19. cat 1.txt 2.txt > 12.txt 把文件1.txt和2.txt连接成一个新的文件12.txt

 

20. 管道运用:把一个命令的输出传递给另一个命令作为输入。管道用竖杠 | 表示。
      如: cat aa.sh | grep "echo" 只显示aa.sh中包涵echo字符串的行。 ls -l | grep "/.sh" 打印所有sh后缀的文件列表
      ls -l | tee aa.txt 将输出结果保存到aa.txt文本中。

 

21. 命令排列:ls -l ; du -sh 顺序执行两个命令; ls -l && du -sh 当前者成功时执行后者,ls -l || du -sh 前者失败是执行后者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值