1. 程式人生 > >linux命令整理

linux命令整理

遞歸 家目錄 ddr 找文件 num 過濾 -- 同時 mtime

1. mkdir ##創建目錄

命令 【參數】 路徑文件

參數:

mkdir -p ##遞歸創建

mkdir -v ##顯示創建目錄的過程

示例:

[root@XM ~]# mkdir /data

[root@XM ~]# mkdir -pv test/{1..3}/{4..6} ##同時創建多個目錄及子目錄

mkdir: created directory `test‘

mkdir: created directory `test/1‘

mkdir: created directory `test/1/4‘

mkdir: created directory `test/1/5‘

mkdir: created directory `test/1/6‘

mkdir: created directory `test/2‘

mkdir: created directory `test/2/4‘

mkdir: created directory `test/2/5‘

mkdir: created directory `test/2/6‘

mkdir: created directory `test/3‘

mkdir: created directory `test/3/4‘

mkdir: created directory `test/3/5‘

mkdir: created directory `test/3/6‘

2. ls ##顯示文件或目錄

命令 【參數】 路徑文件

參數:

ls -ld ##以長格式顯示目錄

ls -a ##顯示隱藏文件,顯示文件的索引號

ls -pF ##給不同類型文件結尾加不同的符號

ls -t ##按最近時間修改顯示

ls -r ##翻轉排序

ls -lrt ##顯示最近創建的目錄或文件

ls -u ##最後訪問時間

示例:

[root@XM ~]# ls -ld /data

drwxr-xr-x. 2 root root 4096 Jan 23 13:48 /data

3. cd ##切換目錄層次

cd - ##返回到上次目錄

cd ~ ##切換到root的家目錄

cd . ##當前目錄

cd .. ##上級目錄

4. pwd ##顯示當前的路徑

[root@XM 123]# pwd
/root/123

5. touch ##創建文件

示例1:

[root@GHJC ~]# touch ett.txt

[root@GHJC ~]# ll -d ett.txt

-rw-r--r--. 1 root root 0 Apr 26 12:29 ett.txt

示例2:

[root@XM 123]# touch mm{1..5}
[root@XM 123]# ll
total 0
-rw-r--r-- 1 root root 0 Jan 2 13:35 mm1
-rw-r--r-- 1 root root 0 Jan 2 13:35 mm2
-rw-r--r-- 1 root root 0 Jan 2 13:35 mm3
-rw-r--r-- 1 root root 0 Jan 2 13:35 mm4
-rw-r--r-- 1 root root 0 Jan 2 13:35 mm5

6. echo ##打印輸出內容(printf復雜的輸出),配合“>或>>”可以為文件覆蓋及追加內容,“>”意思為重定向,會清除文件裏所有以前數據;“>>”為內容追加,文件結尾加入內容,不會刪除己有的文件內容

命令 參數 " " 路徑文件

參數:

echo -n ##不換行

echo -e ##可以指定特殊字符(\t,\n等)

>或1> 重定向,會清除文件裏所有以前數據,增加新數據。

>>或1>> 追加輸出重定向,文件結尾加入內容,不會刪除己有文件內容。

<0 輸入重定向

<<追加輸入重定向

2> 錯誤重定向

2>> 錯誤追加重定向

標準輸入(stdin):代碼為0,使用<或<<數據流向從右向左。

正常輸出(stdout):代碼為1, 使用>或>>數據流向從左向右

錯誤輸出(stderr):代碼為2,使用2 >或2>>箭頭的指向就是數據的流向

ech 111 1>xiaomi.txt 2>xiaomi1.txt //錯誤的ech 在xiaomi.txt

>/dev/null 2>&1 等價於 1>/dev/null 2>/dev/null

示例1:

[root@GHJC ~]# echo "123" >>ett.txt

[root@GHJC ~]# cat ett.txt

linuxxinshou

123

[root@NGINX-Y data]# echo "123"

123

7. cat ##查看文件內容

參數:

cat -n ##顯示行號

[root@XM 123]# cat >>e.txt<<EOF
> 123
> 321
> 456
> 789
> EOF

8. xargs ##從標準輸入獲取內容

示例

[root@XM 123]# xargs -n2 <e.txt ##-n(幾組幾行)

123 321
456 789
[root@XM 123]# xargs -n1 <e.txt
123
321
456
789
[root@XM 123]# xargs -n3 <e.txt
123 321 456
789

示例:

[root@XM ~]# echo stu{1..10}|xargs -n1 >>1.txt
[root@XM ~]# cat 1.txt
1t 2t 3t 4t 5t 6t 7t 8t 9t 10t
stu1
stu2
stu3
stu4
stu5
stu6
stu7
stu8
stu9
stu10

9. cp ##拷貝文件或目錄

參數:

cp -a ##拷貝目錄,相當於-apr

cp -d ##若源文件為鏈接文件(link file),則復制鏈接文件屬性而非檔案本身

cp -f ##強制,若目標檔案已經存在且無法開啟,則移除後再嘗試

cp -i ##若目標文件已經存在,在覆蓋時會先詢問

cp -p ##連同檔案的屬性一起復制過去,而非使用默認屬性

cp -r ##遞歸,用於復制目錄

cp -u ##若目標文件存在,則目標文件比源文件舊時才復制

示例:

[root@XM 123]# cp e.txt /tmp/
[root@XM 123]# ll /tmp/e.txt
-rw-r--r-- 1 root root 16 Jan 2 14:07 /tmp/e.txt

10. mv ##移動單個目錄或文件

參數;

mv -i:如果目的文件已存在,詢問是否覆蓋

mv -f:強制執行

mv -u:若目的文件存在,則比源文件新才會移動

11. rm ##刪除文件或目錄

參數:

rm -f ##強制刪除文件

rm -r ##遞歸刪除,用於刪除目錄

rm -fr ##強制刪除指定的目錄或文件

rmdir ##刪除空目錄

12. find ##在指定目錄下查找文件

參數:

find / -type ## -type 文件類型

find / -type f ## f 文件

find / -type d ## d 目錄

find / -type c ## c 是字符設備

find / -type b ## b 塊設備、磁盤

find / -type s ## s 網絡

find / -type l ## l 鏈接文件

基於目錄深度搜索

find / -maxdepth 2 -type d ##搜索2級目錄

find / -maxdepth 2 -type f ##搜索當前目錄及下一級目錄的所有文件

根據文件時間戳進行搜索

訪問時間(-atime/天,-amin/分鐘):最後訪問時間

修改時間(-mtime/天,mmin/分鐘):文件最後一次修改時間

變化時間(-ctime/天,cmin/分鐘):文件數據元(例如權限)狀態改變時間

find / -type f -atime -7 ##搜索7天內被訪問的所有文件

find / -type f -atime 7 ##搜索7天當天被訪問的所有文件

find / -type f -atime +7 ##搜索7天以前被訪問的所有文件

find / -type f -amin +10 ##搜索訪問時間超過10分鐘的所有文件

根據文件大小進行匹配

文件大小單元 -size

b ##塊(512字節)

c ##字節

w ##字(2字節)

k ##千字節

M ##兆字節

G ##G字節

find . -type f -size +10k ##搜索大於10KB的文件

find . -type f -size 10k ##搜索等於10KB的文件

find . -type f -size -10k ##搜索小於10KB的文件

根據文件權限進行匹配

find / -type d -perm 777 ##搜索出權限為777的目錄

find / -type f -perm 666 ## 搜索出權限為666的文件

find / -type f -name "*.php" ! -perm 644 ##搜索出權限不是644的php文件

借助-exec選項與其他目錄結合使用

示例1: -ok會提示,-exec不會提示

[root@XM ~]# find . -type d -name "*3" -ok rm {} \;
< rm ... ./123 > ? y
rm: cannot remove ‘./123’: Is a directory

[root@XM ~]# find . -type d -name "*3" -exec rm -fr {} \;
find: ‘./123’: No such file or directory

示例2:

[root@XM ~]# find . -type f -name "*.txt"|xargs ls -l
-rw-r--r-- 1 root root 343 Dec 22 16:40 ./name.txt

13. grep ##按行過濾

參數:

grep -v ##排除,不接參數按行過濾自己想要的

grep -E ##同時過濾多個字符串;

grep -vE ##同時排除多個字符串

grep -i ##不區分大小寫

grep -Ei ##不區分大小寫的過濾中間用|隔開等價於小寫的egrep

示例:

[root@XM ~]# xargs -n1 <1.txt
1t
2t
3t
4t
5t
6t
7t
8t
9t
10t
[root@XM ~]# xargs -n1 <1.txt|grep -Ev "1|2"
3t
4t
5t
6t
7t
8t
9t

[root@NGINX-Y ~]# grep 20 -A 10 ett.txt #(先打印出20,再打印之後的10行)-A除了顯示匹配的一行之外,並顯示該行之後的num行

20

21

22

23

24

25

26

27

28

29

30

[root@NGINX-Y ~]# grep 25 -C 5 ett.txt ##先匹配25行,再把25行前後的5行打印出來。 (-C除了顯示匹配的一行之外,並顯示該行之前後的num行

20

21

22

23

24

25

26

27

28

29

30

[root@NGINX-Y ~]# grep 30 -B 10 ett.txt #(先打印出30,再打印之前的10行)-B除了顯示匹配的一行之外,並顯示該行之前的num行

20

21

22

23

24

25

26

27

28

29

30

14. head ##顯示文件頭部,不接參數默認顯示前十行

-n ##行數

示例:

[root@XM ~]# head -2 1.txt
stu1
stu2
[root@XM ~]# head 1.txt
stu1
stu2
stu3
stu4
stu5
stu6
stu7
stu8
stu9
stu10

15. tail ##顯示文件尾部,不接參數默認顯示結尾十行

參數:

-n

tail -f ##跟蹤顯示文件的結尾

示例:

[root@XM ~]# tail -2 1.txt
stu9
stu10

16. sed ##擅長輸出行,刪除,替換,修改,添加

參數:

sed -n ##取消默認輸出

sed -i ##替換文件內容

sed -e ##允許多項編輯

sed -r ##擴展正則

示例1:

[root@XM ~]# sed -n /li/p test.txt #把與li相關的打印出來

liyao

示例2:

[root@XM ~]# sed /oldboy/d test.txt 刪除掉oldboy(不輸出oldboy)

test

liyao

示例3:

[root@XM~]#sed -i ‘s#oldboylinux#oldboywindows#g‘ ett.txt ##替換

[root@XM ~]# cat ett.txt

oldboywindows

示例4:

[root@XM ~]# seq 100 >ett.txt ##輸入

[root@XM ~]# sed -n ‘20,30p‘ e.txt ##打印20-30行的數據
20
21
22
23
24
25
26
27
28
29
30

示例5:

sed 把你想要的內容先保護起來(通過小括號),然後再使用它
[root@XM ~]# echo 123456|sed -r ‘s#(.*)#<\1>#g‘
<123456>

示例6:

[root@XM ~]# sed -n ‘1p;4p‘ e.txt

oldboy

xizi

[root@XM ~]# sed -nr ‘/^o.*|^x.*/p‘ e.txt

oldboy

xizi

17. awk ##擅長處理列

示例:

awk 逗號中算一個整體

技術分享圖片

awk 指定多個分隔符

技術分享圖片

[root@oldboyedu-01 ~]# ifconfig eth0|awk ‘NR==2{print $2}‘
addr:10.0.0.200

[root@oldboyedu-01 ~]# ifconfig eth0|awk -F "[: ]+" ‘NR==2{print $4}‘
10.0.0.200

[root@NGINX-Y ~]# awk ‘NR>19&&NR<31‘ ett.txt

20

21

22

23

24

25

26

27

28

29

30

18. cp ##拷貝文件及目錄(讓覆蓋文件不提示 加反斜線,\cp或/bin/cp這是cp的全路徑)

參數:

cp -a ##拷貝目錄,相當於-apr

cp -p ##連同檔案的屬性一起復制過去,而非使用默認屬性

cp -r ##遞歸,用於復制目錄

示例;

[root@GHJC ~]# cp ett.txt /mfg

[root@GHJC ~]# ll /mfg

total 4

-rw-r--r--. 1 root root 17 Apr 26 14:30 ett.txt

19. alias ##查看和設置別名(別名的作用:通過給危險命令加一些包含參數,防止人為誤操作。把很多復雜的字符串或命令變成一個簡單的字符串或命令。)unalias cp ##刪除cp 的別名(臨時生效)

定義別名

/etc/profile ##全局生效

~/.bashrc ##當前用戶生效

20. which ##查看目錄所在的全路徑

[root@XM ~]# which cp
alias cp=‘cp -i‘
/usr/bin/cp

21. seq ##打印

參數:

seq -s ##指定分隔符,橫著打印

[root@XM ~]# seq 10
1
2
3
4
5
6
7
8
9
10
[root@XM ~]# seq -s ‘ ‘ 10
1 2 3 4 5 6 7 8 9 10
[root@XM ~]# seq -s ‘‘ 10
12345678910

22. uname

[root@XM ~]# uname -r ##查看內核
3.10.0-123.9.3.el7.x86_64

[root@XM ~]# uname -n ##顯示主機名
XM

23. man ##適用於一般命令,非內置命令

help ##適用於內置命令

24. tree

tree -d ##只顯示目錄

tree -dL 1 ##顯示指定的層次目錄

[root@XM ~]# tree -dL 2
.
└── 11
└── 112

2 directories
[root@XM ~]# touch 1.ttt 11/
[root@XM ~]# tree -dL 2
.
└── 11
└── 112

2 directories
[root@XM ~]#
[root@XM ~]# tree -diL 2
.
11
112

25. ps -ef ##查看進程

26. useradd

27. passwd

28. history ##查看歷史記錄

history -d 5 ##刪除指定歷史記錄

history -c ##清空所有

29. mount

30. df

df -h ##查看磁盤剩余空間

df -i ##查看磁盤inode

linux命令整理