Linux - 常用指令

 



回應處理


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條件)

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 // 壓縮 ( src1src2 壓成 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 的封包(不管來源或目的)(可在最前面加 srcdst 指定方向)
    tcp port 53 // 僅抓取 TCP 而且 port 53 的封包
    ether host 00:00:5e:00:53:00 // 僅抓取網卡 MAC 00:00:5e:00:53:00 的封包
    arpipip6tcpudp // 僅抓取 ARPipv4ipv6TCPUDP
    not arp // 可用 not 反向
    tcp and port 80 // 可用 andor 把兩個語法串接起來

註:存下來的檔案可用Wireshark開啟

其他常用


    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    // 忽略重覆



沒有留言:

張貼留言