目录
前言
上个星期我们学习了Linux系统文件与目录管理的入门即第一部分,这周开始剩下部分的学习,主要包括文件与目录操作指令的各种模块。
二、文件与目录操作命令
4、文件查看命令
4.2 more命令
用于逐页查看文本文件内容的命令。当需要查看大型文件时,more 命令能够按页显示文件内容,允许用户逐页浏览文件内容。
语法:
more [选项] [文件名]
选项:
操作 | 作用 |
空格键 | 向下翻动一页。 |
Enter键 | 向下翻动一行。 |
q | 退出 more 命令。 |
/pattern | 在文件中搜索指定的模式(pattern)。 |
:n | 跳转到第 n 行。 |
:f | 显示文件名和当前行号。 |
4.3 less命令
看文本文件内容的命令,类似于 more 命令,但提供了更多的功能和操作选项。less 命令可以让用户在文件中进行搜索、前后翻页、跳转到指定行等操作。
语法:
less [选项] [文件名]
选项:
操作 | 作用 |
Page Up 或 b | 向上滚动一屏。 |
Page Down 或 空格键 | 向下滚动一屏。 |
/pattern | 在文件中搜索指定模式(pattern)。 |
n | 找到下一个匹配的搜索结果。 |
N | 找到上一个匹配的搜索结果。 |
g | 跳转到文件的起始处。 |
G | 跳转到文件的末尾。 |
q | 退出 less 命令。 |
4.4 head命令
head 命令用于显示文件的开头部分,默认情况下显示文件的前 10 行内容。head 命令在查看文件的头部信息时非常有用,尤其适合用于快速查看文件的开头几行内容。
语法:
head [选项] [文件名]
管道符:
将前一命令的结果作为后一命令的输入进行再次处理;相当于流水线工作。
案例:
[root@arthur ~]# cat -n anaconda-ks.cfg | head -1
选项:
选项 | 作用 |
-q | 隐藏文件名 |
-v | 显示文件名 |
-c | 显示字节数 |
-n | 显示的行数 |
4.5 tail命令
tail 命令用于查看文件的尾部内容,默认情况下显示文件的最后 10 行。tail 命令在查看日志文件或需要关注文件末尾信息时非常有用。使用 tail -f 选项可以实时监控文件的变化,这对于监控系统日志或等待文件尾部的特定信息非常方便。
语法:
tail [选项] [文件名]
选项:
选项 | 作用 |
-f | 循环读取 |
-q | 不显示处理信息 |
-v | 显示详细的处理信息 |
-c<数目> | 显示的字节数 |
-n<行数> | 显示行数 |
4.6 nl命令
nl 命令是 Linux 和类 Unix 系统中的一个用于将文本文件中的行号添加到内容的命令。它主要用于向文本文件中的每 一行添加行号,便于阅读和查找。
语法:
nl [选项] [文件]
选项:
选项 | 作用 |
-b | 指定要将行号添加到的行。 |
-b a | 添加行号到非空行。 |
-b t | 添加行号到所有行。 |
-b n | 不添加行号到任何行。 |
-n | 设置行号的开始值。 |
-w | 指定行号字段的宽度。 |
-s | 设置行号与文本之间的分隔符。 |
案例:
1.将行号添加到文件中的所有行,并将行号输出到标准输出:
nl file.txt
2.将行号添加到文件中的非空行,并使用制表符作为分隔符:
nl -b a -s $'\t' file.txt
3.将行号添加到文件中的所有行,从指定的行号开始:
nl -n 100 file.txt
4.设置行号字段的宽度为 3 个字符,并将行号添加到所有行:
nl -w 3 file.txt
5、创建目录命令
mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。如果需要创建多级目录,可以使用通配符 * 或多个目录名。还支持使用{ }来进行创建多个目录。
语法:
mkdir [选项] 目录名
选项:
选项 | 作用 |
-p | 递归创建目录,如果父目录不存在也会创建。 |
-m | 设置新目录的权限。 |
-v | 显示详细信息,包括正在创建的目录和已使用的文件系统类型。 |
6、创建文件命令
重定向符号:
>:覆盖重定向
>>:追加重定向
查看文件的时间戳:stat 文件名称
[root@c2407 c2407-3]# stat f1.txt
文件:"f1.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:1839635 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2024-08-02 09:23:49.110424207 +0800
最近更改:2024-08-02 09:23:21.526489727 +0800
最近改动:2024-08-02 09:23:21.526489727 +0800
创建时间:-
6.1 touch命令
用于创建一个新的空文件或修改现有文件的时间戳。它的全称是 "touch file",即触摸文件。
语法:
touch [选项]... 文件...
选项:
选项 | 作用 |
-a 或 --time=access | 如果文件不存在,创建一个新文件。同时更新访问时间和修改时间。 |
-m 或 --time=modify | 仅更新文件的修改时间。 |
-t 或 --time=date | 使用指定的日期和时间更新文件的访问和修改时间。 |
6.2 echo命令
用于在终端输出指定的文本内容。
语法:
echo [选项] 文本内容
选项:
选项 | 作用 |
-n | 在输出内容后不换行。 |
-e | 启用转义字符的解析。“\"转义符号;\n:换行;\r:回车;\t:水平制表符(tab) |
7、文件或目录复制命令
cp命令用来复制文件和目录的命令。
语法:
cp [选项] 文件目录
选项:
选项 | 作用 |
-i(交互式) | 如果在目标位置存在一个文件且该文件会 被覆盖时,cp命令会询问用户是否继续。 |
-n(不覆盖) | 在目标位置存在文件时,不会覆盖该文件,即不会进行复制操作。 |
-r或-R(递归) | 用于复制目录以及目录内所有子目录和文件。 |
-p(保留属性) | 复制文件的同时保留源文件的属性如权限和时间戳。 |
-v(详细模式) | 显示详细的复制过程信息。 |
8、文件或目录移动命令
mv命令用来移动文件或目录,或者重命名文件和目录的命令。
语法:
mv [选项] 文件目录
选项:
选项 | 作用 |
-i(交互式) | 如果移动或重命名目标位置已存在且会覆盖时,mv 命令会询问用户是否继续。 |
-n(不覆盖) | 在目标位置存在文件时,不会覆盖该文件,即不会进行移动或重命名操作。 |
-v(详细模式) | 显示详细的移动或重命名过程信息。 |
9、文件或目录删除命令
rm命令用于删除文件的命令。它的全称是 "remove",意思是 "删除"。
语法:
rm [选项] 文件 ...
操作:
选项 | 作用 |
-i 或 --interactive | 在删除之前,显示每个文件是否确认删除。 |
-f 或 --force | 强制删除,即使文件正在被使用,或者存在打开的文件描述符。 |
-r 或 --recursive | 递归地删除目录及其内容。 |
-v 或 --verbose | 详细模式,显示删除的每个文件。 |
10、别名命令
alias用于创建或显示当前目录下的别名。别名是一种用户定义的命令或函数,可以用来简化复杂的命令序列。使用unalias name可以删除一个别名。
语法:
alias [选项] 名称=命令
选项:
选项 | 作用 |
-p | 显示当前目录下的所有已定义的别名列表。 |
11、文件属性查看命令
stat 命令是 Unix 和 Linux 系统中的一个实用程序,用于显示关于文件的状态信息。stat 命令提供比 ls -l 更详细的文件信息,包括文件的大小、创建时间、最后访问时间、最后修改时间等。
语法:
stat [选项] 文件
选项:
选项 | 作用 |
-c 或 --format | 指定输出信息的格式。 |
-f 或 --file-system | 显示文件系统级别。 |
-t 或 --terse | 以更紧凑的方式显示输出信息。 |
--all 或 -a | 显示所有可用的信息。 |
--dereference | 跟随符号链接。 |
12、目录结构查看命令
tree 命令是一个用于以树状结构显示目录及其内容的实用程序,常用于显示文件系统的层次结构。tree 命令会递归地 列出指定目录下的所有子目录和文件,并以树的形式展示它们之间的关系。
语法:
tree [选项] [目录]
选项:
选项 | 作用 |
-L | 指定要显示的层级深度。 |
-d | 只显示目录,不显示文件。 |
-f | 显示完整路径。 |
-a | 显示所有文件和目录,包括隐藏的。 |
-I | 排除符合模式的文件或目录。 |
13、dd命令
用于复制文件和转换数据。它用于将源文件复制到目标文件,或者用于在目标文件上进行数据转换。
语法:
dd [选项] [输出选项] [输入选项]
选项:
选项 | 作用 |
if=filename | 指定输入文件。 |
of=filename | 指定输出文件。 |
bs=size | 指定块大小。 |
count=num | 指定要复制的块数。 |
conv=参数 | 进行数据转换,例如tec进行techeus格式转换,auto允许尽可能多的转换(这对于大量数据是安全的)。 |
skip=num | 跳过第一个num块。 |
status=progress | 显示进度信息。 |
14、链接命令
ln 命令用于在文件系统中创建链接(links)。链接分为两种类型:硬链接(hard link)和符号(软)链接(symbolic link)。
硬链接(hard link):(目录不允许创建硬链接)
- 硬链接是文件系统中的一个目录条目,它指向另一个文件的数据块。
- 硬链接和原始文件共享同一个 inode,因此对文件的修改会影响到所有硬链接。
- 硬链接不能跨越文件系统边界。
符号(软)链接(symbolic link):
- 符号链接是一个特殊的文件,其内容是指向另一个文件的路径。
- 符号链接和原始文件不共享 inode,因此删除原始文件后,符号链接仍然存在,但无法访问。
- 符号链接可以跨越文件系统边界。
语法:
ln [选项] 文件目录
选项:
选项 | 作用 |
-s 或 --symbolic | 创建符号链接而不是硬链接。 |
-f 或 --force | 如果目标文件已存在,则覆盖它。 |
-i 或 --interactive | 在覆盖目标文件之前询问用户。 |
-p 或 --preserve | 保留源文件的属性,如权限和时间戳。 |
15、file命令
在UNIX和Linux系统中,file 命令用于确定文件的类型或属性。它可以提供有关文件的内容、文件系统类型、文件权限等信息。
语法:
1 file [选项] 文件名
选项:
选项 | 作用 |
-b | 以二进制形式输出文件类型信息。 |
-f | 仅显示文件类型,不显示其他信息。 |
-i | 以人类可读的格式显示文件类型。 |
-L | 对符号链接进行特殊处理,查看链接指向的真实文件。 |
案例:
ASCII可显示字符(共95个)
结语
今天学习的命令有很多相似之处,如more和less命令,head和tail命令,在学习的过程中要多多思考进行类比,可以减少不必要的记忆过程。