本篇主要是简单介绍Linux中ls、grep、wc、sort、>、|的使用、展示代码。
ls是用于列出目录内容的命令。它是 "list" 的缩写,常用于查看当前目录下的文件和子目录。
基本用法
ls 选项 目录或文件
如果不指定目录或文件,ls 会列出当前工作目录的内容。
如果指定目录或文件,ls 会列出指定路径的内容。
常用选项
1. **`-l`**:以长格式(详细信息)列出文件和目录
ls -l
文件权限 | 硬链接数 | 文件所有者 | 文件所属组 | 文件大小(字节) | 最后修改时间 | 文件或目录名 |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
2. -a:显示所有文件,包括隐藏文件(以.开头的文件)
ls -a
3. -h:与 -l 一起使用,以人类可读的格式显示文件大小(如 KB、MB)
ls -lh
4. -R:递归列出子目录的内容
ls -R
5. -t:按修改时间排序,最新的文件在前
ls -lt
6. -r:反转排序顺序(通常与 `-t` 或 `-l` 一起使用)
ls -lr
7. -s:按文件大小排序,最大的文件在前
ls -ls
8. --color:启用颜色输出(通常默认启用),用不同颜色区分文件类型
ls --color
9. -d:仅列出目录本身,而不是目录的内容。*/用于列出当前目录下的所有子目录,而不会递归显示子目录的内容
ls -d */
10. -i:显示文件的 inode 号
ls -i
grep是一个用来搜索文本的工具。它可以在文件或输入内容中查找指定的关键词,并显示包含该关键词的行。
基本用法
grep "关键词" 文件名
在文件中搜索包含 `关键词` 的行。
如果不指定文件名,grep 会从标准输入(比如管道)读取数据。
常用选项
1. -i:忽略大小写。
grep -i "hello" file.txt
2. -v:反向搜索,显示不包含关键词的行。
grep -v "hello" file.txt
3. -n:显示匹配行的行号。
grep -n "hello" file.txt
4. -r:递归搜索目录下的所有文件。
grep -r "hello" /path/to/dir
5. -c:统计匹配的行数。
grep -c "hello" file.txt
6. --color:高亮显示匹配的关键词。
grep --color "hello" file.txt
wc命令用于统计文件中的单词数、字符数等。以下是 wc 命令的完整选项。
1. -l:统计行数(lines)
wc -l 文件名
2. -w:统计单词数(words)
wc -w 文件名
3. -c:统计字节数(bytes)
wc -c 文件名
4. -m:统计字符数(characters)与 `-c` 不同,`-m` 对多字节字符(如 UTF-8 编码的字符)更准确。
wc -m 文件名
5. -L:统计文件中最长行的长度(以字符为单位)
wc -L 文件名
6. 无选项:如果直接运行 `wc` 而不加任何选项,默认会输出行数-l、单词数-w和字节数-c
wc 文件名
7、结合管道使用:wc 可以与其他命令结合使用,通过管道 | 统计输出内容
例如:
统计当前目录下的文件数量:
ls | wc -l
统计某个命令输出的行数:
grep "pattern" file.txt | wc -l
`sort` 是用于对文本文件或输入内容进行排序的命令。它可以按行对文本进行排序,并支持多种排序选项,如按字母顺序、数字顺序、逆序等。
基本用法
sort [选项] [文件]
如果不指定文件,`sort` 会从标准输入读取数据。
如果指定文件,`sort` 会读取文件内容并排序。
常用选项
1. -r:逆序排序(从大到小或从 Z 到 A)
sort -r file.txt
2. -n:按数值大小排序(而不是按字母顺序)
sort -n file.txt
3. -k:按指定字段排序(适用于多列数据)
sort -k 2 file.txt
-k 2 表示按第二列排序
4. -t:指定字段分隔符(默认是空格) -t ',' 表示使用逗号作为分隔符
sort -t ',' -k 2 file.txt
5. -u:去重,仅输出唯一的行
sort -u file.txt
6. -f:忽略大小写(不区分大小写排序)
sort -f file.txt
7. -o:将排序结果输出到文件(而不是标准输出)
sort file.txt -o sorted_file.txt
8. -b:忽略行首的空格
sort -b file.txt
9. **`-h`**:按人类可读的数值排序(如 1K、2M、3G)
sort -h file.txt
> 是一个 **输出重定向符号,用于将命令的输出结果写入文件,而不是显示在终端上。如果文件不存在,它会创建文件;如果文件已存在,它会覆盖文件内容。
基本用法
命令 > 文件名
将命令的输出结果写入指定文件。
如果文件已存在,文件内容会被覆盖。
注意事项
1. 覆盖文件内容:
>会覆盖文件内容。如果不想覆盖,而是追加内容,可以使用 >>
2. 创建新文件:
如果文件不存在,> 会自动创建文件。
3. 清空文件:
如果只想清空文件内容,可以使用:
> 文件名
>:将输出重定向到文件(覆盖文件内容)。
>>:将输出追加到文件(不覆盖文件内容)。
2>:将错误信息重定向到文件。
2>&1:将错误信息和标准输出合并。
| 是一个 管道符号,用于将一个命令的输出作为另一个命令的输入。通过管道,可以将多个命令串联起来,实现更复杂的操作。
基本用法
命令1 | 命令2
命令1 的输出会作为 命令2 的输入。
管道符号 | 是竖线(通常位于键盘的反斜杠 \ 上方)。
结合多个管道
可以将多个管道串联起来,实现更复杂的操作。例如:列出当前目录下所有文件和文件夹的详细信息,并通过管道将输出传递给grep命令,查找.txt后缀的文件信息,再将结果传递给wc -l命令统计
ls -l | grep -i "\.txt$" | wc -l
注意事项
1. 管道的输入和输出:
管道只能传递标准输出(stdout),不能传递标准错误(stderr)。
如果需要传递标准错误,可以使用 `2>&1` 将标准错误重定向到标准输出:
命令 2>&1 | 命令2
2. 管道的性能:
管道是内存中的操作,速度非常快,适合处理大量数据。
3. 管道的限制:
管道只能传递文本数据,不能传递二进制数据或文件。