最好的方法就是把這個「命令」和「參數」先寫在一檔案中,再執行這個檔案以下達命令,而且
快速又不用擔心打錯字主要步驟有三:編輯命令檔、改變命令檔模式、及執行。命令檔模式若不修改,就會影響執行的方式。詳細說明如下:
一、編輯命令檔案
這裏提供三個方式,以編輯命令 "lla" 取代 "ls -a" 為例,[SiB@Celeron-D ~]$ echo "ls -a" > lla第一列的命令,對剛才執行過的命令相當方便。第二、三列命令則分別為「文字介面」及「圖形化介面」的文字編輯程式,也可使用其它文字編輯程式。
[SiB@Celeron-D ~]$ gedit lla
[SiB@Celeron-D ~]$ vim lla
注意:LibreOffice Write 這類文書程式,較不適用,它會加入許多控制用字元。執行時,會造成不可預期的錯誤。
二、修改命令檔模式
文字編輯成的命令檔,在 Linux 中預設是不能執行的。為了讓這個新命令能像其它命令一樣方便執行,就要修改它的模式,讓它具有執行能力。此命令有三個寫法:[SiB@Celeron-D ~]$ chmod 755 lla上面三個例子的結果都是一樣,將 lla 這個命令文字檔設定成:擁有者(可讀、寫、執行)、同群組(可讀、執行)、其他用戶(可讀、執行)。
[SiB@Celeron-D ~]$ chmod u+x,g+x,o+x lla
[SiB@Celeron-D ~]$ chmod a+x lla
第一個命令是以「二進位」方式指定模式,對「二進位」不熟悉者,可忽略。
第二個命令的 u 指擁有者, g 為同群組,而 o 則是其他用戶。至於 +x 是增加「執行」模式。
第三個命令的 a 則為包含 u g o 三者,同時設定之。
註一:Linux 裏文字檔的預設模式為:擁有者(可讀、寫)、同群組(可讀)、其他用戶(可讀)。
註二:若只想讓擁有者具有(可讀、寫、執行)模式,同群組及其他用戶可不設定。
三、執行「新命令檔」
編輯、設定完成的「新命令檔」可以試著執行看看,[SiB@Celeron-D ~]$ lla第一個命令是適用於「新命令檔」已設定妥執行模式。
[SiB@Celeron-D ~]$ sh lla
第二個命令則是未設定執行模式,需藉由 sh 去解譯命令再執行。
註:使用哪一種形式執行「新命令」,端看「新命令」檔是否已設定執行模式而定。
四、決定「新命令檔」的存放目錄
依照上一步驟,下達執行「新命令」時,必須將「工作目錄」切換到與「新命令檔」同一目錄,否則無法執行。例:lla 在用戶的「家目錄, ~/」,但「工作目錄」在 ~/test,[SiB@Celeron-D test]$ lla這對時常在不同目錄切換的用戶,即使可以利用「相對路徑」或「絕對路徑」來執行「新命令」,也是十分不方便。最好的方法是,將這個「新命令」加入「搜尋路徑」中包含的目錄,就可以在任何目錄執行「新命令」。首先,查明「搜尋路徑」包含哪些目錄,
bash: lla: 找不到指令...
[SiB@Celeron-D ~]$ env | grep PATH可以看到用戶 SiB 的「家目錄,/home/SiB」下的 bin 被包含在「搜尋路徑」中。但是,卻沒有在用戶 SiB 的「家目錄」下看到。
PATH=/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/SiB/.local/bin:/home/SiB/bin
[SiB@Celeron-D ~]$
因為,系統的預設是將 bin 加入「搜尋路徑」,可是 bin 這個目錄未建立。在將「新命令」搬移到 bin 目錄之前,要先建立 bin 這個目錄。
[SiB@Celeron-D ~]$ mkdir bin上例中,包含建立目錄、搬移「新命令」及執行「新命令」。
[SiB@Celeron-D ~]$ mv lla bin
[SiB@Celeron-D ~]$ cd test
[SiB@Celeron-D test]$ lla
. . . . . .
. .fontconfig .pulse .Xauthority .. .gconf .pulse-cookie .xsession-errors .bash_history .gimp-2.8 .putty .xsession-errors.old
[SiB@Celeron-D ~]$
註:第三個命令是將「工作目錄」切換到 ~/test。
已測試版本:
- Fedora: 14, 17
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)