linux 命令 命令行

我們都知道,一臺計算機要是沒通電,和一堆廢鐵沒什麽區別。那麽,通電開機進入系統後,會進入交互界面,等待用戶操作,人與計算機交互界面有兩種:

GUI:圖形用戶接口。如我們平時使用的Windows ,linux的X window,有KDE和GOME.

CLI:命令行接口,使用的SHELL類型有bash ,csh,tcshell,zshell等。

例如:[[email protected] ~]# commandbin

root:當前登錄的用戶名。

dxlcentOS:當前主機的主機名。@是一個分隔符號,把root和後面的主機名分開,

~:是當前用戶所在的工作目錄

#:表示為當前登錄的為管理員賬號root

$:表示為當前登錄的為非root用戶,是普通用戶,不具有管理權限,不能操作系統管理類命令。

命令語法通用格式

# COMMAND PTIONS ARGUMENTS(命令作用對象)

Command:發起一個命令就是請求內核將某個二進制程序運行為一個進程。

程序由靜態文件變成動態的進程,有生命周期。

命令本身是一個二進制格式的可執行的程序文件,有可能會調用共享庫文件;

多數系統程序文件都存放在這些目錄下面:/bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin

  • 普通命令:/bin, /usr/bin, /usr/local/bin

  • 管理命令:/sbin, /usr/sbin, /usr/local/sbin

命令運行時會調用許多庫文件,我們稱之為共享庫。庫是一種二進制格式文件保存在磁盤,不能單獨運行。

  • 32bits的庫保存目錄:/lib, /usr/lib, /usr/local/lib

  • 64bits的庫保存目錄:/lib64, /usr/lib64, /usr/local/lib64

註意:並非所有的命令都有一個在某目錄與之對應的可執行程序文件。

命令必須遵循特定格式規範命:如Windows的可執行文件格式是exe, msi。 Linux是ELF。

Linux命令分類

  • 內部命令:由shell程序的自帶的命令:內置命令(builtin)。

例如 :~]# type cd

cd is a shell builtin

  • 外部命令:獨立的可執行程序文件,文件名即命令名。

例如 ~]# type man

man is /usr/bin/man

查看命令類型:~]# type command

OPTIONS:

指定命令的運行特性;選項有兩種表現形式:

  • 短選項:-C, 例如-l, -d。註意:有些命令的選項沒有-;如果同一命令同時使用多個短選項,多數可合並:-l -d = -ld。

  • 長選項:–word, 例如–help, –human-readable。註意:長選項不能合並;

註意:有些選項可以帶參數,此稱為選項參數;例如

長選項的參數通常需要用‘=’,比如–size=1G,

ARGUMENTS:

命令的作用對象;命令對什麽生效;

註意:不同的命令的參數;有些命令可同時帶多個參數,多個之間以空白字符分隔; 例如:ls -ld /var /etc, cat /tmp/1.txt 2.txt

獲取命令使用幫助

內部命令獲取幫助方法:help COMMAND

外部命令獲取幫助方法:

(1) 命令自帶簡要格式的使用幫助,例如:# COMMAND –help

(2) 使用手冊:manual。手冊文件保存的位置:/usr/share/man。例如:# man COMMAND

執行man COMMAND後英文說明:

SECTION:

  • NAME:功能性說明

  • SYNOPSIS:語法格式

  • DESCRIPTION:描述

  • OPTIONS:選項

  • EXAMPLES:使用示例

  • AUTHOR: 作者

  • BUGS: 報告程序bug的方式

  • SEE ALSO: 參考


SYNOPSIS:

  • []:可選內容;

  • <>:必須提供的內容;

  • a|b|c:多選一;

  • 同類內容可出現多個;

使用手冊:壓縮格式的文件,有章節之分;文件保存在/usr/share/man,man1, man2, …

~]# man man

-a:在所有的man幫助手冊中搜索

-f:等同於whatis,顯示給定關鍵字的簡短描述信息

-P:指定內容時使用分頁程序

-M:指定man手冊搜索的路徑

手冊章節說明:

  • man1:用戶命令;

  • man2:系統調用;

  • man3:C庫調用;

  • man4:設備文件及特殊文件;

  • man5:文件格式;(配置文件格式)

  • man6:遊戲使用幫助;

  • man7:雜項;

  • man8:管理工具及守護進行;

~]# man CHAPTER COMMAND

註意:並非每個COMMAND在所有章節下都有手冊;

可以用whatis查看:

~]# whatis COMMAND

註意:其執行過程是查詢數據庫進行的;

手動更新數據庫:

~]# makewhatis

man命令打開手冊以後的操作方法:

翻屏:

  • 空格鍵:向文件尾翻一屏;

  • b: 向文件首部翻一屏;

  • Ctrl+d:向文件尾部翻半屏;

  • Ctrl+u:向文件首部翻半屏;

  • 回車鍵:向文件尾部翻一行;

  • k: 向文件首部翻一行;

  • G:跳轉至最後一行;

  • #G: 跳轉至指定行;

  • 1G:跳轉至文件首部;


文本搜索:

  • /keyword:從文件首部向文件尾部依次查找;不區分字符大小寫;

  • ?keyword:從文件尾部向文件首部依次查找;

  • n: 與查找命令方向相同;

  • N: 與查找命令方向相反;

  • 退出:q: quit

