深入淺出Linux作業系統指令與目錄結構(二)

2022-01-08 10:00:17

✍、目錄腦圖

在這裡插入圖片描述

  • 文章參考韓順平老師的Linux2021年度課程:B站連結直達
  • 當前採用 centos 7.6 虛擬機器器環境搭建,之後進行伺服器真實環境記錄

深入淺出Linux作業系統指令與目錄結構

1、Linux目錄結構

  1. Linux 的檔案系統是採用級層式的樹狀目錄結構,在此結構中的最上層是根目錄 /,然後在此目錄下再建立其他的目錄
  2. 在Linux世界裡,一切皆檔案

1.1、具體目錄結構

在這裡插入圖片描述

[常用的如下]

  • /bin (/usr/bin、/usr/local/bin)

    • 是Binary的縮寫,這個目錄存放著最經常使用的命令
  • /sbin (/usr/sbin、/usr/local/sbin)

    • Super User 的意思,這裡存放的是系統管理員使用的系統管理程式
  • /home

    • 存放普通使用者的主目錄,在Linux中沒個使用者都有一個自己的目錄,一般該目錄名是以使用者的賬號命名
  • /root

    • 該目錄為系統管理員,也稱作超級許可權者的使用者主目錄
  • /lib

    • 系統開機所需要最基本的動態連線共用庫,其作用類似於Windows裡的DLL檔案。幾乎所有的應用程式都需要用到這些共用庫
  • /lost+found 這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案

  • /etc 所有的系統管理所需要的組態檔和子目錄。比如安裝 mysql資料庫,mysql的組態檔會存放在此

  • /usr 這是一個很重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似於 windows 下的 program files 目錄

  • /boot 存放的是啟動 Linux 時使用的一些核心檔案,包括一些連線檔案以及映象檔案

  • /media Linux系統會自動識別一些裝置,例如U盤,光碟機等,當識別後,Linux會把識別的裝置掛載到這個目錄下

  • /mnt 系統提供該目錄是為了讓使用者臨時掛載別的檔案系統的,我們可以將外部的儲存掛載在 /mnt/ 上,然後進入該目錄就可以檢視內容了。例如我們之前的共用資料夾 D:/myshare

  • /usr/local 這是另一個給主機額外安裝軟體所安裝的目錄,一般是通過編譯原始碼方式安裝的程式


  • /proc 這個目錄是一個虛擬目錄,它是系統記憶體的對映,存取這個目錄來獲取系統資訊

  • /srv service的縮寫,該目錄存放一些服務啟動之後需要提取的資料

  • /sys 這是Linux2.6核心的一個很大的變化,該目錄下安裝了2.6核心中新出現的一個檔案系統sysfs

  • /tmp 這個目錄是用來存放臨時檔案的

  • /dev 類似於windows的裝置管理器,把所有的硬體用檔案的形式儲存

  • /opt 這是給主機額外安裝軟體所存放的目錄。如安裝oracle資料庫就可以放到該目錄下,預設為空

  • /var 這個目錄中存放著在不斷擴充著的東西,習慣將經常被修改的目錄放在這個目錄下。包括各種紀錄檔檔案

  • /selinux[security-enhanced linux] SELinux 是一種安全子系統,它能控制程式只能存取特定檔案,有三種工作模式,可以自行設定

1.2、Linux遠端登入

說明:公司開發時候,具體的應用場景是這樣的:

  1. Linux伺服器是開發小組共用
  2. 正式上線的專案是執行在公網
  3. 因此程式設計師需要遠端登入到Linux進行專案管理或者開發

遠端登入使用者端有 Xshell6,Xftp6,我們學習使用Xshell和Xftp6

1.2.1、下載Xshell

  1. 開啟網站:https://www.netsarang.com/en/free-for-home-school/

    填寫名字和郵箱,選擇下載Xshell、Xftp、或者兩個都下載

在這裡插入圖片描述

  1. 開啟我們的郵箱

在這裡插入圖片描述

1.2.2、安裝Xshell

  • Xshell的安裝比較簡單,基本無腦下一步即可,這裡就不進行記錄了

在這裡插入圖片描述

