微信号:we21cto

介绍:21CTO(21CTO.com)是中国项级技术专家的学习与服务平台.我们为CTO、技术总监、架构师等技术专家提供高质量的资讯、问答、活动等产品,同时与企业连接,提供技术咨询、研发、运维、技术支持、培训及人才招聘等服...

最有用的Linux命令行与技巧大全

2018-02-09 23:24 21CTO

21CTO导读:在我们学习使用Linux系统时,它现在发展的普通用户也使用鼠标来操作。但是程序员们就需要是用命令行来驱动开发系统。

 

当我们不怎么用某些技术时,很容易忘记以前学过的东西。 这经常发生在我们使用Linux命令行时的情况。本文旨在让开发者记起更多有用的命令行工具,值得分享收藏。


我们每天都用很多Linux命令。 Linux命令灵活有很多有用的技巧,但是一旦如果不怎么用,也会容易忘记。

于是我们决定列出一些你可能已经忘记的命令和技巧。当然,这里一些命令对你来说,也可能是全新的。

以表格形式

 

有时候,当你看到一个命令的输出内容,由于过于拥挤的字符串(例如,mount命令的输出),满屏的字符混杂在一起,这种显示简直是太美丽。 如何让它在桌面上整齐的显示? 用下列命令很容易做到!

mount | column –t mount |column –t :

在这个例子中,由于空格,输出格式良好。 如果分隔符是其他的,比如冒号怎么办? (例如,在cat/etc/passwd的输出 

只需使用–s参数指定分隔符,如下运行结果。

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

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


如果搜索Google命令循环这个功能,会发现很多人询问如何重复执行命令,直到它成功返回并正确运行。 

比如包括ping服务器直到结果变为活动状态,检查是否从特定目录上传具有特定扩展名的文件,检查是否存在指定的网址等。 

可以用while true循环来实现。我们使用如下命令:

在这个例子中, >/dev/null2>&1将程序的输出重定向到/dev/null  包括StandardErrorStandard Out

这是最酷的Linux命令行技巧之一。

程按内存使用数量排序


ps aux | sort -rnk 4 ps aux |sort -rnk 4:

程按CPU使用率排序


ps aux | sort -nk 3 ps aux |sort -nk 3 

要检视自己的操作系统体系结构,可以执行:

getconf LONG_BIT 

结果显示为6432,这和你当前的操作系统有关。

时查看多个日志文件

 

毫无疑问,你可以使用tail命令方便查看系统日志,有时我们可能需要查看多个日志文件,可使用multi-tail命令代替,它支持文本高亮显示,过滤等更多你您要的功能。


如下图显示:

如果你的系统里没有,可以使用apt-get installmultitail找到并安装它。

返回到才使用的目


您只需键入cd –- 你将返回到刚才使用的目录(不是上一级)。

使非交互式Shell成交互式会


想做到这一点,可以将设置从~/.bashrc更改为~/.bash_profile 即可。

以常规间监视命令


可以使用watch命令( watch df –h ),就可以查看任何命令的输出结果。 例如,可以查看可用空间以及增长情况。


我们可以想象一下使用watch命令可以对变体数据做哪些事情。


话结束后运行程序


我们在后台运行任何程序,但关闭掉Shell时,它的进程立即会被Shell杀死。 如何在关闭Shell后继续运行程序?

可以使用nohup命令来完成,这代表不做任何挂起:

nohup wget site.com/file.zip  

这个命令是最令人遗忘的Linux命令行技巧之一,因为许多人使用另一个命令做屏幕输出:

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

很酷的命令,对吧?

对任何命令自动回答Yes或No


如果你想自动化响应用户回答“Yes”的过程。可以通过使用yes命令来完成: yes |apt-get update yes | apt-get update 

也许你想自动说“No”,而不是“Yes” 可以使用yes no |command来完成 yes no | command 

创建具有指定大小的文


您可以使用dd命令创建具有特定大小的文件: dd if=/dev/zero of=out.txt bs=1Mcount=10 

这将创建一个10兆字节,内容填充为0的文本文件:

以root身份运行最后的命令


有时,你忘记在需要root权限的命令,这需要键入sudo再重新翻页找回  你不必重写它,只需键入sudo !!

记录命令行会话


如果您想记录在shell屏幕上输入的内容,可以使用script命令将所有类型保存到名为typescript script的文件中。

当输入exit命令退出时,之前所有命令记录都会被写入该文件,以便日后查看。

用字符替字符


你可以使用tr命令替换任何其他字符,非常方便: cat geeks.txt | tr ':[space]:' '\t'> out.txt cat geeks.txt | tr ':[space]:' '\t'> out.txt 

将文件转换为大写或小写


你可以使用: cat myfile| tr az AZ > output.txt cat myfile | tr az AZ> 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

 

小结


以上是Linux命令行的一些小窍门。 有些命令不一定都让我们喜欢,可以使用其他命令来实现,比如awksed命令或脚本语言处理。


如果你还知道其它我没有提到的有用甚至怪异的命令,欢迎在本文评论区发表高见。


作者:21CTO社区整理编译

 
21CTO 更多文章 三步建立自己的工程师文化 特斯拉CTO:坐着超级火箭的特斯拉,颠覆的不仅是技术 Facebook 14岁,小扎发文纪念: 你能想到的错误,我都犯过 2018 年,程序员要具备哪些核心竞争力? 开发者,如何驱散心中压力,让职业生涯更美好?
猜您喜欢 马航MH370航班已确认在南印度洋坠毁,无人生还。逝者已矣,惟愿生者坚强 自研容器调度引擎Newben会成为“中国的K8s”? 互联网人如何能买的起房? DevOps平台中的自动化部署框架设计 数据库如何用 WAL 保证事务一致性?