5个实用的Linux命令行技巧

1. 输出内容格式化

例如 mount 命令的输出结果看起来很费劲

可以使用 column 对其进行格式化

mount | column -t

再比如有的文件内容格式也不友好

cat /etc/passwd

可以根据 : 进行格式化

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

2. 重复执行命令,直到成功

例如:

  1. ping 一个server直到其是live状态
  2. 检查某个特定的文件是否被成功上传
  3. 检查某个特定URL是否存在

可以使用 while true 实现,示例:

while true
> do
> ping -c 1 baidu.com > /dev/null 2>&1 && break
> done;

其中 >/dev/null 2>&1 是把程序的输出转到空设备 /dev/null(详细说明可以查看之前的文章 “理解 Linux shell 中的一个方言:2>&1”)

3. 进程列表根据CPU、内存排序

ps -aux 的结果中第3、第4列为 cpu内存

根据内存排序:

ps aux | sort -rnk 4

根据CPU排序:

ps aux | sort -rnk 3

4. 用 root 权限执行上一条命令

有时我们会忘记在需要root权限的命令前使用 sudo,就要重写,比较麻烦,可以使用 sudo !! 命令来省去麻烦

例如

[vagrant@localhost ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied

接下来直接执行 sudo !!就可以用 root 权限执行上一条命令 cat /etc/shadow

5. 强大的 Xargs 命令

示例(1)

例如文件 urls.txt 中有一个url列表,现在想下载他们,可以使用命令一次完成:

cat urls.txt | xargs wget

xargs 会把 cat 的输出结果作为参数传给 wget

示例(2)

再比如需要杀掉 tomcat 进程

ps -ax | grep tomcat | grep -v grep | awk '{print $1}' | xargs kill -9

grep tomcat 过滤出含有 tomcat 的进程

grep -v grep 是排除含有 grep 的进程

awk '{print $1}' 取得进程号那列内容

xargs kill -9 把前面取得的tomcat进程号传给 kill命令

示例(3)

如果要传递的命令中需要多个参数,如 cp 有2个参数,xargs 要把之前命令的输出作为其中一个参数传给 cp

ls *.txt | xargs -i cp {} /tmp

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2017-07-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java成神之路

Oracle_Exception_01_The Network Adapter could not establish the connection

端口号错误:一般不会错误但可能使用多个oracle版本,导致端口号为1521的情况。  修改为正确的端口号,执行下面第2步。   

872
来自专栏左瞅瞅,右瞅瞅

SaltStack——配置管理小试(jinja使用)

https://docs.saltstack.com/en/latest/ref/modules/all/

1946
来自专栏自动化测试实战

flask第九篇——url_for【2】

2756
来自专栏雨过天晴

转 Mac OS/Linux命令查询网络端口占用情况

1363
来自专栏我的技术专栏

vi 方向键和Backspace键失效问题的解决方法

962
来自专栏python3

python之读写文件

在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后...

1041
来自专栏我是攻城师

Spark如何在一个SparkContext中提交多个任务

5994
来自专栏云计算教程系列

如何使用RVM在FreeBSD 10.1上安装Ruby on Rails

Ruby on Rails,简称RoR,是一个用Ruby编写的非常流行的全栈Web应用程序开发框架。它允许您快速开发符合MVC(模型 - 视图 - 控制器)模式...

1091
来自专栏lgp20151222

…… are only available on JDK 1.5 and higher 错误(spring 的jdk版本检测在jdk 8下的修订)

1、在项目中创建一个package为org.springframework.core 2、在该package下面新建JdkVersion.java,内容如下...

2311
来自专栏邹立巍的专栏

find 命令详解

find 命令是我们日常工作中比较常用的 Linux 命令。全面的掌握这个命令可以使很多操作达到事半功倍的效果。如果对 find 命令有以下这些疑惑,本文都能帮...

5221

扫码关注云+社区

领取腾讯云代金券