1.2.3、使用Xshell

  1. 我們在 Linux 系統中開啟終端,輸入 ifconfig,拿到Linux系統的 ip

在這裡插入圖片描述

  1. 在 Windows 系統中開啟 CMD,我們輸入 ping 192.168.160.128 ,測試主機和Linux虛擬機器器是否網路連通

在這裡插入圖片描述

  1. 如果成功,基本我們使用Xshell遠端連線Linux是沒有問題的,如果ping失敗,使用Xshell遠端連線Linux也必然失敗。

在這裡插入圖片描述

  1. 新建對談,注意主機那裡必須要填我們上方 Linux 系統的 ip,協定為SSH

在這裡插入圖片描述

  1. 雙擊右側我們的對談

在這裡插入圖片描述

  1. 點選接受並儲存,登入我們的root賬戶和密碼

在這裡插入圖片描述

  1. 登入成功,我們可以ls檢視列表

在這裡插入圖片描述

  1. 當然我們也可以調節終端字型大小

在這裡插入圖片描述

1.2.4、下載Xftp

Xftp是一個基於windows平臺的功能強大的SFTP、FTP檔案傳輸軟體。使用了Xftp之後,windows使用者能安全的在 UNIX/Linux 和 Windows PC 之間進行檔案傳輸。

在這裡插入圖片描述

1.2.5、安裝Xftp

安裝與Xshell相同,一直下一步即可。

1.2.6、使用Xftp

  1. 新建對談

在這裡插入圖片描述

  1. 連線

在這裡插入圖片描述

  1. 輸入root使用者名稱和密碼,進入後如果出現了中文亂碼如下圖

在這裡插入圖片描述

  1. 點選設定,選擇當前對談,選項,編碼改為UTF-8

在這裡插入圖片描述

在這裡插入圖片描述

  1. 如下,就不會出現中文亂碼了

在這裡插入圖片描述

2、Linux命令

2.1、vi和vim

Linux系統會內建vi文字編輯器

Vim 具有程式編輯的能力,可以看做是Vi的增強版本,可以主動的以字型顏色辨別語法的正確性,方便程式設計。程式碼補完、編譯及錯誤跳轉等方便變成的功能特別豐富。

2.2、vi和vim三種模式

  1. 正常模式

    • 以vim開啟一個檔案就直接進入一般模式了(這是預設的模式)。在這個模式中,你可以使用[上下左右]按鍵來移動遊標,你可以使用[刪除字元]和[刪除整行]來處理檔案內容,也可以使用[複製、貼上]來處理檔案資料。
  2. 插入模式

    • 按下 i、I、o、O、a、A、r、R等任何一個字母之後才會進入編輯模式,一般來說按 i 即可
  3. 命令列模式

    • 在這個模式當中,可以提供你相關指令,完成讀取、存檔、替換、離開vim、顯示行號等的動作則是在此模式中達成的。
    • 先按ESC,再輸入冒號: 進入此模式

2.2.1、案例

我們在XShell中使用Vim開發一個 Hello.java 程式並儲存。

  1. 使用XShell 連線上我們的Linux系統,輸入如下命令回車
vim Hello.java  使用vim工具建立Hello.java檔案

在這裡插入圖片描述

  1. 進入到正常模式

在這裡插入圖片描述

  1. 輸入小寫 i,進入插入模式

在這裡插入圖片描述

  1. 書寫程式碼,寫完程式碼按ESC,然後輸入:,再輸入wqwq代表寫入並退出

在這裡插入圖片描述

  1. ls 檢視列表

在這裡插入圖片描述

2.3、vim快捷鍵

在這裡插入圖片描述

vi和vim快捷鍵

2.3.1、拷貝

  1. 拷貝當前行 yy,貼上p

在這裡插入圖片描述

  1. 輸入5yy,表示拷貝當前行向下的 5 行

在這裡插入圖片描述

  1. 效果如下

在這裡插入圖片描述

2.3.2、刪除

  1. 刪除當前行dd

在這裡插入圖片描述

在這裡插入圖片描述

  1. 刪除當前行向下的 5行:5yy

2.3.3、查詢

  1. 在檔案中查詢某個單詞 [命令列下/關鍵字,回車查詢,輸入 n 就是查詢下一個]

