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
以详细信息模式输出文件名及其属性信息:
[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