Linux 实用工具

在 Linux 环境中,有许多强大而灵活的工具可以帮助用户处理日常任务。本文记录一些实用的命令行工具和它们的常见用法,后续可能会继续更新。

文件搜索工具:find 和 grep

find

find 是用于根据文件名、类型、修改时间等条件查找文件的工具。查找当前目录及其子目录下所有 .log 文件:

-name
根据文件名查找文件(大小写敏感)

1
find . -name "*.log"

-type
根据文件类型进行查找

1
find . -type d

-type 参数可以取以下值:
f:普通文件
d:目录
l:符号链接
b:块设备文件
c:字符设备文件

-mtime
查找在指定天数前修改的文件,正数为多少天前,负数则为多少天内

1
find . -mtime +7

-size
根据文件大小查找,查找大于 100MB 的文件

1
find . -size +100M

-exec {} ;
对找到的每个文件执行命令,{} 代表文件名,; 结束命令。
比如,查找 .log 文件并删除它们:

1
find . -name "*.log" -exec rm {} \;

grep

grep 用于在文本文件中查找符合特定模式的行。

查找包含 “error” 的所有行:

1
grep "error" logfile.txt

grep经常和其他命令配合使用,在当前目录及其子目录中,查找所有包含关键字 “error” 的 .log 文件:

1
find . -name "*.log" -type f -exec grep -H "error" {} \;

find . -name "*.log":在当前目录及其子目录中查找所有 .log 文件。
-exec grep -H "error" {}:对找到的每个文件执行 grep,搜索关键字 “error”。-H 选项确保输出包含文件名。
\;:表示 exec 命令结束。

这个组合能有效找到包含特定关键字的文件,适用于日志文件分析等场景。

图片处理工具:ImageMagick

ImageMagick 是一个功能丰富的命令行工具,广泛用于处理和转换图片格式。

下面是一些常见的用法:
安装 ImageMagick

1
sudo apt-get install imagemagick

图片调整大小和压缩
将图片的像素大小调整为 100x100,并保持 90% 的质量,同时居中裁剪:

1
convert -resize 100x100 -quality 90 -gravity center -crop 100x100+0+0 src.jpg dst.jpg

批量压缩图片
通过 mogrify 命令,可以直接在源文件上进行图片处理,这对于批量操作特别有用。例如,下面的命令将图片大小调整为 16x16 并转换为 .png 格式。

1
mogrify -resize 16x16 -format png *.jpg

系统监控工具:htop 和 iotop

htop

htop 是一款用于监控系统资源使用情况的交互式工具,它显示了 CPU、内存、任务等的使用详情,并支持方便的进程管理。

安装和运行 htop:

1
2
3
4
5
6
# 安装
sudo apt-get install htop

# 运行
htop

iotop

iotop 专门用于监控系统中各个进程的磁盘 I/O 活动。使用以下命令安装并运行:

1
2
3
4
5
6
# 安装
sudo apt-get install iotop

# 运行
sudo iotop

文件传输工具:rsync

rsync 是一个高效的文件和目录同步工具,它能够同步本地或远程文件,支持增量传输,即只传输更改的部分。

大多数 Linux 发行版默认已安装 rsync,如果没有安装,可以通过以下命令安装:

1
sudo apt-get install rsync

示例:
将本地目录同步到远程服务器:

1
2
rsync -avz /local/directory user@remote:/remote/directory

-a 归档模式,保留文件权限、符号链接等信息。
-v 显示传输过程中的详细信息。
-z 压缩传输,提高传输速度。

网络工具:curl

curl 是一个用于执行 HTTP、FTP 请求的强大工具,适用于下载文件、测试 API、获取网页内容等任务。

通常 curl 已经默认安装,如果没有,可以手动安装:

1
sudo apt-get install curl

使用示例:
下载文件:

1
curl -O http://example.com/file.zip

发送 GET 请求并显示返回内容:

1
curl http://example.com

发送 POST 请求:

1
curl -X POST -d "param1=value1&param2=value2" http://example.com/api