linux shell 學習摘記(9)

onephone發表於2016-10-03

《linux shell 指令碼程式設計攻略 (第2版)》 第九章 “管理重任” 筆記

常用命令:ps, which, whatis, whereis, file, pgrep, apropos, top, kill, trap, mesg, hostname, uname, /proc, crontab, imagemagick, mysql 指令碼, 使用者管理指令碼, 影像管理指令碼

  • ps

    1. ps, ps -f, ps -e, ps aux, ps -eo comm,cpu | head
    2. 顯示所需要的資訊-o引數, 如pcup, pid, ppid, pmen, comm(可執行檔名), cmd, user, nice, time, etime(程式啟動後流逝的時間), tty, euid(所關聯的tty裝置), stat
    3. --sort根據特定的列進行排序, 如ps -eo comm,pcpu --sort -pcpu |head列出佔用cpu最多的前10個程式。ps [OPTIONS] --sort -parameter1,+parameter2,parameter3 其中+表示降序,—表示升序。(mac terminal.app 無此功能)
    4. ps -C bash -o pid=直接列印出命令所對應的pid
    5. ps -u root -U root -o user,pcpu 根據使用者id等資訊過濾ps輸出
    6. ps -t pts/0,pts/1通過tty過濾ps輸出
    7. 顯示執行緒相關的資訊-L, 如ps -eLf --sort -nlwp | head, 其中NLWP表示執行緒的數量,WLP是ps輸出中每個條目的執行緒ID
    8. ps -ef, ps -e u, ps -e w鬆寬輸出
    9. 顯示程式的環境變數ps -eo pid,cmd e | tail -n 3
  • which ls, whereis ls, file /bin/ls, whatis ls

  • apropos STRING 搜尋和某個單詞相關的命令是否存在(whatis database)

  • 檢視平均負載uptime 分別表示1分鐘,5分鐘, 15分鐘內的負載平均值

  • 根據字串搜尋pgrep bas -d ":", pgrep -u root COMMAND, pgrep -c COMMND

  • top

  • 訊號kill用來向系統傳送訊號;trap用來處理接收到的訊號

    1. kill -l
    2. kill -s SIGNAL PID, kill -s SIGKILL PROCESSID等同於kill -9 PROCESSID, kill -s SIGSTP PROCESSID等同於Ctrl+Z
    3. killall PROCESSNAME通過程式命令名終止程式 , killall -u UERNAME PROCESSNAME, killall -9 PROCESSNAME
    4. pkill PROCESSNAME, pkill -s SINGAL PROCESSNAME
    5. trap 'singal_handler_function_name' SINGALLIST 此處有指令碼
  • 向所有當前的登陸使用者傳送廣播訊息echo hello | wall

  • mesg y允許寫入訊息, mesg n不允許寫入訊息

  • 向特定使用者傳送訊息 此處有指令碼

  • 採集系統資訊

    1. hostname, uname, cat /proc/cpuinfo | sed -n 5p, cat /proc/meminfo | head -;, cat /proc/partition或者fdiks -l, lshw(不一定有)
    2. proc is a pseudo filesystem. 對應的目錄下有各個程式的PID, 進一步的有environ(程式相關的環境變數), cwd(一個到程式工作目錄的符號連結), exe(程式所對應的可執行檔案的連結) readlink exe, fd包含程式所使用的檔案描述符
  • cron

    1. crontab -e, crontab -l, crontab -u 每個使用者對應有自己的crontab
  • bash讀寫mysql資料庫指令碼

  • 使用者管理指令碼

  • convert 影像處理

    1. convert image.png -resize "50%" image.png, convert image.ong -resize 1024x768 image.png
    2. 影像管理指令碼
  • 終端截圖 import -window root screenshot.png, import screenshot.png

  • 管理多個終端screen

相關文章