歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

速學linux命令教程

概述:用戶使用shell跟內核交互,Linux中有很多命令,不同的命令有不同的功能。多個命令合起來可以完成一個大的功能。命令很多我們不可能記得每條命令的用法。

所以,我們必須有一種方法來快速知道一個命令是如何使用的,有什麼作用。所以,幾乎所有的命令都提供了幫助手冊,告訴命令的使用者如何使用命令、命令 的作用等等。幫助手冊頁很長,我們不可能為了使用一個命令,而從頭到尾把幫助手冊讀完,這時候需要一種快速讀懂(有目的的去讀)命令的幫助手冊的方法。是如何實現的呢?管理整個計算硬件的其實是核心(kernel 計算要系統),通常用戶(user)都是以 shell 來與核心溝通,讓核心達到我們所想要實現的目的。

shell 就是一個應用程序,它讀入用戶鍵入的命令,把它轉換成 Linux 系統更易於理解的格式。它也包括一些基本的程序結構,讓用戶做選項、循環,以及把值

存儲在變量中。

一、了解命令的基本格式

shell 執行程序:

shell 負責執行終端請求的程序。

用戶每次向 shell ” 命令提示符[root@Node1 ~]# ” 鍵入一行信息,shell 會在分析後決定做什麼。 shell 所涉及到的每行信息都遵循相同的基本格式。如:

                  命令      選項    選項參數                   命令參數(1)   命令參數(2)

命令,一般都會提供幫助文檔,只有了解了命令格式的各項意義,我們才可能很快學會新命令的使用。至少在命令行提示符中鍵入命令時,不會寫錯。

第一字段: command(命令)   可執行文件

第二字段: 命令的選項,些命令的選項帶參數,有些命令的選項不帶參數

中括號 [] 是可選擇項,在鍵入該命令的時候可以選擇是否省略命令的選項。

豎線 “|” 表示左右兩邊任選一個作為,命令選項的參數。

省略號“...” 表示該命令選項可以有多個,但是書寫時,要按照下面的格式。

選項又分為:

1、長選項,使用 --options 格式。 一般選項名稱是完整的。如果一個命令的長選項有多個,是不可以合並的。

2、短選項,使用 -options 格式, 一般是長選項名的簡寫格式。如果一個命令的短選項有多個,是可以合並的。

ls 命令的選項 -b 和 --escape 作用是一樣的。

[root@Node1 ~]# ls -b /root/

anaconda-ks.cfg  install.log  install.log.syslog

[root@Node1 ~]# ls --escape /root/

anaconda-ks.cfg  install.log  install.log.syslog

注意:長選項是不可以合並使用的,在命令行提示符中,鍵入的命令使用到多個長選項的時候要分開寫

[root@Node1 ~]# ls --allblock-size=1 /etc/

ls: unrecognized option '--allblock-size=1'

[root@Node1 ~]# ls --all --block-size=4 /root/

.                .bash_history  .bashrc      install.log.syslog  .tcshrc

..               .bash_logout   .cshrc       .lesshst            .viminfo

anaconda-ks.cfg  .bash_profile  install.log  .ssh

第三字段:     命令參數

命令參數有多個需要使用空格隔開。

當用戶按照上述描述的格式,在命令行提示符中鍵入命令以後,按 [Enter] 鍵後,shell 就分析執行該命令。( Linux 中 [Enter] 為 <CR> 字符表示)shell 會先判斷該命令的類型,如果是內部命令的話就直接執行,否則的話,shell 會按照 $PATH 變量的值到磁盤搜索,用戶鍵入的命令。

1、如果搜索到用戶鍵入的命令,產生中斷,由內核(kernel)負責把命令文件從磁盤中加載到內存

中來,並開始執行該命令。此時,命令就表示為一個進程。

2、如果 shell 按照 $PATH 變量的值到磁盤中找不到該命令的話,就會報錯。

[root@Node1 ~]# tree /etc

-bash: tree: command not found

說明:

命令的位置不在 $PATH 中 和 命令不存在,都會報“command not found”

如果,我們鍵入的命令的位置不在shell搜索 $PATH 路徑中,可以使用全路徑描述該命令,或把該

命令所在的路徑追加到 $PATH 變量中。

1、使用全路徑描述文件

[root@Node1 etc]# /usr/bin/tree  /etc

2、把命令所在的路徑加到 $PATH 變量中。

1[root@Node1 ~]# vim /etc/profile

在 profile 文件中添加一行 $PATH=/path1/path2/:/path2/path3

如,在編譯安裝 MySQL 數據庫,MySQL提供的工具所在的路徑設置為,shell默認的搜索路徑

($PATH)。這樣使用MySQL提供的一些命令,對MySQL服務器操作維護時

就不需要輸入命令的全路徑了。這樣比較方便。在 profile 文件中添加一行 

$PATH=/usr/local/mysql/bin 但是剛添加到 $PATH 中的路徑,shell並不知道。

我們要通知shell,重讀 profile 文件,方法是:

[root@Node1 etc]# . profile

二、我們怎麼,知道一個命令的使用方法呢?

一般,命令都會提供幫助文檔,我們可以通過幫助文檔來查看一個命令的使用方法。我們的命令又分為: shell 內置命令 和 外部命令。

