Linux學習第三天 使用命令

2021-09-01 02:40:11 字數 4292 閱讀 2274

在這之前,我們已經知道了一系列神秘的命令,每個命令都有自己奇妙的 選項和引數。在這一章中,我們將試圖去掉一些神秘性,甚至建立我們自己 的命令。這一章將介紹以下命令:

命令可以是下面四種形式之一:

是乙個可執行程式,就像我們所看到的位於目錄/usr/bin 中的檔案一樣。 這一類程式可以是用諸如 c 和 c++語言寫成的程式編譯的二進位制檔案, 也可以是由諸如shell,perl,python,ruby等等指令碼語言寫成的程式 。

是乙個內置於 shell 自身的命令。bash 支援若干命令,內部叫做 shell 內部命令 (builtins)。例如,cd 命令,就是乙個 shell 內部命令。

是乙個 shell 函式。這些是小規模的 shell 指令碼,它們混合到環境變數中。 在後續的章節裡,我們將討論配置環境變數以及書寫 shell 函式。但是現在, 僅僅意識到它們的存在就可以了

是乙個命令別名。我們可以定義自己的命令,建立在其它命令之上。

這經常很有用,能確切地知道正在使用四類命令中的哪一類。linux 提供了一對方法來 弄明白命令型別。

type - 顯示命令的型別

type命令是shell內部命令,它會顯示命令的類別,給出乙個特定的命令名(做為引數)。 它像這樣工作:

type

command

「command」是你要檢測的命令名。這裡有些例子:

root@izbp1964mdfcasypu6zftxz:~/playground# type type

type is a shell builtin

root@izbp1964mdfcasypu6zftxz:~/playground# type ls

