linux 基礎命令

一、ls:linux

  ls命令是linux下最經常使用的命令,是list的縮寫。若是ls指定其餘目錄,那麼就會顯示指定目錄裏的文件及文件夾清單。 經過ls 命令不只能夠查看linux文件夾包含的文件,並且能夠查看文件權限(包括目錄、文件夾、文件權限)查看目錄信息等等。 數據庫

  命令格式:ls [選項] [目錄名]服務器

  命令實例:less

  ①列出/home/test文件夾下的全部文件和目錄的詳細資料:ls -lR /home/testsvn

  ②列出當前目錄中全部以 「p」 開頭的目錄的詳細內容:ls -l t*加密

  ③只列出文件下的子目錄,列出 /opt/soft 文件下面的子目錄:ls -F /opt/soft/ | grep /$spa

    列出 /opt/soft 文件下面的子目錄:ls -l /opt/soft | grep "^d"操作系統

  ④列出當前目錄下全部名稱 s 開頭的文件,時間正序排列:ls -ltr s*命令行

  ⑤計算當前目錄下文件和目錄數:設計

    ls -l * |grep 「^-「|wc -l —文件個數

    ls -l * |grep 「^d」|wc -l    —目錄個數

  ⑥在 ls 中列出文件的絕對路徑:ls | sed "s:^:`pwd`/:"

  ⑦遞歸列出當前目錄下的全部文件(包括隱藏文件)的絕對路徑:find $PWD | xargs ls -ld

二、cd:目錄切換

  命令格式:cd [目錄名]

三、pwd:查看」當前工做目錄「的完整路徑

四、mkdir :

  用來建立指定的名稱的目錄,要求建立目錄的用戶在當前目錄中具備寫權限,而且指定的目錄名不能是當前目錄中已有的目錄。

  命令格式:mkdir [選項] 目錄…

  命令實例:①遞歸建立多個目錄:mkdir -p test2/test22

    ②建立權限爲777的目錄:mkdir -m 777 test3

    ③一個命令建立項目的目錄結構: mkdir -vp scf/{lib/,bin/,doc/{info,product},logs/{info,product},service/deploy/{info,product}}

    輸出:

    mkdir: 已建立目錄 「scf」

    mkdir: 已建立目錄 「scf/lib」

    mkdir: 已建立目錄 「scf/bin」

    mkdir: 已建立目錄 「scf/doc」

    mkdir: 已建立目錄 「scf/doc/info」

    mkdir: 已建立目錄 「scf/doc/product」

    mkdir: 已建立目錄 「scf/logs」

    ......

五、rm:

  刪除一個目錄中的一個或多個文件或目錄,對於連接文件,只是刪除了連接,原有文件均保持不變。

  命令格式:rm [選項] 文件…

  部分經常使用命令:

  ①刪除test目錄及子目錄中的全部文件,且不用一一確認:rm -rf  test2

  ②刪除以 -f 開頭的文件:rm -- -f

六、rmdir:

  刪除空目錄,一個目錄被刪除以前必須是空的。(注意,rm – r dir命令可代替rmdir,可是有很大危險性。)刪除某目錄時也必須具備對父目錄的寫權限。

  命令格式:rmdir [選項]… 目錄…

  命令實例:遞歸刪除目錄dirname,當子目錄刪除後其父目錄爲空時,也一同被刪除,刪除logs包含的空目錄:rmdir -logs

七、mv:

  能夠用來移動文件或者將文件更名,視mv命令中第二個參數類型的不一樣(是目標文件仍是目標目錄)

  命令格式:mv [選項] 源文件或目錄 目標文件或目錄

  命令參數:

  -b :若需覆蓋文件,則覆蓋前先行備份。

  -f :force 強制的意思,若是目標文件已經存在,不會詢問而直接覆蓋;

  -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!

  -u :若目標文件已經存在,且 source 比較新,纔會更新(update)

八、cp:

  將源文件複製至目標文件,或將多個源文件複製至目標目錄。

  命令格式:cp [選項]… [-T] 源 目的 或 :cp [選項]… 源… 目錄  或:cp [選項]… -t 目錄 源…

  部分經常使用命令:

  ①複製整個目錄(目標目錄存在與否結果是不同的):cp -a test test1

  ②複製一個log.log 創建一個log_link.log(log_link.log 是由 -s 的參數形成的,創建的是一個『快捷方式』): cp -s log.log log_link.log

