目錄
一.Linux樹型目錄結構
在詳解常用命令之前,先對Linux的樹型目錄結構做個簡單的瞭解,如下所示:
簡單說明:
- / #根目錄
- /bin #基礎系統所需要的命令位於此目錄,是最小系統所需要的命令,如:ls, cp, cd等等。這個目錄中的文件都是可執行的,一般的用戶都可以使用。
- /dev #設備文件,比如聲卡、磁盤、鼠標、鍵盤等。
- /etc #系統管理和配置文件
- /etc/init.d #啓動配置文件和腳本,可在這裏添加啓動腳本。
- /etc/rc.local #用戶添加啓動項
- /home #用戶主目錄,比如用戶user的主目錄就是/home/user,可以用~user表示
- /lib #標準程序設計庫存放路徑,又叫動態鏈接共享庫,作用類似windows裏的.dll文件
- /sbin #超級管理命令,這裏存放的是系統管理員使用的管理程序。
- /tmp #臨時文件目錄,有時用戶運行程序的時候,會產生臨時文件。 /tmp就用來存放臨時文件的。
- /root #系統管理員的主目錄
- /mnt #用來臨時掛載其他的文件系統
- /lost+found #這個目錄平時是空的,系統意外崩潰或機器意外關機,而產生一些文件碎片放在這裏。當系統啓動的過程中fsck工具會檢查這裏,並修復已經損壞的文件系統。
- /media #即插即用型存儲設備的掛載點自動在這個目錄下創建,比如USB盤系統自動掛載後,會在這個目錄下產生一個目錄
- /proc #虛擬文件目錄,可直接訪問這個目錄來獲取系統信息。
- /var #所有服務的登錄文件或錯誤訊息檔案(log files)都在 /var/log 裏面
- /boot #包含Linux內核及系統引導程序所需要的文件,比如 vmlinuz initrd.img 文件都位於這個目錄中。在一 般情況下,GRUB或LILO系統引導管理器也位於這個目錄;
- /usr #最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄,其中包含:
- usr/bin #衆多的應用程序
- /usr/sbin #超級用戶的一些管理程序
- /usr/include #Linux下開發和編譯應用程序所需要的頭文件
- /usr/lib #常用的動態鏈接庫
- /usr/share/man #幫助文檔
- /usr/src #源代碼,Linux內核的源代碼就放在/usr/src/Linux裏
- /usr/local/bin #本地增加的命令
- /usr/local/lib #本地增加的庫根文件系統
. :代表當前路徑
.. :代表上一級目錄
~ :代表用戶目錄路徑
二.常用命令詳解
2.1 ls 命令
ls是英文單詞list的縮寫.用來查看文件目錄的屬性。
- 例如直接輸入ls按回車,查看根目錄的文件以及目錄。
2.1.1 ls -l命令
- ls -l l參數代表以列表的方式顯示。
- #第一個字符d 代表這是一個目錄文件。
- # ‐ 代表普通文件
- # c 字符設備文件
- # b 塊設備文件
- # p 管道文件
- # l 鏈接文件
- # s socket文件
- #後面的rwxr‐xr‐x字符,代表user、group、other對文件所擁有的權限,rwx代表該用戶擁有讀寫執行的權限。r‐x
- 代表同一組的用戶擁有的讀和執行權限,後一個r‐x代表其他用戶擁有讀和執行權限。
- # 2代表文件硬鏈接的計數,表示該文件有兩個硬鏈接。
- # where 文件所屬的用戶名。
- # where 文件所屬的用戶組。
- # 4096 文件大小,單位字節。
- # 6月 25 16:53 文件最後被修改的日期。
- # Videos 文件名
2.1.2 ls -a命令
- ls -a a參數代表all的意思,表示把所有的文件都羅列出來,包括隱藏文件,點號開頭的在Linux中都表示隱藏文件。
ls ‐ld [filename] 代表只列出目錄文件的屬性。
2.2 stat命令
查看文件的訪問時間,修改時間等
訪問時間,是指通過指令如cat、vi等來查看的文件的最近一次時間。更改時間,是指修改文件內容的最近一次時間。
改動時間,是指修改文件屬性的最近一次時間。
注意:訪問時間是內容更改後,第一次訪問的時間,後面再次訪問的時候訪問時間不會改變
2.3 cd命令
cd 是 change directory的縮寫,表示改變當前所在路徑。
2.4 pwd命令
pwd 是英文print working directory 顯示當前所在路徑。
2.5 which命令
尋找可執行文件 ,並在PATH環境變量裏面尋找
2.6 touch命令
將每個文件的訪問及修改時間都更新爲目前的時間。
如果文件不存在,則創建一個字節數爲0的文件。
‐a #只更新訪問時間,不改變修改時間
‐c #不創建不存在的文件
‐m #只更新修改時間,不改變訪問時間
‐r file #使用文件file的時間更新文件的時間
‐t #將時間修改爲參數指定的日期,如:07081556代表7月8號15點56分
2.7 mkdir 命令
mkdir 是make directory的英文縮寫。
創建目錄DIRECTORY,可以一次創建多個。OPTION如果是p,表示可以連同父目錄一起創建。
2.8 rmdir 命令
rmdir是remove directory的英文縮寫。
刪除空目錄,可以一次刪除多個。OPTION如果是p,表示可以連同空的父目錄一起刪除。但是一旦父目錄中還包含其他文件,則刪除失敗。
2.9 rm 命令
rm是remove的英文縮寫。
可以用來刪除普通文件,也可以用來刪除目錄,特別用來刪除目錄中嵌套有子目錄的目錄文件。
常用參數:‐f ‐‐force #強制刪除,不詢問是否要刪除。
‐r ‐‐recursive #遞歸刪除,包括文件夾中的內容。
2.10 mv命令
mv是英文單詞move的縮寫。可以用來移動文件夾或者文件,也可以用來更改文件名。
mv file / #把文件file移動到根目錄中
mv file file_bak #把文件file重命名爲file_bak。
2.11 cp命令
cp是英文單詞copy的縮寫,表示拷貝文件。
- 可以用來拷貝普通文件:
cp file file_bak #拷貝一份file爲file_bak
- 可以用來拷貝目錄
cp dir dir_bak ‐r #拷貝一個目錄dir爲dir_bak, ‐r參數代表遞歸拷貝,把dir目錄中的文件也拷貝過去
2.12 cat命令
cat英文單詞concatenate連鎖的縮寫,用來查看文件內容,以及將幾個文件連成一個文件,
- 不填文件參數,默認的情況下是從標準輸入中獲取內容:
- 查看文件: cat fileName
- 將文件file1 file2連成file3文件
cat file1 file2 > file3
2.13 more命令
more 是我們最常用的工具之一,最常用的就是顯示輸出的內容,然後根據窗口的大小進行分頁顯示,並且提示文件的百分比。
參數如下:
+num #從第num行開始顯示;
‐num #定義每屏顯示num行;
打開之後的動作:
2.14 less命令
less工具也是對文件或其它輸出進行分頁顯示的工具
參數如下:
‐f #強制打開文件,二進制文件顯示時,不提示警告;
‐N #在每行前輸出行號;
打開之後的動作:
2.15 locate 命令
全盤尋找文件,文件名部分匹配,只要有包含該字符串的都羅列出來,這個指令查找速度很快,它需要一個數據庫,這個數據庫由每天的例行工作(crontab)程序來更新。當我們建立好這個數據庫後,就可以方便地來搜尋
所需文件了。
馬上創建的文件沒辦法使用locate查找到:如果想馬上更新可以使用一下指令:updatedb
2.16 find 命令
直接在全文件系統上搜尋,功能強大,速度慢。
格式:
find [path] [‐option] [ ‐print ‐exec ‐ok command ] {} \;
path: #要執行查找的目錄。
‐option: #查找的具體方法。
‐print: #find命令將匹配的文件輸出到標準輸出。
‐exec: #find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式爲'command' {} \;,注意{}和
\;之間的空格。
‐ok: #和‐exec的作用相同,只不過以一種更爲安全的模式來執行該參數所給出的shell命令,在執行每一個命令
之前,都會給出提示,讓用戶來確定是否執行。
find / ‐name filename #在根目錄裏面搜索文件名爲filename的文件
find /etc ‐name *s* #在目錄裏面搜索帶有s的文件
find /etc ‐name *S #在目錄裏面搜索以s結尾的文件
find /etc ‐name s* #在目錄裏面搜索以s開頭的文件
find / ‐amin ‐10 #在系統中搜索最後10分鐘訪問的文件
find / ‐atime ‐2 #查找在系統中最後48小時訪問的文件
find / ‐mmin ‐5 #查找在系統中最後5分鐘修改過的文件
find / ‐mtime ‐1 #查找在系統中最後24小時修改過的文件
find / ‐ctime ‐1 #查找在系統中最後24小時被改變狀態的文件
find / ‐user username #查找在系統中屬於用戶username的文件
find / ‐group groupname #groupname 查找在系統中屬於groupname的文件
find / ‐empty #查找在系統中爲空的文件或者是文件夾
find / ‐inum 3 #查找inode號爲3的文件
find / ‐type d #查找爲文件類型爲文件夾的文件d爲文件夾
f #普通文件
d #目錄文件
l #鏈接文件
b #塊設備文件
c #字符設備文件
p #管道文件
s #socket文件
2.17 grep 命令
搜索內容中是否包含指定的字符串,並打印出該行。
常用參數有:
‐i ‐‐ignore‐case #忽略字符大小寫的差別。
‐v #輸出沒有指定字符串的文件
‐c #只輸出匹配行的計數。
‐R #連同子目錄中所有文件一起查找。
2.18 ln命令
ln是英文單詞link的縮寫,用來創建鏈接的命令。
Linux鏈接分兩種,一種被稱爲硬鏈接(Hard Link),另一種被稱爲符號鏈接(Symbolic Link)。默認情況下,ln命令產生硬鏈接。
【硬鏈接】
硬鏈接指通過索引節點來進行鏈接。在Linux的文件系統中,保存在磁盤分區中的文件不管是什麼類型都給它分配一個編號,稱爲索引節點號(Inode Index)。在Linux中,多個文件名指向同一索引節點,一般這種鏈接就是硬鏈接。
硬鏈接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬鏈接到重要文件,以防止“誤刪”。
如果有多個硬鏈接,只刪除一個鏈接並不影響本身和其它的鏈接,只有當最後一個鏈接被刪除後,文件的纔會被正在刪除。也就是說,文件真正刪除的條件是與之相關的所有硬鏈接文件均被刪除。
【軟鏈接】
另外一種鏈接稱之爲符號鏈接(Symbolic Link),也叫軟鏈接。軟鏈接文件有類似於Windows的快捷方式。它實際上是一個特殊的文件。符號鏈接文件實際上是一個文本文件,其中包含的有另一文件的位置信息。
- 給flie文件創建一個硬鏈接
touch file
ln file file_hard
- 給file文件創建一個軟鏈接
touch file
ln ‐s file flie_soft
注意: 軟鏈接的時候儘量使用絕對路徑,避免由於鏈接文件移動後,造成文件失效。
2.19 wc 命令
Linux系統中的wc爲英文Word Count的縮寫,命令的功能爲統計指定文件中的字節數、字數、行數,並將統計結果顯示輸出。
- 命令功能:
統計指定文件中的字節數、字數、行數,並將統計結果顯示輸出。如果沒有給出文件名,則從標準輸入讀取。wc同時也給出所指定文件的總統計數。
- 命令參數:
‐c #統計字節數。
‐l #統計行數。
‐m #統計字符數。這個標誌不能與 ‐c 標誌一起使用。
‐w #統計字數。一個字被定義爲由空白、跳格或換行字符分隔的字符串。
‐L #打印最長行的長度。
2.20 od命令
od是英文octal dump的縮寫,功能是把文件用8進制或者其他的格式顯示出來,通常用於查看特殊格式文件的內容,可以用來查看不可見字符。
2.21 du命令
du是英文Disk usage的縮寫,表示計算某個目錄在硬盤中所佔的空間大小,默認情況下以kb爲單位。通過遞歸統計每一個目錄中所佔用的空間大小。
常用參數如下:
2.22 df命令
df是英文Disk free的縮寫,用來統計磁盤是使用情況。
2.23 gedit命令
gedit全稱 GNU edit 是一個文本編輯器,類似windows裏面的txt文本編輯器。編輯file文本。
2.24 管道命令
用法: command 1 | command 2 他的功能是把第一個命令command 1執行的結果作爲command 2的輸入。管道命令操作符是:”|”它只能處理經由前面一個指令傳出的正確輸出信息,對錯誤信息信息沒有直接處理能力.
2.25 重定向
在shell中,標準輸入是0,標準輸出是1,標準錯誤是2.
使用>表示重定向。1>表示標準輸出重定向,2>表示標準錯誤重定向。默認情況下>表示輸出重定向。
例如:
ls > list.txt #ls的輸出重定向到文件list.txt中。
find / ‐name "*.c" 2>/dev/null #標準錯誤重定向到無底洞文件。
find / ‐name "*.c" 2>/dev/null #標準錯誤重定向到無底洞文件。
find / ‐name "*.c" >/dev/null 2>&1 #標準輸出、標準錯誤重定向到無底洞文件。
2.26 後臺運行
Linux中可以使用&,讓程序在後臺運行。如:cat &
2.27 awk命令
awk就是把文件逐行的讀入,以空格爲默認分隔符將每行切片,切開的部分再進行各種分析處理。
格式:awk [‐F field‐separator] 'commands' [input‐file(s)]
其中,commands 是真正awk命令,[F 域分隔符]是可選的。 inputfile(s) 是待處理的文件。
print 是awk打印指定內容的主要命令, $1 分割出來的第一段,$2分割出來的第二段,依次類推,$0代表所有
字段例如:
ls ‐l | awk '{print $1 "\t" $2 "\t" $3 "\t" $4}'
將/proc/meminfo文件中的字段提取出來,並且在每個字段前面添加meminfo:
awk ‐F ':' '{print "meminfo:" $1}' /proc/meminfo
【上一篇:】CentOS 7 下安裝gcc、g++、gdb教程:https://blog.csdn.net/weixin_39951988/article/details/87371641
【下一篇:】Linux(CentOS7)下文件操作(權限、打包、解包操作):https://blog.csdn.net/weixin_39951988/article/details/87687242