Linux學習記錄-文件、目錄與磁盤

用戶和群組

用戶和群組主要是為了區分用戶對文件的操作權限。

  • 賬號在/etc/passwd
  • 個人密碼在/etc/shadow
  • 組信息在/etc/group
    不要亂動這3個文件

文件權限和目錄配置

文件屬性

文件前綴解釋,例如:


img_0c5e70e7da80f5ef90b76ea5da0bb56d.png

img_3254df0cf770fa5b1ca77d4be2186adf.png
  • 第一個字符代表這個文件是『目錄、文件或鏈接文件等等』:

    • 當為[ d ]則是目錄,例如上表檔名為『.gconf』的那一行;
    • 當為[ - ]則是文件,例如上表檔名為『install.log』那一行;
    • 若是[ l ]則表示為連結檔(link file);
    • 若是[ b ]則表示為裝置文件里面的可供儲存的接口設備(可隨機存取裝置);
    • 若是[ c ]則表示為裝置文件里面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)。
  • 接下來的字符中,以三個為一組,且均為『rwx』 的三個參數的組合。其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執行(execute)。 要注意的是,這三個權限的位置不會改變,如果沒有權限,就會出現減號[ - ]而已。

文件類型:
d 目錄 directory- 文件 file
l 鏈接檔link-file
b 存儲文件block
c 外設文件character文件權限:
r 可讀  read
w 可寫 write
x 可執行 execute
- 沒有權限

改變文件屬性和權限

  • chgrp: 改變文件的所屬組 change group
  • chown: 改變文件的所有者
    change own
  • chmod: 改變文件的權限,SUID《SGID《SBIT等 change mod
改變群組:  chgrp [-R] 組名 文件名
改變文件擁有者: chown [-R] 用戶 文件名
注意: cp命令會拷貝源文件的組和所有者權限
改變文件權限:chmod
linux的權限共9個,三個一組,一組只有rwx權限,為了方便可以用數字124表示,沒有3是為了方便,因為3種權限可以有7中組合方式,而124加和為7,好機智是吧,不過也好反人類,不適合人看適合機器看。
x:1
w:2
r:4 
可以這樣記憶:數字越大,權限越低
1:x--
2:w--
3:xw-
4:r--
5:xr-
6:wr-
7:wxr
更改文件權限:chmod [-R] 777文件名 最高權限
chmod 135 filename
設置文件可執行,則權限應該是-rwxr-xr-x 755
最高權限就是 -rwxrwxrwx 777 
文件僅自己可見 -rwxr----- 740除了數字更改權限,chmod本身支持符號類型改變權限
9個權限每3個一組也可以這樣劃分user,group,other三種身份
用戶權限,組權限,其他用戶權限
于是可以用三個符號代替u,g,o 
另外增加一個全部權限的all ,a符號
img_c72251c2475c6d8cf3842eb148f449be.png
+ 添加權限
- 刪除權限
= 設置權限
u 用戶
g 組
o 其他用戶
a 全部
r 可讀
w 可寫
x 可執行使用示例:
chmod u=rwx,g=rx,o=r 文件名
chmod a+w 文件名

目錄和文件權限的意義

安全,保護文件。
注意事項:

  • 文件是否可以執行由x決定,跟檔名(文件擴展名)無關(windows才這樣做)
  • w使文件擁有的是可寫權限,權限作用于文件內容,而非文件本身,可寫不代表可刪除。
  • rwx對目錄的意義:r可讀取目錄結構列表,w可操作該目錄的文件,增刪改名,刪除,移動目錄等,此時文件就是目錄的內容,x代碼用戶能否進入該目錄成為工作目錄,

文件的種類和擴展名

linux下所有的外設等都是轉化為文件管理的
文件的擴展名并無太多作用

查看文件內容

  • 直接查看 cat,tac,nl
  • 翻頁查看 more,less
  • 數據截取 head,tail
  • 非純文字檔 od
  • 修改文件時間與簡直新檔 touch

