好啦,從這里開始我們就開始學習linux的一些常用命令。首先進入centos-》應用程序-》附件-》終端,開始命令行之旅。
一、文件處理命令
1.網絡信息查看命令:ifconfig 英文原型:intface config(附加的。。。可以無視)
2.文件處理命令:ls 英文原型:list 命令所在路徑:/bin/ls 執行權限:所有用戶
功能表述:顯示文件目錄 常用可選項:-a -l -i(a表示all即顯示所有文件目錄,l表示long即顯示詳細文件屬性,i顯示文件的inode)
注:當鍵入ls -l時候,會輸出類似如下圖所示信息

第1個字母表示的文件類型(d表示目錄,-表示2進制文件,l表示軟鏈接文件)
第2-4字母表示的是文件擁有者的權限(r表示read,w表示write,x表示execute)
第5-7和第8-10字符分別表示文件所屬組的權限與其他用戶的權限
第11個數字表示此文件的硬鏈接數
第12個單詞表示文件擁有者是誰?
第13個單詞表示文件所屬組是誰?
接下來的數字是文件的大小(字節單位)和文件最后修改的時間
3.文件處理命令:cd 英文原型:change directory 命令所在路徑:shell內置命令 執行權限:所有用戶
功能表述:切換目錄
注:.表示當前目錄,..表示上級目錄,/表示根目錄
4.文件處理命令:pwd 英文原型:print working directory 命令所在路徑:/bin/pwd 執行權限:所有用戶
功能表述:顯示當前所在的工作目錄
5.文件處理命令:mkdir 英文原型:make directory 命令所在路徑:/bin/mkdir 執行權限:所有用戶
功能表述:創建目錄
6.文件處理命令:touch 命令所在路徑:/bin/touch 執行權限:所有用戶
功能表述:創建文件
7.文件處理命令:cp 英文原型:copy 命令所在路徑:/bin/cp 執行權限:所有用戶
功能表述:復制文件或目錄 常用可選項:-R -p(-R表示復制目錄,p表示復制時不改變時間)
注:cp 源文件 目的文件
8.文件處理命令:mv 英文原型:move 命令所在路徑:/bin/mv 執行權限:所有用戶
功能表述:剪切文件或改名
9.文件處理命令:rm 英文原型:remove 命令所在路徑:/bin/rm 執行權限:所有用戶
功能表述:刪除文件或目錄 常用可選項:-r -f(r表示刪除目錄,f表示force即強制刪除無須任何詢問)
10.文件處理命令:cat 英文原型:concatenate and display file 命令所在路徑:/bin/cat 執行權限:所有用戶
功能表述:顯示文件內容(適合較短文件)
11.文件處理命令:more 命令所在路徑:/bin/more 執行權限:所有用戶
功能表述:分頁顯示文件內容
注:進入分頁顯示狀態后,空格表示下一頁,回車表示下一行,q表示退出分頁顯示模式
12.文件處理命令:head 命令所在路徑:/bin/head 執行權限:所有用戶
功能表述:顯示文件頭幾行 常用可選項:-number(此處數字表示需要顯示的文件頭幾行的數字)
13.文件處理命令:tail 命令所在路徑:/bin/tail 執行權限:所有用戶
功能表述:顯示文件后幾行 常用可選項:-number -f(此處數字表示需要顯示的文件后幾行的數字,f表示動態顯示)
注:對于一些日志,實時在更新,那么通常使用-f選項來關注日志不斷更新的末尾.
14.文件處理命令:ln 英文原型:link 命令所在路徑:/bin/ln 執行權限:所有用戶
功能表述:創建鏈接 常用可選項:-s(s表示soft即創建的鏈接是軟鏈接)
現在看下圖,來演示創建軟鏈接
上圖中首先用ln -s創建一個軟鏈接host.soft,而這個軟件鏈接指向了/etc/host.conf文件。其實所謂的軟鏈接在windows里面就當于快捷方式而已。可以看見軟鏈接的類型是l類型,而軟鏈接的權限基本上全是滿的,后面還用箭頭表示了軟鏈接指向那個文件。
如果沒有用-s則創建硬鏈接,應注意硬鏈接是windows里面沒有的功能,硬鏈接相當于一個可以可以動態更新的副本。而且當原文件刪除后,軟連接就無用了,硬鏈接卻還有用。看如下指令:

