有时候,当你看到一个命令的输出,由于过度拥挤的字符串可能就无法识别输出(例如,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