1. 程式人生 > >第七章:Linux檔案與目錄管理

第七章:Linux檔案與目錄管理

一、目錄與路徑

1.1、絕對路徑與相對路徑

  1. 絕對路徑:/
  2. 相對路徑:非/開頭

2、目錄的相關操作

  1. 幾個比較特殊的目錄
    1、.:當前目錄;
    2、..:上一層目錄;
    3、-:前一個目錄;
    4、~:當前目錄所在的主資料夾
    5、~使用者:該使用者所在的主資料夾
  2. 常見的目錄處理命令(要經常使用TAB鍵補全)
    1、cd:切換命令;change directory
    2、pwd:顯示當前目錄的絕對路徑; print working directioy,-p引數不知道是啥回事
    3、mkdir:新建一個新目錄
    1) mkdir test,mkdir test1/test2/test3報錯,不能直接建立,加上-p引數可以就能實現遞迴建立了。755
    2) 設定許可權為711的目錄:mkdir -m 711 test2,預設建立的目錄許可權為
    4、rmdir:刪除一個新目錄,這個目錄要是空的;
    1、rmdir -p 可以刪除一系列的空目錄

1.3、執行檔案路徑變數$PATH

  1. 在任何位置都能執行命令的理由:會根據環境變數PATH中查詢相應目錄下的可執行檔案;
  2. 可以使用echo $PATH檢視定義的PAHT路徑(ecoh有顯示、列印的意思)
  3. 一般使用者的PATH中不包括/sbin目錄中的命令,但是可以用絕對路徑執行該命令
    1、例如將ls命令拷貝到了/root目錄下,再來執行ls命令就行不通了,但是可以採用以下三種方法實現ls的執行
    1)絕對路徑執行:/root/ls
    2)相對路徑執行:./ls
    3)新增到PATH路徑:PATH=”$PATH:/root”

二、檔案與目錄管理

管理主要包括:顯示屬性、複製。刪除、移動

2.1、檢視檔案與目錄:ls


(藍色表示目錄,白色表示檔案)
1. 常用option
1、-a:顯示全部檔案,連同隱藏檔案;
2、-d:僅列出當前檔案,而不列出檔案內的資料,只顯示.
3、-l:列舉檔案的詳細資訊:檔案屬性啊、許可權啊,ls -l==ll

2.2、複製、刪除、移動:cp/rm、mv

  1. cp複製檔案或者目錄,還可以建立連線檔案,重用option如下
    1、-a:連同檔案的屬性一同複製,包括建立的時間(有的cp會改變原有檔案或者目錄的許可權或屬性),複製檔案時要注意許可權的問題,是否加上-a命令。
    2、-i:若目標檔案存在,則先詢問是否覆蓋
    3、-r:遞迴複製
  2. 複製的目標檔案可以重新命名;
  3. 如果是目錄,要加上-r命令才能複製
  4. 建立連線檔案-s(軟連線、快捷方式,ls顯示為:快捷方式—>目標檔案),-h硬連線(許可權與原始檔一樣,但是i-node + 1)
  5. 可以複製多個檔案到最後一個目錄中;
  6. 使用cp應考慮的問題:
    1、是否保留原始檔的資訊(-a);
    2、是否為軟檔案:可能複製軟檔案的連線檔案,-d則複製的是連線檔案;
    3、原始檔是否為目錄;
    4、是否為特殊檔案(這個還沒接觸)
  7. rm:移除檔案或者目錄
    1、常見option
    1) -f:強制刪除,即檔案若不存在也不會發出警告;
    2) -i:刪除前詢問(有interact的意思)
    3) -r:遞迴刪除,很危險;
    2、刪除以i開頭的檔案:i*;
    3、root使用者在-r中預設添加了-i詢問,如果不想詢問可以使用\rm命令
  8. mv:移動檔案或者更名
    1、常用option:
    1)-f:如果目標檔案已存在,則強制覆蓋;
    2)-i:如果目標檔案已存在,則詢問覆蓋;
    3)-u:如果mv 源 目標中源更新,則覆蓋
    2、重新命名即mv 目錄 新名字即可
    3、可以將多個檔案移動到最後一個目錄下
  9. 取得目錄名(basename)和檔名(dirname)

三、檔案內容查閱

常用的顯示檔案內容命令:cat、more、less,檢視大型檔案使用tail或者tac命令

