天天看點

Linux常用指令 1

文章目錄

      • 1 打開檔案路徑 【cd】
      • 2 檢視路徑檔案 【ls】
      • 3 複制檔案 【cp】
      • 4 移動檔案 【mv】
      • 5 删除檔案 【rm】
      • 6 建立檔案夾 【mkdir】
      • 7 建立/編輯檔案 【vi】
      • 8 檢視檔案 【cat】
      • 9 檢視檔案2 【tail】
      • 10 更改檔案權限 【chmod】
      • 11 更改檔案所有者 【chown】
      • 12 檔案壓縮/解壓 【tar】
      • 13 檔案上傳/下載下傳 【rz/sz】
      • 14 檔案查找【find】

1 打開檔案路徑 【cd】

格式:

cd 【文檔路徑】

說明: 檔案路徑類型說明如下

說明 示例
檔案路徑

cd /usr

目前路徑

cd ./

自己的 home 目錄

cd ~

上一層目錄

cd ../

子級目錄

cd ./sub

或者

cd sub

2 檢視路徑檔案 【ls】

格式:

ls 【 -a | -d | -l | -lh | -iR | -r | -F】 【檔案路徑 | 檔案名】

說明:

  1. 【】

    内資訊為可選内容,可選項使用

    |

  2. ls

    指令時,僅顯示目前目錄下非隐藏檔案或檔案夾名稱,示例指令:

    ls

  3. 【 -a | -d | -l | -lh | -iR | -r | -F】

    詳細說明如下
指令 說明 示例
-a 查詢所有的檔案/檔案夾,也包括以.開頭的隐藏檔案

ls -a

-d 隻顯示目前目錄自身,通常和

-l

搭配使用來顯示目前目錄自身的權限和屬性資訊

ls -d

或者

ls-ld

或者

ll -d

-l 查詢檔案的詳細資訊

ls -l

或者

ll

-lh 查詢檔案的詳細資訊,檔案大小帶機關

ls -lh

或者

ll -h

-iR 顯示目錄和子目錄下的檔案(夾)以樹格式輸出

ls -iR

-r 倒叙顯示檔案,可結合

-l

使用

ls -r

或者

ls -lr

或者

ll -r

-F 列出檔案或者目錄,其中目錄會以/結尾,可結合

-l

使用

ls -F

或者

ls -lF

或者

ll -F

  1. 【檔案路徑 | 檔案名】

    後則表示查詢指定路徑或檔案資訊。示例如下:

    檔案路徑:

    ls /home

    檔案名:

    ll /home/test.xml

    或者

    ll *.xml

    (第二個指令指查詢字尾為

    xml

    的檔案清單)
  2. ls -l

    或者

    ll

    指令下檔案清單說明

    示例圖檔:

    Linux常用指令 1

    說明:

    示例以第二條記錄

    drwxr-xr-x 2 root root 6 11月 5 2016 etc

    為例
字段示例 說明 備注

d

檔案類型

-

普通檔案 ,

d

目錄檔案,

p

管理檔案,

l

連結檔案,

b

塊裝置檔案,

c

字元裝置檔案,

s

嵌套檔案

rwx

所有者權限

r

可讀 ,

w

可寫,

x

可執行,

-

無權限

r-x

組使用者權限 指與所有者同使用者組中除所有者擁有的權限,具體含義同“所有者權限”

r-x

其他使用者權限 指除目前所有者所在使用者組外,其他組使用者可以進行通路的權限

2

連結數或子目錄數量 若為檔案則是連結數量; 若為檔案夾則是該檔案夾下一級子目錄數量
·

root

使用者名 檔案或檔案夾所有者使用者名

root

使用者組名 檔案或檔案夾所有者使用者所在組名

6

檔案大小 最小機關為位元組

11月 5 2016

時間 檔案最新修改時間

etc

檔案或檔案夾名

拓展:

ls -l | grep "^-" | wc -l

—— 統計目前目錄檔案數量(不包括目錄)

ls -lR| grep "^-" | wc -l

—— 統計目前目錄下檔案數量(包括子目錄)

ls -lR | grep "^d" | wc -l

—— 統計目前目錄下檔案夾數量(包括子目錄,不需要子目錄将

-lR

改為

-l

即可)

注:

1) 指令内

grep "^-"

表示隻統計一般檔案,

grep "^d"

表示隻統計檔案夾

2) 指令内

wc -l

表示統計輸出資訊的行數,統計結果就是輸出資訊的行數,一行資訊對應一個檔案,是以就是檔案的個數。是以該指令也可用于統計某檔案内資料行數,例如:

wc -l test.txt

3 複制檔案 【cp】

格式:

cp【 -a | -d | -f | -i | -p | -r | -l】 【原檔案或路徑】 【目标檔案或路徑】

