我們都知道,一臺計算機要是沒通電,和一堆廢鐵沒什么區別。那么,通電開機進入系統后,會進入交互界面,等待用戶操作,人與計算機交互界面有兩種:
GUI:圖形用戶接口。如我們平時使用的Windows ?,linux的X window,有KDE和GOME.
CLI:命令行接口,使用的SHELL類型有bash ,csh,tcshell,zshell等。
例如:[root@dxlcentOS ~]# 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/
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87190