1 列出目錄內容:ls
2 列印:echo
3 格式化列印:printf
用法:printf format [agrs]
format:
%.ns 輸出字串,n 是輸出幾個字元
%ni 輸出整數,n 是輸出幾個數字
%m.nf 輸出浮點數,m 是輸出的整數字數,n 是輸出的小數字數
%x 不帶正負號的十六進製制值,使用 a 至 f 表示 10 至 15
%x 不帶正負號的十六進製制,使用 a 至 f 表示 10 至 15
%% 輸出單個%
一些常用的空白符:
\n 換行
\r 回車
\t 水平製表符
對齊方式:
%-5s 對引數每個欄位左對齊,寬度為 5
%-4.2f 左對齊,寬度為 4,保留兩位小數
不加橫線"-"表示右對齊。
4 連線檔案和標準輸出列印:cat
-a 檢視所有內容
-b 顯示非空行行號
-n 顯示所有行行號
-t 顯示 tab,用^i 表示
-e 顯示以$結尾
5 倒序列印:tac
6 複製檔案或目錄:cp
-a 歸檔
-b 目標檔案存在建立備份,備份檔案是檔名跟~
-f 強制複製檔案或目錄
-r 遞迴複製目錄
-p 保留原有檔案或目錄屬性
-i 覆蓋檔案之前先詢問使用者
-u 當原始檔比目的檔案修改時間新時才複製
-v 顯示複製資訊
7 建立目錄:mkdir
-p 遞迴建立目錄
-v 顯示建立過程
8 移動檔案或重新命名
-b 目標檔案存在建立備份,備份檔案是檔名跟~
-u 當原始檔比目的檔案修改時間新時才移動
-v 顯示移動資訊
9 估算磁碟檔案空間使用:du
-b 單位 bytes 顯示
-c 產生乙個總大小
-h 易讀格式顯示(k,m,g)
-k 單位 kb 顯示
-m 單位 mb 顯示
-s 只顯示總大小
--max-depth=《目錄層數》,超過層數的目錄忽略
--exclude=file 排除檔案或目錄
--time 顯示大小和建立時間
10 選取檔案的每一行資料
-b 選中第幾個字元、
-c 選中多少個字元
-d 指定分隔符,預設是空格
-f 指定顯示選中字段
示例:列印 b 字元:
# echo "abc" |cut -b "2"
b擷取 abc 字元:
# echo "abcdef" |cut -c 1-3
abc已冒號分隔,顯示第二個字段:
# echo "a:b:c" |cut -d: -f2
11 顯示檔案或檔案系統狀態:stat
12 列印序列化數字:seq
-f 使用 printf 樣式格式
-s 指定分隔符,預設換行符\n
-w 等寬,用 0 填充
13 生成隨機序列:shuf
常用選項:
-i 輸出數字範圍
-o 結果寫入檔案
示例:輸出範圍隨機數:
# seq 5 |shuf
14 排序文字:sort
-f 忽略大小寫
-g 一般數字排序
-m 根據月份比較排序,比如 jan、dec
-h 易讀的大小單位排序,比如 2k、1g
-n 數字比較排序
-r 倒序排序
-k n,m 根據關鍵字排序,從第 n 字段開始,m 字段結束
-o 將結果寫入檔案
-t 指定分隔符
-u 去重重複行
15 從標準輸入讀取寫入標準輸出和檔案:tee
-a 追加到檔案
示例:列印並追加到檔案:
# echo 123 |tee -a a.log
16 連線兩個檔案:join
-a <1 或 2> 除顯示原來輸出的內容外,還顯示指定檔案中沒有相同的字段,預設不顯示
-i 忽略大小寫
-o 按照指定檔案字段顯示
-t 使用字元作為輸入和輸出字段分隔符
-1 連線檔案 1 的指定字段
-2 連線檔案 2 的指定字段
17 合併檔案:paste
-d 指定分隔符,預設是 tab 鍵
-s 將檔案內容平行,tab 鍵分隔
18 輸出檔案前幾行:head
-c 列印前多少 k、bytes
-n 列印前多少行
19 輸出檔案後幾行:tail
-c 列印前多少 k、bytes
-f 實時讀檔案,隨著檔案輸出附加輸出
-n 輸出最後幾行
--pid 與-f 一起使用,表示 pid 死掉後結束
-s 與-f 一起使用,表示休眠多少秒輸出
20 搜尋目錄檔案層次結構:find
格式:find path -option actions
常用選項:
-name 檔名,支援(『*』, 『?』, and 『』)
-type 檔案型別,d 目錄,f 常規檔案等
-perm 符合許可權的檔案,比如 755
-atime -/+n 在 n 天以內/過去 n 天被訪問過
-ctime -/+n 在 n 天以內/過去 n 天被修改過
-amin -/+n 在 n 天以內/過去 n 分鐘被訪問過
-cmin -/+n 在 n 天以內/過去 n 分鐘被修改過
-size -/+n 檔案大小小於/大於,b、k、m、g
-maxdepth levels 目錄層次顯示的最大深度
-regex pattern 檔名匹配正規表示式模式
-inum 通過 inode 編號查詢檔案
動作:-detele 刪除檔案
-exec command {} \; 執行命令,花括號代表當前檔案
-ls 列出當前檔案,ls -dils 格式
-print 完整的檔名並新增乙個回車換行符
-print0 列印完整的檔名並不新增乙個回車換行符
-printf format 列印格式
示例:查詢檔案名:
查詢檔案名並且檔案型別:
# find /tmp -name core -type f -print
查詢檔案名並且檔案型別刪除:
# find /tmp -depth -name core -type f -delete
查詢當前目錄常規檔案並檢視檔案型別:
# find . -type f -exec file '{}' \;
查詢檔案許可權是 664:
# find . -perm 664
查詢大於 1024k 的檔案:
# find . -size -1024k
查詢 3 天內修改的檔案:
# find /bin -ctime -3
排除多個型別的檔案:
# find . ! -name "*.sql" ! -name "*.txt"
或條件查詢多個型別的檔案:
# find . -name '*.sh' -o -name '*.bak'
# find . -regex ".*\.sh|.*\.bak"
# find . -regex ".*\.\(sh\|bak\)"
並且條件查詢檔案:
# find . -name "*.sql" -a -size +1024k
只顯示第一級目錄:
# find /etc -type d -maxdepth 1
通過 inode 編號刪除檔案:
# rm `find . -inum 671915`
# find . -inum 8651577 -exec rm -i {} \;
shell 常用命令
shell 程式設計中使用到得if語句內判斷引數 b 當file存在並且是塊檔案時返回真 c 當file存在並且是字元檔案時返回真 d 當pathname存在並且是乙個目錄時返回真 e 當pathname指定的檔案或目錄存在時返回真 f 當file存在並且是正規檔案時返回真 g 當由pathname...
shell常用命令
1.echo echo 用於輸出,相當於c語言中的printf 用echo輸出變數的值,需要在變數前面加 輸出a的值 a 1echo a shell中變數不需要定義,直接賦值 要用到變數時,需要加 2.管道 命令之間的輸入。將乙個命令的輸出作為另乙個命令的輸入。管道相當於一種過濾功能。3.grep ...
Shell常用命令
shell常用命令總結 1 ls命令 列出檔案 ls la 列出當前目錄下的所有檔案和資料夾 ls a 列出當前目錄下所有以 a字母開頭的檔案 ls l txt 列出當前目錄下所有字尾名為 txt的檔案 2 cp命令 複製 cp a.txt b.txt 把檔案 a的內容複製到b檔案 cp a.txt...