說明:

【 -a | -d | -f | -i | -p | -r | -l】

說明如下

指令 說明 示例
-a 它保留連結、檔案屬性,并複制目錄下的所有内容。其作用等于

dpr

參數組合,通常在複制目錄時使用

cp -a /home/a /home/b

-d 複制時保留連結。這裡所說的連結相當于 Windows 系統中的快捷方式

cp -d /home/a /home/b

-f 覆寫已經存在的目标檔案而不給出提示

cp -f /home/a /home/b

-i

-f

選項相反,在覆寫目标檔案之前給出提示,要求使用者确認是否覆寫,回答

y

時目标檔案将被覆寫

cp -i /home/a /home/b

-l 不複制檔案,隻是生成連結檔案

cp -l /home/a /home/b

-p 除複制檔案的内容外,還把修改時間和通路權限也複制到新檔案中

cp -p /home/a /home/b

-r 若給出的源檔案是一個目錄檔案,此時将複制該目錄下所有的子目錄和檔案

cp -r /home/a /home/b

注: 指令屬性可互相結合使用。例如:

cp -rf /home/a /home/b

4 移動檔案 【mv】

格式:

mv【 -b | -f | -i | -n | -u】 【原檔案或路徑】 【目标檔案或路徑】

說明:

  1. 【 -b | -f | -i | -n | -u】

    說明如下
指令 說明 示例
-b 當目标檔案或目錄存在時,在執行覆寫前,會為其建立一個備份

mv -b /home/a /home/b

-i 如果指定移動的源目錄或檔案與目标的目錄或檔案同名,則會先詢問是否覆寫舊檔案,輸入 y 表示直接覆寫,輸入 n 表示取消該操作。

mv -i /home/a /home/b

-f 如果指定移動的源目錄或檔案與目标的目錄或檔案同名,不會詢問,直接覆寫舊檔案。

mv -f /home/a /home/b

-n 不要覆寫任何已存在的檔案或目錄。

mv -n /home/a /home/b

-u 當源檔案比目标檔案新或者目标檔案不存在時,才執行移動操作。

mv -u /home/a /home/b

  1. 檔案路徑組合模式
源類型 目标類型 說明 示例
檔案 檔案 将原檔案名更換為目标檔案名

mv /home/a.txt /home/b.txt

檔案 路徑 将原檔案移動到目标路徑下

mv /home/a.txt /root/

路徑 路徑 若目标路徑存在,則将原路徑移動到目标路徑下;若不存在,則将原路徑更名為目标路徑

mv /test1 /test2/

路徑 檔案 錯誤寫法

5 删除檔案 【rm】

格式:

rm【 -f | -i | -r】 【檔案或路徑】

說明:

  1. 【 -f | -i | -r】

    說明如下
指令 說明 示例
-f 即使原檔案屬性設為唯讀,亦直接删除,無需逐一确認。

rm -f /home/a

-i 删除前逐一詢問确認,輸入 y 表示直接删除,輸入 n 表示取消該操作。

rm -i /home/a

-r 将目錄及以下之檔案亦逐一删除。

rm -r /home/a

6 建立檔案夾 【mkdir】

格式:

mkdir 【-p】【檔案夾名】

說明:

-p

: 表示確定目錄名稱存在,不存在的就建一個。該指令屬性可省略,具體差別如下:

指令 說明

mkdir -p /home/a/b

檔案夾

a

存在,正常建立;不存在,建立檔案夾檔案夾

a

mkdir /home/a/b

s檔案夾

a

存在,正常建立;不存在,報錯

7 建立/編輯檔案 【vi】

格式:

vi 【檔案名】

說明: 指定檔案名存在,則在編輯儲存後,更新指定檔案名内容;若指定檔案名不存在,則在編輯儲存後,建立對應檔案。

基本操作:

vi 【檔案名】

—— 進入指令行模式

i

—— 進入編輯模式

滑鼠按

ESC

鍵 —— 從編輯模式,退回指令行模式

:wq

—— 從指令行模式,儲存編輯退出

:q

—— 退出指令行模式(未對檔案做任何編輯操作時可用)

:q!

—— 強制退出指令行模式,不存盤

注:【vi】指令編輯功能詳細,請參考 https://m.php.cn/article/452749.html

8 檢視檔案 【cat】

格式:

cat【 -A | -b | -e | -E | -n | -s | -t | -T | -v】 【檔案名】

說明:

指令 說明 示例
-A 或 --show-all 等價于

-vET

cat -A /home/a.txt

-b 或 --number-nonblank 和 -n 相似,隻不過對于空白行不編号。

cat -b /home/a.txt

-e 等價于

-vE

選項

cat -e /home/a.txt

