文件管理
mv命令 – 移动或改名文件
mv命令来自英文单词move的缩写,中文译为“移动”,其功能与英文含义相同,能够对文件进行剪切和重命名操作。这是一个被高频使用的文件管理命令,我们需要留意它与复制命令的区别。cp命令是用于文件的复制操作,文件个数是增加的,而mv则为剪切操作,也就是对文件进行移动(搬家)操作,文件位置发生变化,但总个数并无增加。 在同一个目录内对文件进行剪切的操作,实际上应理解成重命名操作,例如下面的第一个示例所示。
语法格式: mv 参数 源文件名 目标文件名
常用参数:
命令 | 详情 |
---|---|
-b | 覆盖前为目标文件创建备份 |
-v | 显示执行过程详细信息 |
-f | 强制覆盖目标文件而不询问 |
-Z | 设置文件安全上下文 |
-i | 覆盖目标文件前询问用户是否确认 |
–help | 显示帮助信息 |
-n | 不要覆盖已有文件 |
–version | 显示版本信息 |
-u | 当源文件比目标文件更新时,才执行覆盖操作 |
参考示例 对指定文件进行剪切后粘贴(重命名)操作:
[root@linuxcool ~]# mv File1.cfg File2.cfg
将指定文件移动到/etc目录中,保留文件原始名称:
[root@linuxcool ~]# mv File2.cfg /etc
将指定目录移动到/etc目录中,并定义新的目录名称:
[root@linuxcool ~]# mv Dir1 /etc/Dir2
将/home目录中所有的文件都移动到当前工作目录中,若遇到文件已存在则直接覆盖:
[root@linuxcool ~]# mv -f /home/* .
ls命令 – 显示目录中文件及其属性信息
ls命令来自英文单词list的缩写,中文译为“列出”,其功能是显示目录中的文件及其属性信息,是最常使用的Linux命令之一.
默认不添加任何参数的情况下,ls命令会列出当前工作目录中的文件信息,常与cd或pwd命令搭配使用,十分方便。带上参数后,我们可以做更多的事情。作为最基础、最频繁使用的命令,有必要仔细了解其常用功能.
语法格式: ls 参数 文件名
常用参数:
命令 | 详情 |
---|---|
-a | 显示所有文件及目录 |
-r | 依据首字母将文件以相反次序显示 |
-A | 不显示当前目录和父目录 |
-R | 递归显示所有子文件 |
-d | 显示目录自身的属性信息 |
-S | 依据内容大小将文件排序显示 |
-i | 显示文件的inode属性信息 |
-t | 依据最后修改时间将文件排序显示 |
-l | 显示文件的详细属性信息 |
-X | 依据扩展名将文件排序显示 |
-m | 以逗号为间隔符,水平显示文件信息 |
-color | 以彩色显示信息 |
参考示例
显示当前目录中的文件名(默认不含隐藏文件):
[root@linuxcool ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg
Pictures Templates Desktop Downloads Music Public Videos
显示当前目录中的文件名(含隐藏文件):
[root@linuxcool ~]# ls -a . .bashrc Documents Music Videos … .cache
Downloads Pictures .viminfo anaconda-ks.cfg .config .esd_auth .pki
.bash_history .cshrc .ICEauthority Public .bash_logout .dbus
initial-setup-ks.cfg .tcshrc .bash_profile Desktop .local Templates
以详细信息模式输出文件名及其属性信息:
[root@linuxcool ~]# ls -l total 8 -rw-------. 1 root root 1430 Dec 14
08:05 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 Dec 14 08:37 Desktop
drwxr-xr-x. 2 root root 6 Dec 14 08:37 Documents drwxr-xr-x. 2 root
root 6 Dec 14 08:37 Downloads -rw-r–r–. 1 root root 1585 Dec 14
08:34 initial-setup-ks.cfg drwxr-xr-x. 2 root root 6 Dec 14 08:37
Music drwxr-xr-x. 2 root root 6 Dec 14 08:37 Pictures drwxr-xr-x. 2
root root 6 Dec 14 08:37 Public drwxr-xr-x. 2 root root 6 Dec 14 08:37
Templates drwxr-xr-x. 2 root root 6 Dec 14 08:37 Videos
显示指定目录中的文件列表:
[root@linuxcool ~]# ls /etc adjtime hosts pulse aliases hosts.allow
qemu-ga alsa hosts.deny qemu-kvm alternatives hp radvd.conf anacrontab
idmapd.conf ras asound.conf init.d rc0.d at.deny inittab rc1.d
………………省略部分输出信息………………
显示当前目录中的文件名及inode属性信息:
[root@linuxcool ~]# ls -i 35290115 anaconda-ks.cfg 35290137
initial-setup-ks.cfg 35290164 Templates 1137391 Desktop 17840039 Music
51609597 Videos 1137392 Documents 35290165 Pictures 17840038 Downloads
51609596 Public
结合通配符一起使用,显示指定目录中所有以sd开头的文件列表:
[root@linuxcool ~]# ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2
依据文件内容大小进行排序,显示指定目录中文件名及其属性详情信息:
[root@linuxcool ~]# ls -Sl /etc total 1348 -rw-r–r–. 1 root root
692241 Sep 10 2023 services -rw-r–r–. 1 root root 66482 Dec 14 08:34
ld.so.cache -rw-r–r–. 1 root root 60352 May 11 2023 mime.types
-rw-r–r–. 1 root dnsmasq 26843 Aug 12 2023 dnsmasq.conf -rw-r–r–. 1 root root 25696 Dec 12 2023 brltty.conf -rw-r–r–. 1 root root 9450
Aug 12 2023 nanorc -rw-r–r–. 1 root root 7265 Dec 14 08:03
kdump.conf -rw-------. 1 tss tss 7046 Aug 13 2023 tcsd.conf
………………省略部分输出信息………………
cp命令 – 复制文件或目录
cp命令来自英文单词copy的缩写,中文译为“复制”,其功能是复制文件或目录。cp命令能够将一个或多个文件或目录复制到指定位置,亦常用于文件的备份工作。-r参数用于递归操作,复制目录时若忘记添加则会直接报错;-f参数则用于当目标文件已存在时会直接覆盖而不再询问。这两个参数尤为常用。
语法格式: cp 参数 源文件名 目标文件名
常用参数:
命令 | 详情 |
---|---|
-a | 功能等价于pdr参数组合 |
-l | 对源文件建立硬链接,而非复制文件 |
-b | 覆盖目标文件前先进行备份 |
-p | 保留源文件或目录的所有属性信息 |
-d | 复制链接文件时,将目标文件也建立为链接文件 |
-r | 递归复制所有子文件 |
-f | 若目标文件已存在,则会直接覆盖 |
-s | 对源文件建立软链接,而非复制文件 |
-i | 若目标文件已存在,则会询问是否覆盖 |
-v | 显示执行过程详细信息 |
参考示例
复制指定的源文件,并定义新文件的名称:
[root@linuxcool ~]# cp File1.cfg File2.cfg
复制指定的源目录,并定义新目录的名称:
[root@linuxcool ~]# cp -r Dir1 Dir2
复制文件时,保留其原始权限及用户归属信息:
[root@linuxcool ~]# cp -a File1.cfg File2.cfg
将指定文件复制到/etc目录中,并覆盖已有文件,不进行询问:
[root@linuxcool ~]# cp -f File1.cfg /etc
将多个文件一同复制到/etc目录中,如已有目标文件名称则默认询问是否覆盖:
[root@linuxcool ~]# cp File1.cfg File2.cfg /etc cp: overwrite
‘/etc/File1.cfg’? y
mkdir命令 – 创建目录文件
mkdir命令来自英文词组make directories的缩写,其功能是创建目录文件。该命令的使用简单,但需要注意,若要创建的目标目录已经存在,则会提示已存在而不继续创建,不覆盖已有文件。若目录不存在,但具有嵌套的依赖关系时,例如/Dir1/Dir2/Dir3/Dir4/Dir5,要想一次性创建则需要加入-p参数,进行递归操作。
语法格式 : mkdir 参数 目录名
常用参数:
命令 | 详情 |
---|---|
-m | 创建目录的同时设置权限 |
-v | 显示执行过程详细信息 |
-p | 递归创建多级目录 |
-z | 设置目录安全上下文 |
参考示例
建立一个目录文件:
[root@linuxcool ~]# mkdir Dir1
创建一个目录文件并设置700权限,不让除所有主以外的任何人读、写、执行它:
[root@linuxcool ~]# mkdir -m 700 Dir2
一次性创建多个目录文件:
[root@linuxcool ~]# mkdir Dir3 Dir4 Dir5
在系统根目录中,一次性创建多个有嵌套关系的目录文件:
[root@linuxcool ~]# mkdir -p /Dir1/Dir2/Dir3/Dir4/Dir5
pwd命令 – 显示当前工作目录的路径
pwd命令来自英文词组print working directory的缩写,其功能是显示当前工作目录的路径,即显示所在位置的绝对路径。
在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,可以使用pwd命令快速查看当前所处的工作目录路径,方便开展后续工作。
语法格式: pwd 参数
常用参数:
命令 | 详情 |
---|---|
-L 显示逻辑路径 | |
–version 显示版本信息 | |
-P 显示实际物理地址 | |
–help 显示帮助信息 |
参考示例
查看当前工作目录路径:
[root@linuxcool ~]# pwd /root
tar命令 – 压缩和解压缩文件
tar命令的功能是压缩和解压缩文件,能够制作出Linux系统中常见的tar、tar.gz、tar.bz2等格式的压缩包文件。对于RHEL 7、CentOS 7版本及以后的系统,解压缩时不添加格式参数(如z或j),系统也能自动进行分析并解压。把要传输的文件先压缩再传输,能够很好地提高工作效率,方便分享。
语法格式: tar 参数 压缩包名 文件或目录名
常用参数:
命令 | 详情 |
---|---|
-A | 添加文件到已存在的压缩包 |
-p | 保留原来的文件权限与属性 |
-B | 设置区块大小 |
-P | 使用绝对路径 |
-c | 创建新的压缩 |
-t | 显示压缩包的内容 |
-C | 解压缩到指定目录 |
-u | 更新压缩包内的文件 |
-d | 记录文件的差别 |
-v | 显示执行过程详细信息 |
-f | 指定压缩包文件 |
-w | 确认压缩包的完整性 |
-j | 使用bzip2压缩格式 |
-x | 从压缩包内提取文件 |
-l | 设置文件系统边界 |
-z | 使用gzip压缩格式 |
-m | 保护文件不被覆盖 |
–exclude | 排除指定的文件不压缩 |
-N | 只将较新日期的文件保存到压缩包中 |
–remove-files | 操作完成后删除源文件 |
参考示例
使用gzip压缩格式对指定目录进行打包操作,显示压缩过程,压缩包规范后缀为.tar.gz:
[root@linuxcool ~]# tar czvf File.tar.gz /etc tar: Removing leading
`/’ from member names /etc/ /etc/mtab /etc/fstab /etc/crypttab
/etc/resolv.conf /etc/dnf/
………………省略部分输出信息………………
使用bzip2压缩格式对某个目录进行打包操作,显示压缩过程,压缩包规范后缀为.tar.bz2:
[root@linuxcool ~]# tar cjvf File.tar.bz2 /etc tar: Removing leading
`/’ from member names /etc/ /etc/mtab /etc/fstab /etc/crypttab
/etc/resolv.conf /etc/dnf/ /etc/dnf/modules.d/
/etc/dnf/modules.d/container-tools.module
………………省略部分输出信息………………
将当前工作目录内所有以.cfg为后缀的文件打包,不进行压缩:
[root@linuxcool ~]# tar cvf File.tar *.cfg anaconda-ks.cfg
initial-setup-ks.cfg
将当前工作目录内所有以.cfg为后缀的文件打包,不进行压缩,并删除原始文件:
[root@linuxcool ~]# tar cvf File.tar *.cfg --remove-files
anaconda-ks.cfg initial-setup-ks.cfg
解压指定压缩包到当前工作目录:
[root@linuxcool ~]# tar xvf File.tar anaconda-ks.cfg
initial-setup-ks.cfg
解压指定压缩包到/etc目录:
[root@linuxcool ~]# tar xvf File.tar -C /etc anaconda-ks.cfg
initial-setup-ks.cfg
查看某个压缩包内文件信息(无须解压):
[root@linuxcool ~]# tar tvf File.tar -rw------- root/root 1256
2023-05-18 08:42 anaconda-ks.cfg -rw-r–r-- root/root 1585 2023-05-18
08:43 initial-setup-ks.cfg
cd命令 – 切换目录
cd命令来自英文词组change directory的缩写,其功能是更改当前所处的工作目录,路径可以是绝对路径,也可以是相对路径,若省略不写则会跳转至当前使用者的家目录。
语法格式: cd 参数 目录名
常用参数:
命令 | 详情 |
---|---|
-L | 切换至符号链接所在的目录 |
~ | 切换至用户家目录 |
-P | 切换至符号链接对应的实际目录 |
… | 切换至当前位置的上一级目录 |
– | 切换至上次所在目录 |
参考示例
切换到指定目录:
[root@linuxcool ~]# cd /Dir [root@linuxcool Dir]#
切换至当前用户的家目录:
[root@linuxcool Dir]# cd ~ [root@linuxcool ~]#
进入到上一级所在目录:
[root@linuxcool ~]# cd … [root@linuxcool /]#
返回到上一次所在目录:
[root@linuxcool /]# cd - /root
[root@linuxcool ~]#
chmod命令 – 改变文件或目录权限
chmod命令来自英文词组change mode的缩写,其功能是改变文件或目录权限的命令。默认只有文件的所有者和管理员可以设置文件权限,普通用户只能管理自己文件的权限属性。
设置权限时可以使用数字法,亦可使用字母表达式,对于目录文件,建议加入-R参数进行递归操作,这意味着不仅对于目录本身,而且也对目录内的子文件/目录进行新权限的设定。
语法格式: chmod 参数 文件名
常用参数:
命令 | 详情 |
---|---|
-c | 改变权限成功后再输出成功信息 |
–no-preserve-root | 不特殊对待根目录 |
-f | 改变权限失败后不显示错误信息 |
–preserve-root | 禁止对根目录进行递归操作 |
-R | 递归处理所有子文件 |
–reference | 使用指定参考文件的权限 |
-v | 显示执行过程详细信息 |
–version | 显示版本信息 |
–help | 显示帮助信息 |
参考示例
设定某个文件的权限为775:
[root@linuxcool ~]# chmod 775 File.cfg
设定某个文件让任何人都可以读取:
[root@linuxcool ~]# chmod a+r File.cfg
设定某个目录及其内部的子文件可被任何人读取:
[root@linuxcool ~]# chmod -R a+r Dir
为某个二进制命令文件新增SUID特殊权限位:
[root@linuxcool ~]# chmod u+s /sbin/reboot
文档编辑
cat命令 – 在终端设备上显示文件内容
cat命令来自英文词组concatenate files and print的缩写,其功能是在终端设备上显示文件内容。在Linux系统中有很多用于查看文件内容的命令,例如more、tail、head等,每个命令都有各自的特点。cat命令适合查看内容较少的纯文本文件。 对于内容较多的文件,使用cat命令查看后会在屏幕上快速滚屏,用户往往看不清所显示的具体内容,只好按Ctrl+C组合键中断命令执行,所以对于大文件,干脆用more命令显示吧。
语法格式: cat 参数 文件名
常用参数:
命令 | 详情 |
---|---|
-A | 等价于-vET参数组合 |
-t | 等价于-vT参数组合 |
-b | 显示行数(空行不编号) |
-T | 将TAB字符显示为^I符号 |
-e | 等价于-vE参数组合 |
-v | 使用^和M-引用,LFD和TAB除外 |
-E | 每行结束处显示$符号 |
–help | 显示帮助信息 |
-n | 显示行数(空行也编号) |
–version | 显示版本信息 |
-s | 显示行数(多个空行算一个编号) |
参考示例
查看指定文件的内容:
[root@linuxcool ~]# cat anaconda-ks.cfg #version=RHEL8 ignoredisk
–only-use=sda autopart --type=lvm # Partition clearing information
………………省略部分输出信息………………
查看指定文件的内容并显示行号:
[root@linuxcool ~]# cat -n anaconda-ks.cfg
1 #version=RHEL8
2ignoredisk --only-use=sda
3 autopart --type=