一、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表示标准错误输出的文件描述字。