显示数据
①Linux标准文件描述符
文件描述符 | 缩写 | 描述 |
---|---|---|
0 | STDIN | 标准输入 |
1 | STDOUT | 标准输出 |
2 | STDERR | 标准错误 |
②重定向错误
$ ls -al test 2> test4 #仅重定向错误
$ ls -al test &> test4 #所有输出都发送到同一个位置,默认错误消息优先于标准输出
$ exec 3>&- #关闭文件描述
$ ls -al text 2> /dev/null #禁止错误消息而不保存
③临时文件
$ mktemp testing.XXXXXX #在/tmp下创建一个唯一的临时文件(返回的是文件名,用"-t"参数,返回的是完整路径)
$ mktemp -d dir.XXXXXX #建立一个零时目录
④记录消息
$ tee filename #将来自STDIN的数据同时发往STDOUT和filename文件中 (用"-a"使其添加消息而不是默认的覆盖消息)
脚本控制
①处理信号
$ trap commands signals #当收到signals时候,忽略这个信号,并且执行commands
$ trap - signals #移除捕获
②以后台模式运行
在命令后面加一个& , 即可使脚本在后台运行。
$ nohup ./test & #将test脚本在后台运行,并且不输出运行结构,结构存入nohup.out中
③作业控制
$ jobs -l #列出进程的PID和作业编号
#带加号的作业是默认作业,减号的是处理完默认作业后即将成为默认的作业
$ bg 2 #以后台模式重启作业编号为2的作业
$ fg 2 #以前台模式重启作业编号为2的作业
④进阶命令
调度优先级是一个整数值,从-20到+20(最低优先级)。默认情况下,bash shell启动所有的优先级为0的进程。
$ nice -n 10 ./test #减少test脚本运行的优先级
Linux系统提供了3种方式在预定时间运行脚本:at命令(atd是以后台模式运行),batch命令,cron命令。
$ at -f test 12:07 #让test作业在12点07分的时候执行,-q可以指定优先级字母(a到z,a是最高级的队列)
$ atq #查看排队的作业
$ atrm 8 #移除作业编号为8的作业
$ batch -f test 12:07 #让test最早执行时间为12点07分,当平均负载低于0.8才执行
cron表格可以指定作业运行时间,尤其是很方便的设置作业定期的调度
min hour dayofmonth month dayofweek command
#可以用*表示每个的意思
$ 00 12 * * * if [ 'data + %d -d tomorrow' = 01 ] ; then ;command
#每个月的最后一天中午12点运行命令
$ crontab -l #查看拥有的cron表格
⑤启动脚本
Linux在打开系统时候,最先运行的是init程序,内核总向它分配PID 1,然后init程序读取/etc/inittab文件。Linux系统通过rc脚本确定以哪种运行级别启动那些程序。rc脚本确定当前系统的运行级别并在该运行级别上运行相应的脚本。