全面系統地總結Linux的基本操作(上)

1、 Linux文件和目錄

Windows 和 Linux 文件系統


全面系統地總結Linux的基本操作(上)

在 windows 平臺下,打開"計算機",我們看到的是一個個的驅動器盤符:每個驅動器都有自己的根目錄結構,這樣形成了多個樹並列的情形,如圖所示:


全面系統地總結Linux的基本操作(上)

在 Linux 下,我們是看不到這些驅動器盤符,我們看到的是文件夾(目錄):


全面系統地總結Linux的基本操作(上)

類 Unix 系統目錄結構 ubuntu 沒有盤符這個概念,只有一個根目錄/,所有文件都在

它下面:


全面系統地總結Linux的基本操作(上)

Linux 目錄

/:根目錄,一般根目錄下只存放目錄,在 Linux 下有且只有一個根目錄。所有的東西都是從這裡開始。當你在終端裡輸入"/home",你其實是在告訴電腦,先從/(根目錄)開始,再進入到 home 目錄。

/bin、/usr/bin: 可執行二進制文件的目錄,如常用的命令 ls、tar、mv、cat 等。

/boot : 放 置 linux 系 統 啟 動 時 用 到 的 一 些 文 件 , 如 Linux 的 內 核 文 件 :/boot/vmlinuz,系統引導管理器:/boot/grub。

/dev:存放 linux 系統下的設備文件,訪問該目錄下某個文件,相當於訪問某個設備,常用的是掛載光驅 mount /dev/cdrom /mnt。

/etc:系統配置文件存放的目錄,不建議在此目錄下存放可執行文件,重要的配置文件 有 /etc/inittab 、 /etc/fstab 、 /etc/init.d 、 /etc/X11 、 /etc/sysconfig 、/etc/xinetd.d。

/home:系統默認的用戶家目錄,新增用戶賬號時,用戶的家目錄都存放在此目錄下,~表示當前用戶的家目錄,~edu 表示用戶 edu 的家目錄。

/lib、/usr/lib、/usr/local/lib:系統使用的函數庫的目錄,程序在執行過程中,需要調用一些額外的參數時需要函數庫的協助。

/lost+fount:系統異常產生錯誤時,會將一些遺失的片段放置於此目錄下。

/mnt: /media:光盤默認掛載點,通常光盤掛載於 /mnt/cdrom 下,也不一定,可以選擇任意位置進行掛載。

/opt:給主機額外安裝軟件所擺放的目錄。

/proc:此目錄的數據都在內存中,如系統核心,外部設備,網絡狀態,由於數據都存 放 於 內 存 中 , 所 以 不 佔 用 磁 盤 空 間 , 比 較 重 要 的 目 錄 有 /proc/cpuinfo 、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。

/root:系統管理員 root 的家目錄。

/sbin、/usr/sbin、/usr/local/sbin:放置系統管理員使用的可執行命令,如 fdisk、shutdown、mount 等。與 /bin 不同的是,這幾個目錄是給系統管理員 root 使用的命令,一般用戶只能"查看"而不能設置和使用。

/tmp:一般用戶或正在執行的程序臨時存放文件的目錄,任何人都可以訪問,重要數據不可放置在此目錄下。

/srv:服務啟動之後需要訪問的數據目錄,如 www 服務需要訪問的網頁數據存放在 /srv/www 內。

/usr:應用程序存放目錄,/usr/bin 存放應用程序,/usr/share 存放共享數據,/usr/lib 存 放不 能直 接運 行的 ,卻 是許 多 程序 運行 所必 需的 一些 函 數庫 文件 。

/usr/local: 存 放 軟 件 升 級 包 。 /usr/share/doc: 系 統 說 明 文 件 存 放 目 錄 。

/usr/share/man: 程序說明文件存放目錄。

/var:放置系統執行過程中經常變化的文件,如隨時更改的日誌文件 /var/log,

/var/log/message:所有的登錄文件存放目錄,/var/spool/mail:郵件存放的目錄,

/var/run:程序或服務啟動後,其 PID 存放在該目錄下。


用戶目錄

