Linux 檔案與目錄管理

2022-03-17 00:58:00 字數 4682 閱讀 4364

.         代表此層目錄

.. 代表上一層目錄

- 代表前乙個工作目錄

~ 代表「目前使用者身份」所在的主資料夾

~account 代表 account 這個使用者的主資料夾(account是個帳號名稱)

我們知道查閱檔案屬性的指令ls完整檔名為:/bin/ls(這是絕對路徑),但是我們在任何目錄下輸入 ls 就一定可以顯示出一些訊息,這是因為環境變數 path 的幫助所致。

當我們在執行乙個指令的時候,舉例來說「ls」好了,系統會依照path的設定去每個path定義的目錄下搜尋檔名為ls的可可執行檔案, 如果在path定義的目錄中含有多個檔名為ls的可可執行檔案,那麼先搜尋到的同名指令先被執行!

echo $path:

[**@someone ~]$ echo $path

/usr/local/jdk1.8.0_111/bin:/usr/local/jdk/bin:/usr/local/bin:/usr/bin/mysql:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin

無論是root還是其它使用者都有 /bin 或 /usr/bin, 這個目錄在path變數內,所以當然就能夠在任何地方執行ls來找到/bin/ls可執行檔案。

但是對於我們自己解壓安裝的某些程式包,如某些web容器tomcat或者jetty,當我們要執行bin目錄的某些sh指令碼,需要使用絕對路徑或者./start.sh這樣的相對路徑。

常見的檔案內容查閱命令:

cat   由第一行開始顯示檔案內容

tac 從最後一行開始顯示,可以看出 tac 是 cat 的倒著寫!

nl 顯示的時候,順道輸出行號!

more 一頁一頁的顯示檔案內容

less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!

head 只看頭幾行

tail 只看尾巴幾行

od 以二進位制的方式讀取檔案內容!

[root@study ~]# cat [-abentv]

選項與引數:

-a :相當於 -vet 的整合選項,可列出一些特殊字元而不是空白而已;

-b :列出行號,僅針對非空白行做行號顯示,空白行不標行號!

-e :將結尾的斷行字元 $ 顯示出來;

-n :列印出行號,連同空白行也會有行號,與 -b 的選項不同;

-t :將 [tab] 按鍵以 ^i 顯示出來;

-v :列出一些看不出來的特殊字元

[root@study ~]# nl [-bnw] 檔案

選項與引數:

-b :指定行號指定的方式,主要有兩種:

-b a :表示不論是否為空行,也同樣列出行號(類似 cat -n);

-b t :如果有空行,空的那一行不要列出行號(預設值);

-n :列出行號表示的方法,主要有三種:

-n ln :行號在螢幕的最左方顯示;

-n rn :行號在自己欄位的最右方顯示,且不加 0 ;

-n rz :行號在自己欄位的最右方顯示,且加 0 ;

-w :行號欄位的占用的字元數。

nl 可以將輸出的檔案內容自動的加上行號!其預設的結果與 cat -n 有點不太一樣, nl 可以將行號做比較多的顯示設計,包括位數與是否自動補齊 0 等等的功能。

空白鍵: 代表向下翻一頁;

enter : 代表向下翻「一行」;

/字串 : 代表在這個顯示的內容當中,向下搜尋「字串」這個關鍵字;

:f : 立刻顯示出檔名以及目前顯示的行數;

q : 代表立刻離開 more ,不再顯示該檔案內容。

b 或 [ctrl]-b :代表往回翻頁,不過這動作只對檔案有用,對管線無用。

空白鍵 :   向下翻動一頁;

[pagedown]:向下翻動一頁;

[pageup] : 向上翻動一頁;

/字串 : 向下搜尋「字串」的功能;

?字串 : 向上搜尋「字串」的功能;

n :重複前乙個搜尋 (與 / 或 ? 有關!)

n :反向的重複前乙個搜尋 (與 / 或 ? 有關!)

g :前進到這個資料的第一行去;

g :前進到這個資料的最後一行去 (注意大小寫);

q :離開 less 這個程式;

less 的用法比起 more 又更加的有彈性,在 more 的時候,我們並沒有辦法向前面翻, 只能往後面看,但若使用了 less 時,就可以使用 [pageup] [pagedown] 等按鍵的功能來往前往後翻看檔案。

[root@study ~]# head [-n number] 檔案

選項與引數:

-n :後面接數字,代表顯示幾行的意思

[root@study ~]# head /etc/man_db.conf