九、touch:

  更改文檔或目錄的日期時間,包括存取時間和更改時間

  命令格式:touch [選項]... 文件...

  命令實例:

  ①建立不存在的文件:touch log2012.log log2013.log

  ②更新log.log 時間 和 log2.log時間戳相同:touch -r log.log log2.log

  ③設定文件的時間戳:touch -t 201211142234.50 log.log

十、cat:

  鏈接文件或標準輸入並打印。這個命令經常使用來顯示文件內容,或者將幾個文件鏈接起來顯示,或者從標準輸入讀取內容並顯示,它常與重定向符號配合使用。

  其餘功能:

    1.一次顯示整個文件:cat filename

    2.從鍵盤建立一個文件:cat > filename 只能建立新文件,不能編輯已有文件.

    3.將幾個文件合併爲一個文件:cat file1 file2 > file

  命令格式:cat [選項] [文件]...

  命令實例:

  ①把log1文件內容加上行號輸入到log2文件:cat -n log1.log log2.log 

  ②把log1和log2文件內容加上行號(空白行除外),輸入到log文件:cat  -b  log1.log  log2.log  log.log

  注:tac:是將 cat 反寫過來,因此他的功能就跟 cat 相反, cat 是由第一行到最後一行連續顯示在螢幕上,而 tac 則是由最後一行到第一行反向在螢幕上顯示出來!

十一、nl:

  計算文件中行號,nl 能夠將輸出的文件內容自動的加上行號!其默認的結果與 cat -n 有點不太同樣, nl 能夠將行號作比較多的顯示設計,包括位數與是否自動補齊 0 等等的功能。nl 命令讀取 File 參數(缺省狀況下標準輸入),計算輸入中的行號,將計算過的行號寫入標準輸出。 在輸出中,nl 命令根據您在命令行中指定的標誌來計算左邊的行。 輸入文本必須寫在邏輯頁中。每一個邏輯頁有頭、主體和頁腳節(能夠有空節)。 除非使用 -p 標誌,nl 命令在每一個邏輯頁開始的地方從新設置行號。 能夠單獨爲頭、主體和頁腳節設置行計算標誌(例如,頭和頁腳行能夠被計算然而文本行不能)。

  命令格式:nl [選項]... [文件]...

     命令實例:

  ①用nl 列出log.log的內容:nl log.log

  ②用nl 列出log.log的內容,包括空行:nl -b a log.log

  ③用nl 列出log.log的內容,行號前面自動補0,統一輸出格式:nl -b a log.log;nl -b a -n rz -w 3 log.log 

  nl -b a -n rz 命令行號默認爲六位,要調整位數能夠加上參數 -w 3 調整爲3位。

十二、more:

  功能相似 cat ,cat命令是整個文件的內容從上到下顯示在屏幕上。 more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,並且還有搜尋字串的功能 。more命令從前向後讀取文件,所以在啓動時就加載整個文件。

  命令格式:more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ] 

  經常使用操做命令:

    Enter    向下n行,須要定義。默認爲1行

    Ctrl+F   向下滾動一屏

    空格鍵  向下滾動一屏

    Ctrl+B  返回上一屏

    =       輸出當前行的行號

  命令實例:

  ①從文件第三行讀取:more +3 log.log

  ②從文件中找出第一次出現「day3」字符串的行,並從該處前兩行顯示輸出: more +/day3 log2012.log

  ③設定每屏顯示行數:more -5 log2012.log

  ④結合ls 顯示目錄:ls -l  | more -5

1三、less:

  less 與 more 相似,但使用 less 能夠隨意瀏覽文件,而 more 僅能向前移動,卻不能向後移動,並且 less 在查看以前不會加載整個文件。

  命令格式:less [參數]  文件 

  命令實例:

  ①ps 查看進程信息,並經過less分頁顯示:ps -ef |less

  ②查看命令歷史,並經過less分頁顯示: history | less

  ③瀏覽多個文件:Less log1.log log2.log

  注:

  ctrl + F - 向前移動一屏

  ctrl + B - 向後移動一屏

  ctrl + D - 向前移動半屏

  ctrl + U - 向後移動半屏