位於/home/user,稱之為用戶工作目錄或家目錄,表示方式:

絕對路徑

從/目錄開始描述的路徑為絕對路徑,如:

<code>cd /home/<code>
<code>ls /usr/<code>

相對路徑

從當前位置開始描述的路徑為相對路徑,如:

<code>cd ../..//<code>
<code>ls abc/def/<code>

每個目錄下都有.和..

. 表示當前目錄

.. 表示上一級目錄,即父目錄

根目錄下的.和..都表示當前目錄

2 、Linux命令基本用法


全面系統地總結Linux的基本操作(上)

很多人可能在電視或電影中看到過類似的場景,黑客面對一個黑色的屏幕,上面飄著

密密麻麻的字符,梆梆一頓敲,就完成了竊取資料的任務。

Linux 剛出世時沒有什麼圖形界面,所有的操作全靠命令完成,就如同電視裡的黑

客那樣,充滿了神秘與晦澀。

近幾年來,儘管 Linux 發展得非常迅速,圖形界面越來越友好,但是在真正的開發

過程中,Linux 命令行的應用還是佔有非常重要的席位,而且許多 Linux 功能在命

令行界面要比圖形化界面下運行的快。可以說不會命令行,就不算會 Linux。

Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盤操作、文件

存取、目錄操作、進程管理、文件權限設定等。Linux 發行版本最少的命令也有 200

多個,這裡只介紹比較重要和使用頻率最多的命令。


2.1 命令使用方法

Linux 命令格式:

<code>command [-options] [parameter1] …/<code>

說明:command: 命令名,相應功能的英文單詞或單詞的縮寫 [-options]:選項,可

用來對命令進行控制,也可以省略,[]代表可選 parameter1 …:傳給命令的參數:可以

是零個一個或多個.例:


全面系統地總結Linux的基本操作(上)

2.2 查看幫助文檔

<1>--help

一般是 linux 命令自帶的幫助信息

如:ls --help

<2>man(有問題找男人,manual)

man 是 linux 提供的一個手冊,包含了絕大部分的命令、函數使用說明

該手冊分成很多章節(section),使用 man 時可以指定不同的章節來瀏覽。

例:man ls ; man 2 printf

man 中各個 section 意義如下:

Standard commands(標準命令)

System calls(系統調用,如 open,write)

Library functions(庫函數,如 printf,fopen)

Special devices(設備文件的說明,/dev 下各種設備)

File formats(文件格式,如 passwd)

Games and toys(遊戲和娛樂)

Miscellaneous(雜項、慣例與協定等,例如 Linux 檔案系統、網絡協定、ASCII 碼;environ 全局變量)

Administrative Commands(管理員命令,如 ifconfig)

man 是按照手冊的章節號的順序進行搜索的。man 設置瞭如下的功能鍵:

空格鍵 顯示手冊頁的下一屏

Enter 鍵 一次滾動手冊頁的一行

b 回滾一屏

f 前滾一屏

q 退出 man 命令

h 列出所有功能鍵

/word 搜索 word 字符串


全面系統地總結Linux的基本操作(上)

2.3 命令自動補全

在敲出命令的前幾個字母的同時,按下 tab 鍵,系統會自動幫我們補全命令.

2.4 歷史命令

當系統執行過一些命令後,可按上下鍵翻看以前的命令,history 將執行過的命令列

舉出來.

3、 Linux命令-文件,磁盤操作

3.1 查看文件信息:ls

ls 是英文單詞 list 的簡寫,其功能為列出目錄的內容,是用戶最常用的命令之一,它類似於 DOS 下的 dir 命令。

Linux 文件或者目錄名稱最長可以有 265 個字符,"."代表當前目錄,".."代表上一級目錄,以"."開頭的文件為隱藏文件,需要用 -a 參數才能顯示。

ls 常用參數:

參數 含義

<code>-a 顯示指定目錄下所有子目錄與文件,包括隱藏文件/<code>
<code>-l 以列表方式顯示文件的詳細信息/<code>
<code>-h 配合 -l 以人性化的方式顯示文件大小/<code>


全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