命令用途

  • cat 從第一行開始顯示文件內容,cat是Concatenate連續的縮寫單詞
    -tac 從最后一行開始顯示文件內容,cat倒過來就是tac,簡明達意
  • nl 帶行號顯示文件內容
  • more 一頁一頁的顯示文件內容
  • less 與more相似,但是可以向前翻頁,more不可以
  • head 只看頭幾行
  • tail 只看尾巴幾行
  • od 以二進制的形式讀取文件內容

使用例子

cat -n /etc/issue
tac /etc/issue
nl -b a /etc/issue
more /etc/man.config
- 空格鍵:向下一頁
- Enter:向下一行
- /字符串: 向下搜索關鍵字
- :f   :顯示檔名和當前的行數
- q :退出more
- b或ctrl-b:往回翻頁,只對文件管用,管線無用
less /etc/man.config
- 空格鍵: 向下翻一頁
- pageDown:向下翻一頁
- pageUp: 向上翻一頁
- /字符串:向下搜索關鍵字
- ?字符串: 向上搜索關鍵字
- n :重復前一個搜索
- N:反向重復前一個搜索
q :退出less命令-- 數據擷取
以行為單位,采集文件的內容
head /ect/man.config
head -n -100 /etc/man.config
tail -n 20 /etc/man.config
-- 組合取文件中間的內容
比如取第11行到20行內容
先取前20行,然后取后10行即可
head -n 20 /etc/man.config |tail -n 10 -- od讀取二進制文件內容

修改文件時間或者建新檔

文件時間:

  • modification time (mtime) 文件內容修改時間
  • status time(ctime)文件狀態修改時間,比如權限或屬性被修改
  • access time(atime)訪問時間,文件內容被讀取時間
    touch可以創建一個新文件,可以修改文件的時間

文件與目錄的默認權限和隱藏權限

  • 文件默認屬性 umask:目前使用者在創建文件或目錄時的默認權限
  • chattr配置文件默認屬性
  • lsattr 顯示文件默認屬性
  • 文件特殊權限 SUID,SGID,SBIT

文件的搜索

  • 運行檔,檔名搜索which 通過PATH搜索運行檔名
  • 文件檔名搜索 type
  • 搜索特定文件 whereis 搜索的是linux的數據庫
  • locate 搜索的是已創建的數據庫/var/lib/mlocate
  • find [path] [option] [action] 掃描硬盤

ext2,3,4 第2,3,4代擴展文件系統

管理物理硬件的一個軟件索引,idone/block/superblock等

文件系統通常會將這兩部份的數據分別存放在不同的區塊,權限與屬性放置到 inode 中,至于實際數據則放置到 data block 區塊中。 另外,還有一個超級區塊 (superblock) 會記錄整個文件系統的整體信息,包括 inode 與 block 的總量、使用量、剩余量等。

  • superblock:記錄此 filesystem 的整體信息,包括inode/block的總量、使用量、剩余量, 以及文件系統的格式與相關信息等;
  • inode:記錄文件的屬性,一個文件占用一個inode,同時記錄此文件的數據所在的 block 號碼;
  • block:實際記錄文件的內容,若文件太大時,會占用多個 block 。
    inode4放置著文件的屬性權限等等信息,文件內容實際放置位置是2,7,13,15這些block


    img_84d9718b553aee5e650f653dc3ade7bf.png

    或者是另一種方式,鏈式索引


    img_2cf1c6be893924f922d9050a1ae3be23.png

    data block 數據區塊 2代
    img_7dd91622fb749a9c9083e6490d8f80ac.png

    目前4代ext4已經支持pb eb級別的存儲

文件系統操作

  • df 列出文件系統的磁盤使用情況
  • du 蘋果文件系統的磁盤使用情況(常用推估目錄所占容量)

ln 連接符

  • 實體連接 ,通過文件系統的inode連接產生新檔名 需要加參數 -i
  • 符號連接,連接到文件,類似windows的快捷方式 默認就是這種連接方式
- 實體連接
lb -i  文件路徑  文件路徑
- 符合連接
ln -s 文件路徑 文件路徑

