天天看點

重要的linux shell指令

下面是我收藏的一些重要的linux shell 指令。

  • 切換到上一次所在的目錄
# cd -
  • 擷取目前剩餘記憶體
#  cat /proc/meminfo |grep MemAvailable|cut -d: -f2|awk '{print $1}'
  • 擷取linux 的 eth0網卡的mac位址

//擷取的mac位址:有冒号 小寫

# ifconfig | grep eth0| awk 'NR==1{print $5}'

//擷取的mac位址:有冒号 大寫

# ifconfig | grep eth0| awk 'NR==1{print $5}' | tr a-z A-Z

//擷取的mac位址:無冒号 小寫

# cat /sys/class/net/eth0/address|awk -F ':' '{print $1$2$3$4$5$6}' 

//擷取的mac位址:無冒号 大寫

# cat /sys/class/net/eth0/address|awk -F ':' '{print $1$2$3$4$5$6}' | tr a-z A-Z

  • 擷取linux的eth0的網卡的ip位址
# ifconfig eth0 | grep 'inet addr:'| cut -d: -f2 | awk '{ print $1}'
  • 查找檔案
//在目前目錄及子目錄下查找檔案名為filename的檔案
# find . -name "filename"
  • 查找檔案裡的内容

//在目前目錄及子目錄下查找有關鍵字keyword的檔案,并列印出關鍵字所在檔案的行号

# grep "keyword" * -nR

//在查找到的檔案名為filename的裡查找關鍵字keyword

# find . -name "filename" | xargs grep -in "keyword"

//在目前目錄及子目錄,不輸出錯誤資訊
# find . -type f -exec grep -swnrH 'keyword' {} \; 2>/dev/null
注意:s : 不輸出錯誤資訊 
   w :全詞比對
   n:  輸出行号
   H:  輸出檔案名
  • 一行指令統計代碼
# find . -iregex ".*\.\(cpp\|h\|java\|sh\)$" | xargs wc -l
  • sudo !!

    !! 代表上一次執行的指令,對于忘記加sudo權限的指令特定有用。

  • 統計檔案夾的總大小

    # du -sh file_path   如果統計多個檔案加參數-c

    # df -h .; du -sh -- * | sort -hr 列出目前分區的大小,每個檔案的大小并排序

  • python 指令開啟檔案樹結構的Web伺服器

    # python -m SimpleHTTPServer

  • arp-scan使用ARP協定列出MAC和IP位址的映射關系 

        # sudo arp-scan -l 如果沒有先使用sudo apt-get install arp-scan 安裝

  • 檢視檔案的資訊

    # stat file_name

   File: ‘color.sh’

  Size: 412        Blocks: 8          IO Block: 4096   regular file

Device: 801h/2049d Inode: 4067531     Links: 1

Access: (0775/-rwxrwxr-x)  Uid: ( 1000/     lyx)   Gid: ( 1000/     lyx)

Access: 2018-03-23 09:21:25.983301373 +0800

Modify: 2017-07-20 08:14:32.071341931 +0800

Change: 2017-07-20 08:14:32.071341931 +0800

 Birth: -

  • 模拟自動打字

    pv指令   

    # echo "你看看你,我打字快不快?" | pv -qL 20

  • screen指令 把前台運作的程式隐藏起來

       1. 對于長時間運作的程式,可以先用screen指令分離出會話,時間到了在恢複會話。    

        # screen ./long-run-program

          Ctrl+A and 然後按"d" 分離會話

         # screen -ls 檢視目前的會話

         # screen -r xxxx 恢複會話

        2. Ctrl+A and 大寫H,打開會話log檔案記錄

        再按Ctrl+A and 大寫H,關閉會話log記錄

  • 列出所有的可以運作的指令

     compgen -ac | grep searchstr

  • 搜尋man手冊的關鍵字,對于忘記指令時非常有用

        # aprogpos download 搜尋包含download的關鍵的命

  •  檢視Ubuntu中已經安裝的程式,用于想要解除安裝程式卻不知道程式名的情況

apt list --installed

想要知道安裝的mysql的依賴packages

apt list --installed | grep mysql