zzxworld

Linux 批量命令操作

Linux 系统最有效率的使用方式是通过各种终端命令来完成一些常用操作。本文收集了一些常用的批量操作命令示例,这些命令能让一些依赖于人工重复操作的琐碎工作完成的更加高效。

为了便于理解,下面会以具体的用途为示例来展示命令用法,但其结构可以举一反三,实现更多可能。所以不要被以下命令示例索局限了思维。

首先来个最常见的操作,批量修改文件名。下面这个命令是把当前目录下所有大写的 PNG 后缀名称批量改为小写:

rename .PNG .png ./*

记得上面提到的举一反三,只要是属于文件名中的字符,都可以批量做修改。

接下来是一个对我来说更加实用的命令。我在写一些教程类型的文章时,经常会用到系统截图功能。生成的图片格式通常为 PNG。在使用前,我通常需要把它们转换为 JPG 格式。完成这个需求的批量操作命令如下:

ls ./*.PNG|xargs -n 1 bash -c 'convert $0 ${0%.PNG}.jpg'

借助于 convert 命令的功能,转换的时候还可以顺便调整一下图片尺寸:

ls ./*.PNG|xargs -n 1 bash -c 'convert -resize 800x800 $0 ${0%.PNG}.jpg'

再来个批量下载的命令:

cat urls.txt | xargs wget -c

这个命令依赖于 urls.txt 文件,首先需要把需要下载的文件地址保存到这个文件,每行一条,然后再运行这个命令。

最后是批量结束程序进程的命令,比如我要结束所有运行中的 php-fpm 进程:

ps aux|grep php-fpm|grep -v grep|awk '{print $2}'|xargs kill -9