Linux基础指令及其作用之文件内容查看和处理

2024-06-02 09:11:18 浏览数 (2)

cat

用于显示、连接和创建文件内容的命令。

代码语言:javascript复制
cat [选项] [文件...]

常用选项

  • -n, --number:为所有输出的行编号。
  • -b, --number-nonblank:为非空输出行编号。
  • -s, --squeeze-blank:删除连续的空行,仅保留一行。
  • -v, --show-nonprinting:显示不可打印字符,除了换行和制表符。
  • -E, --show-ends:在每行的结尾显示 $
  • -T, --show-tabs:将制表符显示为 ^I

该命令还可以和‘>’'>>'配合使用

将文件内容连接并输出到一个新的文件

代码语言:javascript复制
cat file1 file2 > newfile

追加文件内容到现有文件

代码语言:javascript复制
cat file1 >> existingfile
less 和more

用于在终端中逐页查看文件内容。它们特别适用于查看大文件,因为它们不会一次加载整个文件,而是按需加载内容。

more 是一个简单的分页工具,允许用户按页查看文件内容。

代码语言:javascript复制
more [选项] 文件
  • 常用操作
  • 空格键:向下滚动一屏。
  • Enter 键:向下滚动一行。
  • b 键:向上滚动一屏。
  • q 键:退出 more
  • /搜索词:向下搜索指定词。
  • n:跳到下一个搜索结果。

lessmore 的增强版,提供了更多的功能和更灵活的导航选项。

代码语言:javascript复制
less [选项] 文件

常用操作

  • 空格键:向下滚动一屏。
  • b 键:向上滚动一屏。
  • Enter 键:向下滚动一行。
  • k 键:向上滚动一行。
  • g 键:跳到文件的开头。
  • G 键:跳到文件的结尾。
  • /搜索词:向下搜索指定词。
  • ?搜索词:向上搜索指定词。
  • n:跳到下一个搜索结果。
  • N:跳到上一个搜索结果。
  • h 键:显示帮助。
  • q 键:退出 less
moreless的对比
  • 功能less 提供了更多的功能,如向前滚动、上下移动、搜索高亮等,而 more 功能较少。
  • 效率less 更适合查看大文件,因为它不会一次加载整个文件,而是按需加载。
  • 用户体验less 提供了更灵活的导航和搜索功能,用户体验更好。
head

head 命令用于显示文件的开头部分。它在需要快速查看文件的前几行时非常有用。默认情况下,head 命令会显示文件的前 10 行,但你可以通过选项来调整显示的行数。

代码语言:javascript复制
head [选项] [文件...] 
  • 常用选项
  • -n, --lines=[行数]:指定要显示的行数。
  • -c, --bytes=[字节数]:指定要显示的字节数。
  • -q, --quiet, --silent:不显示文件名(即使有多个文件)。
  • -v, --verbose:总是显示文件名。
tail

tail 命令用于显示文件的尾部内容,默认情况下显示最后 10 行。它在需要查看文件末尾部分的内容时非常有用,特别是查看日志文件的最新日志。

代码语言:javascript复制
tail [选项] [文件...]

常用选项

  • -n, --lines=[行数]:指定显示的行数。
  • -c, --bytes=[字节数]:指定显示的字节数。
  • -f, --follow:实时显示文件的新增内容。
  • -F:类似于 -f,但文件被重命名或移除时会重新打开文件。
  • –retry:与 -f 一起使用时,如果文件不存在则定期重新尝试打开。
  • -q, --quiet, --silent:不显示文件名(即使有多个文件)。
  • -v, --verbose:总是显示文件名。
grep

grep 是 Unix 和类 Unix 操作系统中用于搜索文本的命令。它通过使用正则表达式来匹配和显示文本中的特定模式。grep 是一个非常强大的工具,特别适用于从文件或命令输出中查找和过滤特定的信息。

代码语言:javascript复制
grep [选项] PATTERN [文件...]
grep "pattern" filename//从文件中搜索匹配的行
grep -l "pattern" *.txt//显示包含匹配的文件名

其中:

模式:是要搜索的字符串或者正则表达式模式。

文件:是要搜索的文件名。

grep 命令会在指定的文件中搜索匹配模式的行,并将匹配到的行打印到标准输出。如果不指定文件名,则 grep 将会从标准输入读取数据进行搜索。

