第三章 后台执行命令
1. crontab
作用:调度进程,自动运行作业。新建crontab文件。编辑$HOME下的.profile,加入 EDITOR=vi; export EDITOR
然后新建一个davecron文件,加入
#echo the date to the console every
#15 minutes
0,15,45 * * * * /bin/echo 'date' > /dev/console
其中crontab格式为 分 时 日 月 星期 命令.中间用空格间隔。*表示连续的时间间隔
提交crontab文件。crontab davecron
列出crontab文件。crontab -l
备份crontab文件。crontab -l > $HOME/mycron
编辑crontab文件。crontab -e
删除crontab文件。crontab -r
恢复crontab文件。crontab mycron
2. at
作用:向守护进程提交作业,使其在稍后的时间运行。使用命令提示符.
$ at 21:10(now + 10 minutes)
at> find / -name "passwd" -print
at> ctrl + D
使用命令行。提交脚本使用-f选项。
$ at 3.00pm tomorrow -f /home/lisp/hello.sh
列出提交的作业。at -l
清除一个作业。atrm job jobID
3. &
作用:后台运行作业。command & 。为了不被输出结果干扰,使用command > out.file 2>&1 &
ps 查看进程
kill PID 杀死进程
nohup command & 后台运行程序,退出账户也不会挂起
一次提交多个任务. 将任务通过管道连接,并写入一个脚本中,然后执行脚本文件
$ cat > quarterend
cat /home/accounts/lisp | /apps/bin/trials.awk | sort | lp
ctrl + D
$ chmod 744 quarterend
$ nohup ./quarterend > out.file 2>&1 &
第四章 文件名置换
* 匹配任意字符
? 匹配任何单个字符
[...] 匹配方括号中的任何字符
举例: ls [!0-9]?a*.sh
ababc.sh c3a.sh第五章 shell输入与输出
1. echo
显示文本或变量,或者把字符串输入到文件。2. read
从键盘或文件的某一行文本中读入信息,并将其赋给一个变量。3. cat
显示文件内容,创建文件等。不过它会一次显示全部文件,想要分页可以用more4. 管道
通过管道将一个命令的输出传递给另一个命令当做输入。$ ls | grep hi.doc
5. tee
将输出的一个副本输送到标准输出,另一个副本拷贝到相应文件。who | tee who.out 将who的结果输出并且输出到who.out。
-a 选项表示追加模式
6. 标准输入 输出和错误
标准输入 0 (文件描述符)标准输出 1
标准错误 2
7. 文件重定向
重定向标准输出 ls -l >>file (追加)重定向标准输入 sort < name.txt
重定向标准错误 cat myfile 2>file
结合输入输出 cat >result <myfile
结合输出错误 cat myfile 1>result 2>error
合并输出错误 cat myfile >result 2>&1
8. exec
使用exec命令,任何现有环境都被清楚,并重新启动一个shell。exec *.sh