# 預設的情況中,顯示前面十行!若要顯示前 20 行,就得要這樣:

[root@study ~]# head -n 20 /etc/man_db.conf

[root@study ~]# tail -n 20 /etc/man_db.conf

範例一:如果不知道/etc/man_db.conf有幾行,卻只想列出100行以後的資料時?

[root@study ~]# tail -n +100 /etc/man_db.conf

範例二:持續偵測/var/log/messages的內容

[root@study ~]# tail -f /var/log/messages

<==要等到輸入[crtl]-c之後才會離開tail這個指令的偵測!

通常用這個tail來刷日誌。

根據path這個環境變數所規範的路徑去查詢「執行檔案」的檔名。所以,重點是找出執行檔案而已。

因為 whereis 與 locate 是利用資料庫來查詢資料,所以速度相當快,find 要實際查詢硬碟。

-b: 只找二進位制格式的檔案

-m: 只找在說明檔案 manual 路徑下的檔案

-s: 只找 source 原始檔

-u: 查詢不在上述三個選項當中的其他特殊檔案

locate 尋找資料是由已建立的資料庫 /var/lib/mlocate/ 裡面的資料所查詢的,而資料庫的建立預設是每天執行一次,新建的檔案直接查詢會找不到,需要手動更新資料庫,直接輸入「updatedb」就可以了。

與時間有關的引數:

-mtime n  : n為數字,意義為在n天之前的「一天之內」被更改過的檔案

-mtime +n : 列出在n天之前的(不含n本身)被更改過的檔名

-mtime -n : 列出在n天之內(含n天本身)被更改過的檔名

-newer file: file為乙個存在的檔案,列出此file還有新的檔名

時間軸表示:

|4|-4|---------->

<----------|+4

<------7-6-5-4-3-2-1-now--------

範例:

# 將過去系統上面24小時內有改動的檔案列出

find / -mtime 0

# 尋找 /etc 下面的檔案,如果檔案日期比 /etc/passwd 新就列出

find /etc -newer /etc/passwd

與使用者或使用者組名有關的引數:

-uid n: n為數字,這個數字是使用者的賬號id,即uid,這個uid是記錄在/etc/passed 裡面與賬號名稱對應的數字

-gid n: n為數字,這個數字是使用者組名的id,即gid,這個gid記錄在/etc/group中

-user name: name為使用者賬號名稱

-group name: name為使用者組名

-nouser: 尋找檔案的所有者不存在/etc/passwd 的人

-nogroup: 尋找檔案的所有使用者組不存在於 /etc/group 中的檔案

範例:

# 查詢/home 下面屬於 vbird 的檔案

# 可以利用這個命令將屬於某個使用者的所有檔案都找出來

find /home -user vbird

# 查詢系統中不屬於任何人的檔案

# 通過這個命令可以找出那些不太正常的檔案

find / -nouser

與檔案許可權及名稱有關的引數:

-name filename: 查詢檔案名為 filename 的檔案

-size [+-]size: 查詢比size還要大(+)或小(-)的檔案,這個size的規格有:c-byte k-1024bytes

-type type: 查詢檔案的型別為type的,型別主要有:一般正規檔案(f)、裝置檔案(b,c)、目錄檔案(d)、連線檔案(l)、socket(s)、fifo(p)等

-perm mode: 查詢檔案許可權「剛好等於mode的檔案」 mode類似chmod的屬性值,如-rwxr-xr-x的屬性值為4755

Linux 檔案與目錄管理

特殊目錄 當前目錄 上一層目錄 上乙個工作目錄 當前使用者的家目錄 username username的家目錄 ls,重要選項 a 顯示隱藏部分,r 遞迴顯示資料夾內容 l 顯示詳細資訊 ll等價與 ls l file 顯示文件到屬性,如binary or ascii等 which command ...

Linux檔案與目錄管理

1 幾個常見的處理目錄的指令 cd 變換目錄 change directory 注意 目錄名稱與cd指令之間存在乙個空格 pwd 顯示當前目錄 print working directory pwd p 顯示完整路徑 mkdir 建立乙個新的目錄 make directory mkdir p tes...

Linux 檔案與目錄管理

1 當前目錄 上層目錄 cd cc 由aa bb 目錄切換到 aa cc 目錄下 上一工作目錄 相當於視窗中alt tab 當前使用者身份到主資料夾 2.cd 目錄切換 change directory 3.pwd顯示目前所在目錄 print working directory 4.mkdir 建立...