命令的類型不同,獲取它的幫助文檔的方式也不同。所以,我們首先要判斷一個命令的類型?

判斷 command 類型,使用 【type】

[root@Node1 etc]# type cd

cd is a shell builtin

得知【cd】命令,是 shell 內置命令,我們可以使用下述方法查看該命令使用方法

[root@Node1 etc]# help cd

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

Change the shell working directory.

Change the current directory to DIR.  The default DIR is the value of the

HOME shell variable.

......

[root@Node1 etc]# type ls

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

ls命令,是外部命令。我們使用 【command --help】或【man】命令來查看命令幫助文檔。man 中文意思"男人",在 Linux 世界中遨游,不懂就問“男人”。所以要學會 man 的使用。

我們非內核命令的幫助文檔存放在,/usr/share 中。

【man】命令是如何工作的?

man 會按照它的配置文件 /etc/man.config 中 MANPATH 定義的路徑去搜索命令的幫助文檔,當我

們用【man】去查看 command 的幫助文檔時,如果 command 的幫助文檔不在man 程序的搜索路徑

中,man 是找不到 command 的幫助文檔的。所以,我們在編譯安裝源程序的時候,如果我們安裝的

程序的幫助文檔目錄不在【man】的默認搜索路徑下,則需要把程序的幫助文檔的路徑添加【man】

的索引路徑中。可以通過編譯 /etc/man.config 在 MANPATH 指令中添加上程序的幫助文檔的路徑

就可以了,如:把 MySQL 的幫助文檔的路徑添加到【man】的搜索路徑中

[root@node2 ~]# vim /etc/man.config

# MANBIN                /usr/local/bin/man

#

# Every automatically generated MANPATH includes these fields

#

MANPATH /usr/man

MANPATH /usr/share/man

MANPATH /usr/local/man

MANPATH /usr/local/share/man

MANPATH /usr/X11R6/man

MANPATH /usr/local/mysql/man/

我們的幫助文檔是分章節的,不同章節表示不同的意思。了解幫助文檔的不同章節的含義,我們才可以使用【man】命令快速定位到需要的內容。

查看的內容。

1、查看命令有哪些章節?使用【whatis】檢索 whatis databases 數據庫。而我們剛安裝的程序的幫助文檔不會記錄到數據庫裡,Linux 系統使用【makewhatis】來生成數據庫的。系統把生成數據庫的動作做成了系統的周期性任務,“每周的星期天零晨4點22分”執行一次生成 whatis 數據數據的任務。所以我們剛安裝的程序,使用【whatis command】是查不到命令有多少章節的。如果需要查看的話,我們可以手動執行一下【makewhatis】命令,生成 whatis databases. 

[root@node2 ~]# whatis shutdown

shutdown             (2)  - shut down part of a full-duplex connection

shutdown             (3p)  - shut down socket send and receive operations

shutdown             (8)  - bring the system down

2、如章節表示的意義如下所述

man1       用戶命令

man2       系統調用

man3       庫調用

man4       設備文件

man5       配置文件

man6       游戲

man7       雜項

man8       管理命令

2、使用【man N】來實現用戶隨意查看幫助文檔章節的內容

[root@node2 ~]# man 8 shutdown

3、使用【help command】來查看 command 的使用方法,沒有 man 顯示那麼詳細.

[root@node2 ~]# shutdown --help

shutdown: invalid option -- -

Usage:    shutdown [-akrhHPfnc] [-t secs] time [warning message]

-a:      use /etc/shutdown.allow

-k:      don't really shutdown, only warn.

-r:      reboot after shutdown.

-h:      halt after shutdown.

-P:      halt action is to turn off power.

-H:      halt action is to just halt.

-f:      do a 'fast' reboot (skip fsck).

-F:      Force fsck on reboot.

-n:      do not go through "init" but go down real fast.

應用程序的幫助文檔,通常是有不同的段落組成的。每個段落描述了應用程序的不同內容。了解幫助文檔各段落表示的意義,我們可以快速找到我們想要讀取到的內容。

手冊的段落:

1、NAME           命令名稱

2、DESCRIPTION    命令功能的詳細描述

3、OPTIONS        所有選項

4、FILES          與當前命令相關的配置文件

5、EXAMPLES       使用示例

6、SYNOPSIS       使用格式

7、SEE ALSO       可參考的其它手冊

說明:

如果,我們想快速知道 command 是怎麼使用的,可以查看幫助手冊的 EXAMPLES 段。命令的幫助手冊有很多字符組成,那麼我們如何定位到 EXAMPLES 字符呢?

當我們使用【man】打開查看命令的幫助手冊頁的時候,可以使用字符串搜索。

1、輸入"/keywork"  從文檔的首部向尾部搜索,搜索到指定的字符會高亮顯示。

2、輸入"?keywork"  從文檔的尾部向首部搜索,搜索到指定的字符會高亮顯示。

當我們搜索到字符在文檔中多處出現有的時候,可以按一些“鍵”來快速顯示下一個搜索到的字符。

1、N鍵:     跟搜索命令相反,顯示找到的下一個關鍵字

2、n鍵:     跟搜索命令相同,顯示找到的下一個關鍵字

Copyright © Linux教程網 All Rights Reserved