read 選項 變量 #read實現的作用是將從鍵入的字符串賦值給變量
-p 在鍵入命令之前先顯示一段字符
-t 等待用戶輸入的超時時間
-a 將鍵入的數據賦值給數組
變量的拓展:
$?:用於存放最後一次命令執行的返回值,將每個變量作為一個字段添加分隔符
$*:用於引用所有變量的參數,將所有的字段看作為一個字段加入分隔符
$@:用於引用所有變量的參數
$#:顯示命令項腳本傳入參數的個數
$0:顯示腳本的當前名字以及路徑
$$:查看自身命令的進程
$!:查看最後一次執行在後台的進程號
$_:引用最後一次執行完畢的結果
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
腳本退出命令exit
exit + 返回值 #從腳本退出並將返回值設定為後跟的數
一個簡單的用於腳本生成的腳本:
文件名 nsh
1 #!/bin/bash
2 #
3 ls $1 &> /dev/null && vim $1
4 ls $1 &> /dev/null ||cat> $1 <<EOF
5 #!/bin/bash
6 #:Title:
7 #:Synopsis:
8 #:DateTime:`date +"%F %T"`
9 #:Version:Unknow
10 #:Author: RedHat_hu
11 #:Option:None
12
13 EOF
14 vim +8 $1
15 chmod +x $1
使用方法:nsh 腳本名
說明:
<!--[if !supportLists]-->1. <!--[endif]-->shbang行
<!--[if !supportLists]-->2. <!--[endif]-->判斷新建的腳本名是否存在,若存在,則使用vim打開此文件
<!--[if !supportLists]-->3. <!--[endif]-->若不存在,則向其中導入4~11行內容
<!--[if !supportLists]-->4. <!--[endif]-->導入後使用vim打開新腳本,並將光標定位在新腳本的第八行
<!--[if !supportLists]-->5. <!--[endif]-->新腳本退出vim後賦予可執行權限
linux進程管理:
進程:是計算機分配系統資源的基本單位
linux中進程優先級分為:靜態優先級 100~139(可人為控制),動態優先級 0~99(有kernel控制)。(優先級越小則越高)
對靜態有限的控制由nice值來實現,nice取值范圍-20~19與��態優先級100~139一一對應,進程啟動默認nice為0,給出讓出cpu使用權的進程,nice值上升,優先級下降。
進程查看相關命令:
ps命令
ps option
-e 顯示所有進程
-a 顯示與終端無關的進程
-x 顯示與終端有關的進程
-u 顯示進程的發起者
-o 自定義顯示哪些字段
常用ps aux
top option以動態的形式顯示當前進程的數據
-b batch mode以文本的方式顯示進程數據
-d delay time動態的刷新時間
-n 顯示次數
pgrep option processname
無選項默認輸出進程pid
-u 查看進程發起者的uid
-g 查看進程發起者的gid
pidof processname
查看某進程的進程號
pstree 顯示所有進程的進程樹
-p 顯示pid
與進程顯示相關的字段
PID:進程號
PPID:父進程號(所有進程都有init進程派生)
TTY:標示進程與哪個終端相關
STAT:進程的狀態
D:不可中斷的睡眠狀態,例如I/O操作中
R:運行/就緒態
S:可中斷的睡眠態
T:stop停止態
Z:僵屍態(進程結束但是尚未釋放資源)
<!--[if !supportLists]-->1、 <!--[endif]-->當前進程處於結束中,其父進程正在為其清理占用資源
<!--[if !supportLists]-->2、 <!--[endif]-->子進程結束時發現父進程在其之前結束,無法清理釋放占用資源
TIME:進程獲得CPU的時間
COMMAND:進程的發起命令
%CPU:進程的cpu占用率
%MEN:進程的內存占用率
VSZ:進程在虛擬內存集中的占用大小
RSS:進程在物理內存集中的占用大小
進程間通信機制:IPC主要分為共享內存和信號量的進程間發送。
信號量控制命令kill
kill option SIG pid
-l 查看所有的信號量
信號量:
1:SIGHUP 若進程是服務發送此信號量重載配置文件
2:SIGINT 結束當前作業ctrl+c
9:SIGKILL 強行殺死進程
15:SIGKTERM 結束進程,讓進程自行關閉
18:SIGCONT 將停止的進程繼續
19:SIGSTOP 將運行進程停止
killall 進程名
殺死所有與進程名相關的進程
nice值的修改
nice命令啟動進程時制定nice值
nice –n 數值 命令 設定命令運行時初始值
renice 數值 進程號 設定運行中的進程nice值
作業控制:
作業分為前台作業和後台作業,以是否占用shell來區分。
將命令啟動即放入後台執行:
命令 &
nohup命令可以實現關閉終端後命令仍執行
前台、後台切換
ctrl+z 將當前作業送入後台並停止
fg 作業號 #將作業從後台調入前台
bg 作業號 #將前台作業調入後台並運行,將後台作業從停止轉為運行
kill %作業號 #殺死作業 (默認15)
free顯示內存信息(默認以K為單位)
-m 以兆為單位顯示
uptime顯示啟動時間以及平均負載
vmstat 時間(秒) 顯示內存信息,按秒數刷新