天天看點

Linux--指令的使用

1、究竟什麼是指令

一條指令不外乎以下四種情況:

  • 可執行程式。可執行程式就像在/usr/bin目錄裡看到的所有檔案一樣。在該程式類别中,程式可以編譯為二進制檔案,比如C、C++語言編寫的程式,也可以是shell、Perl、Python、Ruby等腳本語言編寫的程式。
  • shell内置指令。bash支援許多在内部稱之為shell builtin的内置指令。例如,cd指令就是shell内置指令。
  • shell函數。shell函數是合并到環境變量中的小型shell腳本。
  • alias指令。我們可以在其他指令的基礎上定義自己的指令。

2、識别指令

2.1、type–顯示指令的類型

type指令是一個shell内置指令,可以根據指定的指令名顯示shell将要執行的指令類型,格式如下:

​type command​

Linux--指令的使用

2.2、which–顯示可執行程式的位置

有時候,系統中可能會安裝一個可執行程式的多個版本。這種現象雖然在桌面系統中不常見,但是在大型伺服器中卻是很常見的。使用which指令可以确定一個給定可執行檔案的準确位置。

Linux--指令的使用

which指令隻适用于内置指令和指令别名(真正可執行程式的替代物)。試圖在shell内置指令(例如,cd)中使用which指令時,要麼沒響應,要麼得到一條錯誤資訊:

3、獲得指令文檔

3.1、help–獲得shell内置指令的幫助文檔

bash為每一個shell内置指令提供了一個内置的幫助工具。輸入help,然後輸入shell内置指令的名稱即可使用該幫助工具,例如:

Linux--指令的使用

注意表示法:出現在指令文法描述中的方括号表示一個可選項。豎線符号代表的是兩個互斥的選項。比如:​

​cd [-L|-P][dir]​

​ 這種表示法說明,cd指令可能又一個-L參數,也可能是-P參數,甚至跟參數dir。

3.2、help–顯示指令的使用資訊

很多可執行程式都支援- -help選項,- -help選項描述了指令支援的文法和選項。例如:

Linux--指令的使用

一些程式不支援- -help選項,但是我們還是要試試。這通常會産生一條錯誤消息,該錯誤消息也能揭示相同的指令使用資訊。

3.3、man–顯示程式的手冊頁

大多數供指令行使用的可執行檔案,提供一個稱之為manual或者是man page的正式文檔。該文檔可以用一種稱為man的特殊分頁程式來檢視,用法格式:​

​man program​

​​ 手冊文檔在格式上會有所不同,但是通常都包括标題、指令句法的摘要、指令用途的描述、指令選項清單以及每個指令選項的描述。但是,手冊文檔通常不包括執行個體,更多的是作為一個參考使用,而不是教程。例如,嘗試檢視​

​ls​

​指令的手冊文檔:

Linux--指令的使用

在大多數Linux系統中,man指令調用less指令來顯示手冊文檔。所有,當顯示手冊文檔是,你熟悉的所有less指令都能奏效。

man指令顯示的“手冊文檔”被分為多個部分(section),它不僅包括使用者指令,也包括系統管理指令、程式接口、檔案格式等。

手冊文檔的組織結構

部分 内容
1 使用者指令
2 核心系統調用的程式接口
3 C庫函數程式接口
4 特殊檔案,如裝置結點和驅動程式
5 檔案格式
6 遊戲和娛樂,例如螢幕保護程式
7 其它雜項
8 系統管理指令

有時候我們需要檢視手冊文檔的具體部分,以查找我們需要的資訊。當我們所查找的一個檔案格式同時也是一個指令名的時候,這一點就尤為重要了。如果沒有指明部分編号(section number),通常我們會獲得第一次比對的執行個體(它可能會出現在第一部分)。為了指明具體在哪個部分,我們可以這樣使用man指令:​

​man section search-term​

​​例如:​

​man 5 passwd​

​。該指令将會顯示檔案/etc/passwd的檔案格式描述手冊。

3.4、apropos–顯示合适的指令

我們有可能會搜尋參考手冊清單,才進行基于某個搜尋條目的比對。盡管有些粗糙,但是這種方法有時還是有用的。下面是一個使用floppy為搜尋條目,來搜尋參考手冊的例子。

Linux--指令的使用

在輸出中,每一行的第一個字段四手冊頁的名稱,第二個字段顯示部分。主要,帶有-k選項的man指令與apropos指令在功能上基本是一緻的。

3.5、whatis–顯示指令的簡要描述

whatis程式顯示比對具體關鍵字的手冊頁的名字和一行描述。

Linux--指令的使用

3.6、info–顯示程式的info條目

GNU項目提供了info頁面來代替手冊文檔。info頁面可通過info閱讀器來顯示。info頁面使用超連結,這與網頁結構很相似。

info程式讀取info檔案,該檔案是樹形結構,分為各個單獨的節點,可一個節點包含一個主題。info檔案包含的超連結可以實作節點間的跳轉。通過前置星号可以識别超連結,将光标放在超連結上并按Enter鍵,可以激活它。

可以通過輸入info以及程式名(可選的)來調用info。

例如:​​

​info coreutils​

用于控制閱讀器的指令

指令 功能
顯示指令幫助
PAGE UP or BACKSPACE 傳回上一頁
PAGE DOWN or Spacebar 傳回下一頁
n Next–顯示下一個節點
p Previous–顯示上一個節點
u Up–顯示目前顯示節點的父節點(通常是一個菜單)
ENTER 進入光标所指的超連結
q 退出

3.7、README和其他程式文檔檔案

系統中安裝的很多軟體包都有自己的文檔檔案,它們存放在​

​/usr/share/doc​

​​目錄中。其中大部分文檔檔案是以純文字格式存儲的,是以可以用​

​less​

​​指令來檢視。有些檔案是HTML格式,并且可以用Web浏覽器來檢視。我們可以會遇到一些以​

​.gz​

​擴充名結尾的檔案。這表明它們是使用gzip壓縮程式壓縮過的。gzip包包含一個特殊的less版本,稱之為zless。zless可以顯示由gzip壓縮過的文本檔案的内容。

4、使用别名建立自己的指令

我們可以使用​

​alias​

​​指令建立自己的指令,但是在開始前,我們需要展示一個指令行的小技巧,通過使用分号來分隔多條指令,就可以将多條指令輸入在一行中,其工作方式為:​

​command1;command2;command3...​

Linux--指令的使用

我們可以看到,我們将3條指令放置在同一行中。首先我們将目前目錄改變為/usr,然後列出這個目錄内容,最後傳回到原始目錄(使用cd -)。那麼程式結束的位置恰恰是開始的位置。現在,我們通過​

​alias​

​指令将以上指令整合成一條新的指令,首先要為新指令虛構出一個名稱,試試名稱test。不過輸入前,我們最好檢查一下名稱test是否已經被使用過了。為此,我們可以再次使用​

​type​

​指令.。

Linux--指令的使用

這個名字已經用過了,試試foo

Linux--指令的使用

foo沒有被使用。下面建立新指令的别名:

Linux--指令的使用

注意這個指令的結構:​

​alias name='string'​

在​

​alias​

​指令之後輸入name,緊接着是一個等号(沒有空格),等号之後是一個用單引号括起來的字元串,該字元串的内容将指派給name。定義好的别名可以用在shell期待的任何地方:

Linux--指令的使用

也可以再次使用type指令來檢視别名:

Linux--指令的使用