首先我試圖創建一個硬鏈接由/study/host.hard指向/etc/host.conf,但是失敗了。原因是/study和/根分區不是一個物理分區,在我裝系統的時候,把根分區和/study分成了sda0和sda1兩個物理分區。所以結論是硬鏈接只能在同一個物理分區上進行。然后我建立了一個test文件,并創建了一個硬鏈接指向它,可以看見權限和內容是完全一樣的。
那以上是為什么呢?鏈接的底層到底是怎么實現的呢?
由于linux下的文件是通過索引節點號(Inode)來唯一標示文件,硬鏈接可以認為并不是一個新文件而只是一個指針,指向原文件索引節點的指針,系統并不為它重新分配inode。每添加一個一個硬鏈接,原文件的鏈接數就加1。而軟鏈接卻是一個新的文件,所以有不同的inode,只不過它的文件內容是原文件的路徑。
二、權限管理命令:
1.權限管理命令:chmod 英文原型:change the permission mode 命令所在路徑:/bin/chmod 執行權限:所有用戶
功能表述:更改文件或目錄權限
注:chmod有兩種格式,第一種是字母格式,chmod u/g/o +/-/= r/w/x 文件名/目錄名(u代表user即文件所有者,g代表gourp即文件所屬組,o代表other即其他用戶,+-=分別表示添加、刪除、賦予權限的操作,rwx代表權限).第二種格式是數字格式,chmod xyz(xyz分別是三個0-7的數字,每個0-7的數字其實是3個二進制的換算,3個二進制分別表示rwx,也就是說r是4、w是2、x是1。而x代表文件所有者得權限數字,y代表所屬組權限數字,z是其他用戶的權限數字.比如某文件的權限是rwxr-xr-x 換成數字形式就是 755).接下來看下面一個實驗:


上面代碼中創建了一個目錄,后又在目錄創建了一個文件并給予滿權限,但當我用一個普通用戶去刪除這個文件時候卻為什么說權限不夠呢?可是權限上說other的權限是rwx丫。原因其實在于我們對rwx的理解,其實rwx對于文件和目錄是不同的。總結如下:

文件的r(cat、more、head、tail)、w(echo、vi)、x(命令、腳本)
目錄的r(ls)、w(touch、rm、mkdir)、x(cd)
2.權限管理命令:chown 英文原型:change file ownership 命令所在路徑:/bin/chown 執行權限:所有用戶
功能表述:改變文件或目錄所有者
注:chown 用戶 文件
3.權限管理命令:chgrp 英文原型:change file group 命令所在路徑:/bin/chgrp 執行權限:所有用戶
功能表述:改變文件或目錄所屬組
注:chgrp 所屬組 文件
4.權限管理命令:umask 命令所在路徑:/bin/umask 執行權限:所有用戶
功能表述:顯示和設置文件的缺省權限 常用可選項:-S(S表示以rwx的方式顯示缺省權限)
注:umask有兩種使用方式,演示如下:

第一種是rws的方式顯示出缺省權限,而第二種方式是顯示的0002,這是什么意思呢?第一個數字0是表示一種特殊權限位,而后面的三個數字就是分別表示ugo的缺省權限,可是為什么不是775呢?顯然775+002=777,所以我們可以看出002其實是缺省缺陷的掩碼。哇哈哈~
三、文件搜索命令:
1.文件搜索命令:which 命令所在路徑:/user/bin/which 執行權限:所有用戶
功能表述:顯示系統命令所在目錄
2.文件搜索命令:find 命令所在路徑:/user/bin/which 執行權限:所有用戶
功能表述:查找文件或目錄
注:find的命令較為復雜,大致格式為find 目標目錄 搜索選項 搜索條件。常用的搜索選項有4種:
(1)-name 以文件或目錄的名稱來搜索,常用*,?等通配符連用
(2)-size 以文件或者目錄大小來搜索,用+(大于)、-(小于)某一個數字來搜索。單位是512字節(block),100M=204800
(3)-user 以文件的擁有者來搜索
(4)以時間的搜索方式,常用-ctime、-atime、-mtime、-cmin、-amin、-mmin,其中time表示天,min表示分鐘,c表示change指代文件或目錄的屬性被修改過,a表示access指代文件或目錄被訪問過,m表示modify指代文件或目錄的內容被修改過。另外用-表示在某段時間之內,+表示某段時間之外。舉例如下:

以上程序段在列舉了上面4種方式外,還加入了兩種連接符。第一種是邏輯連接符,-a表示and即邏輯與,-o表示or即邏輯或.第二種是執行連接符,當你用find查詢到一個元素集合時,你可以通過-exec來對集合中的元素進行操作,要特別注意格式:-exec 操作命令 {}\另外可以用ok來代替exec,兩者之間功能相似,不同的在于exec是直接執行,而ok會先詢問再執行。
3.文件搜索命令:locate 命令所在路徑:/user/bin/locate 執行權限:所有用戶
功能表述:尋找文件或者目錄
注:此命令功能類似于find,但查找方式不同。find是在硬盤中查找,而locate是在文件目錄的數據庫查找,速度與效率比find快很多。但有一個缺點就是,如果你需要查找的文件在目錄數據庫中沒有記錄的話就查找不到,所以常配合更新目錄數據庫的updatedb使用。