圖中列出的信息含義如下圖所示:


全面系統地總結Linux的基本操作(上)

與 DOS 下的文件操作類似,在 Unix/Linux 系統中,也同樣允許使用特殊字符來同時引

用多個文件名,這些特殊字符被稱為通配符。

通配符 含義

  1. * 文件代表文件名中所有字符
  2. ls te* 查找以 te 開頭的文件
  3. ls *html 查找結尾為 html 的文件
  4. ? 代表文件名中任意一個字符
  5. ls ?.c 只找第一個字符任意,後綴為.c 的文件
  6. ls a.? 只找只有 3 個字符,前 2 字符為 a.,最後一個字符任意的文件
  7. [] ["和"]"將字符組括起來,表示可以匹配字符組中的任意一個。"-"用於表示字符範圍。
  8. [abc] 匹配 a、b、c 中的任意一個
  9. [a-f] 匹配從 a 到 f 範圍內的的任意一個字符
  10. ls [a-f]* 找到從 a 到 f 範圍內的的任意一個字符開頭的文件
  11. ls a-f 查找文件名為 a-f 的文件,當"-"處於方括號之外失去通配符的作用
  12. \\ 如果要使通配符作為普通字符使用,可以在其前面加上轉義字符。"?"和"*"處於方括號內時不用使用轉義字符就失去通配符的作用。
  13. ls \\*a 查找文件名為*a 的文件

3.2 輸出重定向命令:>

Linux 允許將命令執行結果重定向到一個文件,本應顯示在終端上的內容保存到指定文

件中。如:ls > test.txt ( test.txt 如果不存在,則創建,存在則覆蓋其內容 )


全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

注意: >輸出重定向會覆蓋原來的內容,>>輸出重定向則會追加到文件的尾部。


3.3 分屏顯:more

查看內容時,在信息過長無法在一屏上顯示時,會出現快速滾屏,使得用戶無法看清文

件的內容,此時可以使用 more 命令,每次只顯示一頁,按下空格鍵可以顯示下一頁,按下

q 鍵退出顯示,按下 h 鍵可以獲取幫助。


3.4 管道:|

管道:一個命令的輸出可以通過管道做為另一個命令的輸入。管道我們可以理解現實生

活中的管子,管子的一頭塞東西進去,另一頭取出來,這裡" | "的左右分為兩端,左端

塞東西(寫),右端取東西(讀)。


全面系統地總結Linux的基本操作(上)

【指令 1】正確輸出,作為【指令 2】的輸入


3.5 清屏:clear

clear 為清除終端上的顯示(類似於 DOS 的 cls 清屏功能),也可使用快捷鍵:Ctrl + l.


3.6 切換工作目錄:cd

在使用 Unix/Linux 的時候,經常需要更換工作目錄。cd 命令可以幫助用戶切換工作目錄。Linux 所有的目錄和文件名大小寫敏感. cd 後面可跟絕對路徑,也可以跟相對路徑。

如果省略目錄,則默認切換到當前用戶的主目錄。

命令 含義

  1. cd 切換到當前用戶的主目錄(/home/用戶目錄),用戶登陸的時候,默認的目錄就是用戶的主目錄。
  2. cd ~ 切換到當前用戶的主目錄(/home/用戶目錄)
  3. cd . 切換到當前目錄
  4. cd .. 切換到上級目錄
  5. cd - 可進入上次所在的目錄

注意:如果路徑是從根路徑開始的,則路徑的前面需要加上" / ",如 " /mnt ",通常進入某個目錄裡的文件夾,前面不用加" / "。


3.7 顯示當前路徑:pwd

使用 pwd 命令可以顯示當前的工作目錄,該命令很簡單,直接輸入 pwd 即可,後面不帶參數。


3.8 創建目錄:mkdir


全面系統地總結Linux的基本操作(上)

通過 mkdir 命令可以創建一個新的目錄。參數-p 可遞歸創建目錄。需要注意的是新

建目錄的名稱不能與當前目錄中已有的目錄或文件同名,並且目錄創建者必須對當前目

錄具有寫權限。


3.9 刪除目錄:rmdir