在這裡插入圖片描述

  1. 輸入 /hello ,回車,表示在檔案中查詢 hello 這個單詞

在這裡插入圖片描述

2.3.4、設定行號

  1. 設定檔案的行號 [命令列下:set nu]
  2. 取消檔案的行號 [命令列下:set nonu]

在這裡插入圖片描述

在這裡插入圖片描述

2.3.5、定位

編輯 /etc/profile 檔案,在一般模式下使用快捷鍵到該檔案的最末行[G]和最首行[gg]

  1. 進入 etc 下面的 profile 檔案

在這裡插入圖片描述

  1. 進入檔案即是一般模式,此時輸入 G ,即可定位至檔案末行

在這裡插入圖片描述

  1. 輸入gg 進入檔案首行

在這裡插入圖片描述

  1. 將遊標移動到 20 行,在一般模式下輸入 20,再輸入shift+g

在這裡插入圖片描述

2.3.6、復原

  1. 在一個檔案中輸入 QXL,復原這個動作。在一般模式下輸入u

在這裡插入圖片描述

  1. 先按ESC由插入模式回到一般模式,然後按u復原剛才的輸入

在這裡插入圖片描述

在這裡插入圖片描述

2.4、關機重新啟動

shutdown -h now立即進行關機
shutdown -h 1「hello,1分鐘後會關機」
shutdown -r now現在重新啟動計算機
halt關機
reboott重新啟動
sync把記憶體的資料同步到磁碟

注意:

  1. 不管是重新啟動還是關機,首先要執行sync命令,把記憶體中的資料寫到磁碟中
  2. 目前的 shutdown/reboot/halt 等命令已經在關機前進行了 sync,但是還是建議手動執行sync

在這裡插入圖片描述

2.5、登入登出

  1. 登入時候儘量少用root賬號登入,因為它是系統管理員,最大的許可權,避免操作失誤,可以利用普通使用者登入,登入後再使用 su - 使用者名稱 命令來切換成系統管理員身份

在這裡插入圖片描述

  1. 在提示符下輸入 logout 即可登出使用者

在這裡插入圖片描述

使用細節:

  1. logout 登出指令在圖形級別下無效(也就是在Linux右鍵開啟終端的視窗中輸入無效)

2.6、使用者管理

Linux 系統是一個多使用者多工的作業系統,任何一個要使用系統資源的使用者,都必須首先向系統管理員申請一個賬號,然後以這個賬號的身份進入系統。

2.6.1、新增使用者

基本語法:

useradd 使用者名稱
  1. 我們使用 root 使用者進入 home 資料夾,檢視當前的使用者列表

在這裡插入圖片描述

  1. 新增一個使用者 milan,預設該使用者的家目錄在 /home/milan

在這裡插入圖片描述

細節說明:

當建立使用者成功後,會自動的建立和使用者同名的家目錄。

也可以通過 useradd -d 指定目錄 指定使用者名稱,給新建立的使用者指定家目錄。

在這裡插入圖片描述

2.6.2、指定/修改密碼

基本用法:

passwd 使用者名稱
  1. 給 milan 指定密碼

在這裡插入圖片描述

2.6.3、刪除使用者

基本語法:

userdel 使用者名稱
  1. 刪除使用者milan,但是要保留家目錄userdel milan
  2. 刪除使用者以及使用者主目錄userdel -r milan(這個操作一定要謹慎)

2.6.4、查詢使用者

基本語法:

id 使用者名稱

請查詢root資訊: id root

2.6.5、切換使用者

基本語法:

su - 使用者名稱

切換到milan使用者:su - milan

說明:

  • 從許可權高的使用者切換到許可權低的使用者,不需要輸入密碼,反之需要
  • 當需要返回到原來使用者時,使用 exit/logout指令

2.6.6、檢視當前登入使用者

基本語法:

whoami/who am I

2.6.7、使用者組

類似於角色,系統可以對有共性的多個使用者進行統一的管理

1、新增組

指令:groupadd 組名

2、刪除組

指令:groupdel 組名

3、增加使用者時直接加上組

指令:useradd -g 使用者組 使用者名稱

4、修改使用者的組

基本語法:usermod -g 使用者組 使用者名稱

