您的位置:首页 > 运维架构 > Shell

linux command Line and shell script bible(笔记十)

2013-09-02 13:06 507 查看
这是暑假回来看linux命令行与shell脚本编程大全的一些笔记,并不是全部的,只是结合本人觉得需要的一些记录,在整理发表博文时也当作一种回顾!欢迎交流指正!!

15.1.2 产生信号

1.终止进程:Ctrl+c组合会产生SIGINT信号

2.暂停进程:Ctrl+Z组合会产生SIGTSTP信号

注:kill -9 PID 向PID的进程发送9信号,无条件终止进程

15.1.3 捕捉信号

trap commands signals

*在trap命令行上,commands就是列出当捕捉到信号时要shell执行的命令,signals就是一组用空格分开的要捕捉的信号(可以是linux信号名或者数值)

如:trap "echo I have trap the signal" SIGINT SIGTERM #每次使用Ctrl+c组合键时,脚本会执行trap命令中指定的命令语句,而不是忽略此信号并允许它停止当前脚本。

15.1.4 捕捉脚本的退出,此信号为EXIT

15.1.5 移除捕捉: trap - EXIT   #一旦信号捕捉被移除,脚本就会忽略该信号,任由信号进行相应功能

15.3 在非控制台下运行脚本,nohup

格式:nohup command &

*命令会将进程的STDOUT/STDERR的消息重定向到一个名为nohup.out的文件中(文件在运行命令时的那个目录中),且退出终端也不会结束进程。

15.4.1 查看作业

jobs:此命令允许查看shell当前正在处理的作业

-l:列出进程的PID及作业号

-n:只列出上次shell发出的通知后改变状态的作业

-p:只列出作业的PID

-r:只列出运行中的作业

-s:只列出已停止的作业

*带加号的作业会被当作默认的作业,带减号的当作下一个默认作业。

15.4.2 重启停止的作业

*bg命令以后台模式重启作业,加上作业好,否则操作默认作业

*fg命令以前台模式重启作业.加上作业号,否则操作默认作业

15.5.1 nice命令

$ nice -n number command (只能指定一个更低的优先级运行,number范围是-20到20)

$ renice number -p PID   #改变进程的优先级 (普通用户只能向更低级改变,)

15.6.1 用at命令来计划执行作业

1.at命令格式 at [-f filename] time

*默认情况下,at命令会将STDIN的输入放到队列中,但也可以用-f参数来指定读取命令或脚本文件的文件名

time:指定了linux系统何时运行该作业

*标准的小时和分钟格式,10:15

*~AM/~PM指示符,10:15~PM

*特定可命名的时间,now、noon、midnight、teatime(4~PM)

*标准日期格式,MMDDYY、MM/DD/YY或者DD.MM.YY

*文本日期,Jul 4,Dec 25,加不加年份均可

也可以指定时间增量

*当前时间+25min

*明天10:15~PM

*10:15 + 7天

注意:计划进程任何发到STDOUT或STDERR的输出都会通过邮件发给提交该作业的用户邮箱可以mail命令查看

3.列出等待的作业:atq命令

4.删除作业: atrm 作业号

15.6.2 计划定期执行脚本

1. cron时间表 :min hour dayofmonth month dayofweek command

*允许用特定值,值范围,通配符*来指定条目。如:15 10 * * * command

*可以用三字符的文本值(mon\tue\wed\thu\fri\sat\sun)或数值(0为周日,6为周六)来指定dayofweek条目

*dayofmonth条目会为月份指定日期值(1-31)

注意:每月最后一天执行——  00 12 * * * if [`date +d% -d tomorrow` = 01 ]; then ; command

注:command要用全路径名

2. crontab命令来处理cron时间表

-l:列出已有cron时间表

-e:为cron时间表添加条目(已有或者不存在的)

3.cron目录

预配置的cron脚本目录:/ect/cron.*ly

4.anacron时间表

格式:period delay identifier command

*period条目定义作业多久运行一次,以天为单位

*delay条目会指定系统启动后多少分钟后anacron程序开始运行错过的脚本。

*command条目包含了run-parts程序和一个cron脚本目录名.run-parts程序负责运行目录中传给它的任何脚本。

注意:anacron不会运行位于/etc/cron.hourly的脚本,因为不出历执行时间需求小于一天的脚本

15.7启动时运行

##########linux本地开机文件位置###########

debian        /etc/init.d/rc.local

Fedora        /etc/rc.d/rc.local

Mandriva    /etc/rc.local

openSuse    /etc/init.d/boot.local

Ubuntu        /etc/rc.local

*在本地开机文件中,可以指定特定命令或语句,或者输入任何你要在开机启动的脚本(全路径名)

*注意用户目录下两个文件.bash_profile(新登录生成shell运行的文件)和.bashrc(新shell启动时,包括新的登录情况,会运行此文件)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息