大夏shell编程学习笔记(1)

显示数据

①Linux标准文件描述符

文件描述符缩写描述
0STDIN标准输入
1STDOUT标准输出
2STDERR标准错误

②重定向错误

$ 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脚本确定当前系统的运行级别并在该运行级别上运行相应的脚本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值