ls is aliased to `ls --color=auto'

root@izbp1964mdfcasypu6zftxz:~/playground# type cp

cp is hashed (/bin/cp)

我們看到這三個不同命令的檢測結果。注意,ls 命令(在 fedora 系統中)的檢查結果,ls 命令實際上 是 ls 命令加上選項」–color=auto」的別名。現在我們知道為什麼 ls 的輸出結果是有顏色的!

which -顯示乙個可執行程式的位置

有時候在乙個作業系統中,不只安裝了可執行程式的乙個版本。雖然在桌面系統中這並不普遍, 但在大型伺服器中卻很平常。為了確定所給定的執行程式的準確位置,使用 which 命令:

root@izbp1964mdfcasypu6zftxz:~/playground# which mv

/bin/mv

root@izbp1964mdfcasypu6zftxz:~/playground# which cp

/bin/cp

這個命令只對可執行程式有效,不包括內建命令和命令別名,別名是真正的可執行程式的替代物。 當我們試著使用 shell 內建命令時,例如,cd 命令,我們或者得不到回應,或者是個錯誤資訊

root@izbp1964mdfcasypu6zftxz:~/playground# which cd

root@izbp1964mdfcasypu6zftxz:~/playground# which mv

/bin/mv

help - 得到shell內建命令的幫助文件

bash 有乙個內建的幫助工具,可供每乙個 shell 內建命令使用。輸入「help」,接著是 shell 內部命令名。例如:

root@izbp1964mdfcasypu6zftxz:~/playground# help cd

cd: cd

[-l|

[-p [-e]

][-@]

][dir]

change ..

注意表示法:出現在命令語法說明中的方括號,表示可選的專案。乙個豎槓字元 表示互斥選項。在上面 cd 命令的例子中:

cd

[-l|-p]

[dir]

這種表示法說明,cd 命令可能有乙個「-l」選項或者「-p」選項,進一步,可能有引數「dir」。

- -help - 顯示用法資訊

許多可執行程式支援乙個 --help 選項,這個選項是顯示命令所支援的語法和選項說明。例如:

root@izbp1964mdfcasypu6zftxz:~/playground# mkdir --help

usage: mkdir

[option]

... directory...

create the directory(ies), if they do not already exist.

一些程式不支援 --help 選項,但不管怎樣試一下。這經常會導致輸出錯誤資訊,但同時能 揭示一樣的命令用法資訊。

man - 顯示程式手冊頁

許多希望被命令列使用的可執行程式,提供了乙個正式的文件,叫做手冊或手冊頁(man page)。乙個特殊的叫做 man 的分頁程式,可用來瀏覽他們。它是這樣使用的:

man program
「program」是要瀏覽的命令名。

手冊文件的格式有點不同,一般地包含乙個標題、命令語法的綱要、命令用途的說明、 以及每個命令選項的列表和說明。然而,手冊文件通常並不包含例項,它打算 作為一本參考手冊,而不是教程。作為乙個例子,瀏覽一下 ls 命令的手冊文件:

root@izbp1964mdfcasypu6zftxz:~# man ls
在大多數 linux 系統中,man 使用 less 工具來顯示參考手冊,所以當瀏覽文件時,你所熟悉的 less 命令都能有效。

man 所顯示的參考手冊,被分成幾個章節,它們不僅僅包括使用者命令,也包括系統管理員 命令、程式介面、檔案格式等等。下表描繪了手冊的布局:

手冊頁的組織形式

章節內容

1使用者命令

2程式介面核心系統呼叫

3c 庫函式程式介面

4特殊檔案,比如說裝置結點和驅動程式

5檔案格式

6遊戲娛樂,如螢幕保護程式

7其他方面

8系統管理員命令

有時候,我們需要檢視參考手冊的特定章節,從而找到我們需要的資訊。 如果我們要查詢一種檔案格式,而同時它也是乙個命令名時,這種情況尤其正確。 沒有指定章節號,我們總是得到第乙個匹配項,可能在第一章節。我們這樣使用 man 命令, 來指定章節號:

man section search_term
例如:

root@izbp1964mdfcasypu6zftxz:~# man 5 passwd
命令執行結果會顯示檔案 /etc/passwd 的檔案格式說明手冊。

apropos - 顯示適當的命令

root@izbp1964mdfcasypu6zftxz:~# apropos floppy

create_floppy_devices (8) - udev callout to create all possible

輸出結果每行的第乙個欄位是手冊頁的名字,第二個字段展示章節。注意,man 命令加上」-k」選項, 和 apropos 完成一樣的功能。

whatis - 顯示非常簡潔的命令說明

whatis 程式顯示匹配特定關鍵字的手冊頁的名字和一行命令說明

info - 顯示程式info條目

gnu 專案提供了乙個命令程式手冊頁的替代物,稱為」info」。info 內容可通過 info 閱讀器 程式讀取。info 頁是超級鏈結形式的,和網頁很相似。

info 程式讀取 info 檔案,info 檔案是樹型結構,分化為各個結點,每乙個包含乙個題目。 info 檔案包含超級鏈結,它可以讓你從乙個結點跳到另乙個結點。乙個超級鏈結可通過 它開頭的星號來辨別出來,把游標放在它上面並按下 enter 鍵,就可以啟用它。

輸入」info」,接著輸入程式名稱,啟動 info。下表中的命令,當顯示乙個 info 頁面時, 用來控制閱讀器。

命令行為

?顯示命令幫助

pgup or backspace

pgdn or space

n下乙個 - 顯示下乙個結點

p上乙個 - 顯示上乙個結點

uenter

啟用游標位置下的超級鏈結q退出

到目前為止,我們所討論的大多數命令列程式,屬於 gnu 專案」coreutils」包,所以輸入:

root@izbp1964mdfcasypu6zftxz:~/playground# info coreutils

學習Linux第三天

1 while語句 while語句的一般形式 while 表示式 語句 其中,表示式是迴圈條件,語句為迴圈體。1 while語句中的表示式一般是關係表示式或邏輯表示式,只要表示式的值為真 非0 即可繼續迴圈。2 迴圈體若包括乙個以上的語句,則必須用 括起來,組成復合語句。如果忽略了花括號的用途,語句...

linux學習第三天

一 檔案重定向 linux中認為一切皆為檔案 檔案描述符 標準輸入 從鍵盤獲取資料 0 標準輸出 在螢幕上顯示正確資料 1 標準錯誤 在螢幕上顯示錯誤的資料 2 1 使用 進行檔案重定向 history a 把history的內容放在a檔案中 命令 檔案描述符 檔案 注意 會先把右側的檔案清空在寫入...

Linux學習第三天

1.who 命令,顯示當前的登入使用者都有誰 2.last 命令,顯示歷史登入資訊 3.uname a 顯示作業系統資訊 4.uptime 顯示系統負載情況 cat etc redhat release 檢視系統資訊 5.history 檢視歷史執行過的命令 6.history裡的數字,可以直接執行...