我们每天使用许多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