【linux】shell脚本(一)

一、shell脚本的建立和运行

linux操作如下:

   $ touch test.sh //创建.sh文件

    $ vi test.sh //vi进入.sh文件

键入i进入输入模式,      //一些vi或vim编辑器的操作在写脚本的时候会用到

第一步:插入 #!/bin/bash   //使用脚本

........                          //脚本内容

结束时,键入esc退出输入模式,在冒号后输入wq,w代表写入文件,q代表退出vi

    $ chmod +x test.sh    //改变文件权限

    $    ./test.sh   //执行.sh脚本文件


二、执行shell脚本的三种方式

    ①输入定向到shell脚本

        格式:$ bash < 脚本名

        代码:$ bash < test

    ②以脚本名作为bash参数

        格式:$ bash  脚本名  [参数]

        代码:$bash test  ~/user

    ③改变权限为可执行,然后直接执行

        例子上面给了

三、命令历史

    作用用:便于调用、修改和快捷执行命令,把全部或部分先前命令作为新命令,予以快捷执行。

        (1)显示历史命令

        ①格式:

语法格式是:$ history  [option] [arg…] 
常用的选项有:
  -a  在历史文件中添加“新”历史命令行。
  -n  从历史文件中读取尚未读入的历史命令行,添加到当前历史清单中。
  -r  读取历史文件的内容,并把它作为当前的历史命令。
  -w  把当前的历史写到历史文件中,覆盖原有内容。

  -c  删除历史清单中所有的项。

        (2)执行历史命令

        ①格式:

   格    式 

                意    义 

!! 

重复上一条命令,也就是“!-1” 

!n 

重新执行第n条历史命令 

!-n 

重新执行倒数第n条历史命令。!-1就等于! ! 

!string 

重新执行以字符串string开头的最近的历史命令行。

!?string? 

重新执行最近的、包含字符串string的那条历史命令 

!# 

到现在为止所输入的整个命令行 

        (3)用环境变量来配置历史命令环境

        ①用户可以通过重新为环境变量赋值,改变存放历史命令的文件 

         $ HISTFILE="/home/mengqc/.myhistory"

        ②还可以重新设定能够保留的命令个数

        $ HISTSIZE=600

四、别名

    作用:可以简化输入,方便用户,减少出错率

        ①定义别名

格式:alias [name[=value]]

代码

        $ alias ll=‘ls -l’
        $ my=/home/mengqc 
        (定义变量并赋值)

        $ ll 

        $my

        ②取消别名

格式:unalias name

       可以一次将所有的别名都从别名表中删除,使用如下命令:   unalias -a


五、shell特殊字符

        (1)通配符

                *(星号),它匹配任意字符的0次或多次出现 

                ?(问号),它匹配任意一个字符

        (2)引号

                ①单引号

                由单引号括起来的字符都作为普通字符出现

                ③双引号

                由双引号括起来的字符(除$、倒引号(`)和反斜线(\)外)均作为普通字符对待。

                ④倒引号


六、输入输出重定向

            (1)输入重定向符

                              命令 < 文件名

             (2)输出重定向符

                              命令 >文件名

              (3)输入输出同时使用

                            输入和输出重新定向可以连在一起使用。例如:
       $ wc  -l  < infile > outfile
功能是:
  命令wc从文件infile中输入信息,

  按“行”统计后的结果送到另一个文件outfile中,不在屏幕上显示。

                (4)输出附加定向符“>>”
把命令的标准输出附加到指定文件的后面,原有内容不变

一般形式是:命令>>文件名 

      其他例子:

$gcc m1.c 2> errfile
功能是:
  对C源文件m1.c进行编译,并把编译过程中产生的错误信息重定向到文件errfile中,
  其中数字2表示标准错误输出的文件描述字。


猜你喜欢

转载自blog.csdn.net/toby1123yjh/article/details/79924970