12-1 ubuntu常用命令(crontab、tar、grep)

1. crontab

cron = Chronos 希腊文时间。cron是一个Linux下的后台进程,用来执行计划任务。

想要让cron执行你指定的任务,首先就要编辑crontab文件。每一个用户都有一个 crontab 文件(如用户sea的crontab即/var/spool/cron/crontabs/sea),来允许他们指定需要执行的任务和时间。

crontab -e                 # 编辑当前用户的crontab文件内容
crontab -l                 # 显示当前用户的crontab文件内容
crontab -r                 # 从/var/spool/cron目录中删除当前用户的crontab文件
crontab -i                 # 在删除用户的crontab文件时给确认提示,即-ri
crontab -u user1           # 用来设定用户user1的crontab服务

crontab文件中的每一行代表一个定期执行的任务,分为6个部分。前 5部分用于设定时间;第6部分是要执行的操作。

m h dom mon dow  command

m :     minute               分钟0~59 每分钟用*或者 */1表示

h:       hour                   小时0~23

dom:  day of month      日期1~31

mon:  month                月份1~12

dow:   day of week         星期0~7,星期天可以用0或7表示

除了这些固定值外,还可以配合星号(*),逗号(,),和斜线(/)来表示一些其他的含义:

       *        表示任意值,比如在小时部分填写 * 代表任意小时(每小时)

       ,        可以允许在一个部分中填写多个值,比如在分钟部分填写 1,3 表示一分钟或三分钟

       /        一般配合 * 使用,代表每隔多长时间,比如在小时部分填写 */2 代表每隔两分钟。所以 */1 和 * 没有区别。*/2 可以看成是能被2整除的任意值。

 

* * * * *                  # 每隔一分钟执行一次任务
0 * * * *                  # 每小时的0点执行一次任务,比如1:00,2:00...
6,10 * 2 * *               # 每个月2号,每小时的6分和10分执行一次任务
*/3,*/5 * * * *            # 每隔3分钟或5分钟执行一次任务,比如10:03,10:05,10:06


*/2 * * * * date >> ~/time.log     # 每隔2分钟,往 ~/time.log 中追加一次时间

 注意command不要超过64个字节,若是命令比较长,可以放在文件中,执行文件,如:

*/2 * * * * /bin/bash ~/work.txt   # 每个2分钟,用 /bin/bash 来执行 ~/work.txt 文件

 

2. tar

 压缩与解压。参数如下:

-c:   建立一个压缩文件的参数指令(create 的意思);
-x:   解开一个压缩文件的参数指令!
-t:   查看 tarfile 里面的文件!
特别注意 c/x/t 同时仅能存在一个,因为不可能同时压缩与解压缩。
-z:   是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j:   是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v:   压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f:    使用档名,请留意,在 f 之后要立即接文件名
-p:   使用原文件的原来属性(属性不会依据使用者而变)
-P:   可以使用绝对路径来压缩!
-N:   比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!

tar -cvf /tmp/etc.tar /etc       # 将整个 /etc目录下的文件全部打包成为成 etc.tar且放在/tmp/下。仅打包,不压缩!
tar -zcvf /tmp/etc.tar.gz /etc   # 打包后,以 gzip 压缩。文件后缀 file1.tar.gz 等同于 file1.tgz
tar -jcvf /tmp/etc.tar.bz2 /etc  # 打包后,以 bzip2 压缩

tar -xf a.tar.gz                 # 解压文件,能自动识别是什么格式压缩的
tar -xf a.tar.gz  -C /tmp        # 指定解包路径为/tmp

 

3. grep

grep (global search regular expression_r(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

grip better a.txt       # 列出在a.txt中含有待匹配文本better的行
grip -c better a.txt    # --count 计算符合样式的列数
grip -v better a.txt    # --revert-match 显示不包括匹配文本的所有行
grip -l better a.txt    # --file-with-matches列出在哪个文件中查找。比如有时文件是变量时用
grip -i beeter a.txt    # --ignore-case不区分大小写
grip -o better a.txt    # 只显示搜索的关键字
grip -n better a.txt    # 显示行号,和结果行

初识正则表达式:

^ :         匹配开头
$ :          匹配结尾
[] :       范围匹配
[a-z] :     匹配有小写字母
[A-Z] :    匹配所有大写字母
[0-9] :    匹配所有数字
. :         匹配单个字符
* :        表示*前面的内容出现0次或多次
+ :        表示+前面的内容出现1次或多次
? :        表示?前面的内容出现0次或1次 

grep -E "^S" z.txt      # 查询所有以S开头的行
grep -E "d$" z.txt      # 查询所有以d结尾的行
grep -E "[0-9]" z.txt   # 匹配所有数字,且显示其所在的行
grep -E "[^0-9]" z.txt  # 匹配所有非数字
grep -E "[1-5]" z.txt   # 所有含有数字1-5的行
grep -E "[0-9a-zA-Z]+@[0-9a-zA-Z]+\.[0-9a-zA-Z]+" z.txt  # 匹配邮箱

 

posted @ 2017-06-13 18:28  seaidler  阅读(137)  评论(0)    收藏  举报