5、使用者和組相關檔案

  • /etc/passwd檔案:使用者(user)的組態檔,記錄使用者的各種資訊
    • 每行的含義:使用者名稱:口令:使用者標識號:組標識號:註釋性描述:主目錄:登入Shell

在這裡插入圖片描述

  • /etc/shadow檔案:口令的組態檔
    • 每行的含義:登入名:加密口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌
  • /etc/group檔案:組的組態檔,記錄Linux包含的組的資訊
    • 每行含義:組名:口令:組標識號:組內使用者列表

3、實用指令

3.1、執行級別

執行級別:

執行級別說明
0關機
1單使用者
2多使用者狀態沒有網路服務
3多使用者狀態有網路服務
4系統未使用保留給使用者
5圖形介面
6系統重新啟動

常用的執行級別是3和5,也可以指定預設執行級別。

命令:

init[0123456]

通過 init 來切換不同的執行級別,比如由5圖形介面切換到3無圖形介面

在這裡插入圖片描述

3.2、找回root密碼(CentOS7.6)

面試題:如何找回root密碼

  1. 首先,啟動系統,進入開機介面,在介面中按 e 進入編輯介面。

在這裡插入圖片描述

  1. 進入編輯介面,使用鍵盤上下鍵把遊標向下移動,找到以 「Linux16」 開頭內容所在的行數,在行的最後面輸入:init=/bin/sh

在這裡插入圖片描述

  1. 輸入完成後,直接按快捷鍵 Ctrl+X 進入單使用者模式

在這裡插入圖片描述

  1. 接著在遊標閃爍的位置輸入: mount -o remount,rw / (注意各個單詞間有空格),完成後回車,如下圖

在這裡插入圖片描述

  1. 在新的一行最後面輸入passwd,完成後回車。輸入密碼,再次確認密碼即可(密碼長度最好8位元以上,但不是必須的),密碼修改成功後,會顯示 passwd… 的樣式,說明密碼修改成功[我這裡設定為1234567890]

在這裡插入圖片描述

  1. 接著,在遊標閃爍的位置(最後一行中)輸入:touch /.autorelabel (touch與 / 後面有一個空格),完成後按確認鍵

  2. 繼續在遊標閃爍的位置中,輸入:exec /sbin/init(exec與 / 後面有一個空格 ),完成後回車。等待系統自動修改密碼(這個過程時間有點長,耐心等待),完成後系統會自動重新啟動,新的密碼就生效了。

  3. 這樣進入系統,我們就又可以將密碼改為自己熟悉的密碼

在這裡插入圖片描述

3.3、幫助指令

3.3.1、man獲得幫助資訊

  • man 獲得幫助資訊
    • 基本語法:man[幫助或組態檔] (功能描述:獲得幫助資訊)
    • 例如檢視ls 命令的幫助資訊:man ls

在這裡插入圖片描述

在Linux下我們的隱藏檔案是以.開頭的

在這裡插入圖片描述

3.3.2、help指令

基本語法:

help 命令 

功能描述:獲得shell內建命令的幫助資訊

help cd 等

3.4、檔案目錄類

3.4.1、pwd指令

基本語法:

pwd

功能描述:顯示當前工作目錄的絕對路徑

3.4.2、ls指令

基本語法:

ls [選項] [目錄或是檔案]

常用選項:

  • ls -a :顯示當前目錄所有的檔案和目錄,包括隱藏的
  • ls -l :以列表的方式顯示資訊

3.4.3、cd指令

基本語法:cd [引數] (功能描述:切換到指定目錄)

  • cd ~ 或者 cd : 回到自己的家目錄
  • cd .. 回到當前目錄的上一級目錄

3.4.4、mkdir指令

mkdir指令用於建立目錄

基本語法:mkdir [選項] 要建立的目錄

常用選項:-p 建立多級目錄

  1. 例如我們建立一個目錄: /home/dog

在這裡插入圖片描述

  1. 例如我們建立多級目錄:/home/animal/tiger

在這裡插入圖片描述

3.4.5、rmdir指令

rmdir指令刪除空目錄

基本語法:rmdir [選項] 要刪除的空目錄

