无论是Linux的新手还是老手,掌握一些常用命令都是必不可少的,熟练使用它们可以大大提高工作效率,成为工作中的得力助手。本文是常用Linux命令汇总系列文章的第一篇,全面详细的展示了10个与文件管理相关的命令。

一览表

序号命令简述分类
1ls列出目录内容文件管理
2cd切换目录文件管理
3pwd显示当前工作目录的路径文件管理
4mkdir创建新目录文件管理
5cp复制文件或目录文件管理
6mv移动或改名文件文件管理
7touch创建空文件与修改时间戳文件管理
8rm删除文件或目录文件管理
9ln为文件创建快捷方式文件管理
10cat显示文件内容文件管理

1. ls命令

ls命令是英文list的缩写,用于列出指定目录的内容,能够显示文件名、文件类型、文件大小、最后修改时间等信息

语法格式

1
ls [参数] [文件或目录名]

常用参数

1
2
3
4
5
6
7
8
9
ls -a    列出包括隐藏文件的所有文件
ls -A 列出除当前目录(.)和父目录(..)所有文件和目录
ls -d 当遇到目录时列出目录本身而非目录内的文件
ls -i 显示每个文件的索引编号(inode号)
ls -l 显示文件的属性信息,包括权限、所有者、大小、创建时间等
ls -R 递归列出目录中的所有文件和子目录
ls -S 依据内容大小将文件排序显示,最大的在最前
ls -t 按修改时间排序,最新的在最前
ls -X 依据文件扩展名排序

实例

(1)列出/bin目录下的文件

1
ls /bin

image-20240314155802479

(2)按照修改时间列出所有文件的详细信息

1
ls -Alt

image-20240314161027100

(3)结合通配符*使用,显示目录中以a开头的文件列表

1
ls a*

image-20240314164601891

(4)查看当前目录中某一目录的权限

1
ls -ld dir2

image-20240314230031404

注意

  • 对于-a-A参数,ls 命令是区分大小写的

2. cd命令

cd命令是英文change directory的缩写,用于更改当前所处的工作目录,路径可以是绝对路径,也可以是相对路径

语法格式

1
cd 目录名

常用参数&实例

1
2
3
4
5
6
cd /root/dir1/directory    切换到绝对路径
cd dir1/directory 切换到相对路径
cd .. 切换到上级目录
cd ../.. 切换到上上级目录
cd ~ 或 cd 切换到用户主目录
cd - 切换到上次访问的目录

3. pwd命令

pwd命令是英文print working directory的缩写,用于显示当前工作目录的路径,一般不需要配合任何参数去使用

语法格式

1
pwd

实例

显示当前工作目录的路径

1
pwd

image-20240315013440393

4. mkdir命令

mkdir命令是英文make directories的缩写,用于创建目录文件

语法格式

1
mkdir [参数] 目录

常用参数

1
2
3
mkdir -m    创建目录的同时设置权限
mkdir -p 递归创建多级目录
mkdir -v 显示执行过程详细信息

实例

(1)建立一个目录文件

1
mkdir dir3

image-20240314225041763

(2)创建一个新目录并赋予所有者完全权限(读、写、执行),组成员读权限和执行权限,其他用户只读权限

1
mkdir -m 754 dir4

image-20240314230231760

(3)一次性创建多个有嵌套关系的目录文件

1
mkdir -p dir3/dir33/dir333

image-20240314230514736

注意

  • 使用-p参数时,如果目录已经存在,命令不会报错,而是继续执行
  • 如果没有足够的权限或目录已存在,命令会失败

5. cp命令

cp命令是英文copy的缩写,用于复制文件或目录,将一个或多个文件或目录复制到指定位置

语法格式

1
cp [参数] 源文件或目录 目标文件或目录

常用参数

1
2
3
4
5
6
7
8
9
10
cp -a    通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容,功能等同dbR参数
cp -d 复制链接文件时,将目标文件也创建为链接文件而非普通文件,这里链接类似Windows中的快捷方式
cp -f 若目标文件已存在,则会直接覆盖,不会提示用户确认
cp -i 若目标文件已存在,对每个将要覆盖的目标文件都会提示用户确认
cp -l 用于创建硬链接,硬链接是一种指向同一文件的指针,使得多个文件名可以引用相同的数据块
cp -p 复制时保留源文件的权限、所有者和时间戳等属性信息
cp -r 复制目录时递归复制其所有子目录和文件
cp -s 用于创建符号链接(软连接),类似Windows快捷方式,是一个包含链接路径的特殊类型文件
cp -u 仅当源文件比目标文件新,或者目标文件不存在时,才进行复制
cp -v 显示执行过程详细信息

实例

(1)复制源文件到指定目录,并定义新文件的名称

1
cp file1 dir2/new_file

image-20240315004421360

(2)复制指定的源目录,并定义新目录的名称,显示执行过程详细信息

1
cp -rv dir3 dir5

image-20240315003505733

(3)复制指定文件时保留原始属性信息,并强制覆盖已有目录

1
cp -af article.md dir4

image-20240315010344208

注意

可以将一个文件通过复制来覆盖一个已有文件或者复制添加到一个目录中,但无法将一个目录通过复制来覆盖一个已有目录,如果使用cp -r 目录 已有目录命令,会把目录复制添加到已有目录中

6. mv命令