1四、head:

  head 用來顯示檔案的開頭至標準輸出中,默認head命令打印其相應文件的開頭10行

  命令格式:head [參數]... [文件]...  

  命令實例:

  ①顯示前 n 行文件:head -n 5 log.log

  ②顯示文件前 n 個字節:head -c 20 log.log

  ③顯示文件除了最後n個字節之外的內容:head -c -32 log.log

  ④顯示文件除最後 n 行的所有內容:head -n -6 log.log

1五、tail:

  用於顯示指定文件末尾內容,不指定文件時,做爲輸入信息進行處理。經常使用查看日誌文件,使用tail命令的-f選項能夠方便的查閱正在改變的日誌文件,tail -f filename會把filename裏最尾部的內容顯示在屏幕上,而且不斷刷新

  命令格式:tail[必要參數][選擇參數][文件]  

  命令實例: 

  ①顯示文件後幾行的信息:tail -n 5 log2014.log

  ②循環查看文件內容:tail -f test.log

  ③從第五行開始顯示文件:tail -n +5 log.log

1六、which:

  在PATH變量指定的路徑中,搜索某個系統命令的位置,而且返回第一個搜索結果。也就是說,使用which命令,就能夠看到某個系統命令是否存在,以及執行的究竟是哪個位置的命令。

  命令格式:which 可執行文件名稱

  命令參數:

    -n  指定文件名長度,指定的長度必須大於或等於全部文件中最長的文件名。

    -p  與-n參數相同,但此處的包括了文件的路徑。

    -w  指定輸出時欄位的寬度。

    -V  顯示版本信息

  命令實例:

  ①查找文件,顯示命令路徑:which lsmod

    which 是根據使用者所配置的 PATH 變量內的目錄去搜尋可運行檔的!因此,不一樣的 PATH 配置內容所找到的命令不同

1七、whereis:

  whereis命令是定位可執行文件、源代碼文件、幫助文件在文件系統中的位置,只能用於程序名的搜索,並且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。若是省略參數,則返回全部信息。和find相比,whereis查找的速度很是快,這是由於linux系統會將 系統內的全部文件都記錄在一個數據庫文件中,當使用whereis 和 locate時,會從數據庫中查找數據,而不是像find命令那樣,通 過遍歷硬盤來查找,效率天然會很高。 可是該數據庫文件並非實時更新,默認狀況下時一星期更新一次,所以,咱們在用whereis和locate 查找文件時,有時會找到已經被刪除的數據,或者剛剛創建文件,卻沒法查找到,緣由就是由於數據庫文件沒有被更新。 

  命令格式:whereis [-bmsu] [BMS 目錄名 -f ] 文件名

  命令參數:

    -b   定位可執行文件。

    -m   定位幫助文件。

    -s   定位源代碼文件。

    -u   搜索默認路徑下除可執行文件、源代碼文件、幫助文件之外的其它文件。

    -B   指定搜索可執行文件的路徑。

    -M   指定搜索幫助文件的路徑。

    -S   指定搜索源代碼文件的路徑。

  命令實例:

  ①查找全部和 ** 相關的文件:whereis svn

  ②只將二進制文件查找出來:whereis -b svn

1八、locate:

  locate命令能夠在搜尋數據庫時快速找到檔案,數據庫由updatedb程序來更新,updatedb是由cron daemon週期性創建的,locate命令在搜尋數據庫時比由整個由硬盤資料來搜尋資料來得快,但較差勁的是locate所找到的檔案如果最近才創建或 剛改名的,可能會找不到,在內定值中,updatedb天天會跑一次,能夠由修改crontab來更新設定值。(etc/crontab)。locate指定用在搜尋符合條件的檔案,它會去儲存檔案與目錄名稱的數據庫內,尋找合乎範本樣式條件的檔案或目錄錄,可使用特殊字元(如」*」 或」?」等)來指定範本樣式。locate指令和find找尋檔案的功能相似,但locate是透過update程序將硬盤中的全部檔案和目錄資料先創建一個索引數據庫,在 執行loacte時直接找該索引,查詢速度會較快,索引數據庫通常是由操做系統管理,但也能夠直接下達update強迫系統當即修改索引數據庫。

  命令格式:Locate [選擇參數] [樣式]

  命令實例:

  ①查找和pwd相關的全部文件:locate pwd

  ②搜索etc 目錄下全部以sh開頭的文件:locate /etc/sh

