本章节为《Linux操作系统基本原理与应用》的笔记。
- Linux将shell独立于OS核心程序之外,使得用户可以在不影响OS本身的情况下进行修改,更新版本或添加新的功能。
- OS的shell介于OS和Kernel之间,负责将user命令解释成OS可以接受的指令,然后由OS来执行这些指令,并将OS执行的结果以user可以了解的方式反馈给user。
- 在Shell中,ls命令下Tab键可以进行命令补全,shell会自动查找出最符合的命令名称。
- history命令可以查看当前的命令记录。如果要查看最近执行的命令,则可以使用history n命令,n表示需要查看的最近执行的命令的条数。同时history命令提供了一种执行命令的最快的方法,就是使用命令记录好吗,!<记录号>(感叹号)
- Linux是多用户多任务的OS,但是因为shell使用交互式模式,目前执行的命令会一直掌握系统的控制权,直到该程序结束为止,这类程序称为前台程序,但是此时shell使得个别用户无法使用Linux提供的多任务功能来增加效率,因此shell提供了后台处理功能来解决上述问题。
- 要在Linux中要执行后台程序,只要在输入命令的时候在命令后面加上&符号。此时,系统就会开始以后台的方式执行该命令,屏幕将显示该后台运行程序的进程PID,然后shell将回到命令提示符状态,以等待用户下一条命令的输入。
- 要查看目前系统中正在运行的后台程序,可以使用jobs命令。
- Linux中提供了输入(< 和<<)和输出(>和>>)的重定向功能,从而将程序的输入和输出由标准设备重定向到文件,打印机或者其他装置。<和>是改写重定向,会删除原来的文件,而<<和>>是追加重定向,即将新的内容添加到文件原来内容的后面。
使用ls命令查看文件内容,并将查看结果重定向到其他文件:ls -l ./aa > bb
使用输入重定向查看bb文件:cat < bb - 管道:将多个命令集成到一起,以执行一个较为复杂的工作,除了第一个命令和最后一个命令之外,每个命令的输入都是前一个命令的输出,而每一个命令的输出也将成为下一个命令的输入。通过**管道(|)**将多个命令集成在一起。
- 命令取代符(`)(与~在一起的符号):两个“·”包围的命令,是该命令行中首先被执行的命令。 **echo ‘date’**命令中,首先执行date命令,然后使用echo来显示date命令的输出结果。
- 命令分隔符(;):一次输入这些命令,而在命令间使用";"分隔,Linux的shell会一次解释并执行这些命令。