原文:http://www.tecmint.com/useful-linux-hacks-commands/做者: Avishek Kumar
译文:LCTT https://linux.cn/article-5635-1.html译者: goreliu
html
Linux世界充满了乐趣,咱们越深刻进去,就会发现越多有趣的事物。咱们会努力给你提供一些小技巧,让你和其余人有所不一样,下面就是咱们准备的3个小技巧。linux
在Linux下,调度一个任务/命令称之为Cron。当咱们须要调度一个任务时,咱们会使用Cron,但你知道咱们在不使用Cron的状况也能够调度一个在未来时间运行的任务吗?你能够按照以下建议操做……git
每5秒钟运行一个命令(date)而后将结果写入到一个文件(data.txt)。为了实现这一点,咱们能够直接在命令提示符运行以下单行脚本。github
$ while true; do date >> date.txt ; sleep 5 ; done &
上述脚本的解释:工具
while true
:让脚本进入一个条件总为真的循环中,也就是制造一个死循环,将里边的命令一遍遍地重复运行。测试
do
:do
是while
语句中的关键字,它以后的命令会被执行,在它后边能够放置一个或一系列命令。spa
date >> date.txt
:运行date命令,并将其输出写入到data.txt文件中。注意咱们使用>>
,而不是>
。命令行
>>
:对文件(date.txt)进行追加写的操做,这样每次运行命令后,输出内容会被追加到文件中。若是使用>
的话,则会一遍遍地覆盖以前的内容。翻译
sleep 5
:让脚本处于5秒睡眠状态,而后再运行以后的命令。注意这里的时间单位只能用秒。也就是说若是你想让命令每6分钟运行一次,你应该使用sleep 360
。code
done
:while
循环语句块结束的标记。
&
:将整个进程放到后台运行。
相似地,咱们能够这样运行任何脚本。下边的例子是每100秒运行一个名为script_name.sh
的脚本。
另外值得一提的是上面提到的脚本文件必须处于当前目录中,不然须要使用完整路径(/home/$USER/…/script_name.sh
)。实现如上功能的单行脚本以下:
$ while true; do /bin/sh script_name.sh ; sleep 100 ; done &
总结:上述的单行脚本并非Cron的替代品,由于Cron工具支持众多选项,更加灵活,可定制性也更高。然而若是咱们想运行某些测试,好比I/O评测,上述的单行脚本也管用。
还能够参考:Linux 下 11 个定时调度任务例子
你如何清空终端的内容?你可能会认为这是一个傻问题。好吧,你们都清楚可使用clear
命令。若是养成使用ctrl + l
快捷键的习惯,咱们会节省大量时间。
Ctrl + l
快捷键的效果和clear
命令同样。因此下一次你就可使用ctrl + l
来清空终端的内容了。
总结:由于ctrl + l
是一个快捷键,咱们不能够在脚本中使用。因此若是咱们须要在脚本中清空屏幕内容,仍是须要使用clear
命令。但我能想到的全部其余状况,ctrl + l
都更加有效。
这是一个不少人可能不知道的使人吃惊的技巧。你可能想在其它目录运行任何一个命令,而后再回到当前目录。要实现这样的目的,你只须要将命令放在一个圆括号里。
咱们来看一个例子:
avi@deb:~$ (cd /home/avi/Downloads/)
示例输出:
avi@deb:~
它首先会cd到Downloads目录,而后又回到了以前的家目录。也许你认为里边的命令根本没有执行,或者是出了某种错误,由于从命令提示符看不出任何变化。让咱们简单修改一下这个命令:
avi@deb:~$ (cd /home/avi/Downloads/ && ls -l)
示例输出:
-rw-r----- 1 avi avi 54272 May 3 18:37 text1.txt-rw-r----- 1 avi avi 54272 May 3 18:37 text2.txt-rw-r----- 1 avi avi 54272 May 3 18:37 text3.txtavi@deb:~$
在上述命令中,它首先进入Downloads目录,而后列出文件内容,最后又回到了当前目录。而且它证实了命令成功执行了。你能够在括号中包含任何命令,执行完都会顺利返回到当前目录。
这就是所有内容了,若是你知道任何相似的Linux技巧,你能够在文章下面的评论框中分享给咱们,不要忘记将本文和朋友分享 :)
via: http://www.tecmint.com/useful-linux-hacks-commands/
做者:Avishek Kumar 译者:goreliu 校对:wxy