BASH
一台电脑可以简单的分为三个部分,硬体、系统核心、以及使用者介面。
Shell属于使用者介面的一种,用来帮助使用者下达命令给核心,核心再去控制硬体。
Bash是Linux预设的Shell,全名为Bourne Again Shell。
Linux中不只Bash一种Shell,可以在/etc/shells中查询目前可使用的Shell。
Bash主要的优点有以下六点。
历史纪录:
利用 #history 可以列出之前输入过的的命令,上限笔数预设是1000笔。
列表中编号数字越大的表示时间越接近当前。
可以利用 #![编号] 重新入数列表中特定编号的命令, #!! 可以重新输入上一笔命令。
利用 #![关键字] 可以重新输入以关键字开头且时间最接近的命令。
或者在使用者家目录下的.bash_history档中,可以看到使用者最近一次登出前的命令历史纪录。
纪录的上限笔数可以输入 #echo $HISTSIZE 查询。
可在/etc/profile中变更上限设定。
命令与档案补全:
在输入Shell的时候,有些太过复杂难记的的命令或档案,可以擅用Tab键帮忙补全。
例如当我们想输入 #ifconfig 这个命令,但是可能只记得if这两个字。
这时按下Tab,系统不会有反应,但是再按一次系统就会列出所有if开头的命令。
如果是输入ifco再按下Tab,因为可能的命令只剩下一个了,系统就会自动补齐ifconfig。
除了命令之外Tab键也可以补齐档案名称。
别名:
别名的概念有点像是快捷键,使用简单易记的自订命令来取代过长的命令。
例如 #route -n 这个指令使用者觉得太长,想用 #rou 这个别名取代原本的命令。
这时候就可以输入 #alias rou=’route -n’,如此之后输入 #rou 就可以等同 #route -n。
另外也可以使用 #alias [命令] 去查询这个别名原本的命令。
而输入 #alias 可以查询目前所使用的别名有哪些。
工作控制:
命令输入之后会在系统中产生一个工作,Bash可以对这些工作进行控制。
Ctrl+C可以终止目前正在进行的工作,Ctrl+Z可以暂停目前正在进行的工作,将之移至背景。
前景与背景的差别在于,前景可以让使用者进行操作,而背景则无法。
使用 #jobs 可以查询目前背景的工作有哪些,这些工作之前会有其编号。
加入参数-r是只列出背景执行的工作,-s是列出背景暂停的工作。
背景执行是将工作移到背景继续执行,让使用者可以继续输入别的命令。
背景暂停就是将工作暂停移到背景,而工作在背景中是完全静止的。
使用 #fg %[工作编号] 可以将背景中的工作移回前景,若不指定编号则会移动时间最接近的。
使用 #bg %[工作编号] 可以将背景中暂停的工作变成背景下执行。
或者在命令之后加上「&」,例如 #ping 192.168.1.0 &,这个命令就会被直接移动到背景执行。
脚本:
脚本可以让使用者集合许多命令以及参数,变成一个可以同时完成很多事情的Shell Script。
例如管理员要在每个使用者的家目录下建立10个不同的档案,并且移除掉特定副档名的档案。
这样的情况下,经由编写Shell Script来集合命令,可以让管理员更快速的完成工作。
万用字元:
使用者可以使用万用字元来加速命令的操作。
例如想利用yum安装跟httpd有关的所有档案的时候,我们可以输入 #yum install httpd*。
这样就会把以httpd开头的档案通通都安装了。