其他

非常实用的Linux命令行技巧

2017-08-30 Seco Max CSDN

点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!


作者丨Seco Max

翻译丨lloog


译者注:当我们不经常练习时,人们很容易忘记过去我们学到了什么。这同样经常发生在当我们使用Linux命令行时。作者介绍了一些有用的linux命令行使用技巧。


我们每天使用许多Linux命令行。我们从网上知道一些技巧,但如果我们不去练习,我们就有可能忘记。我决定做一个关于技巧和窍门的列表,这些技巧和窍门对于你来说可能是已经忘记的,或者可能是全新的。


输出显示为一个表


有时候,当你看到一个命令的输出,由于过度拥挤的字符串可能就无法识别输出(例如,mount命令的输出)。那通过表格显示呢?这很容易做到!


mount | column –t:



在这个例子中,因为空格,输出是格式良好的。如果分隔符是别的东西,像冒号?(例如,在cat/etc/passwd的输出中)。


指定分隔符-s参数,就像下面。


cat /etc/passwd | column -t -s:



重复一个命令,直到它运行成功


如果您在Google上搜索此功能,您会发现很多人会问到如何重复该命令,直到它成功返回并运行正常。 例如包括ping服务器,直到它在线,检查是否从特定目录上传具有特定扩展名的文件,检查特定URL是否已经存在等。


您可以使用while true循环来实现:



在这个例子中, >/dev/null 2>&1 重定向你的程序的输出到 /dev/null。 同时包括了Standard Error和 Standard Out。


对于我来说这是最酷的linux命令行技巧之一。


通过内存利用率排序进程


ps aux | sort -rnk 4:



通过CPU利用率排序进程


ps aux | sort -nk 3:



检查你的架构,执行getconf LONG_BIT。


同时查看多个日志文件


你可以用tail命令看你日志没有问题,但有时,你可能想看多个日志文件。你需要使用支持文本高亮显示、过滤和更多的功能的multi-tail命令:



如果在你的系统上没有这个命令,你可以用apt-get install multitail。


回到你以前的目录


只要输入cd -,你将返回到前面的目录。


做一个非交互式Shell会话互动


做到这一点, 需要改变设置从 ~/.bashrc 到 ~/.bash_profile.


定期监控命令输出


使用观察命令(watch df - h),你可以看任何命令的输出。例如,你可以查看空闲空间,以及它是如何增长的。


通过watch命令,你可以想象你能用变量做什么。


在关闭会话后运行程序


当您在后台运行的任何程序,它都会被你的shell关闭。如何才能在关闭shell后,你仍然可以继续运行这个程序?


这可以通过使用nohup命令——这代表没有hang-up:


nohup wget site.com/file.zip


这个命令是一种最被遗忘的Linux命令行技巧,因为我们很多人使用另一个命令screen:



在同一个目录中将会生成一个叫nohup.out的文件,其中包含正在运行的程序的输出:



命令很酷,对吗?


对任何命令自动回答是或者否


如果你想自动实现用户输入yes的过程


你可以使用yes命令:yes | apt-get update。


或者你想自动输入no,你可以使用yes no | command。



创建指定大小的文件


你可以使用dd命令创建指定大小的文件:dd if=/dev/zero of=out.txt bs=1M count=10。


下面创建里面填充0,大小为10MB的文件:



以root用户身份运行最后的命令


有时,你想以root身份运行命令,但忘记输入sudo命令。你不必重新输入;仅仅只需输入sudo!



记录你的命令行会话


如果你想记录你在shell上输入的内容,你可以使用脚本命令来保存你所有输入的内容到一个叫typescript:script的文件中。


一旦你输入exit,所有你输入的命令将会写入到那个文件,后面你可以重新查看它。


用占位符代替空格


你可以使用tr命令代替任何其他字符,这很方便: cat geeks.txt | tr ‘:[space]:’ ‘\t’ > out.txt。



将文件转换为大写或小写


你可以使用:


cat myfile | tr a-z A-Z> output.txt


强大的Xargs命令


xargs命令是最重要的Linux命令行技巧之一。 您可以使用此命令将命令的输出作为参数传递给另一个命令。 例如,您可以搜索PNGpng文件并对其进行压缩或对其进行任何操作:


find. -name *.png -type f -print | xargs tar -cvzf images.tar.gz


或者,也许你在一个文件中有一个URL清单,你想要去下载它们或者用不同的方式处理它们:


cat urls.txt | xargs wget



记住,第一个命令的输出传递到xargs命令的结尾。


如果你的命令需要在中间输出怎么办?简单!


仅仅使用{}结合-i参数,如下,用第一个命令输出结果去代替参数的位置:


ls /etc/*.conf | xargs -i cp {} /home/likegeeks/Desktop/out



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存