使用細節:rmdir 刪除的是空目錄,如果目錄下有內容時無法刪除。如果需要刪除非空目錄,需要使用 rm -rf 要刪除的目錄(這個操作請超級謹慎)

  1. 刪除目錄 /home/dog

在這裡插入圖片描述

3.4.6、touch指令

touch指令建立空檔案

基本語法:touch 檔名稱

在這裡插入圖片描述

3.4.7、cp指令

cp指令拷貝檔案到指定目錄

基本語法:cp [選項] source dest

  • source 代表你要拷貝的是哪個檔案
  • dest 代表把檔案拷貝到哪個地方去

常用選項:-r 遞迴複製整個資料夾(其實就是Windows系統的複製資料夾)

  1. 將 /home/hello.txt 拷貝到 /home/bbb 目錄下

在這裡插入圖片描述

強制覆蓋不提示: \cp [選項] source dest

3.4.8、rm指令

rm指令移除檔案或目錄

基本語法:rm [選項] 要刪除的檔案或目錄

常用選項:

  • -r 遞迴刪除整個資料夾
  • -f 強制刪除不提示
  1. 將 /home/hello.txt 刪除
rm /home/hello.txt
  1. 遞迴刪除整個資料夾 /home/bbb
rm -rf /home/bbb [刪除整個資料夾,不提示]

強制刪除不提示的方法:帶上-f 引數即可

3.4.9、mv指令

mv 移動檔案與目錄或重新命名

基本語法:

  • mv oldNameFile newNameFile (功能描述:重新命名)
    • 兩個檔案在同一個目錄,oldNameFile 代表舊的檔名,newNameFile 代表新的檔名
  • mv /temp/movefile /targetFolder (功能描述:移動檔案)
    • 兩個檔案不在同一個目錄,將/temp/movefile 檔案移動到 /targetFolder 目錄
  1. 將 /home/cat.txt 檔案重新命名為 pig.txt
mv cat.txt pig.txt
  1. 將 /home/pig.txt 檔案移動到 /root 目錄下
mv /home/pig.txt /root

3.4.10、cat指令

cat檢視檔案內容

基本語法:cat [選項] 要檢視的檔案

常用選項:-n :顯示行號

  1. 檢視 /etc/profile 檔案內容,並顯示行號
cat -n /etc/profile

在這裡插入圖片描述

細節:

  • cat 只能瀏覽檔案,而不能修改檔案,為了瀏覽方便,一般會帶上 管道命令 |more
cat -n/etc/profile | more

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

3.4.11、more指令

more指令是一個基於VI編輯器的文字過濾器,它以全螢幕幕的方式按頁顯示文字檔案的內容。more指令中內建了若干快捷鍵(互動的指令),如下:

基本語法: more 要檢視的檔案

操作功能說明
空格鍵space代表向下翻一頁
Enter代表向下翻一行
q代表立刻離開more,不再顯示該檔案內容
Ctrl+F向下捲動一屏
Ctrl+B返回上一屏
=輸出當前行的行號
:f輸出檔名和當前行的行號

3.4.12、less指令

less指令用來分屏檢視檔案內容,它的內容與 more 指令類似,但是比 more 指令更加強大,支援各種顯示終端。less指令在顯示檔案內容時,並不是一次將整個檔案載入之後才顯示,而是根據顯示需要載入內容,對於顯示大型檔案具有較高的效率。

基本語法:less 要檢視的檔案

操作功能說明
空格鍵space代表向下翻一頁
[pagedown]代表向下翻一行
[pageup]代表向上翻一行
/字串向下搜尋[字串]的功能,n:向下查詢,N:向上查詢
?字串向上搜尋[字串]的功能,n:向下查詢,N:向上查詢
q離開less這個程式
  1. 採用 less 檢視一個大檔案 雜文.txt

在這裡插入圖片描述

  1. pageup 鍵 和 pagedown 鍵分別代表向上 和 向下一行
  2. /字串 尋找字串

在這裡插入圖片描述

按 n 鍵,向下查詢,按 N 鍵,向上查詢。

3.4.13、echo指令

echo輸出內容到控制檯

基本語法: echo [選項] [輸出內容]

  1. 使用 echo 指令輸出環境變數,比如輸出 $PATH 、主機名$HOSTNAME