從上面程序段可以看出,我新創建的test.file文件剛開始用locate查找不到,而用find卻可以查到。但當我更新過目錄文件數據庫后,再用locate就可以查詢到了。
4. 文件搜索命令:grep 命令所在路徑:/bin/locate 執行權限:所有用戶
功能表述:在指定文件中搜索指定的字符串行并輸出
注:舉例如下,在services文件中查找含tftp字符串的行,并輸出

四、幫助命令:
1.幫助命令:man 英文原型:manual 命令所在路徑:/usr/bin/man 執行權限:所有用戶
功能表述:獲取幫組信息
注:man后面可以接命令,同時也可以接配置文件。如果命令和配置文件同名,默認是命令幫組(man 1 commad),你可以man 5 配置file
2.幫助命令:whatis 執行權限:所有用戶
功能表述:獲取簡短幫助信息
注:whatis也是從某幫助信息的數據庫中查詢幫助,所以常用makewhatis來更新相關數據庫。
3.幫助命令:help 執行權限:所有用戶
功能表述:查看shell內置命令的幫助,man是誤差查詢shell內置命令的幫助的。當你用man查詢的時候如果查不到你所需要的東西。也許用help你會有意外的收獲,哇呵呵。
五、壓縮命令:
1.壓縮命令:gzip 命令所在路徑:/bin/gzip 執行權限:所有用戶
功能表述:壓縮文件(只能是文件,不能是目錄)
注:gzip壓縮文件會丟失原文件。gzip -d 文件,是解壓縮
2.壓縮命令:gunzip 命令所在路徑:/bin/gunzip 執行權限:所有用戶
功能表述:解壓gizp文件
3.壓縮命令:tar 命令所在路徑:/bin/tar 執行權限:所有用戶
功能表述:把文件或目錄打包成一個二進制文件 常用可選項:-cxvfz(c代表create即創建,x代表execute即解包,v代表view即查看打包或解包過程,f與c連用表示打包后的文件名稱,f與x連用表示解包的目標名稱,z與c連用表示打包后壓縮,z與x連用表示解包后解壓)
注:f必須放在可選項的最后,源文件在前,目標文件在后。下面演示該命令:

4.壓縮命令:zip 命令所在路徑:/usr/bin/zip 執行權限:所有用戶
功能表述:以zip的形式壓縮文件或目錄 常用可選項:-r(r表示壓縮目錄)
注:zip格式是與window之間無需轉換而可通用的壓縮格式,用來壓縮一些不大且共享與雙系統間的文件很好。
5.壓縮命令:unzip 命令所在路徑:/usr/bin/unzip 執行權限:所有用戶
功能表述:以zip的形式解壓文件或目錄
6.壓縮命令:bzip2 命令所在路徑:/usr/bin/bzip2 執行權限:所有用戶
功能表述:以bzip2的形式壓縮文件(是gzip的升級版) 常用可選項:-k(壓縮后保留原文件)
六、網絡通信命令:
1.網絡通信命令:write 命令所在路徑:/usr/bin/write 執行權限:所有用戶
功能表述:向另外一個用戶實時發送消息,并以CTRL+d結束
注:格式是write 用戶
2.網絡通信命令:wall 命令所在路徑:/usr/bin/wall 執行權限:所有用戶
功能表述:向所有用戶廣播消息
3.網絡通信命令:ping 命令所在路徑:/usr/sbin/ping 執行權限:所有用戶
功能表述:發送icmp報文 常用可選項:-cs(c代表count即控制報文數目,s代表報文大小)
七、系統命令:
1.系統命令:shutdown 命令所在路徑:/usr/sbin/shutdown 執行權限:所有用戶
功能表述:關機 常用可選項:-h(h代表hour即多少小時以后關機)
2.系統命令:reboot 命令所在路徑:/usr/sbin/reboot 執行權限:所有用戶
功能表述:重啟
八、Shell命令:
shell是一整命令行解釋程序,一個linux操作系統可以有多個shell,我們可以查看:

操作系統默認的一般是bash,我也是用bash。在shell中,你可用tab鍵自動補全。
1.Shell命令:alias
功能表述:別名機制,alias 別名="命令 -選項"(若沒有選項可不用引號)
注:unalias 別名,可以解除別名
2.Shell命令:alias
功能表述:別名機制,alias 別名="命令 -選項"(若沒有選項可不用引號)
注:unalias 別名,可以解除別名
3.Shell命令:> >> < 2>
功能表述:輸出、附加輸出、輸入、錯誤輸出
注:進程的文件描述字是 輸出為0,輸入為1,錯誤輸出為2

4.Shell命令: | (管道)
功能表述:把前一個命令的輸出結果作為下一個命令的輸入參數。

第一個把ls命令的查詢結果用more命令來讀取,后面類似。
5.Shell命令: ; && || (命令連接符)
功能表述:如下

6.Shell命令:
``(命令替換符號)
功能表述:如下
