1 編寫指令碼實現傳入程序pid,檢視對應程序/proc下的cpu、記憶體指標。
#!/bin/bash
color_red_start="[1;31m"
color_red_end="[0m"
read -p "please input the pid to check cpu&mem infomation:" pid
checkpid=`ps aux | awk '' | grep -w "$pid"`
if [ ! $checkpid ];then
echo "the pid '$pid' does not exits, please make sure and input a correct pid. "
else
echo -e "\033$the mem info is:\033$\n`sed -nr "/^vm*/p" /proc/$pid/status`"
echo -e "\033$the cpu info is:\033$\n`sed -nr "/^cpu*/p" /proc/$pid/status`"
echo -e "\033$the mem pid_$pid uses is:\033$ `ps -p $pid -o %mem | sed -n '2p'`"
echo -e "\033$the cpu pid_$pid uses is:\033$ `ps -p $pid -o %cpu | sed -n '2p'`"
fi
執行結果:
執行結果:
3 編寫指令碼/root/bin/execute.sh, 判斷引數檔案是否為sh字尾的普通檔案,如果是,新增所有人可執行許可權,否則提示使用者非指令碼檔案。
#!/bin/bash
[ $# -eq 0 ]||[ $# -gt 2 ]&&
[ ! -f $1 ] &&
[[ "$1" =~ \.sh$ ]] && || echo "$1 isn't a script."
執行結果:
4編寫指令碼/root/bin/nologin.sh和login.sh,實現禁止和允許普通使用者登入系統。
vim nologin.sh
[ ! -e /etc/nologin ] &&
vim login.sh
[ -e /etc/nologin ] && rm -f /etc/nologin && echo "users can login now."
5 編寫指令碼/root/bin/sumid.sh,計算/etc/passwd檔案中的第10個使用者和第20個使用者的id之和。
#!/bin/bash
id10=`cut -d: -f3 /etc/passwd|head -10|tail -1`
id20=`cut -d: -f3 /etc/passwd|head -20|tail -1`
let sumid=$id10+$id20
echo sumid is $sumid
unset id10 id20 sumid
7 shell程式設計
一.shell指令碼介紹 shell是什麼?一門程式語言,用來解釋執行這門程式語言語法的直譯器 計算機體系結構 命令 shell直譯器 系統呼叫的介面 核心 計算機硬體 什麼是程式語言 人 程式語言 計算機 什麼是程式設計 人 程式語言 計算機 先幹什麼 再幹什麼 然後幹什麼 什麼是程式 我們把計算...
Shell 學習7 Shell 特殊變數
前面已經講到,變數名只能包含數字 字母和下劃線,因為某些包含其他字元的變數有特殊含義,這樣的變數被稱為特殊變數。例如,表示當前shell程序的id,即pid,看下面的 echo 執行結果 29949特殊變數列表 0 當前指令碼的檔名 n 傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個引數。例如...
shell 學習筆記7 shell 函式
把相同程式段定義成函式,可以減少整個程式的 量,提公升開發效率 增加程式的可讀性,易讀性,提公升管理效率 可以失效程式功能模組化,使程式具備可移植性 其實linux系統裡面近2000個命令可以說都是shell的函式 function 名稱 復合命令塊 重定向 function 函式名 1 開發乙個建...