1. Linux 目录结构
1.1目录结构
目录 | 说明 | 目录 | 说明 |
---|---|---|---|
/bin | 可执行的文件 | /root | 根用户的家目录 |
/boot | 系统核心文件和开机所需的文件 | /sbin | root用户才能执行的命令文件 |
/dev | 系统设备相关文件 | /srv | 服务启动后访问的数据文件 |
/etc | 系统配置文件 | /tmp | 程序临时存放的文件 |
/home | 非root用户的家目录 | /opt | 第三方软件安装目录 |
/lib | 系统和程序的库函数文件 | /media | 移动设备相关文件 |
1.2 路径
绝对路径:从根目录开始的路径,每个文件或目录只有一个绝对路径
相对路径:从当前路径开始,使用 / 进入下一级目录,使用 … 返回上一级目录,相对路径默认使用 ./ 开头
特殊路径:
-
~ :代表当前用户的家目录
- root 用户的家目录 /root
- 其他用户的家目录 /home/用户名
-
. :代表当前路径
-
..
9 :代表当前路径的父路径 -
-
:代表上一次所在的路径,通常用于多个深层目录之间来回切换(只能记录上一次)
2. Linux 文件管理
Linux文件管理中常用的命令有:ls、cd、mkdir、pwd、cp、mv、rm。
命令 | 全称 | 描述 |
---|---|---|
ls | list files | 显示当前目录中的文件或子目录 |
cd | change directory | 将当前目录切换到指定的目录 |
mkdir | make directory | 在当目录下创建目录 |
pwd | pring work directory | 显示用户当前所处的工作目录 |
cp | copy file | 复制文件或目录 |
mv | move file | 移动文件或目录、文件重命名 |
rm | remove | 删除文件或目录 |
2.1 ls(list files)
语法格式:ls [选项] [目录]
功能描述:显示当前目录中的文件或子目录
选项参数:
选项 | 描述 |
---|---|
-a(all) | 显示所有文件及目录 (包括以“.”开头的隐藏文件) |
-l(long) | 使用长格式列出文件及目录信息 |
-r | 将文件以相反次序显示(默认依英文字母次序) |
-t(time) | 根据最后的修改时间排序 |
-A | 同 -a ,但不列出 “.” (当前目录) 及 “…” (父目录) |
-S | 根据文件大小排序 |
-R | 递归列出所有子目录 |
-d | 仅列出目录本身 |
案例演示:
[root@joel ~]# ls -a
. .bash_logout .cache demo .pki .ssh
.. .bash_profile copydemo .mysql_history .pydistutils.cfg .tcshrc
.bash_history .bashrc .cshrc .pip readme.txt .viminfo
[root@joel ~]# ls -l
total 12
drwxr-xr-x 2 root root 4096 Nov 6 17:01 copydemo
drwxr-xr-x 2 root root 4096 Nov 8 22:29 demo
-rw-r--r-- 1 root root 451 Aug 2 16:49 readme.txt
[root@joel ~]# ls -r
readme.txt demo copydemo
[root@joel ~]# ls -t
demo copydemo readme.txt
[root@joel ~]# ls -R
.:
copydemo demo readme.txt
./copydemo:
file.txt
./demo:
file1.txt file2.txt file.txt io1-c.txt io1.sh io-copy.sh test.txt
2.2 cd(change directory)
语法格式:d [相对路径/绝对路径]
功能描述:将当前目录切换到指定的目录;若无指定目录,则回到用户主目录
案例演示:
[root@joel /]# cd root/
[root@joel ~]# cd /root/demo
[root@joel demo]# cd /root/copydemo
[root@joel copydemo]# cd /root
[root@joel ~]# ls
copydemo demo readme.txt
2.3 mkdir(make directory)
语法格式:mkdir [选项] [目录名称]
功能描述:在当目录下创建目录
选项参数:
选项 | 描述 |
---|---|
-p | 递归创建多级目录 |
-m | 建立目录的同时设置目录的权限 |
-z | 设置安全上下文 |
-v | 显示目录的创建过程 |
案例演示:
[root@joel ~]# mkdir test
[root@joel ~]# ls
copydemo demo readme.txt test
[root@joel ~]# mkdir test1 test2 test3
[root@joel ~]# ls
copydemo demo readme.txt test test1 test2 test3
[root@joel ~]# mkdir -p test4/test4_1
[root@joel ~]# ls test4
test4_1
[root@joel ~]# mkdir -v test5
mkdir: created directory ‘test5’
2.4 pwd(pring work directory)
语法格式:pwd [选项]
功能描述:显示用户当前所处的工作目录
选项参数:
选项 | 描述 |
---|---|
-P | 显示处确实的路径,而非使用连结(link)路径 |
-L | 显示逻辑路径 |
案例演示:
[root@joel demo]# pwd
/root/demo
2.5 cp(copy file)
语法格式:copy [选项] [文件]
功能描述:复制文件或目录
选项参数:
选项 | 描述 |
---|---|
-a | 等价于 -dpr |
-f | 若目标文件已存在,则会直接覆盖原文件 |
-i | 若目标文件已存在,则会询问是否覆盖 |
-p | 保留源文件或目录的所有属性 |
-r | 递归复制文件和目录 |
-d | 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录 |
-l | 对源文件建立硬连接,而非复制文件 |
-s | 对源文件建立符号连接,而非复制文件 |
-b | 覆盖已存在的文件目标前将目标文件备份 |
-v | 详细显示cp命令执行的操作过程 |
案例演示:
[root@joel demo]# ls /root/copydemo
file.txt
[root@joel demo]# cp -f /root/copydemo/file.txt /root/copydemo/test.txt
[root@joel demo]# ls /root/copydemo
file.txt test.txt
[root@joel demo]# cp -r file1.txt file2.txt /root/copydemo
[root@joel demo]# ls /root/copydemo
file1.txt file2.txt file.txt test.txt
2.6 mv(move file)
语法格式:move 文件 目标目录
功能描述:删除文件或目录
选项参数:
选项 | 描述 |
---|---|
-f | 覆盖已有文件时,不进行任何提示 |
-i | 若存在同名文件,则向用户询问是否覆盖 |
-u | 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作 |
案例演示:
[root@joel ~]# ls
demo test
[root@joel ~]# mv test demo
[root@joel ~]# ls
demo
[root@joel ~]# ls demo
test
当目标目录不存在时,mv 命令相当于重命名。
2.7 rm(remove)
语法格式:rm [选项] [文件]
功能描述:删除文件或目录
选项参数:
选项 | 描述 |
---|---|
-i | 若存在同名文件,则向用户询问是否覆盖 |
-f | 覆盖已有文件时,不进行任何提示 |
-b | 当文件存在时,覆盖前为其创建一个备份 |
-u | 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作 |
-r | 递归删除目录下的子目录及文件 |
案例演示:
[root@joel demo]# ls
file1.txt file2.txt file.txt
[root@joel demo]# rm file.txt
rm: remove regular file ‘file.txt’? y
[root@joel demo]# ls
file1.txt file2.txt
[root@joel demo]# rm -f file1.txt
[root@joel demo]# ls
file2.txt
[root@joel demo]# ls /root/copydemo
file1.txt file2.txt file.txt dirdemo
[root@joel demo]# rm -rf /root/copydemo
[root@joel demo]# ls /root/copydemo
ls: cannot access /root/copydemo: No such file or directory
❤️ END ❤️