echo $PATH
echo $HOSTNAME

在這裡插入圖片描述

  1. 使用 echo 指令輸出 heelo,world
echo "hello,world"

在這裡插入圖片描述

3.4.14、head指令

head用於顯示檔案的開頭部分,預設情況下 head 指令顯示檔案的前10行內容。

基本語法:

  • head 檔案 (功能描述:檢視檔案頭10行內容)
  • head -n 5 檔案 (功能描述:檢視檔案頭5行內容,5可以是任意行數)
  1. 檢視 /etc/profile 的前5行程式碼
head -n 5 /etc/profile

3.4.15、tail指令

tail 用於輸出檔案中尾部的內容,預設情況下 tail 指令顯示檔案的前10行內容

基本語法:

  • tail 檔案 (功能描述:檢視檔案尾10行內容)
  • tail -n 5 檔案 (功能描述:檢視檔案尾5行內容,5可以是任意行數)
  • tail -f 檔案 (功能描述:實時追蹤該檔案的所有更新)
  1. 檢視/etc/profile 最後5行程式碼
tail -n 5 /etc/profile
  1. 實時監控 mydate.txt,看看檔案是否有變化**(Ctrl+C來停止監控)**
tail -f /home/mydate.txt

在這裡插入圖片描述

在這裡插入圖片描述

3.4.16、>指令和>>指令

> 輸出重定向

>> 追加

基本語法:

  • ls -l > 檔案 (功能描述:列表的內容寫入檔案中(覆蓋寫))

  • ls -al>>檔案 (功能描述:列表的內容追加到檔案末尾)

  • cat 檔案1 > 檔案2 (功能描述:將檔案1的內容覆蓋到檔案2)

  • echo "內容">>檔案 (功能描述:將內容追加到檔案)

  1. 將 /home 目錄下的檔案列表,寫入到 /home/info.txt 中,覆蓋寫入
