linux命令整理
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命令整理