回應處理
cat fileName > /dev/null 2>&1 // "> /dev/null 2>&1" 所有回應都不要顯示
cat fileName 2>/dev/null // "2>/dev/null" 錯誤回應不顯示
cat fileName > /dev/null 2>&1 & // & 為背景執行,不等待執行結束
檔案列表
ls // 列出檔案列表
cd // 切換目錄
pwd // 顯示目前位置
檔案建立、刪除
mkdir // 建立目錄
cp // 複製檔案或目錄
rm // 刪除檔案或目錄
範例:
mkdir -p /a/b/c // 一次建立多層目錄
cp -af file1 file2 // 複製 file1 成為 file2
rm -rf file.tgz // 強制刪除檔案或目錄
刪除時排除指定名稱:
ls | grep -v "file1" | xargs rm -rf // 保留 file1 不刪,其他全刪除
ls | grep -vE "file1|file2" | xargs rm -rf // 保留 file1、file2 不刪,其他全刪除
ls | grep -v "file1" | awk '{system("rm -rf "$1)}' // 另一種刪除方法
檔案尋找
find // 尋找檔案名稱
grep // 尋找檔案內容的字串
範例:
find ./ -name *.tgz -print // 找 *.tgz 檔,在./目錄以下的所有子目錄
grep -E "str1|str2" // 找多字串 (or條件)
find ./ -name *.tgz -print // 找 *.tgz 檔,在./目錄以下的所有子目錄
grep -E "str1|str2" // 找多字串 (or條件)
grep -v "str" // 排除 str 這個字串
find ./ -path /dir -prune // 排除 /dir 目錄
find /usr -path /usr/etc -prune -o -type f -name ${var} -print // -o 代表 or,-type f 找表只找檔案類
find ./ -executable -type f -mtime -7 // 找7天內變動過的可執行檔
檔案其他
cat // 顯示檔案內容
chmod // 改檔案權限
chown // 改檔案擁有者
範例:
cat file.txt // 顯示 file.txt 內容
chmod 755 file.sh // 將 file.sh 權限改為 755
chown -R root:root * // 將所有檔案都改成 root:root,含子目錄的內容
cat 也可以這樣用
cat <<- _EOF_
文字內容1
文字內容2
文字內容3
_EOF_
壓縮
tar // 壓縮 & 解壓縮
unzip // 解壓縮zip檔
範例:
tar zxvf src.tgz -C dst // 解壓縮 (將 src.tgz 解到 dst 目錄)
tar zcpvf dst.tgz src1 src2 // 壓縮 (將 src1、src2 壓成 dst.tgz)
unzip file.zip // 解壓縮 zip
tcpdump
抓網路介面封包(也可安裝 wireshark 使用 UI 畫面抓封包,就不用自己手動下語法了)
tcpdump -i eth0 -s 1500 "filter語法" -w /tmp/tcpdump.pcap
-i 為要抓取封包的介面名稱
-s 為一個封包最長抓取長度(不下這個可能只會儲存很短的封包,而不是完整的)
-w 為要儲存的檔案名稱
filter語法常用的有:
host 192.168.1.1 // 僅抓取 192.168.1.1 的封包(不管來源或目的)(可在最前面加 src、dst 指定方向)
tcp port 53 // 僅抓取 TCP 而且 port 為 53 的封包
ether host 00:00:5e:00:53:00 // 僅抓取網卡 MAC 為 00:00:5e:00:53:00 的封包
arp、ip、ip6、tcp、udp // 僅抓取 ARP、ipv4、ipv6、TCP、UDP
not arp // 可用 not 反向
tcp and port 80 // 可用 and、or 把兩個語法串接起來
註:存下來的檔案可用Wireshark開啟
其他常用
echo // 顯示字串
base64 // Base64 編解碼
echo // 顯示字串
base64 // Base64 編解碼
wc //計算行數、字數
(-l 計算行數、-c 計算位元組、-m 計算位元數、-w 計算字數、-L 行的最大長度)
awk '(NR==1||length(min)>length()){min=$0}END{print min}' data.txt // 查檔案的最短一行
awk '{if (length(max)<length()) max=$0}END{print max}' data.txt // 查檔案的最長一行 參考
flock // 文件鎖
sort // 排序
uniq // 忽略重覆
沒有留言:
張貼留言