3.1、直接檢視檔案內容

  1. cat:從第一行開始顯示檔案內容;
    1、常用option
    1) -n:列印行號,連空白頁也會有行號
    2) -b:僅對非空白頁有行號;
    2、cat是concatenate,連線的意思,即是將檔案的內容連續的顯示;如果檔案小,可以用,如果檔案大,則螢幕不會顯示那麼多,應該結合more和less使用;

  2. tac:cat的反寫,將檔案內容從最後一行到第一行顯示;

  3. nl:新增行號列印
    1、常用option
    1) -b a:空行也列印行號(類似於 cat -n); -b t:空行不列印行號;
    2) -w number:設定行號的位數

3.2、可翻閱檢視
上述的ln、cat、tac都只是一次性檢視

  1. more:檔案內容大於螢幕時,翻頁顯示,常用option如下
    1、Space:下一頁
    2、Enter;下一行
    3、/key:查詢key關鍵字
    4、:f:顯示檔名以及當前行數;
    5、q:離開
    6、b或者Ctrl+b:往返檢視;
  2. less:一頁一頁的翻動,一行一行的翻動,比more更靈活
    1、常用按鍵
    1) Space 或者PageDown:向下翻一頁
    2) PageUp
    3)/key +?/key:向下/上查詢字串功能
    4)n/N:與(3)結合,正向或者反向查詢。
    5)q:離開

3.3、資料選取

head和tail都是以行開選取資料的
1. head(取出前面幾行)
1、顯示前面num行:head -n num;
2、後面100行都不列印資料:head -n -100
3、無num預設顯示10行
2. tail(取出後面幾行)
1、顯示後面num行:tail -n num
2、只想列出num行以後的資料:tail -n +num;
3、-f:檔案有可能隨時會寫入資料,你想在實時顯示檔案資料,可以用-f命令;

3.4、非純文字檔案的查閱:od

  1. od -t TYPE:以Type型別的格式輸出檔案內容
    1、a:預設字元(??是啥)
    2、c:ASCII碼
    3、d/f/o/x:十進位制/浮點數/八進位制/16進位制

3.5、修改檔案時間或建立新檔案touch

  1. 三個主要的時間引數
    1、mtime(modification):檔案的資料內容改變後會修改這個引數;ls預設的顯示的時間引數是這個;
    2、ctime(status):檔案的狀態(屬性和許可權)發生改變後,修改這個引數
    3、atime(access):檔案被讀取了,會更新這個時間;
  2. 檢視 時間的引數:ls -l –time=mtime
  3. 來自未來的時間如何變成現在時刻(未來指的是有可能時間錯誤,提前了)
    1、新建一個空的資料夾:touch 資料夾;
    2、檢視時間:ll 檔案;ll –time=atime;ll –time=ctime 分號表示連續執行;
    3、將日期調整到兩天前:touch -d “2 days ago” file(三個時間都會改)
    3、將日期改成2007/07/15 2:02
    touch -t 0709150202 file:但是atime、mtime都修改了,但是ctime不能改

四、檔案與目錄的預設許可權與隱藏許可權

前面講過的:檔案許可權:rwx + 檔案屬性:d-l + 屬性修改:chgro、chown、chmod
這裡講解設定檔案系統的隱藏屬性,使用chattr設定,使用lsattr檢視
最重要的一個屬性是:設定成不可修改的屬性

4.1、檔案預設許可權:umask

  1. umask:指定目前使用者新建檔案或者目錄時的許可權預設值
  2. 預設許可權的檢視(目錄與檔案的預設許可權不一樣)
    1、umask命令,顯示0022,第一個為特殊許可權所使用,與許可權相關的僅是後面3個,umask分數指的是該預設值需要減掉的許可權
    2.、umask -S :u=rwx,g=rx,o=rx:以符號的形式顯示預設許可權
  3. Linux目錄與檔案預設許可權的講解
    1、使用者建立檔案一般沒有x許可權,即為-rw-rw-rw-
    2、使用者新建目錄一般x的許可權為可訪問(cd)要有。即為drwxrwxrwx
  4. umask分數代表的是“上述預設值要出去的許可權”022即為:要出去-ww許可權,即實際情況下預設許可權為:原始檔案(目錄)預設許可權 - umask除去的許可權 ==-rw-r–r–(檔案) + drwxr-xr-x(目錄)
  5. 如何修改umask可去除的預設許可權:umask 002

4.2、檔案隱藏屬性chattr、lsattr
檔案隱藏屬性對檔案系統的安全性有很大幫助

  1. chattr命令只能在Ext2、Ext3檔案系統上才有效;
  2. 設定檔案的隱藏屬性:chattr
    1、用法:chattr [+-=] [ai] file/dir
    2、+/-:增加(刪除)某一隱藏屬性、=:僅有後面接的引數???
    3、常用option:
    1) a:只能增加增加資料而不能刪除和修改資料;
    2)i:任務使用者對該檔案啥都不能做
  3. 使用lsattr檢視這些吟唱屬性

4.3、檔案特殊許可權:SUID/SGID/SBIT

  1. SUID:setUID
    1、除了rwx許可權,例如檔案bin/passwd許可權為drwxrwxrwt,/tmp的許可權為-rwsr-xr-x,存在s、t這種特殊的許可權
    2、s、t兩個許可權分別跟系統的賬號以及系統的程序有關;
    3、SUID許可權指的是s許可權在檔案所有者的執行x位置上出現;其限制於功能如下:
    1)僅對二進位制程式有效;
    2)執行者對該檔案具有x可執行許可權;
    3)這種許可權只在run-time的時候有效;
    4)執行者具有該檔案所有者的許可權
    4、例如,etc/shadow檔案用於記錄所有賬號和密碼,root對該檔案的許可權為-r——–1表示可讀且能強制寫入;但是一般使用者也可以實現自己修改密碼,原因是SUID特殊許可權的功能
    1)一般使用者對於/usr/bin/passwd具有x許可權,表示一般使用者可以執行passwd
    2)passwd檔案的所有者是root賬號;
    3)一般使用者由於有SUID許可權可暫時獲得root許可權,即可修改passwd檔案
    5、此外,SUID僅適用於二進位制檔案、且不適用於目錄。
  2. SetGID
    1、當x出現在檔案所在組的x位置時,成為Set GID,SGID既可以針對檔案,也適用於目錄;
    2、SGID作用於二進位制檔案時:
    1)程式執行者對該檔案具有x許可權
    2)執行者在執行過程中會獲得程式所在組的執行
    3、SGID作用於檔案時:???

    1. sticky Bit(SBIT)
      1、SBIT只針對目錄有效,而對檔案無效;
      2、作用為:
      1)當用戶對該目錄具有w、x許可權,即具有寫入的許可權;
      2)當用戶在該目錄下建立檔案或者目錄時,只有自己或者root才能刪除該檔案
  3. SUID/SGID/SBIT許可權的設定
    1、在原始rwx三個數字之前又加入新的數字
    2、 SUID/SGID/SBIT對應的數字分別為4/2/1;
    3、例如-rwsr-xr-x許可權為chmod 4755 filename
  4. 當這三個許可權為大寫時,例如-rwSrwSrwT表示使用者沒有x許可權;

4.4、檢視檔案型別file

五、命令和檔案的查詢

即可以查詢命令和檔案所在的目錄
5.1、指令碼檔名的查詢

  1. which:根據path查詢命令的位置;
    1、不同使用者所配置的path不一樣,也就是說查詢結果不一樣;
    2、有些命令並沒有配置在path中,而是內建的,所以也有可能查不到,可以使用type命令查詢;

5.2、檔名的查詢

  1. 一般先使用whereis或者local查詢,再用find查詢;
    1、Linux系統會將系統內所有檔案都記錄到一個數據庫檔案中,whereis和local就是從這個資料庫中查詢,速度快,而find是從硬碟中查詢,慢但是全面。
    2、whereis和local找不到的原因是因為:檔案資料庫的更新是間斷性的,例如CentOS5.x是每天更新一次,對於新建的檔案,使用這兩個命令查詢找不到,但是也可以使用updatedb手動更新資料庫。updatedb會根據etc/updatedb.config的設定去查詢系統硬碟內的檔名,並更新/var/lib/mlocate內的資料庫檔案
  2. whereis [-bmsu] 檔案或目錄
    1、-b:只查詢二進位制檔案
    2、-m:只查詢在說明檔案manual路徑下的檔案
    3、-s:只查詢sorce原始檔
    4、-u:查詢不含上述的其它型別檔案;
  3. locate [-ir] keyword
    1、-i:忽略大小寫
    2、-r:接正則表示式
    3、包含keyword關鍵字的檔案或者目錄都會被查詢
  4. find:
    1、用法:find PATH OPTION ACTION
    2、與時間相關的引數有-atime、ctime、mtime,例如:
    1) -mtime n:查詢n+1~n天這一天之內修改過的檔案;
    2) -mtime +n:查詢n天之前( 不包括n)被修改的檔案;
    3) -mtime -n:查詢n天之內,包括n天本身被修改過的檔案;
    3、與使用者或使用者組名有關的引數
    1)-user name,例如,找出/home目錄下屬於dengqi使用者的檔案:find /home -user dengqi,-group name也是類似;
    2)-nouser:找出系統中不屬於任何人的檔案,-nogroup也類似;
    3)-uid和-gid後面再介紹
    4、與檔案許可權及名稱有關的引數
    1) -name filename:查詢檔名為filename的檔案
    2)-type TYPE:查詢檔案型別為TYPE(f/b/c/d/l/s/p)的檔案
    3)-perm mode:檔案許可權剛好等於mode的檔案;-perm -mode:檔案許可權包括mode的檔案,例如4744檔案許可權包括了0744mode,所以查詢-perm -0744檔案時會獵取4744許可權的檔案;-perm +mode:檔案只要包含了mode許可權都會被列出。
  5. find結合其它命令的使用
    1、-exec command:-exec後面接其它命令處理查詢到的結果;
    2、例如:find / -perm +700 -exec command ls -l {} \;
    1) ls -l {}屬於額外命令
    2) -exec ~\;屬於額外命令的開始與結束

相關推薦

Linux檔案目錄管理

一、目錄與路徑 1.1、絕對路徑與相對路徑 絕對路徑:/ 相對路徑:非/開頭 2、目錄的相關操作 幾個比較特殊的目錄 1、.:當前目錄; 2、..:上一層目錄; 3、-:前一個目錄; 4、~:當前目錄所在的主資料夾 5、~使用者:該使用者

《鳥哥的Linux私房菜基礎》Linux 檔案目錄管理

絕對路徑:『一定由根目弽 / 寫起』;相對路徑:『不是由 / 寫起』 特殊目錄有:., .., -, ~, ~account需要注意; 與目錄相關的指令有:cd, mkdir, rmdir, pwd 等重要指令; rmdir 僅能刪除空目錄,要刪除非空目錄需使用『 rm

Linux學習Linux 檔案目錄管理

引用:《鳥哥的Linux私房菜基礎篇第三版》 在前一章我們認識了Linux系統下的檔案許可權概念以及目錄的配置說明。 在這個章節當中,我們就直接來進一步的操作與管理檔案及目錄吧!包括在不同的目錄間變換、 建立與刪除目錄、建立與刪除檔案,還有尋找檔案、檢視檔案內容等等,都

易學筆記-Linux命令-5操作檔案目錄

操作檔案和目錄 萬用字元 *:匹配任意多個字元(包括零個或者多個) [[email protected] ~]# ll -l *  列出所有檔案或者目錄,包括目錄中的子目錄或者子檔案 -rw-r--r--. 1 root root 

Linux磁碟檔案系統管理

一、認識EXT2檔案系統 Linux最原始的檔案系統時EXT2,檔案系統是建立在硬碟上。 1.1、硬碟組成以及分割槽的簡單回顧 磁碟的組成:圓形碟片 + 機械手臂與磁頭 + 主軸馬達 碟片分為扇區,每個512byte,第一扇區很重要,包括的資訊:MBR(

Linux檔案目錄管理

int 最終 改名 方式 增加 列目錄 絕對路徑 時間排序 存取 pwd -P 顯示絕對路徑,而非link路徑 mkidr -m 預設權限,忽略umask值,如 [[email protected]/* */ ~]# rm -rf test/ [[email&

筆記《鳥哥的Linux私房菜》7 Linux檔案目錄管理

lin 隱藏 lsa root less 創建 /var/ roo 專用 cd cd xxx 更換目錄 cd~ 回到家目錄 cd- 回到前一目錄 pwd pwd 當前目錄路徑 pwd -P 非鏈接路徑 mkdir mkdir xxx 創建目錄 mkdir -p x

Linux檔案目錄管理大全

我們知道Linux的目錄結構為樹狀結構,最頂級的目錄為根目錄 /。 其他目錄通過掛載可以將它們新增到樹中,通過解除掛載可以移除它們。 在開始本教程前我們需要先知道什麼是絕對路徑與相對路徑。 絕對路徑: 路徑的寫法,由根目錄 / 寫起,例如: /usr/share/doc 這個目錄。

Linux - 檔案目錄管理 (李作強)

我們知道Linux的目錄結構為樹狀結構,最頂級的目錄為根目錄 /。 其他目錄通過掛載可以將它們新增到樹中,通過解除掛載可以移除它們。 在開始本教程前我們需要先知道什麼是絕對路徑與相對路徑。 絕對路徑: 路徑的寫法,由根目錄 / 寫起,例如: /usr/share/doc 這個目錄。

linux檔案目錄管理——路徑目錄

                                  路徑與目錄 1.相對路徑與絕對路徑   絕對路徑: 在bash中進行目錄相關的路徑操作時,從 ‘/’開始寫的目錄。eg:/home/student/Desktop. 特點:比較準如果是在寫程式管理系統的情

Linux學習筆記10——Linux 檔案目錄管理

一、目錄與路徑 如果是在寫程式 (shell scripts) 來管理系統的條件下,務必使用絕對路徑的寫法。 怎麼說呢?因為絕對路徑的寫法雖然比較麻煩,但是可以肯定這個寫法絕對不會有問題。 如果使用相對路徑在程式當中,則可能由於你執行的工作環境不同,導致一些問題的發生。

Linux 檔案目錄管理知識隨筆

目錄管理 1、目錄概念     Linux 當中所有內容都已檔案形式存在,所以檔案管理,目錄管理我自認為是一個最基本的知識了。Liunx目錄結構以根目錄為頂點,往下是樹狀結構分別是 /bin /sbin /user  /boot /dev /etc /home 等 &nbs

7.linux檔案目錄管理

1.目錄與路徑 ①特殊的目錄:     .    代表此層目錄     ..   代表上一層目錄(根目錄的.與..都是同一個目錄)     -    代表前一個工作目錄    ~    代表“目前使用者身份”所在的主資料夾,如~liupeng911,代表liupeng911

Linux學習筆記】Chapter 7 Linux檔案目錄管理_筆記

【記錄整理自《鳥哥的Linux私房菜》】 一、目錄與路徑 1.相對路徑與絕對路徑 1)絕對路徑:路徑的寫法一定由根目錄(/)寫起,比如/usr/share/doc這個目錄 a)用途:正確度比較

Linux 基礎學習 Linux檔案目錄管理

Linux distribution : ubuntu 16.04 LTS 參考書籍: 《鳥哥的Linux私房菜 基礎學習篇(第三版)》 今天白天除錯了一天的Wifi模組透傳,有點小累,不過還是要繼續學習Linux基礎。 1.本章中主要使用的常見的處理目錄的命令:  

鳥哥的Linux私房菜學習筆記(二)Linux 檔案目錄磁碟格式 —— Linux檔案目錄管理

4.檔案與目錄的預設許可權與隱藏許可權1) 檔案預設許可權:umaskumask 就是檢視或指定 『目前使用者在建立檔案或目錄時候的許可權預設值』[[email protected] ~]# umask[[email protected] ~]# umask -S查閱的方式有兩種,一種可以

2.Linux檔案目錄管理

Linux的目錄結構為樹狀結構,最頂級的目錄為根目錄 /。 其他目錄通過掛載可以將它們新增到樹中,通過解除掛載可以移除它們。 絕對路徑: 路徑的寫法,由根目錄 / 寫起,例如: /usr/share/doc 這個目錄。 相對路徑: 路徑的寫法,不是由 / 寫起,例

Linux檔案目錄管理(1)

Linux一般將檔案可存取的身份分為三個類別(owner/group/others),三種身份各自具有各自的r/w/x許可權。 Linux檔案型別: 1、普通檔案(regular file,符號'-'): a、純文字(ASCII):Linux系統中最多的一種

Linux 檔案目錄管理

一、目錄與路徑 相對路徑與絕對路徑 絕對路徑:路徑的寫法“一定由根目錄 / 寫起”,例如: /usr/share/doc 這個目錄。 相對路徑:路徑的寫法“不是由 / 寫起”,例如由 /usr/share/doc 要到 /usr/share/man 下面時,可以寫成: “cd ../man”這就是相對路徑的

Linux一一檔案目錄管理

主要介紹進一步操作與管理檔案及目錄,包括在不同的目錄間變換、建立與刪除目錄、建立與刪除檔案,還有尋找檔案、查閱檔案內容等等。 6.1 目錄與路徑 6.1.1 相對路徑與絕對路徑 絕對路徑:路徑的寫法“一定由根目錄/寫起”,例如:/usr/share/doc這個目錄