转载自http://www.linuxidc.com/Linux/2011-08/40079.htm
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 时间(秒) 显示内存信息,按秒数刷新