ls -l/home > /home/info.txt [如果info.txt沒有,則會自動建立

3.4.17、ln指令

軟連結也稱為符號連結,類似於 windows 裡的快捷方式,主要存放了連結其他檔案的路徑

基本語法:ln -s [原檔案或目錄][軟連結名] (功能描述:給原檔案建立一個軟連結)

  1. 在 /home 目錄下建立一個軟連結 myroot,連結到 /root 目錄
ln -s/root /home/myroot
  1. 刪除軟連結 myroot
rm /home/myroot

當我們使用pwd指令檢視目錄時,仍然看到的是軟連結所在目錄

3.4.18、history指令

檢視已經執行過歷史命令,也可以執行歷史指令

基本語法:history (功能描述:檢視已經執行過的歷史命令)

  1. 顯示所有歷史命令
history
  1. 顯示最近使用過的10個指令
 history 10
  1. 執行歷史編號為5的指令
!5

3.5、時間日期類

3.5.1、設定當前日期

date指令顯示當前日期

基本語法:

  1. date (功能描述:顯示當前時間)

  2. date+%Y (功能描述:顯示當前年份)

  3. date+%m (功能描述:顯示當前月份)

  4. date+%d (功能描述:顯示當前是哪一天)

  5. date+"+%Y-%m-%d%H:%M:%S" (功能描述:顯示年月日時分秒)

  6. 顯示當前時間資訊

date

在這裡插入圖片描述

  1. 顯示當前時間年月日
date "+%Y-%m-%d"

在這裡插入圖片描述

3.5.2、設定日期

基本語法:date -s 字串時間

  1. 設定系統當前時間,比如設定成 2020-11-23 10:09:09
date -s "2020-11-23 10:09:09"

3.5.3、cal指令

cal指令用於檢視日曆

基本語法:cal[選項] (功能描述:不加選項,顯示本月日曆)

  1. 顯示當前日曆
cal
  1. 顯示2020年日曆
cal 2020

3.6、搜尋查詢類

3.6.1、find指令

find 指令將從指定目錄向下遞迴地遍歷其各個子目錄,將蠻族調節的檔案或者目錄顯示在終端

基本語法: find [搜尋範圍] [選項]

選項如下:

選項功能
-name<查詢方式>按照指定的檔名查詢模式查詢檔案
-user<使用者名稱>查詢屬於指定使用者名稱所有檔案
-size<檔案大小>按照指定的檔案大小查詢檔案
  1. 按照檔名:根據名稱查詢 /home 目錄下的 hello.txt 檔案
find/home -name hello.txt
  1. 按照擁有者:查詢/opt目錄下,使用者名稱稱為 nobody的檔案
find /opt -user nobody
  1. 查詢整個 linux 系統下大於 200M 的檔案 (+n 大於 -n 小於 n 等於,單位有 k,M,G)
find / -size +200M

3.6.2、locate指令

locate指令可以快速定位檔案路徑。locate指令利用事先建立的系統中所有檔名稱及路徑的 locate 資料庫實現快速定位給定的檔案。 locate 指令無需遍歷整個檔案系統,查詢速度較快,為了保證查詢結果的準確度,管理員必須頂起更新 locate 時刻。

基本語法:locate 搜尋檔案

特別說明:由於 locate 指令基於資料庫進行查詢,所以第一次執行前,必須使用 updatedb 指令建立 locate 資料庫

  1. 使用 locate 指令快速定位 hello.txt 檔案所在目錄

在這裡插入圖片描述

which 指令,可以檢視某個指令在哪個目錄下,比如 ls 指令在哪個目錄

which ls

在這裡插入圖片描述

3.6.3、grep指令和管道符號 |

grep 過濾查詢,管道符 「|」 ,表示將前一個命令的處理結果輸出傳遞給後面的命令處理,兩者通常結合使用

基本語法:grep[選項] 查詢內容 原始檔

選項說明:

選項功能
-n顯示匹配行及行號
-i忽略字母大小寫
  1. 在 hello.txt 檔案中,查詢 「yes」 所在行,並且顯示行號
cat /home/hello.txt | grep "yes"

grep -n "yes" /home/hello.txt

3.7、壓縮和解壓類

3.7.1、gzip / gunzip 指令

gzip 用於壓縮檔案,gunzip 用於解壓

基本用法:

  • gzip 檔案 (功能描述:壓縮檔案,只能將檔案壓縮為 *.gz檔案)

  • gunzip 檔案.gz (功能描述:解壓縮檔案命令)

  1. 將 /home 下的 hello.txt 檔案進行壓縮
gzip /home/hello.txt
  1. 將 /home 下的 hello.txt.gz 檔案進行解壓縮
gunzip /home/hello.txt.gz

3.7.2、zip/unzip指令

zip 用於壓縮檔案,unzip用於解壓,這個在專案打包釋出中很有用

基本語法:

  • zip [選項] XXX.zip 將要壓縮的內容 (功能描述:壓縮檔案和目錄的命令)
    • 常用選項: -r 遞迴壓縮,即壓縮目錄
  • unzip [選項] XXX.zip (功能描述:解壓縮檔案)
    • 常用選項:-d<目錄> 指定解壓後檔案的存放目錄
  1. 將 /home 下的所有檔案/資料夾進行壓縮成 myhome.zip
zip -r myhome.zip /home/   [將home目錄及其包含的檔案和子資料夾都壓縮]
  1. 將 myhome.zip 解壓到 /opt/tmp 目錄下
mkdir /opt/tmp
unzip -d/opt/tmp /home/myhome.zip

3.7.3、tar指令

tar指令是打包指令,最後打包後的檔案是 .tar.gz 的檔案

基本語法:tar [選項] XXX.tar.gz 打包的內容 (功能描述:打包目錄,壓縮後的檔案格式 .tar.gz)

選項功能
-c產生.tar打包檔案
-v顯示詳細資訊
-f指定壓縮後的檔名
-z打包同時壓縮
-x解壓.tar檔案
  1. 壓縮多個檔案,將 /home/pig.txt 和 /home/cat.txt 壓縮成 pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
  1. 將 /home 的資料夾壓縮成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
  1. 將 pc.tar.gz 解壓到當前目錄
tar -zxvf pc.tar.gz
  1. 將 myhome.tar.gz 解壓到 /opt/tmp2 目錄下
mkdir /opt/tmp2
tar -zxvf/home/myhome.tar.gz