首页 > 代码库 > Linux之shell篇
Linux之shell篇
shell是用户与系统交互的界面,这是基本方式之一。标准的shell为bash。
shell的操作:
- 显示所有使用过的命令:history。
- 执行最近执行过的一条指令:!!。首先会给出执行的是哪一条指令,然后就是运行效果。
- 执行history中的,第n条指令:!n。
- 执行history中,以value字符串开头的命令:!value。
- 打印出history中,最后一条指令:!!:p。
- 获得上条指令的最后一个参数:!$。例如先执行cat first.c,用!$就可获得first.c,所以就可以直接使用,像这样ls !$。
元字符:预先定义好的、具有特殊意义的字符——shell会先找到这些元字符,并把它特殊化,完成之后再执行。
常用的元字符:
通配符:*匹配任意字符串、?匹配单个任意字符、[123]匹配方括号里面任意一个字符。
命令替换:`command`=$(command):将字符串转换成命令来执行。
命令组合执行:用;和(),例如date;who和(date;who)。
条件执行,命令序列:用||和&&,例如date||who,||的作用是前一个命令失败,才会执行下一个命令,所以这条命令只执行了date;date&&who,&&的作用是前一个命令执行成功,才会执行下一个命令,所以date和who都执行了。
引用变量的值$:例如在终端,先a=10,然后用$a就可以获得变量a的值,所以echo $a,会打印出10。
shell的输入输出:即标准设备文件。0为输入,1为输出。每个进程都会打开这三个文件。
输入、输出重定向:>将标准输出重定向到指定文件,>>标准输出追加到文件;<标准输入重定向到文件,<<标准输入追加到文件。(追加不会导致重定向)
重定向的举例:
输入的重定向:首先我们可以先向一个测试文件写入一些测试文字,然后在终端输入命令:cat < 测试文件,就可以将之前的测试文字,打印在终端了。
输出的:例如who > test.c。
追加暂时就不管了。
管道(特殊的重定向):前一个命令的输出,作为下一个命令的输入(输入就是说,如果这个命令还没有写完,所以需要继续输入,那么就将管道的另一端作为这个输入)。如,who | wc -l统计用户数。
shell的编程:
Linux之shell篇