這個系列教程的前面咱們講解了如何安裝Linux系統,以及學習Linux系統的一些方法。那麼從這篇博客開始,咱們就正式進入Linux命令的學習。學習命令,首先要跟你們糾正的一點就是,咱們不須要記住每一條命令的詳細語法格式,學完以後咱們只須要知道某個命令能幹什麼。這樣咱們在實際應用中,遇到須要實現某個功能,咱們腦海只要能想起來適用於某個命令就行,至於詳細格式咱們能夠經過查資料。當咱們使用的多了,會不知不覺的記住這些命令,這纔是正確的學習方法。Linux命令有不少,若是初學者就想所有記住這些命令的詳細格式,會對咱們產生很大的學習挫敗性,還沒記完這些命令,或許你已經喪失了學習Linux的熱情了。因此接下來的幾篇博客,我會詳細講解Linux經常使用命令的語法格式以及用法,你們記住大概的用法就好了,到時候不會能夠回過頭來查詢。linux
本篇博客咱們學習Linux最經常使用的文件處理命令。shell
命令格式: 命令 【-選項】【參數】
例子: ls -la /etc
說明: ①、個別命令使用不遵循此格式,【】這種符號表示能夠省略
②、當有多個選項時,能夠寫在一塊兒
③、簡化選項(通常用一個-)與完整選項(通常用兩個--)
好比 ls -a 等於 ls --allbash
上面的即是Linux系統中的通常命令格式,基本上全部命令都是遵循這種語法格式(個別命令除外)。less
①、命令名稱:ls性能
②、英文原意:list學習
③、命令所在路徑:/bin/lsspa
④、執行權限:全部用戶3d
⑤、功能描述:顯示目錄文件日誌
⑥、語法: ls 選項【-ald】【文件或目錄】blog
-a 顯示全部文件,包括隱藏文件
-l 詳細信息顯示
-d 僅顯示目錄名,而不顯示目錄下的內容列表
-h 人性化顯示(hommization)
-i 查看任意一個文件的i節點(相似於身份證惟一信息)
-t 用文件和目錄的更改時間排序;能夠用第一個顯示的文件判斷最近修改的文件
注意:. 開頭的文件除非是目錄,不然就是隱藏文件
上面咱們分別列出了ls的各類命令組合顯示效果。咱們以 -rw-------. 1 root root 1.3k Mar 11 08:05 anaconda-ks.cfg 爲例解析每一個字段:
①、-rw------- 第一位表示文件類型,- 表示是二進制文件,d 表示目錄, l 表示軟鏈接文件。後面的每三個爲一組:
rw- --- ---
u g o
u(user)全部者 g(group)所屬組 o(other) 其餘人
r 讀 w寫 x執行 -無權限
②、1 引用計數,表示文件被引用過多少次
③、root 這第一個root表示全部者,通常建立一個文件,全部者默認是建立者。
④、root 這第二個root表示所屬組。
⑤、1.3K 表示文件字節大小,不帶單位表示字節
⑥、ar 11 08:05 表示文件的最後修改時間。注意:Linux沒有明確的建立時間,只有最後一次訪問時間、文件的狀態修改時間、文件的數據修改時間
⑦、anaconda-ks.cfg 表示文件名
①、命令名稱:mkdir
②、英文原意:make directories
③、命令所在路徑:/bin/mkdir
④、執行權限:全部用戶
⑤、功能描述:建立新目錄
⑥、語法: mkdir 【-p】【目錄名】
-p 遞歸建立
例子:建立單個目錄:mkdir /tmp/vae.txt
建立多個目錄:mkdir /tmp/a.txt /tmp/b.txt
注意:一、建立的目錄已經存在, 那麼 Linux 會提示咱們 Linux 沒法建立它。
二、不帶任何參數運行 mkdir 命令會在當前目錄下建立目錄。
三、不帶上-p,若是新建的文件上級目錄不存在則不會執行成功這種說法是錯誤的。加或者不加上 -p 前面的目錄沒有得都會依次建立。
四、建立目錄的首要條件是, 在想要建立目錄的目標路徑下你必須具備訪問權限。
①、命令名稱:cd
②、英文原意:change directory
③、命令所在路徑:shell 內置命令
④、執行權限:全部用戶
⑤、功能描述:切換目錄
⑥、語法: cd【目錄名】
例子:切換到指定目錄:cd /tmp/vae
回到上一級目錄:cd ..
仍是在當前目錄:cd .
返回上兩級目錄:cd ../..
返回進入此目錄以前所在的目錄:cd -
你們能夠看到前面的三個命令,ls命令和mkdir命令都有命令的所在路徑,而cd命令咱們說是shell內置命令。這二者即是Linux內置命令和外部命令。
內部命令其實是shell程序的一部分,其中包含的是一些比較簡單的linux系統命令,這些命令由shell程序識別並在shell程序內部完成運行,一般在linux系統加載運行時shell就被加載並駐留在系統內存中。內部命令是寫在bashy源碼裏面的,其執行速度比外部命令快,由於解析內部命令shell不須要建立子進程。好比:exit,history,cd,echo等。
外部命令是linux系統中的實用程序部分,由於實用程序的功能一般都比較強大,因此其包含的程序量也會很大,在系統加載時並不隨系統一塊兒被加載到內存中,而是在須要時纔將其調用內存。一般外部命令的實體並不包含在shell中,可是其命令執行過程是由shell程序控制的。shell程序管理外部命令執行的路徑查找、加載存放,並控制命令的執行。外部命令是在bash以外額外安裝的,一般放在/bin,/usr/bin,/sbin,/usr/sbin......等等。可經過「echo $PATH」命令查看外部命令的存儲路徑,好比:ls、vi等。
用type命令能夠分辨內部命令與外部命令:
內部命令和外部命令最大的區別之處就是性能。內部命令因爲構建在shell中而沒必要建立多餘的進程,要比外部命令執行快得多。所以和執行更大的腳本道理同樣,執行包含不少外部命令的腳本會損害腳本的性能。
①、命令名稱:pwd
②、英文原意:print working directory
③、命令所在路徑:/bin/pwd
④、執行權限:全部用戶
⑤、功能描述:顯示當前目錄
⑥、語法: pwd
例子:顯示當前目錄:pwd
①、命令名稱:rmdir
②、英文原意:remove empty directories
③、命令所在路徑:/bin/rmdir
④、執行權限:全部用戶
⑤、功能描述:刪除空目錄(若是目錄下存在文件則不能刪除)
⑥、語法: rmdir 【空目錄名】
例子:刪除指定空目錄:rmdir /tmp/a
注意:因爲此命令只能刪除空目錄,在實際操做中應用的很少,後面咱們講解 rm 命令能夠替代。
①、命令名稱:cp
②、英文原意:copy
③、命令所在路徑:/bin/cp
④、執行權限:全部用戶
⑤、功能描述:複製文件或目錄
⑥、語法: cp -rp 【原文件或目錄】【目標目錄】
-r 複製目錄
-p 保留文件屬性
例子:好比咱們將 root 目錄下的install.log 文件複製到 tmp 目錄下
能夠用於複製後文件更名,好比咱們將 root 目錄下的 install.log 文件複製到 tmp的copyinstall.log 文件
還可同時複製多個文件,注意複製目錄的時候要加 -r選項。加-p屬性以後會將原文件的一些屬性好比修改時間等也原封不動的複製過去。若是不加-p屬性,那麼複製後的文件修改時間爲當前系統時間。
①、命令名稱:mv
②、英文原意:move
③、命令所在路徑:/bin/mv
④、執行權限:全部用戶
⑤、功能描述:剪切文件、更名
⑥、語法: mv【原文件或目錄】【目標目錄】
例子:在 tmp 目錄下建立目錄 tmp1 ,而後在 tmp1 目錄下建立目錄 tmp1_1,而後 命令 mv /tmp/tmp1/tmp1_1 /tmp 將 tmp1目錄下的 tmp1_1 剪切到 tmp 目錄下。
①、命令名稱:rm
②、英文原意:remove
③、命令所在路徑:/bin/rm
④、執行權限:全部用戶
⑤、功能描述:剪切文件、更名
⑥、語法: rm -rf 【文件或目錄】
-r 刪除目錄
-f 強制執行
例子:在 tmp 目錄下有兩個目錄 tmp1 和 tmp1_1,rm -r tmp1_1 是刪除這個目錄,可是須要輸入 y 來確認
rm -rf tmp1 是強制刪除 tmp1 目錄,不須要輸入 y 來確認,這種作法很簡單,可是容易誤刪文件,沒有反悔的機會
rm -rf tmp1 tmp2 同時刪除兩個文件
①、命令名稱:touch
②、英文原意:
③、命令所在路徑:/bin/touch
④、執行權限:全部用戶
⑤、功能描述:建立空文件
⑥、語法: touch 【文件名】
例子:在 tmp 目錄下建立 tmp.log 文件
注意:建立文件時,文件名不要有空格,否則就是建立了 兩個文件
touch progrom files 這是建立了兩個文件,progrom 和 files
若是咱們想建立一個文件名爲 progrom files ,應該用引號括起來(儘可能避免文件名包含空格)
touch "progrom files"
①、命令名稱:cat
②、英文原意:
③、命令所在路徑:/bin/cat
④、執行權限:全部用戶
⑤、功能描述:顯示文件內容(只能顯示內容較少的文件)
⑥、語法: cat【文件名】
-n 顯示文件行號
例子:經過不加參數-n和加參數-n,顯示/etc/issue的內容
注意:此命令只能顯示文件內容比較少的文件,若是文件內容不少,用cat命令是不合適的,視覺效果是屏幕不斷滾動更新。
①、命令名稱:tac
②、英文原意:
③、命令所在路徑:/bin/tac
④、執行權限:全部用戶
⑤、功能描述:顯示文件內容(只能顯示內容較少的文件)
⑥、語法: tac【文件名】
例子:顯示/etc/issue的內容
①、命令名稱:more
②、英文原意:
③、命令所在路徑:/bin/more
④、執行權限:全部用戶
⑤、功能描述:分頁顯示文件內容
⑥、語法: more【文件名】
(空格)或f 翻頁(一頁一頁的日後顯示)
(Enter) 換行(一行一行的日後顯示)
q 或 Q 退出
例子:查看etc目錄下的 services 文件信息:more /etc/services
①、命令名稱:less
②、英文原意:
③、命令所在路徑:/usr/bin/less
④、執行權限:全部用戶
⑤、功能描述:分頁顯示文件內容
⑥、語法: less【文件名】
(空格)或f 或PgDn 翻頁(一頁一頁的日後顯示)
PgUp向前翻頁
(Enter) 換行或向下的箭頭(一行一行的日後顯示)
向上的箭頭(一行一行的往前顯示)
q 或 Q 退出
輸入/想搜索的字符,而後回車鍵
例子:查看etc目錄下的 services 文件信息:less/etc/services。這個比較簡單,咱們就不截圖演示了,主要是最後提到的搜索功能,咱們在進入命令以後,輸入
/想搜索的字符,而後回車鍵,以下:
回車以後,以下顯示:
①、命令名稱:head
②、英文原意:
③、命令所在路徑:/usr/bin/head
④、執行權限:全部用戶
⑤、功能描述:顯示文件的前面幾行
⑥、語法: head【文件名】
-n 指定顯示的行數
不加 -n 默認顯示前 20 行數據
例子:顯示 etc目錄下的 services 文件前面 20 行 head -n 20 /etc/services
①、命令名稱:tail
②、英文原意:
③、命令所在路徑:/usr/bin/tail
④、執行權限:全部用戶
⑤、功能描述:顯示文件的後面幾行
⑥、語法: tail【文件名】
-n 指定顯示的行數
-f 動態顯示文件末尾內容(即文件實時變化,那麼顯示內容也會隨之變化)
例子:顯示 etc目錄下的 services 文件後面 20 行 tail -n 20 -f /etc/services
注意:若是咱們想結束加上 -f顯示的tail命令,經過 Ctrl+C。
本篇博客咱們主要講解了Linux系統中的文件和目錄處理命令,顯示目錄文件信息 ls 這是咱們最經常使用的,而後建立目錄命令 mkdir,切換目錄命令 cd,顯示當前目錄 pwd,刪除空目錄命令 rmdir,這個命令用的很少,若是咱們想刪除目錄能夠用 rm 命令,注意 rm 若是加上 -f 參數,那將沒有提示,直接將文件從系統中刪除,須要特別注意,以避免刪除系統文件。而後咱們接着介紹了複製文件或目錄命令 cp,剪切文件或目錄命令 mv,注意mv命令在剪切後能夠直接更改文件或目錄名稱。
接着咱們介紹了幾個文件處理命令,建立空文件 touch,顯示文件內容的命令有不少,咱們也不須要記住那麼多,首先less命令能顯現文件內容比較多的文件,並且能先後翻頁顯示。再就是若是咱們須要動態監視文件內容的變化,好比某個日誌文件,咱們能夠經過 tail 加上-f參數動態顯示文件末尾的內容。