-E 或 --show-ends 在每行結束處顯示 $。

cat -E /home/a.txt

-n 或 --number 由 1 開始對所有輸出的行數編号。

cat -n /home/a.txt

-s 或 --squeeze-blank 當遇到有連續兩行以上的空白行,就代換為一行的空白行。

cat -s /home/a.txt

-t 等價于

-vT

cat -t /home/a.txt

-T 或 --show-tabs 将 TAB 字元顯示為 ^I。

cat -T /home/a.txt

-v 或 --show-nonprinting 使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

cat -v /home/a.txt

注: 除常用指令外,

cat

指令還有以下指令操作

cat --version

—— 查詢指令版本

cat --help

—— 查詢指令組合說明

cat dev/null > /home/a.txt

—— 清空

/home/a.txt

檔案内容

cat a.txt > b.txt

—— 将

a.txt

的内容複制到

b.txt

cat /dev/fd0 > test.img

—— 制作軟碟

/dev/fd0

的鏡像檔案

test.img

cat test.img > /dev/fd0

—— 将鏡像檔案

test.img

寫入軟碟

/dev/fd0

9 檢視檔案2 【tail】

格式:

tail【+<行号> | -c <數目> | -f | -n <行數>| -q | -v | -s<秒數> | --pid=<程序号> 】 【檔案名】

說明:

指令 說明 示例
+<行号> 指定行号到文末

tail +20 /home/a.txt

-f 循環讀取。常用于查閱正在改變的日志檔案。

tail -f /home/a.txt

-q 或 --quiet 或 --silent 不顯示處理資訊

tail -q /home/a.txt

-v 顯示詳細的處理資訊

tail -v /home/a.txt

-c<數目> 顯示的位元組數

tail -c 200 /home/a.txt

-n<行數> 顯示檔案的尾部 n 行内容

tail -n 200 /home/a.txt

-s<秒數> 與“-f”選項連用,指定監視檔案變化時間隔的秒數

tail -f -s 5 /home/a.txt

–pid=<程序号> 與“-f”選項連用,當指定的程序号的程序終止後,自動退出tail指令

tail -f --pid=5 /home/a.txt

注: 除常用指令外,

tail

指令還有以下指令操作

tail --version

—— 查詢指令版本

tail --help

—— 查詢指令組合說明

tail dev/null > /home/a.txt

—— 清空

/home/a.txt

檔案内容

tail -n 200 a.txt > b.txt

—— 将

a.txt

的倒數200行内容複制到

b.txt

10 更改檔案權限 【chmod】

格式:

chmod 【權限】 【-c | -f | -v | -R 】 【檔案/路徑名】

說明:

【權限】

—— 待設定權限,由三個0-7的數值組成,分别代表所有者、所有者所在使用者組、其他使用者組權限,例如:777。

權限說明如下:

數字 權限描述 權限編碼(rwx) 二進制值
7 讀 + 寫 + 執行 rwx 111
6 讀 + 寫 rw- 110
5 讀 + 執行 r-x 101
4 隻讀 r– 100
3 寫 + 執行 -wx 011
2 隻寫 -w- 010
1 隻執行 –x 001
000

【-c | -f | -v | -R 】

—— 指令屬性,即權限對應檔案或路徑名操作範圍。

指令屬性說明如下:

指令 說明 示例
-c 若該檔案權限确實已經更改,才顯示其更改動作。

chmod 777 -c /home/a.txt

-f 若該檔案權限無法被更改也不要顯示錯誤訊息

chmod 777 -f /home/a.txt

-v 顯示權限變更的詳細資料

chmod 777 -v /home/a.txt

-R 對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞歸的方式逐個變更)

chmod 777 -R /home/a.txt

11 更改檔案所有者 【chown】

格式:

chown 【-c | -f | -h | -v | -R】 【user】:【group】 【檔案/路徑名】

說明:

【-c | -f | -h | -v | -R 】

—— 指令屬性,即對應檔案或路徑名操作範圍。

指令屬性說明如下:

指令 說明 示例
-c 顯示更改的部分的資訊。

chown -c root:root /home/a.txt

-f 忽略錯誤資訊

chown -f root:root /home/a.txt

-h 修複符号連結

chown -h root:root /home/a.txt

-v 顯示詳細的處理資訊

chown -v root:root /home/a.txt

-R 處理指定目錄以及其子目錄下的所有檔案

chown -R root:root /home/a.txt

【user】

—— 新的檔案擁有者的使用者

【group】

—— 新的檔案擁有者的使用者組(group)

12 檔案壓縮/解壓 【tar】

壓縮格式:

tar -czf 【壓縮後文名.tar.gz】 【待壓縮檔案夾或檔案】

示例:

tar -czf test.tar.gz test

