Linux - 文件系统层次结构及常用文件管理命令
文件系统层次结构
目录结构
/ |
整个文件系统层次结构的根目录 |
---|---|
/bin |
基本命令的二进制文件 |
/etc |
特定主机、系统范围内的配置文件 |
/var |
可变文件——例如日志、临时文件、缓存等 |
/lib |
基本共享库和内核模块,例如 C 的头文件 |
/home |
用户的家目录,包含保存的文件、个人设置等 |
/proc |
内核和进程信息虚拟文件系统(将内核与进程状态归档为文本文件) |
相对路径与绝对路径
绝对路径:从根目录“/
”开始完整地描述文件位置,例如:/bin/ls
。
相对路径:从当前所在的路径开始描述文件位置,例如:tmp/test.cpp
。
如果是以“/
”开头的路径,就是绝对路径,反之则是相对路径。
当前目录与上级目录
“.
”表示当前目录,“..
”表示上级目录。例如:./tmp/test.cpp
或者 ../../bin/ls
。
“~
”表示当前登录用户的家目录。
常用文件管理命令
快捷键
Ctrl + C
取消命令并且换行
Ctrl + U
清空本行命令
Ctrl + Insert
复制文本
Shift + Insert
粘贴文本
tab
按一下补全命令和文件名;如果不能补全,说明有重名,此时按两下即可查看备选选项
命令
查看文件及目录(ls)
1 | Usage: ls [OPTION]... [FILE]... |
列出当前目录下所有文件,一般蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件。
常用参数
-l
详细信息-h
将文件大小从字节转换为 KB, MB, TB 等(需要和-l
搭配使用)-a
显示隐藏文件(以.
开头的文件),同时显示当前目录(.
)和上层目录(..
)-A
显示隐藏文件(以.
开头的文件),但是不显示当前目录(.
)和上层目录(..
)
查看当前路径(pwd)
1 | Usage: pwd [-LP] |
显示当前的绝对路径。
切换目录(cd)
1 | Usage: cd [-L|[-P [-e]] [-@]] [dir] |
进入到目录 dir
中,可以是相对路径,也可以是绝对路径。
常见用法
- 如果后面不加任何路径,默认返回家目录(
~
)。 cd -
快速切换回上一个工作目录。
复制文件/目录(cp)
1 | Usage: cp [OPTION]... [-T] SOURCE DEST |
将文件/目录从 SOURCE 复制到 DEST。其中,SOURCE 和 DEST 可以是一个目录,也可以是一个文件。在复制的途中,可以完成重命名的操作。
当 SOURCE 是目录,DEST 也必须是目录,同时使用参数
-r
,表示把 SOURCE 整个目录复制到 DEST- 如果 DEST 是已经存在的目录的路径:直接把 SOURCE 这个目录复制到 DEST 下
- 如果 DEST 中仅有最后一个目录不存在:把 SOURCE 这个目录复制到 DEST 下并重命名
1
2# 将 /var/log 复制到 ~/test,并重命名为 test_log
cp -r /var/log ~/test/test_log # 仅有最后一个目录(test_log)不存在当 SOURCE 是文件
- 如果 DEST 是已经存在的目录的路径:直接把 SOURCE 这个文件复制到 DEST 下
- 如果 DEST 中仅有最后一个文件不存在:把 SOURCE 这个文件复制到 DEST 下并重命名
1
2# 将 /var/log/auth.log 复制到 ~/test,并重命名为 test.log
cp /var/log/auth.log ~/test/test.log # 仅有最后一个文件(test.log)不存在
创建目录(mkdir)
1 | Usage: mkdir [OPTION]... DIRECTORY... |
创建一个目录。
常用参数
-p
可以创建一系列目录(自动创建父目录)
删除文件/目录(rm)
1 | Usage: rm [OPTION]... [FILE]... |
删除一个文件或者目录,支持正则表达式。
1 | # 删除当前用户家目录下的所有文件 |
如果要删除隐藏文件,需要加 .
。
1 | # 删除当前目录下的所有隐藏文件(自动跳过 . 和 ..) |
常用参数
-r
删除目录(递归删除)
-f
强制删除
移动文件/目录(mv)
1 | Usage: mv [OPTION]... [-T] SOURCE DEST |
将文件/目录从 SOURCE 移动到 DEST。其中,SOURCE 和 DEST 可以是一个目录,也可以是一个文件。在移动的途中,可以完成重命名的操作。
当 SOURCE 是目录,DEST 也必须是目录,表示把 SOURCE 整个目录移动到 DEST 下
- 如果 DEST 是已经存在的目录的路径:直接把 SOURCE 这个目录移动到 DEST 下
- 如果 DEST 中仅有最后一个目录不存在:把 SOURCE 这个目录移动到 DEST 下并重命名
1
2# 将 ~/dir_a 移动到 ~/dir_b,并重命名为 dir_c
mv ~/dir_a ~/dir_b/dir_c # 仅有最后一个目录(dir_c)不存在当 SOURCE 是文件
- 如果 DEST 是已经存在的目录的路径:直接把 SOURCE 这个文件移动到 DEST 下
- 如果 DEST 中仅有最后一个文件不存在:把 SOURCE 这个文件移动到 DEST 下并重命名
1
2# 将 /var/log/auth.log 移动到 ~/test,并重命名为 test.log
mv /var/log/auth.log ~/test/test.log # 仅有最后一个文件(test.log)不存在
创建文件(touch)
1 | Usage: touch [OPTION]... FILE... |
创建一个文件。
查看文件中的内容(cat)
1 | Usage: cat [OPTION]... [FILE]... |
查看文件中的内容。
查看历史输入的指令(history)
1 | Usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...] |
不带任何参数使用时,可以查看历史输入过的指令。