磁盤的分割、格式化、校驗和掛載

  • 磁盤分區 fdisk,partprobe
  • 磁盤格式化 mkfs,mke2fs
  • 磁盤檢驗 fsck,badblocks
  • 磁盤掛載與卸除 mount,umount
  • 磁盤參數修訂 mknod,e2label,tune2fs,hdparm
- 磁盤分區
fdisk [-l] 裝置名稱
- 磁盤格式化
mkfs [-t 文件系統格式] 裝置文件名
mke2fs [-b block大小] [-i block大小] [-L 標頭] [-cj] 裝置
- 磁盤檢驗
fsck [-t 文件系統] 裝置名稱
badblocks -[svw] 裝置名稱
- 磁盤掛載與卸除
mount [-t 文件系統] [-L Label名] [-o 額外選項] \[-n]  裝置文件名  掛載點umount [-fn] 裝置文件名或掛載點

配置啟動掛載

  • 根目錄 / 是必須掛載的﹐而且一定要先于其它 mount point 被掛載進來。
  • 其它 mount point 必須為已創建的目錄﹐可任意指定﹐但一定要遵守必須的系統目錄架構原則
  • 所有 mount point 在同一時間之內﹐只能掛載一次。
  • 所有 partition 在同一時間之內﹐只能掛載一次。
  • 如若進行卸除﹐您必須先將工作目錄移到 mount point(及其子目錄) 之外。

文件壓縮

常用的壓縮命令

  • compress
  • gzip,zcat
  • bzip2,bzcat
    常見壓縮文件后綴標識
*.Z         compress 程序壓縮的文件;
*.gz        gzip 程序壓縮的文件;
*.bz2       bzip2 程序壓縮的文件;
*.tar       tar 程序打包的數據,并沒有壓縮過;
*.tar.gz    tar 程序打包的文件,其中并且經過 gzip 的壓縮
*.tar.bz2   tar 程序打包的文件,其中并且經過 bzip2 的壓縮

compress老舊的打包工具,linux已經默認不安裝了

