本篇主要归纳总结Shell脚本的编写和系统管理部分的知识点。
shell scripts
根据提示输入
|
|
数值计算
|
|
文件目录的查看、判断操作
test 后加“!”为取反操作即值为“true”时返回“false”
|
|
计算退伍日期
|
|
case语句
|
|
函数
函数声明要放在程序前面
|
|
循环
while语句
|
|
util语句1234until [ "$yn" == "yes" ] || [ "$yn" == "YES" ]do read -p "Please input yes/YES to stop this program: " yndone
for语句
|
|
计算1+…+100的和
while语句
|
|
for语句
|
|
判断文件或目录是否存在
|
|
取出第一列内容,输入每一行及行号
|
|
debug
|
|
系统管理
切换身份
- su 直接切换成root
- su - 切换root后,相关设置也发生变化
查看最近登录
- lastlog 读取 /var/log/lastlog 文件,显示登录信息
多用户通信
- talk
- write user #使用命令后,可发送文字内容
- mesg n 禁止其它用户使用write命令发信息时打断自己,使用mesg y重新启动
- wall “words” 与其它所有的用户通信,如果没有使用mesg n关掉服务,则收到
|
|
- mail 可用来查看邮件
df命令,用于显示磁盘分区上的可使用的磁盘空间。
- -h,选项以KB以上的单位来显示,可读性高
- -a ,查看全部文件系统
at命令
在指定时间执行一次命令。可在/etc/at.deny里面设置无法使用此命令的账户。
|
|
crontab命令
用以循环执行任务crontab 是读到内存当中的,所以在你修改完/etc/crontab 之后,可能并不会马上执行, 这个时候请重新启动
crond,输入/etc/init.d/crond restart
|
|
命令后加“&”使程序在后台运行
- jobs命令,查看后台任务
- -l :除了列出 job number 之外,同时列出 PID;
- -r :仅列出正在背景 run 的任务;
- -s :仅列出正在背景当中暂停 (stop) 的任务。
|
|
kill和killall,杀死进程
|
|
ps,查看运行的进程
|
|
top命令,查看系统运行情况
top交互按键
- h:显示帮助画面,给出一些简短的命令总结说明;
- k:终止一个进程;
- i:忽略闲置和僵死进程,这是一个开关式命令;
- q:退出程序;
- r:重新安排一个进程的优先级别;
- S:切换到累计模式;
- s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
- f或者F:从当前显示中添加或者删除项目;
- o或者O:改变显示项目的顺序;
- l:切换显示平均负载和启动时间信息;
- m:切换显示内存信息;
- t:切换显示进程和CPU状态信息;
- c:切换显示命令名称和完整命令行;
- M:根据驻留内存大小进行排序;
- P:根据CPU使用百分比大小进行排序;
- T:根据时间/累计时间进行排序;
- w:将当前设置写入~/.toprc文件中。
|
|
pstree命令以树状图的方式展现进程之间的派生关系
|
|
free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
free [-b|-k|-m|-g] [-t]
参数:
-b :直接输入 free 时,显示的单位是 Kbytes,可以使用 b(bytes), m(Mbytes),k(Kbytes), 及 g(Gbytes) 来显示单位
-t :在输出的最终结果,显示物理内存与 swap 的总量。
uptime,查看已开机时间
nice和renice,调整程序优先级
PRI(new) = PRI(old) + nice
|
|
fuser,查看正在使用某文件或目录的进程
|
|
自定义启动开机程序
把需要开机的命令,写进/etc/rc.local文件里即可。