可使用 rmdir 命令刪除一個目錄。必須離開目錄,並且目錄必須為空目錄,不然提

示刪除失敗。


3.10 刪除文件:rm

可通過 rm 刪除文件或目錄。使用 rm 命令要小心,因為文件刪除後不能恢復。為了

防止文件誤刪,可以在 rm 後使用-i 參數以逐個確認要刪除的文件。

全面系統地總結Linux的基本操作(上)

常用參數及含義如下表所示:

參數 含義

  1. -i 以進行交互式方式執行
  2. -f 強制刪除,忽略不存在的文件,無需提示
  3. -r 遞歸地刪除目錄下的內容,刪除文件夾時必須加此參數
全面系統地總結Linux的基本操作(上)


3.11 建立鏈接文件:ln

Linux 鏈接文件類似於 Windows 下的快捷方式。

鏈接文件分為軟鏈接和硬鏈接。

軟鏈接:軟鏈接不佔用磁盤空間,源文件刪除則軟鏈接失效。

硬鏈接:硬鏈接只能鏈接普通文件,不能鏈接目錄。

使用格式:

  • ln 源文件 鏈接文件
  • ln -s 源文件 鏈接文件

如果沒有-s 選項代表建立一個硬鏈接文件,兩個文件佔用相同大小的硬盤空間,即使刪除了源文件,鏈接文件還是存在,所以-s 選項是更常見的形式。

注意:如果軟鏈接文件和源文件不在同一個目錄,源文件要用絕對路徑,不能用相對路徑。


全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

3.12 查看或合併文件:cat

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

3.13 文本搜索:grep

Linux 系統中 grep 命令是一種強大的文本搜索工具,grep 允許對文本文件進行模式查找。如果找到匹配模式, grep 打印包含模式的所有行。在 grep 命令中輸入字符串參數時,最好引號或雙引號括起來。例如:grep'a '1.txt。

grep 一般格式為:

<code>grep [-選項] '搜索內容串'文件名/<code> 

常用選項說明:

選項 含義

  • -v 顯示不包含匹配文本的所有行(相當於求反)
  • -n 顯示匹配行及行號
  • -i 忽略大小寫

grep 搜索內容串可以是正則表達式。正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個"規則字符串",這個"規則字符串"用來表達對字符串的一種過濾邏輯。

grep 常用正則表達式:

選項 含義

  • ^a 行首,搜尋以 m 開頭的行;grep -n '^a' 1.txt
  • ke$ 行尾,搜尋以 ke 結束的行;grep -n 'ke$' 1.txt
  • . (點)匹配一個非換行符的字符;匹配 e 和 e 之間有任意一個字符,可以匹配 eee,eae,eve,但是不匹配 ee,eaae;grep -n 'e.e' 1.txt
  • [Ss]igna[Ll] 匹配 [] 裡中一系列字符中的一個;搜尋匹配單詞 signal、signaL、Signal、SignaL 的行;grep -n '[Ss]igna[Ll]' 1.txt
全面系統地總結Linux的基本操作(上)

3.14 查找文件:find

find 命令功能非常強大,通常用來在特定的目錄下搜索符合條件的文件,也可以用來搜索特定用戶屬主的文件。

常用用法:

選項 含義

  • find ./ -name test.sh 查找當前目錄下所有名為 test.sh 的文件
  • find ./ -name '*.sh' 查找當前目錄下所有後綴為.sh 的文件
  • find ./ -name "[A-Z]*" 查找當前目錄下所有以大寫字母開頭的文件
  • find /tmp -size 2M 查找在/tmp 目錄下等於 2M 的文件
  • find /tmp -size +2M 查找在/tmp 目錄下大於 2M 的文件
  • find /tmp -size -2M 查找在/tmp 目錄下小於 2M 的文件
  • find ./ -size +4k -size -5M 查找當前目錄下大於 4k,小於 5M 的文件
  • find ./ -perm 777 查找當前目錄下權限為 777 的文件或目錄

3.15 拷貝文件:cp

cp 命令的功能是將給出的文件或目錄複製到另一個文件或目錄中,相當於 DOS 下的copy 命令。