1九、find:

  在目錄結構中搜索文件,並執行指定的操做

  命令格式:find pathname -options [-print -exec -ok ...]

  特殊命令選項:

    -amin n   查找系統中最後N分鐘訪問的文件

    -atime n  查找系統中最後n*24小時訪問的文件

    -cmin n   查找系統中最後N分鐘被改變文件狀態的文件

    -ctime n  查找系統中最後n*24小時被改變文件狀態的文件

    -mmin n   查找系統中最後N分鐘被改變文件數據的文件

    -mtime n  查找系統中最後n*24小時被改變文件數據的文件

  命令實例:

  ①查找48小時內修改過的文件:find -atime -2

  ②在當前目錄查找 以.log結尾的文件:find -name "*.log"

  ③查找/opt/soft/test/目錄下 權限爲 777的文件:find /opt/soft/test-perm 777

  ④查找當目錄,以.log結尾的普通文件:find -type -name "*.log"

  ⑤查找當前全部目錄並排序:find -type sort

  ⑥查找當前目錄大於1K的文件:find -size +1000c -print

  注:find命令之exec:

    find命令之xargs:

20、chmod:

  用於改變linux系統文件或目錄的訪問權限。用它控制文件或目錄的訪問權限。該命令有兩種用法。一種是包含字母和操做符表達式的文字設定法;另外一種是包含數字的數字設定法。

  權限範圍:

    u :目錄或者文件的當前的用戶
    g :目錄或者文件的當前的羣組
    o :除了目錄或者文件的當前用戶或羣組以外的用戶或者羣組
    a :全部的用戶及羣組

  權限代號:

    r :讀權限,用數字4表示
    w :寫權限,用數字2表示
    x :執行權限,用數字1表示
    - :刪除權限,用數字0表示
    s :特殊權限 

  命令實例:

  ①增長文件全部用戶組可執行權限(設定文件log.log的屬性爲:文件屬主(u) 增長執行權限;與文件屬主同組用戶(g) 增長執行權限;其餘用戶(o) 增長執行權限):chmod a+x log.log

  ②同時修改不一樣用戶權限(設定文件text的屬性爲:文件屬主(u) 增長寫權限;與文件屬主同組用戶(g) 增長寫權限;其餘用戶(o) 刪除執行權限):chmod ug+w,o-x log.log

  ③刪除文件權限(刪除全部用戶的可執行權限):chmod a-x log.log

  ④使用「=」設置權限(撤銷原來全部的權限,而後使擁有者具備可讀權限):chmod u=x log.log

  ⑤對一個目錄及其子目錄添加權限(遞歸地給test目錄下全部文件和子目錄的屬主分配權限 ):chmod -R u+x test

2一、df:

  用來檢查linux服務器的文件系統的磁盤空間佔用狀況。能夠利用該命令來獲取硬盤被佔用了多少空間,目前還剩下多少空間等信息。

  顯示指定磁盤文件的可用空間。若是沒有文件名被指定,則全部當前被掛載的文件系統的可用空間將被顯示。默認狀況下,磁盤空間將以 1KB 爲單位進行顯示,除非環境變量 POSIXLY_CORRECT 被指定,那樣將以512字節爲單位進行顯示

2二、du:

  du命令也是查看使用空間的,可是與df命令不一樣的是Linux du命令是查看當前指定文件或目錄(會遞歸顯示子目錄)佔用磁盤空間大小

  命令實例:

  ①顯示指定文件所佔空間:du log.log

  ②以 M 單位展現文件大小:du -h test

  ③按照空間大小排序:du|sort -nr|more

