在软件开发的世界中,作为web端程序猿打交道最多的操作系统相信就是Linux系统了吧。而对于Linux系统的使用,如果能掌握一些小技巧,在程序开发、调试的过程中,相信做事的效率也会有一些提升。下面就和大家分享3个Linux编程中用户命令行小技巧。

1. 如何在不使用Cron的情况调度Linux下的任务

所谓Cron,就是在Linux下调度一个任务/命令。通常我们调度任务时,我们都会使用到Cron,但其实在不适用Cron的情况下,也是可以调度任务的。

每5秒钟运行一个命令(date)然后将结果写入到一个文件(data.txt)。为了实现这一点,我们可以直接在命令提示符运行如下单行脚本。

$ while true; do date >> date.txt ; sleep 5 ; done &

其中:

while true :让脚本进入一个条件总为真的循环中,也就是制造一个死循环,将里边的命令一遍遍地重复运行。

do :do是while语句中的关键字,它之后的命令会被执行,在它后边可以放置一个或一系列命令。

date >> date.txt :运行date命令,并将其输出写入到data.txt文件中。注意我们使用>>,而不是>。

>> :对文件(date.txt)进行追加写的操作,这样每次运行命令后,输出内容会被追加到文件中。如果使用>的话,则会一遍遍地覆盖之前的内容。

sleep 5 :让脚本处于5秒睡眠状态,然后再运行之后的命令。注意这里的时间单位只能用秒。也就是说如果你想让命令每6分钟运行一次,你应该使用sleep 360。

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评测,上述的单行脚本也管用。

2. 如何不使用clear命令实现终端内容的清空

通常我们在Linux上清空终端内容都是直接使用clear命令,但如果使用ctrl + l快捷键,我们将节省大量时间。因为ctrl + l是一个快捷键,不可以在脚本中使用,除了需要在脚本中清空屏幕内容必须使用clear命令外,其他清空内容的情况都可使用该快捷键。

3. 在其它目录运行一个命令,然后自动返回当前工作目录

在编程中,我们很多时候都想在其它目录运行一个命令,然后再回到当前目录,但是这往往又难以实现。其实要实现这个需求简单,只需要将命令放在一个圆括号里即可。

下面我们来举例说明一下:

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.txt

avi@deb:~$

在上述命令中,它首先进入Downloads目录,然后列出文件内容,最后又回到了当前目录。并且它证明了命令成功执行了。你可以在括号中包含任何命令,执行完都会顺利返回到当前目录。

以上就是Linux命令行的3个超实用小技巧,掌握并熟练使用它们,将使你在Linux系统上开发软件显得更专业、更事半功倍。

推荐学习:嵌入式开发实战

文章来源:code

Linux命令行 3大技巧归纳的更多相关文章

  1. linux 命令行 光标移动技巧

    linux 命令行 光标移动技巧 看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动.在这里强烈建立适应GUI节目的开发者尝试一下在提示符下面工作.但是事情也不是 ...

  2. linux 命令行 光标移动技巧等

    看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动.在这里强烈建立适应GUI节目的开发者尝试一下在提示符下面工作.但是事情也不是那么简单,还是需要知道“如何去做” ...

  3. linux命令行光标移动技巧

    看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动.在这里强烈建立适应GUI节目的开发者尝试一下在提示符下面工作.但是事情也不是那么简单,还是需要知道“如何去做” ...

  4. Linux命令行技巧

    Linux命令行技巧 命令 描述 • apropos whatis 显示和word相关的命令. 参见线程安全 • man -t man | ps2pdf - > man.pdf 生成一个PDF格 ...

  5. 给新手的 10 个有用 Linux 命令行技巧

    我记得我第一次使用 Linux 的时候,我还习惯于 Windows 的图形界面,我真的很讨厌 Linux 终端.那时候我觉得命令难以记忆,不能正确使用它们.随着时间推移,我意识到了 Linux 终端的 ...

  6. linux===给新手的 10 个有用 Linux 命令行技巧(转)

    本文转自:http://www.codeceo.com/article/10-linux-useful-command.html?ref=myread 仅用作学习交流使用.如有侵权,立删 我记得我第一 ...

  7. Linux 命令行下搜索工具大盘点,效率提高不止一倍!

    在 Linux 命令行下进行文本关键字的搜索,大家肯定第一时间会想到 grep 命令.grep 命令确实十分强大,但如果需要用到它更加灵活的功能时,可能命令就会显得十分复杂. 于是,为了简化 grep ...

  8. 像黑客一样使用 Linux 命令行

    前言 之前在博客园看到一篇介绍 IntelliJ IDEA 配置的文章,它里面用的是 gif 动态图片进行展示,我觉得很不错.所以在我今天以及以后的博文中,我也会尽量使用 gif 动图进行展示.制作 ...

  9. 像黑客一样使用Linux命令行(转载)

    阅读目录 前言 使用 tmux 复用控制台窗口 在命令行中快速移动光标 在命令行中快速删除文本 快速查看和搜索历史命令 快速引用和修饰历史命令 录制屏幕并转换为 gif 动画图片 总结 回到顶部 前言 ...

随机推荐

  1. 两个Python web框架:Django & Tornado比较

    就是说它作为 web 框架比 Django 简单,又支援异步 IO,且更不需要前端的 webserver ? 我已经混乱了, Tornado是 Nginx.Django.Node.js 的结合体?又或 ...

  2. 利用 Gitbook 生成文档中心站点

    经过一个多月,Bugtags 最近上线了自己的文档站点:docs.bugtags.com,在这里你可以找到 Bugtags 集成.使用相关的绝大部分问题. 在这之前我们使用的是第三方提供的帮助中心产品 ...

  3. 华为ICDcomm接口js测试

    1)获取坐席状态接口调用方法: “方法”------“坐席与班组” 中的 Phone.QueryAgentStatusEx(工号)如果该方法调用成功,那么坐席状态将会存入到属性: Phone.Agen ...

  4. Perl中文/unicode/utf8/GB2312之间的转换

    参考:http://daimajishu.iteye.com/blog/959239不过具测试,也有错误:原文如下: # author: jiangyujieuse utf8;  ##在最后一个例子, ...

  5. dedeCMS安装,前端样式不显示

    因为dedeCMS样式引用用的是绝对路径:dede默认安装在网站的根目录. 所以,解决方法有三种: 1.修改代码路径,很不推荐,那么多页面可操作性低: 2.直接安装在站点根目录www目录,也行,但是容 ...

  6. linux 交换分区分配规则

    一般地, 内存小于2G ,则swap=2*RAM, 内存大于2G, 则swap=2+RAM, 然后满足上述规则就行.

  7. Mysql 学习笔记 20140219

    1. Mysql常用命令:每个命令以分号结束. create database name;          创建数据库 use databasename;              选择数据库 dr ...

  8. CodeForces 602D 【单调队列】【简单数学】

    题意: 给你n个数,m次询问,每次询问给l和r代表l和r中间所有子区间中特征值的和. 特征值的定义是在这个区间中找i和j使得|tmp[i]-tmp[j]|/|j-i|最大. 思路: 首先是特征值的定义 ...

  9. nyoj 84 阶乘的0

    点击打开链接 阶乘的0 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 计算n!的十进制表示最后有多少个0 输入 第一行输入一个整数N表示测试数据的组数(1<=N& ...

  10. SSH连接问题

    新安装的ubuntu14.04无法使用root用户ssh连接,显示ssh root permission denied 解决方法: /etc/ssh/sshd_confg: PermitRootLog ...