man選項:

-M /PATH/TO/SOMEDIR:到指定目錄下查找命令手冊並打開之;

(3) info COMMAND

獲取命令的在線文檔;

(4) 很多應用程序會自帶幫助文檔:/usr/share/doc/APP-VERSION

  • README:程序的相關的信息;

  • INSTALL: 安裝幫助;

  • CHANGES:版本叠代時的改動信息;

(5) 主流發行版官方文檔

http://www.redhat.com/doc

(6) 下載程序官方的文檔:“Document”

(7) 應用 google搜索引擎

linux目錄結構

我們用過windows都知道,進入我點電腦裏面會看見C,D,E等的盤符,其文件路徑方式是E:\xxx\xxx\,以盤符為起點,每個盤都是獨立自治的。那麽linux是怎麽樣的呢?我看下面的一張圖。

技術分享

linux的文件層級結構是一個倒置樹狀結構,“/”根是一切文件的起點。我們先看看文件路徑。

絕對路徑:以“根/”起點,你所到達的目錄為終點。例如/etc/yum/vars

相對路徑:以當前工作目錄為起點,達到目錄為終點,例如假設當前目錄在etc下,要到yum目錄,直接

技術分享

cd yum即可。

那麽linux根“/”下面重要的目錄和文件有哪些呢:看下:# ls /

技術分享

/bin:所有用戶可用的基本命令二進制程序文件;

/sbin:供系統管理使用的工具程序;只允許系統管理root執行。

/boot:引導加載器必須用到的各靜態文件:kernel, initramfs(initrd), grub等;

/dev:存儲特殊文件或設備文件;

設備有兩種類型:字符設備(線性設備),例如鍵盤。塊設備(隨機設備),例如硬盤。

/etc:系統程序的配置文件,只能為靜態;

/home:普通的家目錄的集中位置;一般每個普通用戶的家目錄默認為此目錄下與用戶名同名的子目錄,/home/USERNAME;

/root:管理員的家目錄;可選;

/lib:為系統啟動或根文件系統上的應用程序(/bin, /sbin等)提供共享庫,以及為內核提供內核模塊。類似windows下面的.dll文件

  • libc.so.*:動態鏈接的C庫;

  • ld*:運行時鏈接器/加載器;

  • modules:用於存儲內核模塊的目錄;

/lib64:64位系統特有的存放64位共享庫的路徑;

/media:便攜式設備掛載點,例如U盤,cdrom, floppy等;

/mnt:其它文件系統的臨時掛載點;一般情況下這個目錄是空的,而在我們將要掛載分區時在這個目錄下建立目錄,再將我們將要訪問的設備掛載在這個目錄上,這樣我們就可訪問文件了。

/opt:附加應用程序的安裝位置;可選路徑;

/srv:當前主機為服務提供的數據;

/tmp:為那些會產生臨時文件的程序提供的用於存儲臨時文件的目錄;可供所用戶執行寫入操作;有特殊權限;

/usr:usr Hierarchy,全局共享的只讀數據路徑;/usr的作用與現在的/home相同。而目前其通常被認為是 User System Resources 的縮寫,其中通常是用戶級的軟件等,與存放系統級文件的根目錄形成對比。

  • bin, sbin 多數日常應用程序存放的位置

  • lib, lib64 系統的庫文件

  • include:C程序頭文件;

  • share:命令手冊頁和自帶文檔等架構特有的文件的存儲位置

  • local:另一個層級目錄;

  • X11R6:X-Window程序的安裝位置

  • src:程序源碼文件的存儲位置

  • /usr/local:Local hierarchy,讓系統管理員安裝本地應用程序;也通常用於安裝第三方程序;

/var:/var Hierarchy,存儲常發生變化的數據的目錄;包括了一些數據文件,如系統日誌等。

  • /var/cache Application cache data應用程序的緩存文件

  • /var/lib Variable state information應用程序的信息、數據。如數據庫的數據等都存放在此文件夾

  • /var/local /usr/local中程序的信息、數據

  • /var/lock Lock files 鎖文件

  • /var/log Log files and directories日誌文件

  • /var/opt Variable data for /opt中程序的信息、數據

  • /var/run Data relevant to running processes正在執行著的程序的信息,如PID文件應存放於此

  • /var/spool Application spool data存放程序的假脫機數據(即spool data)

  • /var/tmp Temporary files preserved between system reboots臨時文件


/proc:基於內存的虛擬文件系統,用於為內核及進程存儲其相關信息;它們多為內核參數,例如net.ipv4.ip_forward, 虛擬為net/ipv4/ip_forward, 存儲於/proc/sys/, 因此其完整路徑為/proc/sys/net/ipv4/ip_forward;

/sys:sysfs虛擬文件系統提供了一種比proc更為理想的訪問內核數據的途徑;其主要作用在於為管理Linux設備提供一種統一模型的的接口;

參考:https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/

本文由馬哥及教育學員N27_dxldeng 原創,首發於運維部落

本文出自 “馬哥Linux培訓” 博客,請務必保留此出處http://mageedu.blog.51cto.com/4265610/1966355

linux命令格式,獲取幫助及其目錄結構簡要理解