gzip [-cdtv#] 檔名
zcat 檔名.gz
選項與參數:
-c  :將壓縮的數據輸出到螢幕上,可透過數據流重導向來處理;
-d  :解壓縮的參數;
-t  :可以用來檢驗一個壓縮檔的一致性~看看文件有無錯誤;
-v  :可以顯示出原文件/壓縮文件的壓縮比等資訊;
-#  :壓縮等級,-1 最快,但是壓縮比最差、-9 最慢,但是壓縮比最好!默認是 -6 [root@www ~]# bzip2 [-cdkzv#] 檔名
[root@www ~]# bzcat 檔名.bz2
選項與參數:
-c  :將壓縮的過程產生的數據輸出到螢幕上!
-d  :解壓縮的參數
-k  :保留原始文件,而不會刪除原始的文件喔!
-z  :壓縮的參數
-v  :可以顯示出原文件/壓縮文件的壓縮比等資訊;
-#  :與 gzip 同樣的,都是在計算壓縮比的參數, -9 最佳, -1 最快!打包命令 tar
[root@www ~]# tar [-j|-z] [cv] [-f 創建的檔名] filename... <==打包與壓縮
[root@www ~]# tar [-j|-z] [tv] [-f 創建的檔名]             <==察看檔名
[root@www ~]# tar [-j|-z] [xv] [-f 創建的檔名] [-C 目錄]   <==解壓縮
選項與參數:
-c  :創建打包文件,可搭配 -v 來察看過程中被打包的檔名(filename)
-t  :察看打包文件的內容含有哪些檔名,重點在察看『檔名』就是了;
-x  :解打包或解壓縮的功能,可以搭配 -C (大寫) 在特定目錄解開特別留意的是, -c, -t, -x 不可同時出現在一串命令列中。
-j  :透過 bzip2 的支持進行壓縮/解壓縮:此時檔名最好為 *.tar.bz2
-z  :透過 gzip  的支持進行壓縮/解壓縮:此時檔名最好為 *.tar.gz
-v  :在壓縮/解壓縮的過程中,將正在處理的檔名顯示出來!
-f filename:-f 后面要立刻接要被處理的檔名!建議 -f 單獨寫一個選項羅!
-C 目錄    :這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。其他后續練習會使用到的選項介紹:
-p  :保留備份數據的原本權限與屬性,常用於備份(-c)重要的配置檔
-P  :保留絕對路徑,亦即允許備份數據中含有根目錄存在之意;
--exclude=FILE:在壓縮的過程中,不要將 FILE 打包

完全備份工具

  • dump 備份工具
  • restore 恢復工具

vi和vim使用

編輯模式

  • 一般模式,打開文檔就是一般模式,可以上下鍵移動光標,刪除字符x或者刪除整行dd,也可以復制/粘貼數據
  • 編輯模式,按下i,I,o,O,a,A,r,R任何一個按鍵進入編輯模式,按esc鍵退出編輯模式
  • 指令模式,一般模式下輸入: / ? 任意按鍵,進入指令模式,主要操作有:讀取、存盤、大量替換字符串、離開vi、顯示行號等動作
img_23afc1f7bdffa1ee3679a9aff65501d2.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450626.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450626.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450626.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php curl模擬https請求

https請求(支持GET和POST) function http_request($url,$data null){$curl curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);if(!empty($data)){curl_setopt($cur…

springboot集成環信sdk報錯

import io.swagger.client.ApiException; import io.swagger.client.api.MessagesApi; import io.swagger.client.model.Msg 這個是因為少兩個包&#xff0c;只需要把在你的pom.xml添加以下代碼即可&#xff0c;不要忘記點贊哈只需要添加兩個包即可&#xff0c;你可以自行網上下…

解決 error: Your local changes to the following files would be overwritten by merge:XXXX

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 idea 上將本地代碼推送到 git后 , 報錯如下圖 error: Your local changes to the following files would be overwritten by merge:src/…

深度有趣 | 30 快速圖像風格遷移

簡介 使用TensorFlow實現快速圖像風格遷移&#xff08;Fast Neural Style Transfer&#xff09; 原理 在之前介紹的圖像風格遷移中&#xff0c;我們根據內容圖片和風格圖片優化輸入圖片&#xff0c;使得內容損失函數和風格損失函數盡可能小 和DeepDream一樣&#xff0c;屬于網絡…

轉型從思維習慣的轉變開始

摘要&#xff1a;首先建議大家不要輕易轉向管理崗位&#xff0c;要認清自己是否適合做管理。轉型過程中應把握好幾點&#xff1a;良好的技術基礎&#xff0c;它是贏得團隊信任的前提&#xff0c;是把握團隊整體方向的關鍵&#xff1b;培養大局觀&#xff0c;只有站得高才能看得…

數據庫小知識點(一直更新)

一、mysql查詢是否含有某字段&#xff1a; mysql數據庫查詢帶有某個字段的所有表名 SELECT * FROM information_schema.columns WHERE column_namecolumn_name; oracle數據庫查詢帶有某個字段的所有表名 select column_name,table_name,from user_tab_columns where column_n…

其他運算符

原文地址&#xff1a;https://wangdoc.com/javascript/ void運算符 void運算符的作用是執行一個表達式&#xff0c;然后不返回任何值&#xff0c;或者說返回undefined。 void 0 // undefined void(0) // undefined 上面是void運算符的兩種寫法&#xff0c;都正確。建議采用后一…

git pull --rebase 做了什么? 以及 Cannot rebase: You have unstaged changes 解決辦法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 最近剛學 git rebase&#xff0c;覺得很牛逼的樣子&#xff0c; 結果今天就被打臉了。 git pull --rebase 1 報錯&#xff1a; Cann…

vue如何實現單頁緩存方案分析

實現全站的頁面緩存&#xff0c;前進刷新&#xff0c;返回走緩存&#xff0c;并且能記住上一頁的滾動位置&#xff0c;參考了很多技術實現&#xff0c;github上的導航組件實現的原理要么使用的keep-alive&#xff0c;要么參考了keep-alive的源碼&#xff0c;但是只用keep-alive…

C語言常用函數簡介

一、字符測試函數 isupper()測試字符是否為大寫英文字ispunct()測試字符是否為標點符號或特殊符號isspace()測試字符是否為空格字符isprint()測試字符是否為可打印字符islower()測試字符是否為小寫字母isgraphis()測試字符是否為可打印字符isdigit()測試字符是否為阿拉伯數字i…

thinkphp如何增加session的過期時間

原理&#xff1a;我們都知道session是建立在cookie的基礎上的&#xff0c;如果瀏覽器cookie清楚了&#xff0c;則tp就會重新建立一個session。 操作&#xff1a;直接增加瀏覽器的cookie的到期時間&#xff0c;就可以使tp的session增加。

需求心得

電路圖是人們為研究、工程規劃的需要。我們組項目需要設計實現一個矢量圖編輯器。在通過對變電站的電路圖進行矢量繪圖后&#xff0c;就可以通過矢量圖的縮放詳細信息。在分析需求后&#xff0c;寫下心得&#xff01; 分析需求主要有一下幾個步驟&#xff1a; 1. 獲取和引導需求…

IT部門不應該是一個后勤部門

管理上最大的問題在于不重視預算與核算的管理。從管理層到員工&#xff0c;很少有經營的念頭&#xff0c;只是一味地埋頭做事。西方企業總結了當今幾百年的經營理念&#xff0c;最終把企業一切活動的評價都歸結到唯一的、可度量的標準上&#xff1a;錢來度量。 by——華為 作為…

you need to resolve your current index first 解決辦法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 從一個分支A切換到另一個分支B后&#xff0c;對切換后的B分支進行pull操作&#xff0c;因為pull操作實際上包含了fetchmerge操作&#x…

C語言,一種如此美麗的語言

人們說足球是一種優美的體育運動&#xff0c;而當我們在綠茵場上看到羅納爾多那行云流水的帶球動作時&#xff0c;我們不能不承認這種說法。然而&#xff0c;對于我來說&#xff0c;這種運動之所以如此的賞心悅目&#xff0c;跟那些乖張的天才球星們關系并不是那么大&#xff0…

基于websocket的聊天實現邏輯(springboot)

websocket的知識點&#xff1a;當用戶建立socket連接請求之后&#xff0c;服務器會給客戶段建一個session&#xff08;非httpsession&#xff09;,這是是對客戶端的唯一識別碼&#xff0c;用于消息通信 第二上流程圖&#xff0c;流程圖解釋&#xff1a;用戶1要給用戶2發送消息…

Elasticsearch就這么簡單

Elasticsearch就這么簡單 Lucene就這么簡單轉載于:https://www.cnblogs.com/gaogaoyanjiu/p/9908520.html

大學生學編程系列」第五篇:自學編程需要多久才能找到工作?

很多編程初學者都會有這種疑問&#xff0c;自學學到什么程度或者學多久能夠找到工作&#xff0c;這種問題沒有統一答案&#xff0c;因為每個人的出發時候的基礎以及在學習過程中掌握的程度不盡相同&#xff0c;也會導致結果不一樣&#xff0c;只能說要看個人的造化了&#xff0…

chrome 谷歌瀏覽器怎么添加Axure擴展

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 工具/原料 谷歌瀏覽器Axure RP Extension for Chrome方法/步驟 百度搜索Axure RP&#xff0c;下載Axure RP&#xff0c;并進行安裝 安裝后…

配置nginx-rtmp流媒體服務器(寶塔面板配置教程)

參考文檔&#xff1a;https://www.kancloud.cn/jiangguowu/kfjsdkfjskd/1209896 1.在寶塔面板中安裝帶nginx的服務器 2.在寶塔面板中卸載nginx&#xff08;因為nginx-rtmp和nginx的配置不同&#xff0c;并且寶塔面板中不支持安裝nginx-rtmp&#xff09; 3.開始預下載nginx &a…