常用選項說明:

選項 含義

  • -a 該選項通常在複製目錄時使用,它保留鏈接、文件屬性,並遞歸地複製目錄,簡單而言,保持文件原有屬性。
  • -f 已經存在的目標文件而不提示
  • -i 交互式複製,在覆蓋目標文件之前將給出提示要求用戶確認
  • -r 若給出的源文件是目錄文件,則 cp 將遞歸複製該目錄下的所有子目錄和文件,目標文件必須為一個目錄名。
  • -v 顯示拷貝進度
全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

3.16 移動文件:mv

用戶可以使用 mv 命令來移動文件或目錄,也可以給文件或目錄重命名。常用選項說明:

選項 含義

  • -f 禁止交互式操作,如有覆蓋也不會給出提示
  • -i 確認交互方式操作,如果 mv 操作將導致對已存在的目標文件的覆蓋,系統會詢問是否重寫,要求用戶回答以避免誤覆蓋文件
  • -v 顯示進度
全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

3.17 歸檔管理:tar

計算機中的數據經常需要備份,tar 是 Unix/Linux 中最常用的備份工具,此命令可以把一系列文件歸檔到一個大文件中,也可以把檔案文件解開以恢復數據。

tar 使用格式: tar [參數] 打包文件名 文件

tar 命令很特殊,其參數前面可以使用"-",也可以不使用。

常用參數:

選項 含義

  • -c 生成檔案文件,創建打包文件
  • -v 列出歸檔解檔的詳細過程,顯示進度
  • -f 指定檔案文件名稱,f 後面一定是.tar 文件,所以必須放選項最後
  • -t 列出檔案中包含的文件
  • -x 解開檔案文件

注意:除了 f 需要放在參數的最後,其它參數的順序任意。


全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

3.18 文件解壓縮:gzip

tar 與 gzip 命令結合使用實現文件打包、壓縮。 tar 只負責打包文件,但不壓縮,用

gzip 壓縮 tar 打包後的文件,其擴展名一般用 xxxx.tar.gz。gzip 使用格式如下:

gzip [選項] 被壓縮文件

常用選項:

選項 含義

  • -d 解壓
  • -r 壓縮所有子目錄


全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

tar 這個命令並沒有壓縮的功能,它只是一個打包的命令,但是在 tar 命令中增加一個選項(-z)可以調用 gzip 實現了一個壓縮的功能,實行一個先打包後壓縮的過程。

壓縮用法:tar cvzf 壓縮包包名 文件 1 文件 2 ...

-z :指定壓縮包的格式為:file.tar.gz


全面系統地總結Linux的基本操作(上)

解壓用法: tar zxvf 壓縮包包名

-z :指定壓縮包的格式為:file.tar.gz


全面系統地總結Linux的基本操作(上)

解壓到指定目錄:-C (大寫字母"C")

全面系統地總結Linux的基本操作(上)

3.19 文件解壓縮:bzip2

tar 與 bzip2 命令結合使用實現文件打包、壓縮(用法和 gzip 一樣)。

tar 只負責打包文件,但不壓縮,用 bzip2 壓縮 tar 打包後的文件,其擴展名一般用xxxx.tar.bz2。

在 tar 命令中增加一個選項(-j)可以調用 bzip2 實現了一個壓縮的功能,實行一個先打包後

壓縮的過程。

壓縮用法:tar -jcvf 壓縮包包名 文件...(tar jcvf bk.tar.bz2 *.c)

解壓用法:tar -jxvf 壓縮包包名 (tar jxvf bk.tar.bz2)


3.20 文件解壓縮:zip、unzip

通過 zip 壓縮文件的目標文件不需要指定擴展名,默認擴展名為 zip。

壓縮文件:zip [-r] 目標文件(沒有擴展名) 源文件

解壓文件:unzip -d 解壓後目錄文件 壓縮文件

全面系統地總結Linux的基本操作(上)

全面系統地總結Linux的基本操作(上)

3.21 查看命令位置:which


全面系統地總結Linux的基本操作(上)


分享到:


相關文章: