【Linux學習筆記】Chapter 7 Linux檔案與目錄管理_筆記
【記錄整理自《鳥哥的Linux私房菜》】
一、目錄與路徑 1.相對路徑與絕對路徑 1)絕對路徑:路徑的寫法一定由根目錄(/)寫起,比如/usr/share/doc這個目錄 a)用途:正確度比較好,如果是寫程式(shell script)來管理系統的情況下,務必使用絕對路徑的寫法。 2)相對路徑:不是由/寫起。例如由/usr/share/doc要到/usr/share/man下面時,可以寫成cd ../man。相對路徑意指相對於目前工作目錄的路徑 a)用途:路徑名字比較長的這種比較方便 2.目錄的相關操作 1)相關符號 . --->代表此層目錄 .. --->代表上一層目錄 - --->代表前一個工作目錄- cd [相對路徑或絕對路徑] ---切換目錄
- pwd---顯示當前目錄 Print Working Directory
- mkdir ---新建一個新的目錄 ,必須一層層建立
- mkdir -p /home/bird/testing/test1 可以依序建立全部
- rmdir ---刪除一個空的目錄
- rmdir -r test 刪除該目錄下的所有東西
- -a :全部的檔案,連同隱藏檔案一起列出來(常用)
- -d :僅列出目錄本身,而不是列出目錄內的檔案資料
- -l:列出長資料串,包含檔案的屬性與許可權等資料
- --color=never :不要依據檔案特性給予顏色顯示
- --color=always:顯示顏色
- --color=auto:讓系統自行依據設定來判斷是否給予顏色
- --time={atime,ctime}:輸出訪問時間或者改變許可權屬性時間(ctime)而非內容更改時間(modification time)
- #cp [-adfilprsu] 原始檔(source) 目標檔案(destination)
- -a :相當於-pdr的意思
- -i :若目標檔案(destination)已經存在時,在覆蓋時會先詢問操作的進行。
- -r : 遞迴持續複製,用於目錄的複製行為。
- #cp [options] source1 source2 source3 … directory
【沒有加引數的情況下,檔案的許可權和使用者組、修改時間可能會有改變。 如果想將檔案的所有特性都一起復制過來的話,加上-a,如下所示】 #cp -a /var/log/wtmp wtmp_2 #ls -l /var/log/wtmp wtmp_2
ATTENTION:
- cp進行資料複製的時候,對於該檔案必須具有read許可權。而且,預設的條件中,cp的原始檔與目的檔案的許可權是不同的,目的檔案的所有者通常會是命令操作者本身。比如說,上面的例子中,由於我是root這個身份,那麼複製過來的檔案所有者與使用者組就都變成root所有了。
- 由於這個特性,因此在當我們進行備份的時候,某些需要注意的特殊許可權檔案,比如密碼檔案(/etc/shadow)以及一些配置檔案,就不能直接以cp來複制,而必須要加上-a或者-p這種可以完整複製檔案許可權的引數才可以。複製檔案給其他的使用者時也要注意檔案的許可權(讀寫、執行、檔案所有者等等)。
ATTENTION :
- -l 就是所謂的硬連線(hard link),-s 則是軟連線(symbolic link)
【-d 複製連線檔案的屬性,沒有引數複製原始檔】 7、將主資料夾的 .bashrc 及.bash_history 複製到 /tmp 下面 #cp ~/.bashrc ~/.bash_history /tmp 【可以將多個數據一次複製到同一個目錄去,最後面一定是目錄】 3、rm(移除檔案或目錄) 1)#rm [-fir] 檔案或目錄
- -f :就是force ,強制刪除,忽略不存在的檔案,不會存在警告資訊
- -i :互動模式,在刪除前會詢問使用者是否操作
- -r : 遞迴模式。最常用在目錄的刪除了【非常危險的引數!!!】
- rm -r 的時候,因為該檔案和目錄一定會被root刪掉,所以系統不會再次詢問的。
- 檔名最好不要使用“-”開頭,因為一般“-”後面接的都是引數。只能是加上本目錄的【./】或者是 rm -- -aaa-
- -f : force強制的意思,如果目標檔案已經存在,不會詢問直接覆蓋
- -i :若目標檔案(destination)已經存在,就會詢問是否覆蓋
- -u:若目標檔案已經存在,且source比較新,才會更新(update)
- -n :打印出行號,連同空白行也會有行號,與-b的引數不同
- tac /etc/issue----與cat反向
- -b a :類似cat -n ,無論是否為空都顯示行號
- -b t :空的一行不要顯示行號(預設)
- -n : 列出行號表示的方法
- -n ln :行號在螢幕的最左方顯示
- -n rn:行號在自己欄位的最右方顯示,且不加0
- -n rz :行號在自己欄位的最右方顯示,,加0
- -w :行號欄位佔用的位數
- Space空格 :向下翻一頁
- Enter:向下滾動一行
- /字串 :在顯示的內容中,向下查詢“字串”這個關鍵字
- :f :立刻顯示出檔名以及目前顯示的行數
- q:立刻離開more,不再顯示該檔案內容
- b或者ctrl+b:代表往回翻頁,不過這操作只對檔案有用,對管道無用
- 空格:向下翻動一頁
- [PageDown] :向下翻動一頁
- [PageUp] :向上翻動一頁
- /字串:向下查詢“字串”的功能
- ?字串:向上查詢“字串”的功能
- n :重複前一個查詢(/或?有關)
- N:反向重複前一個查詢(/或?有關)
- q:離開
- #head -n number file --->顯示幾行
- #head /etc/man.config --->預設顯示前10行
- #head -n 20 file--->顯示前20行
- #head -n -100 file --->顯示出前面的所有行數,但是不包括後100行
- #tail -n number file --->後面接數字,代表顯示幾行
- #tail -n +100 file--->檔案從100行以後都會被列出來
- #tail -f /var/log/message--->持續監測後面所接的檔名,直到按下ctrl+c
- #od -t type filename
- a :利用預設的字元來輸出
- c:使用ASCII字元來輸出
- d[size]:利用十進位制(decimal)來輸出資料,每個整數佔用size bytes
- f[size]:利用浮點數(floating)來輸出資料,每個數佔用size bytes
- o[size]:利用八進位制(octal)來輸出資料,每個整數佔用size bytes
- x[size]:利用十六進位制(hexadecimal)來輸出資料,每個整數佔用size bytes
最左邊第一列是以進位制來表示bytes數,比如0000020代表開頭是第16個bytes 8(2*8)的內容。 2、請將/etc/issue這個檔案的內容以八進位制列出儲存值和ASCII的對照表 #od -t oCc /etc/issue 5.修改檔案時間或建立新檔案:touch 1)時間引數 每個檔案在Linux下都會記錄很多的時間引數,其實是有三個主要的變動時間 modification time(mtime) 當該檔案的“內容資料”更改時,就會更新這個時間。內容資料指的是檔案的內容,而不是檔案的屬性或許可權。 status time(ctime) 當該檔案的“狀態”(status)改變時,就會更新這個時間,比如像是許可權和屬性被更改了,都會更新這個時間。 access time (atime) 當“該檔案的內容被取用”時,就會更新這個讀取時間(access)。比如我們使用cat去讀取file的時候,就會更新該檔案的atime了。 # ls -l /etc/passwd --->ls 預設顯示的是該檔案的mtime,也就是這個檔案上次被更改的時間
# ls -l --time=atime /etc/passwd
# ls -l --time=ctime /etc/passwd
【在安裝過後系統時間可能會被改變,因為中國時間比國際標準時間多快了8個小時,如果安裝不正確,我們的系統可能會有8個小時快轉,有可能檔案就來自8個小時之後。還比如由於BIOS的設定錯誤,導致系統時間跑到未來時間。】 2)#touch [-acdmt] 檔案 EG:1、新建一個空的檔案並檢視時間 #cd /tmp #touch testtouch #ls -l testtouch 2、將~/.bashrc複製成為bashrc,假設複製完全的屬性,檢查其日期 # cp -a ~/.bashrc bashrc # ll bashrc;ll --time=atime bashrc;ll --time=ctime bashrc
從上到下:mtime atime ctime 【ll是ls -l的一個別名】 在執行的結果中,資料的內容與屬性是被複制過來的,因此檔案內容事件(mtime)與原本檔案相同。但是由於這個檔案是剛才被建立的,因此狀態(ctime)與讀取時間便呈現現在時間。怎麼才能更改這個檔案的時間呢? 3、修改2的bashrc檔案,將日期調整為兩天前。 #touch -d "2 days ago" bashrc # ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc 4、將3中的bashrc日期改為2007/09/15 2:02 #touch -t 0709150202 #ll bashrc;ll --time=atime bashrc;ll --time=ctime bashrc 【ctime是記錄目前的時間,不變】 四、檔案與目錄的預設許可權與隱藏許可權 除了基本的r、w、x許可權之外,在Linux的Ext2/Ext3檔案系統下,我們還可以設定其他的系統隱藏屬性,這部分可以使用chattr來設定,而以lsattr來檢視,最重要的屬性就是可以設定其不可修改的特性。讓檔案的所有者都不能修改。 EG:1.你的系統有一個一般身份使用者dmtai,他的使用者組屬於users,他的主資料夾在/home/dmtsai,而你是root,你想將你的~/.bashrc複製給他,他可以怎麼做? A:上一章的許可權可知,root雖然可以將這個檔案複製給dmtsai,不過這個檔案在dmtsai的主資料夾中,卻可能讓dmtsai沒有辦法讀寫。(因為改檔案屬於root而dmtsai又不能使用chown的原因)此外,我們還擔心覆蓋掉dmtsai自己的.bashrc配置檔案,所以我們的操作可以如下:
- 複製檔案: cp ~/.bashrc ~dmtsai/bashrc
- 修改屬性:chown dmtsai:users ~dmtsai/bashrc
- 新建目錄:mkdir /tmp/chapter7_1
- 修改屬性:chown -R dmtsai:users/tmp/chapter7_1
- 修改許可權:chmod -R 755 /tmp/chapter7_1
- umask($/#) $---0002 # ---0022 (一般與許可權相關的是後面三個數字)
- umask -S (Symbolic) $---u=rwx,g=rwx,o=rx #---u=rwx,g=rx,o=rx
- a:當設定a之後,這個檔案將只能增加資料,而不能刪除也不能修改資料,只有root才能設定這個屬性
- i:可以讓一個檔案“不能被刪除、改名,設定連結也無法寫入或新增資料”。對於系統安全性有相當大的幫助,只有root能設定此屬性。
- -a:將隱藏檔案的屬性也顯示出來
- -d:如果接的是目錄,僅列出目錄本身的屬性而不是目錄內的檔名
- -R:連同子目錄的資料也一起列出來
1)SetUID ---檔案上
- 當s這個標誌出現在檔案所有者的x許可權上時,例如上面的/bin/passwd這個檔案的許可權狀態,此時就被稱為Set UID,簡稱為SUID的特殊許可權。
- SUID許可權對於一個檔案的特殊功能是什麼呢?基本上SUID有這樣的限制與功能:
- SUID限制僅對於二進位制程式(binary program)有效
- 執行者對於該程式需要具有x的可執行許可權
- 本權限盡在執行該程式的過程中(run-time)有效
- 執行者將具有該程式所有者(owner)的許可權
- 一般使用者對於/usr/bin/passwd這個程式來說是具有x許可權的,表示一般使用者能執行passwd;
- passwd的擁有者是root這個賬號
- 一般使用者執行passwd的過程中,會暫時獲得root許可權。
- /etc/shadow可以被一般使用者所執行的passwd所修改。
- 當s標誌在檔案所有者的x專案為SUID,那s在使用者組的x時則成為Set GID。
- SGID可以針對檔案或者目錄來設定,如果是對檔案來說,SGID有如下的功能:
- SGID對二進位制程式有效
- 程式執行者對於該程式來說,需要具備x的許可權
- 執行者在執行的過程中將會獲得該程式使用者組的支援。
- 除了二進位制程式之外,SGID也可以用在目錄上,這也是一種常見的途徑。當一個目錄設定了SGID的許可權後,它會具有如下的功能:
- 使用者若對於此目錄具有r與x的許可權時,該使用者能夠進入此目錄
- 使用者在此目錄下的有效使用者組(effective group)將會變成該目錄的使用者組
- 若使用者在此目錄下具有w的許可權(可以新建檔案),則使用者所建立的新檔案的使用者組與此目錄的使用者組相同。
- 當用戶對於此目錄具有w,x許可權,即具有寫入的許可權時
- 當用戶在該目錄下建立檔案或者目錄的時候,僅有自己與root才有權利刪除改檔案。
- 4 為SUID
- 2為SGID
- 1為 SBIT
相關推薦
【Linux學習筆記】Chapter 7 Linux檔案與目錄管理_筆記
【記錄整理自《鳥哥的Linux私房菜》】 一、目錄與路徑 1.相對路徑與絕對路徑 1)絕對路徑:路徑的寫法一定由根目錄(/)寫起,比如/usr/share/doc這個目錄 a)用途:正確度比較
【Linux 學習】檔案與目錄管理
檔案與目錄管理 主要介紹和總結Linux系統中的檔案與目錄的基本管理。 1、檢視當前目錄下的檔案和子目錄 ls -aAdfFhilnrRSt 目錄名稱 選項: -a 列出全部檔案與目錄(包含隱藏檔案和當前目錄.以及上層目錄..) -A 除了當前目錄和上層目錄外的其他所有
筆記《鳥哥的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私房菜》學習筆記2-檔案與目錄管理與查閱(思維導圖)
1、常見處理目錄的命令:cd,pwd,mkdir,rmdir 2、檔案與目錄的管理:ls(https://blog.csdn.net/weixin_42610712/article/details/83032052),cp,rm,mv,touch 3、檔案內容查閱——cat 4、檔案內容
Linux學習筆記10——Linux 檔案與目錄管理
一、目錄與路徑 如果是在寫程式 (shell scripts) 來管理系統的條件下,務必使用絕對路徑的寫法。 怎麼說呢?因為絕對路徑的寫法雖然比較麻煩,但是可以肯定這個寫法絕對不會有問題。 如果使用相對路徑在程式當中,則可能由於你執行的工作環境不同,導致一些問題的發生。
鳥哥的Linux私房菜學習筆記(二)Linux 檔案、目錄與磁碟格式 —— Linux檔案與目錄管理
4.檔案與目錄的預設許可權與隱藏許可權1) 檔案預設許可權:umaskumask 就是檢視或指定 『目前使用者在建立檔案或目錄時候的許可權預設值』[[email protected] ~]# umask[[email protected] ~]# umask -S查閱的方式有兩種,一種可以
【深度學習篇】---CNN和RNN結合與對比,實例講解
開頭 問答 16px 結合 觀察 反向 -c style 圖像 一、前述 CNN和RNN幾乎占據著深度學習的半壁江山,所以本文將著重講解CNN+RNN的各種組合方式,以及CNN和RNN的對比。 二、CNN與RNN對比 1、CNN卷積神經網絡與RNN遞歸神經網絡直觀圖
【筆記】《軟體系統分析與設計》複習筆記
7:00考試,3:00複習,我覺得海星。 第四章 資料庫設計(資訊工程模型) 4.1 問題引入與基本概念 基本概念:資料,資料元素,資料物件,資料結構,資料型別,抽象資料型別,資料建模 實體關係圖ERD:利用符號標記實體與關係,實現對資料刻畫的一種資料模型。
Linux學習第二天--探究作業系統,操作檔案和目錄
探究作業系統 既然我們已經知道了如何在檔案系統中跳轉,是時候開始 Linux 作業系統之旅了。然而在開始之前,我們先學習一些對研究 Linux 系統有幫助的命令。 ls -列出目錄內容 file - 確定檔案型別 less -遊覽檔案內容 甚至可以列出多個指
Linux學習:Linux 檔案與目錄管理
引用:《鳥哥的Linux私房菜基礎篇第三版》 在前一章我們認識了Linux系統下的檔案許可權概念以及目錄的配置說明。 在這個章節當中,我們就直接來進一步的操作與管理檔案及目錄吧!包括在不同的目錄間變換、 建立與刪除目錄、建立與刪除檔案,還有尋找檔案、檢視檔案內容等等,都
【深度學習基礎】張量的描述與深度學習常見張量
一些概念 深度學習中的所有資料張量的第一個軸都是樣本軸,也稱之為樣本維度。另外,深度學習模型不會同時處理整個資料集,而是將資料拆分成小批量,比如前面的案例就是每次取128個數據作為一個批量。 batch = train_images[:128] # next batch = tr
7.linux檔案與目錄管理
1.目錄與路徑 ①特殊的目錄: . 代表此層目錄 .. 代表上一層目錄(根目錄的.與..都是同一個目錄) - 代表前一個工作目錄 ~ 代表“目前使用者身份”所在的主資料夾,如~liupeng911,代表liupeng911
【深度學習-CNN】CNN中的引數與計算量
一個卷積神經網路的基本構成一般有卷積層(convolutional layer)、池化層(pooling layer)、全連線層(fully connection layer)。本文以caffe中的LeNet-5為例,分析卷積層和全連線層的引數數量和計算量情況。 卷積層的基
Linux學習1——基本命令格式以及檔案、目錄處理的基本命令
寫在開頭 關於寫部落格,在學java的過程中見識了各種大佬的英姿,早就愛躍躍欲試也想有一個自己的部落格,可是拖延拖延再拖延,終於還是決定了以這種方式來記錄自己的學習歷程,也在學習的過程中起個備忘和加深記憶的作用,順便讓自己的學習的生活更加規律一些吧。 關於linux這個東西呢,也是早就想玩
Linux 基礎學習 Linux檔案與目錄管理
Linux distribution : ubuntu 16.04 LTS 參考書籍: 《鳥哥的Linux私房菜 基礎學習篇(第三版)》 今天白天除錯了一天的Wifi模組透傳,有點小累,不過還是要繼續學習Linux基礎。 1.本章中主要使用的常見的處理目錄的命令:
Linux 學習之路(二):常用命令之檔案與目錄管理
ls:顯示目標列表 -a 顯示所有檔案和目錄 -l 單列顯示詳細資訊 cd:切換工作目錄 cd 進入使用者主目錄 cd ~ 進入使用者主目錄
【GlusterFS學習之一】:GlusterFS分散式檔案系統的基本概念及搭建
最近因為工作的需要在接觸GlusterFS,在未來的一段時間之內應該都要與之打交道,剛剛接觸分散式檔案系統,對很多概念和機制都不是很清楚,通過一段時間的學習有一點淺顯的認識,那麼就把這段時間的瞭解到的
Linux學習:檔案與目錄管理
Linux 檔案與目錄管理Linux的目錄結構為樹狀結構,最頂級的目錄為根目錄 /。其他目錄通過掛載可以將它們新增到樹中,通過解除掛載可以移除它們。什麼是絕對路徑與相對路徑?絕對路徑:路徑的寫法,由根目錄 / 寫起,例如: /usr/share/doc 這個目錄。相對路徑:路
Linux檔案與目錄管理
int 最終 改名 方式 增加 列目錄 絕對路徑 時間排序 存取 pwd -P 顯示絕對路徑,而非link路徑 mkidr -m 預設權限,忽略umask值,如 [[email protected]/* */ ~]# rm -rf test/ [[email&
Linux檔案與目錄管理大全
我們知道Linux的目錄結構為樹狀結構,最頂級的目錄為根目錄 /。 其他目錄通過掛載可以將它們新增到樹中,通過解除掛載可以移除它們。 在開始本教程前我們需要先知道什麼是絕對路徑與相對路徑。 絕對路徑: 路徑的寫法,由根目錄 / 寫起,例如: /usr/share/doc 這個目錄。