2三、chgrp:

  在lunix系統裏,文件或目錄的權限的掌控以擁有者及所訴羣組來管理。可使用chgrp指令取變動文件與目錄所屬羣組,這種方式採用羣組名稱或羣組識別碼均可以。Chgrp命令就是change group的縮寫!要被改變的組名必需要在/etc/group文件內存在才行。

  命令格式:chgrp [選項] [組] [文件]

  命令實例:

  ①改變文件羣組屬性:chgrp -v bin log.log

  ②根據指定文件改變文件的羣組屬性(改變文件log1.log 的羣組屬性,使得文件log1.log的羣組屬性和參考文件log2.log的羣組屬性相同):chgrp --reference=log2.log log1.log

  ③經過羣組識別碼改變文件羣組屬性(經過羣組識別碼改變文件羣組屬性,100爲users羣組的識別碼,具體羣組和羣組識別碼能夠去/etc/group文件中查看):chgrp -R 100 test6

2四、chown:

  將指定文件的擁有者改成指定的用戶或組,用戶能夠是用戶名或者用戶ID;組能夠是組名或者組ID;文件是以空格分開的要改變權限的文件列表,支持通配符。系統管理員常用chown命令,在將文件拷貝到另外一個用戶的名錄下以後,讓用戶擁有使用該文件的權限。

  命令格式:chown [選項]... [全部者][:[組]] 文件...

  命令實例:

  ①更改文件擁有者和羣組:chown mail:mail log.log;chown mail: log2.log

  ②更改文件羣組:chown :mail log2.log

  ③改變指定目錄以及其子目錄下的全部文件的擁有者和羣組:chown -R -v root:mail test6

2五、/etc/group:

  /etc/group文件與/etc/passwd和/etc/shadow文件都是有關於系統管理員對用戶和用戶組管理時相關的文件。/etc/group文件是有關於系統管理員對用戶和用戶組管理的文件,linux用戶組的全部信息都存放在/etc/group文件中。具備某種共同特徵的用戶集合起來就是用戶組(Group)。用戶組(Group)配置文件主要有 /etc/group和/etc/gshadow,其中 /etc/gshadow是/etc/group的加密信息文件。

  將用戶分組是Linux系統中對用戶進行管理及控制訪問權限的一種手段。每一個用戶都屬於某個用戶組;一個組中能夠有多個用戶,一個用戶也能夠屬於不 同的組。當一個用戶同時是多個組中的成員時,在/etc/passwd文件中記錄的是用戶所屬的主組,也就是登陸時所屬的默認組,而其餘組稱爲附加組。用戶組的全部信息都存放在/etc/group文件中。此文件的格式是由冒號(:)隔開若干個字段:組名:口令:組標識號:組內用戶列表

  組名是用戶組的名稱,由字母或數字構成。與/etc/passwd中的登陸名同樣,組名不該重複。

  口令字段存放的是用戶組加密後的口令字。通常Linux系統的用戶組都沒有口令,即這個字段通常爲空,或者是*

  組標識號與用戶標識號相似,也是一個整數,被系統內部用來標識組。別稱GID.

  組內用戶列表是屬於這個組的全部用戶的列表,不一樣用戶之間用逗號(,)分隔。這個用戶組多是用戶的主組,也多是附加組。

2六、in:

  爲某一個文件在另一個位置創建一個同步的連接.當咱們須要在不一樣的目錄,用到相同的文件時,咱們不須要在每個須要的目錄下都放一個必須相同的文件,咱們只要在某個固定的目錄,放上該文件,而後在 其它的目錄下用ln命令連接(link)它就能夠,沒必要重複的佔用磁盤空間。

  連接又可分爲兩種 : 硬連接(hard link)與軟連接(symbolic link),硬連接的意思是一個檔案能夠有多個名稱,而軟連接的方式則是產生一個特殊的檔案,該檔案的內容是指向另外一個檔案的位置。硬連接是存在同一個文件系統中,而軟連接卻能夠跨越不一樣的文件系統。

  ln指令用在連接文件或目錄,如同時指定兩個以上的文件或目錄,且最後的目的地是一個已經存在的目錄,則會把前面指定的全部文件或目錄複製到該目錄中。若同時指定多個文件或目錄,且最後的目的地並不是是一個已存在的目錄,則會出現錯誤信息。

  命令實例:

  ①給文件建立軟連接:ln -s log2.log link2

  ②給文件建立硬連接:ln log2.log ln2

  ③給目錄建立軟連接:ln -sv /opt/soft/test/test3 /opt/soft/test/test5

相關文章
相關標籤/搜索