Linux中文件操作,軟硬鏈接ln,用戶權限chmod、chown,文件查找和檢索find、grep,壓縮gz,bz2


簡 述:Linux 中,對於一些經常會使用到的命令(不做知識點的搬運工),作業個簡短的記錄📝,主要作爲日後快速查找。還有對於操作系統的主次版本號的含義,shellbash 的區別等簡單做一個說明。主要有如下知識點:

  • Linux 和 GNU 的區別
  • shell 和 bash 的區別
  • 光標相關快捷鍵
  • 文件目錄的結構組成,
  • 文件 / 文件夾操作命令 tree,pwd,mkdir,rm,cp,mv,touch
  • 顯示文件相關信息 cat,more,head,less,tial
  • 軟硬鏈接 ln -s
  • 用戶組,權限 chmod, chown
  • 文件查找和檢索文件內容 find,grep
  • 壓縮與解壓 tar,rar,zip,gz,bz2

Linux 和 GNU 的區別與聯繫:

Linux 發行版 == Linux 內核 + GNU 應用軟件的操作系統

  • Linux 是類 Unix 計算機操作系統的統稱

  • Linux 操作系統的內核也是 ”Linux“

  • Linux 這個單詞只表示 Linux 內核,但是實際上人們已經習慣用 Linux 來形容基於 Linux 內核的整個操作系統

  • Linux 是由芬蘭大學生 Linus Torvallds 1991 年編寫

  • GNU 是一個類 Unix 操作系統。它是由多個應用程序、系統庫、開發工具乃至遊戲構成的程序集合。

總結:

Linux 確實存在,許多人都在使用它,但它僅僅是所用系統的一部分。Linux是內核:它是爲你運行的其他程序分配計算機資源的程序。內核是操作系統的基本部分,但是它自己並無用處;它只能在完整的操作系統框架下才能發揮作用。Linux一般和GNU操作系統一起使用:整個系統基本上就是GNU加上Linux,或叫GNU/Linux。所有被叫做“Linux”的發行版實際上是GNU/Linux發行版。

詳細參考:


Linux 版本號和 PATH:

  • Linux 版本號: 主版本號是雙數爲 STL 支持 5 年;此版本.04 (4月份穩定版),.10爲 debug 版本

  • 環境變量: 一些列的路徑,在 shell 裏面輸入的命令,系統就會在這個路徑裏面去查找該命令是否存在;若存在則執行對應的操作

    echo $HOME 
    echo $PATH
    

shell 和 bash 的區別:

  • shell --unix 全稱:Bourne(伯恩) shell
  • bash --linux 首字母縮寫:Bourne age shell

解釋一下,先有 Unix 系統,當時是以伯恩開發的和系統進行交互的軟件,命名爲 shell ;隨後在出現 Linux (類 Unix)系統,伯恩想要將 shell 遷移到 Linux 上面,但是又不重名,所以稱呼爲 Bourne age shell,簡寫爲 bash。


shell 命令參數風格:

命令參數,其實是由帶 - 和不帶 - 兩種的。


光標相關快捷鍵:

  • history (crtl + p/n 向上向下遍歷歷史命令)
  • crtl + b/f (前進後退:backward,forward)
  • crtl + a/e (移動到首尾:begin,end)
  • crtl + u/k (刪除一行、刪除光標到結尾)
  • crtl + h/d (刪除光標前面、後面一個字母: del)
  • Tab 單詞提示補全

Linux 目錄文件結構:

  • Linux 目錄根文件/結構

  • /bin 二進制文件,可執行文件,shell 命令

  • /dev Linux 下一切皆文件,硬盤,顯卡,顯示器

  • /lib 動態庫

  • /met 手動的掛載目錄

  • /media 外設的自動的掛載目錄,如 U 盤

  • /root 超級用戶的家目錄

  • /usr ->unix system resource

    • 頭文件,遊戲,用戶安裝的程序(usr/local)
  • /etc 存放配置文件

  • /opt 安裝第三方應用程序(如:火狐瀏覽器,notepadqq)

  • /home Linux 操作系統下所有用戶的家目錄

  • /tmp 存放臨時文件,可能重啓會被清除裏面的文件

  • /boot 系統開機的一些配置文件


文件目錄相關的命令:

  • tree 查看目錄的內容

    • # -C 表示輸出帶彩色, -N 直接顯示編碼輸出(中文不亂碼);alias tree='tree -CN'
    • -L 顯示多少層的樹
  • ls 查看文件或者目錄

    • -a 顯示包括影隱藏文件, -l 每個文件的詳細信息

    • -F 若是文件夾,則文件夾名字後加 / 標識

    • -h 以人類能夠看得懂的方式顯示,大小帶單位

      Linux 下文件夾永遠是 4K; 而 unix 下不是 4K。

  • pwd 顯示完整當前路徑 (printf work dir)

  • mkdir 創建文件夾

    • -p 循環創建多個文件夾
  • touch 創建文件

    • 若是文件已存在,則只更改文件創建時間
  • rm 刪除目錄(刪除之後,不能恢復)

    • -r 遞歸刪除;-f 刪除時候不彈出確認是否;-i 刪除時候添加提示信息

      rmdir (辣雞,只能刪除空文件夾)

  • cp 複製文件、文件夾

    • cp fileA fileB (fileB 無,則創建;fileB 已存在,則覆蓋)
    • cp dirA/ dirB
      • dirB 無 (dirA 文件夾(含) 拷貝到 目錄 dirB)
      • dirB 存在 (dirA 文件夾(不含) 拷貝到 目錄 dirB)
  • mv 移動、改名


