文件系统层次结构
目录结构
/ |
整个文件系统层次结构的根目录 |
---|---|
/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)
Usage: ls [OPTION]... [FILE]...
列出当前目录下所有文件,一般蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件。
常用参数
-
-l
详细信息 -
-h
将文件大小从字节转换为 KB, MB, TB 等(需要和-l
搭配使用) -
-a
显示隐藏文件(以.
开头的文件),同时显示当前目录(.
)和上层目录(..
) -
-A
显示隐藏文件(以.
开头的文件),但是不显示当前目录(.
)和上层目录(..
)
查看当前路径(pwd)
Usage: pwd [-LP]
显示当前的绝对路径。
切换目录(cd)
Usage: cd [-L|[-P [-e]] [-@]] [dir]
进入到目录 dir
中,可以是相对路径,也可以是绝对路径。
常见用法
-
如果后面不加任何路径,默认返回家目录(
~
)。 -
cd -
快速切换回上一个工作目录。
复制文件/目录(cp)
Usage: cp [OPTION]... [-T] SOURCE DEST
将文件/目录从 SOURCE 复制到 DEST。其中,SOURCE 和 DEST 可以是一个目录,也可以是一个文件。在复制的途中,可以完成重命名的操作。
-
当 SOURCE 是目录,DEST 也必须是目录,同时使用参数
-r
,表示把 SOURCE 整个目录复制到 DEST-
如果 DEST 是已经存在的目录的路径:直接把 SOURCE 这个目录复制到 DEST 下
-
如果 DEST 中仅有最后一个目录不存在:把 SOURCE 这个目录复制到 DEST 下并重命名
# 将 /var/log 复制到 ~/test,并重命名为 test_log cp -r /var/log ~/test/test_log # 仅有最后一个目录(test_log)不存在
-
-
当 SOURCE 是文件
-
如果 DEST 是已经存在的目录的路径:直接把 SOURCE 这个文件复制到 DEST 下
-
如果 DEST 中仅有最后一个文件不存在:把 SOURCE 这个文件复制到 DEST 下并重命名
# 将 /var/log/auth.log 复制到 ~/test,并重命名为 test.log cp /var/log/auth.log ~/test/test.log # 仅有最后一个文件(test.log)不存在
-
创建目录(mkdir)
Usage: mkdir [OPTION]... DIRECTORY...
创建一个目录。
常用参数
-p
可以创建一系列目录(自动创建父目录)
删除文件/目录(rm)
Usage: rm [OPTION]... [FILE]...
删除一个文件或者目录,支持正则表达式。
# 删除当前用户家目录下的所有文件
rm -r ~/*
如果要删除隐藏文件,需要加 .
。
# 删除当前目录下的所有隐藏文件(自动跳过 . 和 ..)
rm -r .*
# 删除单独的隐藏文件
rm -r .test
常用参数
-r
删除目录(递归删除)
-f
强制删除
移动文件/目录(mv)
Usage: mv [OPTION]... [-T] SOURCE DEST
将文件/目录从 SOURCE 移动到 DEST。其中,SOURCE 和 DEST 可以是一个目录,也可以是一个文件。在移动的途中,可以完成重命名的操作。
-
当 SOURCE 是目录,DEST 也必须是目录,表示把 SOURCE 整个目录移动到 DEST 下
-
如果 DEST 是已经存在的目录的路径:直接把 SOURCE 这个目录移动到 DEST 下
-
如果 DEST 中仅有最后一个目录不存在:把 SOURCE 这个目录移动到 DEST 下并重命名
# 将 ~/dir_a 移动到 ~/dir_b,并重命名为 dir_c mv ~/dir_a ~/dir_b/dir_c # 仅有最后一个目录(dir_c)不存在
-
-
当 SOURCE 是文件
-
如果 DEST 是已经存在的目录的路径:直接把 SOURCE 这个文件移动到 DEST 下
-
如果 DEST 中仅有最后一个文件不存在:把 SOURCE 这个文件移动到 DEST 下并重命名
# 将 /var/log/auth.log 移动到 ~/test,并重命名为 test.log mv /var/log/auth.log ~/test/test.log # 仅有最后一个文件(test.log)不存在
-
创建文件(touch)
Usage: touch [OPTION]... FILE...
创建一个文件。
查看文件中的内容(cat)
Usage: cat [OPTION]... [FILE]...
查看文件中的内容。
查看历史输入的指令(history)
Usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
不带任何参数使用时,可以查看历史输入过的指令。
参考资料
题外话
emm,这个主题对于 MarkDown 的显示有点一言难尽...不过暂时也没有时间(其实也不会)折腾这一块儿,就先凑合用吧(逃