Shell中的常用命令

Shell中的常用命令

1.cat命令不仅可以读取文件、拼接数据,还能够从标准输入中读取

echo "sss" | cat - out.txt

“-”被作为stdin文本的文件名

2.压缩相邻的空白行

cat -s 1.txt

3.用cat命令的-T选项能够将制表符标记成^T

cat -T 1.txt

4.find命令的工作方式如下:沿着文件层次结构向下遍历,匹配符合条件的文件,执行相应的操作。默认打印出文件和目录

find . -print

.指定当前目录”. . “指定父目录。print选项使用\n(换行符)分隔输出每一个文件或目录名。而-print0使用空字符‘\0’来分隔。

5.根据文件名或正则表达式进行搜索

find a/a -name '*.txt' -print

6.find命令支持逻辑操作符。-a-and选项可以执行逻辑与操作,-o-or可以执行逻辑或操作。

7.否定参数

find . ! -name "*.txt" -print

8.根据文件类型搜索
只列出所有的目录(包括子目录)

find . -type d -print

列出普通文件

find . -type f -print

9.根据文件的时间戳进行搜索,Unix/Linux文件系统中的每一个文件都有3种时间戳。
访问时间(-atime):用户最近一次访问文件的时间。
修改时间(-mtime):文件内容最后一次被修改的时间。
变化时间(-ctime):文件元数据(例如权限或所有权)最后一次改变的时间

打印出在最近7天内被访问过的所有文件。

find . -type f -atime -7 -print 

打印出恰好在7天前被访问过的所有文件。

find . -type f -atime 7 -print 

打印出访问时间超过7天的所有文件。

find . -type f -atime +7 -print

10.–newer选项可以指定一个用于比较修改时间的参考文件,然后找出比参考文件更新的(更近的修改时间)所有文件。

找出比1.txt修改时间更近的所有文件

find . -type f -newer 1.txt -print

11.基于文件权限和所有权,打印出权限为644的文件

find . -type f -perm 755 -print

12.删除匹配的文件

find命令的-delete选项可以删除所匹配的文件。

find . -type f -name "*.session" -delete

13.xargs,将多行输入转换成多行输出

cat 1.txt | xargs

14.xargs的-n选项可以限制每次调用命令时用到的参数个数。

cat 1.txt | xargs -n 3

分隔多行,每行3个元素。

15.统计程序文件的行数。

find -type f -name "*.sh" -print0 | xargs -0 wc -l

16.要将输入中的字符由大写转换成小写

echo "DDFFRGVD df" | tr 'A-Z' 'a-z'

17.在tr中利用集合的概念,可以轻松地将字符从一个集合映射到另一个集合中。

echo 12345 | tr '0-9' '9876543210'

——87654 #已加密

18.tr命令可以用来加密。

echo ge pnzr, ge fnj, ge pbadhrerq. | tr 'a-zA-Z' 'n-za-mN-ZA-M'

19.tr有一个选项-d,可以通过指定需要被删除的字符集合,将出现在stdin中的特定字符清除掉:

echo "Hello 123 world" | tr -d '0-9'

——Hello world
20.将不在0-9字符替换成空格

echo hello 1 char 2 next 4 | tr -c '0-9' ' '

—— 1 2 4

21.压缩字符,tr命令能够完成很多文本处理任务。例如,它可以删除字符串中重复出现的字符。基本实现形式如下

echo "a   ddd  re ?cd d0" | tr -s ' '

——a ddd re ?cd d0

23.校验和程序用来从文件中生成相对较小的唯一密钥。

24.按照数字顺序排序

sort -n 1.txt

按照逆序排序:

sort -r 1.txt

25.有时文本中可能会包含一些像空格之类的多余字符。如果需要忽略标点符号并以字典排序,可以使用:

sort -bd unsorted.txt 

其中,选项-b用于忽略文件中的前导空白行,选项-d用于指明以字典序进行排序。

26.uniq命令可以从给定输入中找出唯一的行,报告或删除那些重复的行,只能用于排过序的数据。

uniq sorted 1.txt
sort 1.txt | uniq

27.只显示唯一的行(在输入文件中没有重复出现过的行)

uniq -u 1.txt

28.统计各行在文件中出现的次数

sort 1.txt | uniq -c

29.找出重复的行

sort 1.txt | uniq -d

30.通过指定分割大小,可以将100KB的文件分成一系列10KB的小文件。在split命令中,除了k(KB),我们还可以使用M(MB)、G(GB)、c(byte)和w(word)。

split -b 2k timing.log

31.借助%操作符可以从name.extension这种格式中提取name部分。

file_jpg="sample.jpg" 
name=${file_jpg%.*} 
echo File name is: $name

——File name is: sample

32.#操作符可以提取出扩展名

extension=${file_jpg#*.} 
echo Extension is: jpg

——Extension is: jpg

33.匹配:m// (可以省略m,直接写成/regexp/)
替换:s///
转化:tr///

34.将后缀修改:

rename -n 's/png/PNG/' *.png

将大写改为小写

rename 'y/A-Z/a-z/'

去掉文件后缀名:

rename 's/\.jpg$//' *.jpg
发布了39 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43443900/article/details/103424533
今日推荐