顯示文件內容命令 cat / more:

  • cat 把文件內容打印到終端
  • more 瀏覽文件(回車瀏覽下一行;空格翻頁;q 退出)
  • less 和 more 相似
  • head 顯示文件頭部的前 10 行
  • tail 顯示文件尾部 10 行

軟硬鏈接:

軟連接 ln -s:

  • 可以看做 快捷方式

  • ln -s 文件名 快捷方式名 (文件名帶上絕對路勁,快捷方式任何地方都可用)

  • 目錄也可以創建快捷方式

硬鏈接 ln:

  • ln 文件名 硬鏈接名 (不需要帶路徑)


用戶權限,用戶,用戶組 chmod / chown:

  • 目錄必須要有執行權限,纔可以進去
  • 查看所屬用戶 cat /etc/passwd
  • 查看所屬於組 cat /etc/group (看到的 x 表示加密的密碼)
  • chmod 修改文件或者目錄的權限(同命令,在 Linux 可運行,在 Unix 不一定可以通過);含義:u、g、o、a (usr/group/other/all)
    • 默認是使用 a(all) 所有人的權限
      • eg: chmod ugo+x 20200314_205632.png (加減不同權限用逗號)
      • eg: chmod 777 20200314_205632.png (覆蓋權限)
      • eg: chmod -440 20200314_205616.png (加減權限)
  • chown 修改文件所有者或所屬組
    • chown 新的所有者 文件名
    • chown 新的所有者:新的組 文件名
  • chgrp 修改文件所屬組(可以看做弱一點的命令)
    • chgrp 新的組 文件名

文件查找和檢索 find / grep:

  • find 根據文件屬性查找

    • name、type、size、ctime/mtime/atime (創建、修改、訪問日期)、mindepth/maxdepth/ (最淺、深的層數)

      • eg: find ~/ -name “*.txt”
      • eg: find . -type d (七種文件類型:f,d,l,p,s,c,b)
      • eg: find . -size +4k -size -1M (4k < 文件大於 < 1M)
      • eg: find . -ctime -2 (在2天之內創建的文件)
      • eg: find . -maxdepth 2 (查找當前目錄下最深爲 2 層的目錄)
    • 高級查找:

      • find . -type d -exec ls -l {} ; (ls -l 爲具體的shell 命令,紅色爲固定格式 )

        # exec 也可以替換爲 ok; ok還會彈出確認提示,要加上分號
        find . -type d -exec 命令 {} \;  
        find . -type d -ok 命令 {} \;  
        
      • find . -type d | xargs shell命令 (用管道效率比上面高)

  • grep 根據文件內容查找

    • grep -r (有文件夾) ”查找的內容“ 搜索路徑 -n; (-n 顯示匹配到的字符串的行數)
      • eg: grep -r “aa” ~/Desktop -n (文件夾可以沒有)

壓縮包的管理:

Linux 常見壓縮格式 .gz / .bz2:

  • .gz --gzip 工具壓壓縮出來的
  • .bz2 --bzip2 工具壓壓縮出來的
  • 上面兩個命令,只能壓縮文件,很弱,一般是被間接使用

常用壓縮命令 tar / rar / zip:

總結:

壓縮:

tar zcvf 壓縮包名 原材料 (若含文件夾,壓縮則需要 -r)

rar a 壓縮包名 原材料 (若含文件夾,壓縮則需要 -r)

zip 壓縮包名 原材料 (若含文件夾,壓縮則需要 -r)

解縮:

tar zxvf 壓縮包名 -C 解壓路徑

rar x 壓縮包名 解壓路徑

unzip 壓縮包名 -d 解壓路徑


  • tar –壓縮解壓
    • 參數:
      • c -創建壓縮文件
      • x -釋放壓縮文件
      • v -打印提示信息(可不寫)
      • f -指定壓縮包的名字
      • z -使用 gzip 壓縮文件 -xxx.tar.gz
      • j -使用 bzip 壓縮該文件 -xxx.tar.bz2
    • 壓縮:
      • tar 參數 壓縮包名字 原材料
      • tar zcvf test.tar.gz A b.txt c.png d.exe
    • 解壓:
      • -C -解壓目錄
      • tar zxvf test.tar.gz -C 解壓目錄

  • rar –壓縮解壓
    • 壓縮: rar a 壓縮包名(不用指定後綴) 壓縮內容 (有目錄則加 -r 參數)
    • 解壓: rar x 壓縮包名 解壓目錄

  • zip –壓縮解壓
    • 壓縮: zip 參數 壓縮包名 原材料
    • 解壓縮: unzip 解壓文件 -d 解壓路徑

系列地址:

https://github.com/xmuli/linuxExample

歡迎 star 和 fork 這個系列的 linux 學習,附學習由淺入深的目錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章