mv命令是英文move的缩写,用于移动文件或目录,与cp复制命令不同,mv命令是剪切操作,只有文件位置发生了变化,而文件总个数并没有增加

语法格式

1
mv [参数] 源文件或目录 目标文件或目录

常用参数

1
2
3
4
5
mv -f    若目标文件已存在,则会直接覆盖,不会提示用户确认
mv -i 若目标文件已存在,对每个将要覆盖的目标文件都会提示用户确认
mv -n 不覆盖已存在的目标文件
mv -u 仅当源文件比目标文件新,或者目标文件不存在时,才进行复制
mv -v 显示执行过程详细信息

实例

(1)移动源文件到指定目录,并定义新文件的名称

1
mv file2 dir1/new_file

image-20240315015109752

(2)重命名当前目录下的文件或目录的名称

1
mv file2 file3

image-20240315021423039

注意

  • mv命令会覆盖文件,为避免误删文件,可以使用-i参数
  • 如果目标文件是一个目录,源文件会被移到此目录下,且文件名不变。如果目标文件不是目录,源文件名会变为目标文件名,并覆盖已存在的同名文件

7. touch命令

touch命令用于创建文件与修改文件或目录的时间属性,若文件存在则修改文件的访问时间和修改时间为当前时间,若文件不存在则创建一个新的空文件

语法格式

1
touch [参数] 文件

常用参数

1
2
3
4
5
touch -a    只修改文件的访问时间
touch -m 只修改文件的修改时间
touch -c 如果文件不存在,不会创建新文件
touch -d 使用字符串(YYYY-MM-DD hh:mm:ss)设定时间与日期,而不是使用当前时间
touch -t 使用时间戳(YYYYMMDDhhmmss)设定时间与日期,而不是使用当前时间

实例

(1)创建出一个指定名称的空文件

1
touch file4

image-20240315222535144

(2)修改指定文件的修改时间

1
touch -md "2024-03-04 05:06:07" file1

image-20240315223428148

(3)使用通配符批量修改多个文件的访问时间,并确保不创建不存在的文件

1
touch -ad "2024-03-04 05:06:07" file*

image-20240315230629852

注意

  • 当使用-d-t参数时,确保提供的时间格式正确
  • 如果提供的文件名包含特殊字符,可能需要用引号包围起来

8. rm命令

rm命令是英文remove的缩写,用于删除文件或目录,这是一个危险的命令,如rm -rf /*会清空系统所有文件且无法恢复

语法格式

1
rm [参数] 文件或目录

常用参数

1
2
3
4
5
rm -d    仅删除无子文件的空目录
rm -f 强制删除文件,不会提示用户确认
rm -i 在删除每个文件之前都会询问用户是否确定
rm -r 递归删除目录及其全部子文件
rm -v 显示执行过程详细信息

实例

(1)强制删除指定目录及其内的全部子文件

1
rm -rf dir1

image-20240317225703255

(2)删除当前目录下的所有文件及目录,并且每个文件删除前询问用户是否确认

1
rm -ri *

image-20240317230457708

(3)删除系统的所有文件(不要尝试!!!)

1
rm -rf /*

注意

  • 谨慎使用rm命令,一般情况下删除的文件或目录无法恢复

9. ln命令

ln命令是英文link的缩写,用于为某个文件在另外一个位置建立同步的链接(硬链接)。Linux系统中的链接文件有硬链接和软链接(符号链接)两种形式,软链接相当于Windows系统中的快捷方式文件,原始文件被移动或删除后软链接文件也将无法使用;硬链接则是将文件的inode属性块进行了复制,因此把原始文件移动或删除后硬链接文件依然可以使用

语法格式

1
ln [参数] 源文件或目录 目标文件或目录

常用参数

1
2
3
4
5
6
7
ln -d    允许超级用户尝试创建指向目录的硬链接
ln -f 若目标文件已存在,则会直接覆盖,不会提示用户确认
ln -i 若目标文件已存在,对每个将要覆盖的目标文件都会提示用户确认
ln -r 根据相对位置创建软链接而非绝对路径
ln -s 创建软链接
ln -t 设置链接文件的存放目录
ln -v 显示执行过程详细信息

实例

(1)创建软链接

1
ln -s file1 file2

image-20240317170238335

(2)创建硬链接,当目标文件存在时询问是否覆盖

1
ln -i file1 file2

image-20240317170756446

注意

  • 目录只能创建软链接
  • 目录创建链接必须用绝对路径,使用相对路径创建会提示:符号连接的层数过多

10. cat命令

cat命令是英文concatenate的缩写,用于在终端设备上打印出文件内容,适合查看内容较少的纯文本文件,对于内容较多的文件查看后会在屏幕上快速滚屏看不清所显示的具体内容

语法格式

1
cat [参数] 文件

常用参数

1
2
3
cat -n    由1开始对所有输出的行数编号
cat -b 和-n相似,但对空白行不编号
cat -s 遇到有连续两行以上的空白行,就换为一行的空白行

实例

(1)查看指定文件的内容并显示行号

1
cat -n file1

image-20240320163041761

(2)把文件A的非空白行内容加上行号,之后将其附加到文件B中

1
cat -b file2 >> file3

image-20240320165734429

注意

  • cat命令默认会一次显示整个文件,如果文件过大可能会导致终端卡顿
  • cat命令可以用来创建新的空文件,但不能编辑文件