目录
[1. pwd ------ 打印当前工作目录](#1. pwd —— 打印当前工作目录)
[2. cd ------ 切换目录](#2. cd —— 切换目录)
[3. mkdir ------ 创建目录](#3. mkdir —— 创建目录)
[4. rmdir ------ 删除空目录](#4. rmdir —— 删除空目录)
[5. ls ------ 列出目录内容](#5. ls —— 列出目录内容)
[示例4:组合选项 -la 或 -al](#示例4:组合选项 -la 或 -al)
[6. cp ------ 复制文件或目录](#6. cp —— 复制文件或目录)
[7. rm ------ 删除文件或目录](#7. rm —— 删除文件或目录)
[8. cat ------ 连接并显示文件内容](#8. cat —— 连接并显示文件内容)
[9. touch ------ 创建空文件或更新文件时间戳](#9. touch —— 创建空文件或更新文件时间戳)
[10. 绝对路径与相对路径](#10. 绝对路径与相对路径)
在Linux系统中,我们通过命令行来管理文件和目录。掌握这些基础命令是高效使用Linux的第一步。本节将详细介绍最常用的目录与文件操作命令,包括命令的英文来源、功能、格式、常用选项和示例,帮助你彻底理解并熟练运用。
1. pwd ------ 打印当前工作目录
-
英文来源 :p rint w orking directory
-
功能:显示当前所在的目录路径(绝对路径)
-
命令格式 :
pwd(没有选项和参数)
示例:
bash
bash
book@100ask:~$ pwd
/home/book
这表示当前位于 /home/book 目录下。无论你在文件系统中走到哪里,pwd 都能告诉你现在身处何方。
注意事项:
pwd没有任何选项,直接输入即可。
2. cd ------ 切换目录
-
英文来源 :c hange directory
-
功能:改变当前工作目录,即"跳转"到其他目录
-
命令格式 :
cd [目录]
示例:
bash
bash
book@100ask:~$ pwd
/home/book
book@100ask:~$ cd /home/
book@100ask:/home$ pwd
/home
从 /home/book 切换到 /home。
常用缩略用法:
-
cd -:回到上一次所在的目录(在两个目录之间快速切换)bashbash book@100ask:/home$ cd /etc book@100ask:/etc$ cd - /home book@100ask:/home$ -
cd ~或直接cd:回到当前用户的家目录(例如/home/book)bashbash book@100ask:/etc$ cd ~ book@100ask:~$ pwd /home/book -
cd ..:返回上一级目录bashbash book@100ask:/home/book$ cd .. book@100ask:/home$ pwd /home -
cd ../..:返回上两级目录
3. mkdir ------ 创建目录
-
英文来源 :m ak e directory
-
功能:创建一个新的空目录
-
命令格式 :
mkdir [选项] 目录名
常用选项:
-p:parents,递归创建多级目录(如果父目录不存在,自动创建)
示例1:创建单个目录
bash
bash
book@100ask:/work$ mkdir dir0
book@100ask:/work$ ls -l
total 4
drwxrwxr-x 2 book book 4096 7月 27 14:57 dir0
创建了一个名为 dir0 的目录。
示例2:递归创建多级目录
bash
bash
book@100ask:/work$ mkdir -p dir1/dir2
book@100ask:/work$ ls -l
total 4
drwxrwxr-x 3 book book 4096 7月 27 14:58 dir1
book@100ask:/work$ cd dir1
book@100ask:/work/dir1$ ls
dir2
-p 选项使得即使 dir1 不存在,也会先创建 dir1,再在 dir1 下创建 dir2。
注意事项:
-
目录名可以带路径,例如
mkdir /home/book/newdir会在指定位置创建。 -
如果目录已存在,会提示错误(除非使用
-p,它不会报错)。
4. rmdir ------ 删除空目录
-
英文来源 :r em ove directory
-
功能 :删除一个空目录
-
命令格式 :
rmdir 目录名
示例:
bash
bash
book@100ask:/work$ mkdir emptydir
book@100ask:/work$ rmdir emptydir
book@100ask:/work$ ls emptydir
ls: cannot access 'emptydir': No such file or directory
成功删除空目录。
注意事项:
-
rmdir只能删除空目录。如果目录非空,会报错:bashbash book@100ask:/work$ rmdir dir1 rmdir: failed to remove 'dir1': Directory not empty -
要删除非空目录,需要使用
rm -r命令(后面会讲)。
5. ls ------ 列出目录内容
-
英文来源 :l ist
-
功能:列出指定目录下的文件和子目录(默认是当前目录)
-
命令格式 :
ls [选项] [目录或文件]
常用选项:
| 选项 | 含义 |
|---|---|
-l |
使用长格式显示详细信息(权限、链接数、所有者、大小、修改时间等) |
-a |
显示所有文件,包括以点 . 开头的隐藏文件 |
-h |
人性化显示文件大小(如K、M、G),常与 -l 联用 |
-d |
显示目录本身的信息,而不是目录下的内容 |
-i |
显示文件的inode号 |
-R |
递归显示子目录内容 |
--help |
显示命令的帮助信息 |
示例1:基本列出
bash
bash
book@100ask:/work/001_linux_basic$ ls
dir1 file1 file2
只显示文件名,不包含隐藏文件。
示例2:显示所有文件(包括隐藏文件)
bash
bash
book@100ask:/work/001_linux_basic$ ls -a
. .. dir1 file1 file2 .hidden
. 表示当前目录,.. 表示上级目录,.hidden 是一个隐藏文件。
示例3:显示详细信息
bash
bash
book@100ask:/work/001_linux_basic$ ls -l
total 8
drwxrwxr-x 2 book book 4096 7月 27 14:54 dir1
-rw-rw-r-- 1 book book 0 7月 27 14:54 file1
-rw-rw-r-- 1 book book 0 7月 27 15:44 file2
每一列的含义:
-
第一个字符:
d表示目录,-表示普通文件,l表示链接等。 -
后面9个字符:文件权限(所有者、组、其他用户的读/写/执行权限)。
-
第二列:硬链接数。
-
第三列:所有者(owner)。
-
第四列:所属组(group)。
-
第五列:文件大小(字节)。
-
第六列:最后修改时间。
-
第七列:文件名。
示例4:组合选项 -la 或 -al
bash
bash
book@100ask:/work/001_linux_basic$ ls -la
total 20
drwxrwxr-x 3 book book 4096 7月 27 15:44 .
drwxrwxr-x 5 book book 4096 7月 27 11:50 ..
drwxrwxr-x 2 book book 4096 7月 27 14:54 dir1
-rw-rw-r-- 1 book book 0 7月 27 14:54 file1
-rw-rw-r-- 1 book book 0 7月 27 15:44 file2
-rw-rw-r-- 1 book book 0 7月 27 15:44 .hidden
显示所有文件(包括隐藏文件)的详细信息。
示例5:人性化显示文件大小
bash
bash
book@100ask:/work/001_linux_basic$ ls -lh
total 8.0K
drwxrwxr-x 2 book book 4.0K 7月 27 14:54 dir1
-rw-rw-r-- 1 book book 0 7月 27 14:54 file1
-rw-rw-r-- 1 book book 0 7月 27 15:44 file2
大小显示为 4.0K 而不是 4096,更易读。
示例6:查看命令帮助
bash
bash
book@100ask:~$ ls --help
会显示 ls 命令的所有选项和用法说明,非常有用。
6. cp ------ 复制文件或目录
-
英文来源 :c opy
-
功能:复制文件或目录
-
命令格式 :
cp [选项] 源文件 目标文件或cp [选项] 源文件... 目标目录
常用选项:
-
-r或-R:recursive,递归复制目录及其内容 -
-f:force,强制覆盖,不提示 -
-i:interactive,交互模式,覆盖前询问 -
-d:复制链接文件时保留链接属性(复制链接本身而不是指向的文件) -
-a:archive ,归档模式,相当于-dR --preserve=all,常用于备份
示例1:复制文件
bash
bash
book@100ask:/work$ cp file1 file2
将 file1 复制为同目录下的 file2。如果 file2 已存在,默认会覆盖(有的系统会别名 cp -i 提示确认)。
示例2:复制文件到另一个目录
bash
bash
book@100ask:/work$ cp file1 dir1/
将 file1 复制到 dir1 目录下,文件名不变。
示例3:复制目录
bash
bash
book@100ask:/work$ cp -r dir1 dir2
将 dir1 目录及其所有内容递归复制到 dir2。如果 dir2 不存在,则创建;如果存在,则 dir1 会成为 dir2 的子目录。
示例4:组合选项
bash
bash
book@100ask:/work$ cp -rf dir_a dir_b
-r 递归复制,-f 强制覆盖。这种组合常用于复制大量文件且不需要交互确认。
注意事项:
-
复制目录时必须加
-r,否则会报错"omitting directory"。 -
使用
-i可以防止误覆盖,适合谨慎操作。
7. rm ------ 删除文件或目录
-
英文来源 :r emove
-
功能:删除文件或目录
-
命令格式 :
rm [选项] 文件或目录
常用选项:
-
-r或-R:递归删除,用于删除目录及其内容 -
-f:强制删除,忽略不存在的文件,不提示 -
-i:交互模式,删除前询问确认
示例1:删除文件
bash
bash
book@100ask:/work$ rm file1
删除 file1 文件。如果文件不存在,会提示错误。
示例2:强制删除文件
bash
bash
book@100ask:/work$ rm -f file1
即使文件不存在也不会报错。
示例3:删除目录及其所有内容
bash
bash
book@100ask:/work$ rm -r dir1
递归删除 dir1 目录及其内部所有文件和子目录。如果目录非空,不加 -r 会报错。
示例4:强制递归删除(常用组合)
bash
bash
book@100ask:/work$ rm -rf dir_a
这是最危险的命令之一,它会不加提示地删除指定目录下的所有内容。务必谨慎使用,确认路径正确。
注意事项:
-
rm -rf /会删除根目录下所有文件(系统崩溃!),绝对不要尝试。 -
建议在使用
rm -rf前先用ls确认路径,或者先使用-i选项。
8. cat ------ 连接并显示文件内容
-
英文来源 :concatenate
-
功能:将文件的内容依次输出到标准输出(通常是屏幕)
-
命令格式 :
cat [选项] 文件...
示例1:显示单个文件
bash
bash
book@100ask:/work$ cat file1.txt
hello world.
显示 file1.txt 的内容。
示例2:连接多个文件并显示
bash
bash
book@100ask:/work$ cat file1.txt file2.txt
hello world.
www.100ask.org
依次显示 file1.txt 和 file2.txt 的内容。
常用选项:
-
-n:显示行号(包括空行) -
-b:显示行号,但空行不编号 -
-s:压缩连续的空行为一行
注意事项:
-
cat适合查看小文件。对于大文件,建议使用less或more分页查看。 -
如果只用
cat不加文件,会等待标准输入,输入什么就回显什么(按Ctrl+D结束)。
9. touch ------ 创建空文件或更新文件时间戳
-
英文来源:touch(接触)
-
功能:如果文件不存在,则创建一个空文件;如果文件已存在,则将其访问和修改时间更新为当前时间
-
命令格式 :
touch [选项] 文件名
示例:创建空文件
bash
bash
book@100ask:/work$ touch newfile
book@100ask:/work$ ls -l newfile
-rw-rw-r-- 1 book book 0 7月 27 15:00 newfile
创建了一个大小为0的空文件 newfile。
常用选项:
-
-a:只修改访问时间(atime) -
-m:只修改修改时间(mtime) -
-t:使用指定时间戳而不是当前时间
注意事项:
touch常用于快速创建占位文件,或在编译时更新文件时间戳以触发重新编译。
10. 绝对路径与相对路径
在Linux中,定位文件或目录有两种方式:绝对路径和相对路径。
绝对路径
-
定义 :从根目录
/开始的完整路径,可以唯一确定一个文件或目录。 -
例子 :
/home/book/1.txt,/bin/pwd,/etc/passwd -
特点:在任何位置使用绝对路径都能正确找到目标,不受当前目录影响。
相对路径
-
定义 :相对于当前工作目录的路径,不以
/开头。 -
特殊符号:
-
.:代表当前目录 -
..:代表上一级目录 -
../../:代表上两级目录,以此类推
-
-
例子 :
假设当前目录是
/home/book:-
./1.txt表示当前目录下的1.txt,即/home/book/1.txt。 -
../book/1.txt表示上一级目录(/home)下的book子目录中的1.txt,即/home/book/1.txt(因为上一级是/home,再往下book就是当前目录?这里要小心:..是/home,book是/home下的子目录,所以/home/book/1.txt与当前目录相同,但写法是../book/1.txt)。 -
../../etc/passwd表示上两级目录(/)下的etc/passwd。
-
路径使用技巧:
-
切换目录时,常用
cd ..返回上级,cd -返回上次目录。 -
复制或移动文件时,可以用相对路径简化操作。
-
在脚本中,为了避免路径依赖,建议使用绝对路径或基于脚本所在目录的路径。