常用选项

  • -i, --ignore-case:忽略大小写。
  • -v, --invert-match:反转匹配,显示不匹配的行。
  • -c, --count:只显示匹配的行数。
  • -l, --files-with-matches:只显示包含匹配的文件名。
  • -L, --files-without-match:只显示不包含匹配的文件名。
  • -n, --line-number:显示匹配行的行号。
  • -H, --with-filename:显示文件名。
  • -h, --no-filename:不显示文件名。
  • -r, --recursive:递归搜索目录下的所有文件。
  • -w, --word-regexp:只匹配整个单词。
  • -x, --line-regexp:只匹配整行。
  • -A NUM, --after-context=NUM:显示匹配行后面的 NUM 行。
  • -B NUM, --before-context=NUM:显示匹配行前面的 NUM 行。
  • -C NUM, --context=NUM:显示匹配行前后各 NUM 行。
ln

ln 是 Linux 和其他类 Unix 操作系统中的一个命令,用于创建链接(link)

具体来说,ln 命令有两种常用的用法:

创建硬链接:

代码语言:javascript复制
bashCopy code
ln source_file target_link

这条命令会创建一个名为 target_link 的硬链接,指向 source_file。硬链接是文件系统中的一个指向原始文件 inode 的新路径,它们与原始文件在磁盘上的存储位置相同,因此对硬链接或原始文件的修改都会影响到另一个。

创建符号链接(软链接):

代码语言:javascript复制
bashCopy code
ln -s source_file target_link

这条命令会创建一个名为 target_link 的符号链接(也称为软链接),它指向 source_file。符号链接是一个特殊类型的文件,它包含了指向原始文件的路径,而不是原始文件本身。因此,符号链接可以跨文件系统、指向目录,或者指向不存在的目标。

在使用 ln 命令时,如果不加任何选项,默认情况下会创建硬链接。要创建符号链接,需要使用 -s 选项。

除了常见的 -s 选项外,ln 命令还有一些其他常用的选项,这些选项可以根据需要来进行不同的操作。以下是一些常用的选项:

  1. -b, --backup[=CONTROL]:在创建目标链接之前,对现有目标文件进行备份。可选的 CONTROL 参数用于指定备份方式,例如:
  • none:不进行备份。
  • off:与 none 相同。
  • numbered:创建带有数字后缀的备份文件。
  • t:将每次备份视为一个版本,并在备份文件名中追加时间戳。
  1. -f, --force:如果目标链接已经存在,则强制删除它,并创建新的链接。
  2. -i, --interactive:在覆盖现有目标链接之前,提示用户进行确认操作。
  3. -n, --no-dereference:将目标链接视为一个普通文件而非符号链接,不对其解引用。
  4. -r, --relative:创建相对路径的符号链接,而不是绝对路径。
  5. -T, --no-target-directory:如果目标文件是一个目录,不要将链接创建在目标目录内,而是创建在目标目录的上一级目录中。
find

find 命令用于在指定目录下搜索文件和目录。它是一个非常强大且灵活的工具,可以根据多种条件(如文件名、文件类型、大小、时间戳等)进行搜索。

代码语言:javascript复制
find [搜索路径] [搜索条件] [操作]
find . -name "example.txt"//在当前目录及其子目录中查找名为 example.txt 的文件
find /home -type f//查找 /home 目录下所有普通文件
find /home -type d//查找 /home 目录下所有目录
find . -name "example.log" -exec rm -f {} ;//查找并删除名为 example.log 的文件

常用选项和条件

  • 路径:指定搜索的起始目录。例如,. 表示当前目录,/ 表示根目录。
  • -name:按名称搜索。
  • -iname:按名称搜索,忽略大小写。
  • -type :按文件类型搜索。
    • f:普通文件。
    • d:目录。
    • l:符号链接。
  • -size :按文件大小搜索。
    • n:大于 n 块。
    • -n:小于 n 块。
    • n:正好 n 块。
    • 常用单位:c(字节)、k(千字节)、M(兆字节)、G(吉字节)。
  • -mtime :按修改时间搜索。
    • n:n 天前修改的文件。
    • -n:n 天内修改的文件。
    • n:正好 n 天前修改的文件。
  • -atime:按访问时间搜索(同 -mtime)。
  • -ctime:按状态更改时间搜索(同 -mtime)。
  • -user:按所有者搜索。
  • -group:按组搜索。
  • -perm:按权限搜索。
  • -exec:对匹配的文件执行指定命令。
wc

wc(word count)命令用于统计文件中的字数、行数、字节数等信息。它是一个非常实用的工具,尤其在处理文本文件时。

代码语言:javascript复制
wc [选项] [文件...]
wc filename//统计文件的行数、字数和字节数
//输出格式 行数  字数  字节数  文件名
wc -l filename//统计文件的行数
//行数  文件名
wc file1 file2//同时统计多个文件
  行数  字数  字节数  文件名
  行数  字数  字节数  文件名
  总行数  总字数  总字节数  总计

常用选项

  • -l:显示行数。
  • -w:显示字数。
  • -c:显示字节数。
  • -m:显示字符数。
  • -L:显示最长行的长度。

0 人点赞