Linux 系统使用小技巧攻略
1. 使用通配符快速处理多个文件
通配符是Linux命令行中很强大的工具,它可以帮助快速处理多个文件或目录。常用的通配符有 *
、?
、[]
。
*
:匹配任意字符(包括空格和特殊字符,除了斜杠/
),一般用于匹配多个文件名或目录名。
例如:
$ ls *.txt # 列出所有以 .txt 结尾的文件
$ rm *bak* # 删除所有包含 bak 字符串的文件
?
:匹配任意一个字符,一般用于匹配单个文件名或目录名。
例如:
$ ls ?.txt # 列出所有以一个字符加 .txt 结尾的文件
$ rm ???? # 删除所有文件名有4个字符的文件
[]
:匹配任意一个字符,可用于匹配一组字符中的某个字符。
例如:
$ ls [a-z]*.txt # 列出所有以小写字母开头,且以 .txt 结尾的文件
$ rm *[1-3].txt # 删除所有以 1、2、3 结尾的文件
2. 使用管道(|)将多个命令串起来
在 Linux 中,|
用于将前一个命令的输出作为后一个命令的输入。使用管道可以将多个命令串起来,以便更快和更有效地处理数据。
例如:
$ cat testfile.txt | grep "hello" | awk '{print $2}'
这个例子将 testfile.txt
文件的内容通过管道传递给 grep
命令来搜索所有包含 "hello" 的行,随后将匹配到的行传递给 awk
命令处理,最终输出匹配到的行中的第二个单词。
3. 示例说明
示例1:批量重命名文件
假设我们有许多照片,文件名中包含日期和地点信息,现在我们想将它们统一重命名为 "travel_序号.jpg" 的形式,以便更容易查找和管理。我们可以使用 rename
命令和通配符来完成这个任务。
先使用 ls
命令查看文件夹中的文件:
$ ls
20220101_Hawaii.jpg 20220102_Hawaii.jpg 20220105_Tokyo.jpg 20220108_Tokyo.jpg
然后使用 rename 命令和正则表达式来批量重命名文件:
$ rename 's/(.*)\.jpg/travel_$1.jpg/' *.jpg
这个命令会将每个文件名中的日期和地点信息提取出来,然后将它们添加到新文件名中,并将文件名前缀改为 "travel_"。运行命令后,使用 ls
命令查看文件夹中的文件:
$ ls
travel_20220101_Hawaii.jpg travel_20220102_Hawaii.jpg travel_20220105_Tokyo.jpg travel_20220108_Tokyo.jpg
示例 2:查找服务器磁盘使用情况
有时我们需要知道服务器上磁盘使用情况,以便及时释放空间。可以通过 du
命令和管道将结果排序来查找使用空间最大的文件或目录。
例如,我们想查找 /var/log
目录中使用空间最大的前 10 个文件,可以使用下面的命令:
$ du -a /var/log | sort -n -r | head -n 10
du
命令用于计算目录中每个文件和目录的大小,-a
选项表示计算所有文件和目录的总大小。sort
命令可以根据提供的数字字段对文件或文本进行排序,使用 -n
选项按数字大小排序,使用 -r
选项按降序排序。head
命令用于显示结果中的前 n 行。
在上面的示例中,我们将 du
命令的输出通过管道传递给 sort
和 head
命令,最终输出使用空间最大的前 10 个文件或目录,可以及时释放空间,以免磁盘空间不足。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux 系统的一些使用小技巧 - Python技术站