解壓: 根據不同 壓縮檔案解壓指令如下

檔案類型 解壓指令 示例
*.tar

tar –xvf

解壓

tar –xvf test.tar

*.gz

gzip -d

或者

gunzip

解壓

gzip -d test.gz

*.tar.gz 或者 *.tgz

tar –xzf

或者

tar -xzvf

解壓

tar –xzf test.tar.gz

*.bz2

bzip2 -d

或者

bunzip2

解壓

bzip2 -d test.bz2

*.tar.bz2

tar –xjf

解壓

tar –xjf test.tar.bz2

*.Z

uncompress

解壓

uncompress test.Z

*.tar.Z

tar –xZf

解壓

tar –xZf test.tar.Z

*.rar

unrar e

解壓

unrar e test.rar

*.zip

unzip

解壓

unzip test.zip

*.xz

xz -d

解壓

xz -d`test.xz

13 檔案上傳/下載下傳 【rz/sz】

上傳格式:

rz

說明: 執行

rz

指令後會彈出選擇檔案路徑對話框,選擇對應檔案即可上傳至目前路徑下。

下載下傳格式:

sz 【待下載下傳檔案名】

說明: 執行對應指令後,對應檔案會下載下傳至系統使用者下載下傳檔案夾下。

安裝:

rz

sz

指令部分linux系統内并沒有,需要另外下載下傳安裝

  1. 源碼安裝
wget https://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
tar zxvf lrzsz-0.12.20.tar.gz
cd lrzsz-0.12.20
./configure --prefix=/usr/local/lrzsz
make 
make install

cd /usr/bin
ln -s /usr/local/bin/lrz rz
ln -s /usr/local/bin/lsz sz
           
  1. yum安裝(适用于CentOS系統)
yum install -y lrzsz
           

安裝詳細參考 https://zhuanlan.zhihu.com/p/347789946

14 檔案查找【find】

格式:

find 【路徑】 【表達式】 【外部指令】

說明:

【路徑】

說明:路徑指需要查詢内容所在的路徑。

a. 若目前路徑則用

.

或者

./

代替。

b. 可同時查詢多個目錄用空格分隔,例如:

find /etc /home /usr -name *txt

【表達式】

說明:表達式主要指需要查找的檔案篩選條件,具體說明如下

指令 說明 示例
mount或 -xdev 隻檢查和指定目錄在同一個檔案系統下的檔案,避免列出其它檔案系統中的檔案

find . mount

或者

find . -xdev

-amin <分鐘數> 在過去設定分鐘内被讀取過

find . -amin 10

-anewer <檔案名> 比設定檔案更晚被讀取過的檔案

find . -anewer test.txt

-atime <天數> 在過去設定天數内被讀取過的檔案

find . -atime 10

-cmin <分鐘數> 在過去設定分鐘内被修改過

find . -cmin 10

-cnewer <檔案名> 比設定檔案更新的檔案

find . -cnewer test.txt

-ctime <天數> 在過去 設定天數内建立的檔案

find . -ctime 10

-mtime <天數> 在過去設定天數内修改過的檔案

find . -mtime 10

-empty 空的檔案

find . -empty

-gid <組id> or -group <組名> 屬于指定分組的檔案

find . -gid 1000

-ipath p或者 -path p 查找路徑名稱符合 p 的檔案,ipath 會忽略大小寫

find . -ipath *static

-name name或者 -iname name 查找檔案名稱符合 name 的檔案。iname 會忽略大小寫

find . -name *txt

-size <大小> 查找指定大小檔案。可用機關:b 代表 512 位元組的區塊,c 表示字元數,k 表示 kilo bytes,w 是二個位元組

find . -size 10b

-type <類型> 查找指定類型檔案。d: 目錄,c: 字型裝置檔案,b: 區塊裝置檔案,p: 具名貯列,f: 一般檔案,l: 符号連結,s: socket

find . -size 10b

-pid <process id 值> 查找指定process id 值 的檔案

find . -pid 100

-perm <權限制> 查找指定權限檔案,權限制設定參考10 更改檔案權限 【chmod】的權限說明

find . -perm 777

【外部指令】

說明:該部分主要設定當找到對應檔案之後需要進行的後續操作。使用指令主要有

-exec

-ok

-exec 【其他指令】 {} \;

—— 查找到指定檔案後直接執行後續指令。例如:

find . -type f -perm 777 -exec ls -l {} \;

-ok【其他指令】 {} \;

—— 查找到指定檔案後是否需要後續操作會提供确認對話框。例如:

find /var/log -type f -mtime +7 -ok rm {} \;

拓展使用: 使用

find

指令可将查詢到的資訊存儲到指定檔案中,例如:

find . > test.txt

繼續閱讀