Linux 目录结构
各目录的作用
Linux的目录结构和windows不太一样

目录路径
切换目录
$ cd .. # 切换到上一级路径
$ cd ~ # 切换到当前用户的home目录
$ cd - # 切换到上一次所在目录
显示当前目录
$ pwd # Print Working Directory
绝对路径和相对路径
绝对路径 开头用代表根目录的 斜杠 /,相对路径开头可以用代表当前目录的点号.(不过一般是省略的)
# 绝对路径
$ cd /usr/local/bin
# 相对路径
$ cd ./../../usr/local/bin
其他
- Linux中以
.打头的文件是隐藏文件,若要显示它们,对ls命令加-a参数
$ ls -a # all
-
-使用
Tab键可以自动补全目录,若有多个候选补全,多次按Tab键可以在多个候选中切换 -
-使用
tree命令可以查看目录结构
$ tree mydir # 查看当前目录下的mydir目录的内容,会递归列出其子目录及文件
文件的基本操作
新建
新建空白文件
使用 touch 命令创建空白文件,关于 touch 命令,其主要作用是来更改已有文件的时间戳的(比如,最近访问时间,最近修改时间),但其在不加任何参数的情况下,只指定一个文件名,则可以创建一个指定文件名的空白文件(不会覆盖已有同名文件)
$ touch test # 新建一个文件名是test的文件
新建目录
$ mkdir mydir # 在当前目录下创建名为mydir的目录
$ mkdir -p a/b/c # 一下子创建多级目录
其他
- 在同一个目录下的文件和子目录不能重名,若当前目录已经创建了一个 test 文件,再使用
mkdir test新建同名的文件夹,系统会报错文件已存在。这符合 Linux 一切皆文件的理念。 - 若当前目录存在一个 test 文件夹,则
touch命令,则会更改该文件夹的时间戳而不是新建文件。
复制
使用 cp 命令(copy)复制一个文件到指定目录。
$ cp test a/b/c # 把当前目录下的test文件 复制到目录 ./a/b/c 下
使用 -r或者-R参数来复制目录
$ cp -r mydir a/b/c # 把当前目录下的mydir目录 复制到目录 ./a/b/c 下。 recursive: 递归
删除
删除文件
使用 rm(remove files or directories)命令删除一个文件。
$ rm test # 删除当前目录下叫test的文件
对于权限为只读的文件,使用rm命令会得到要求确认删除只读文件的提示,要去掉这个提示,需要加上-f参数。
$ rm -f test-read-only
删除目录
跟复制目录一样,要删除一个目录,也需要加上 -r 或 -R 参数。遇到权限不足删除不了的目录也可以和删除文件一样加上 -f 参数:
$ rm -f -r mydir-read-only # 无需确认删除目录
移动文件
使用 mv(move)命令移动文件(剪切)。命令格式是 mv 源目录文件 目的目录。
$ mv test a/b/c # 把当前目录下的test文件 复制到目录 ./a/b/c 下
重命名文件
简单的重命名操作
mv 命令除了能移动文件外,还能给文件重命名。命令格式为 mv 旧的文件名 新的文件名。
$ mv test test2 # 把当前目录下的test文件重命名为test2
其实只要在要移动的目标目录后面再添加一个不与目标目录其他文件或目录冲突的新文件名,就能做到以新的名字移动到目标目录,上边的的重命名用法只是这个特性的一个妙用。
$ mv test a/b/c/test2 # 把当前目录下的test文件以新的名字test2移动到到目录 ./a/b/c 下
复杂的重命名需求
要实现批量重命名,mv 命令就有点力不从心了,我们可以使用一个看起来更专业的命令 rename 来实现。不过它要用 perl 正则表达式来作为参数。
# 使用通配符批量创建 5 个文件:
$ touch file{1..5}.txt
# 批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件:
$ rename 's/\.txt/\.c/' *.txt
# 批量将这 5 个文件,文件名和后缀改为大写:
$ rename 'y/a-z/A-Z/' *.c
简单解释一下上面的命令,rename 是先使用第二个参数的通配符匹配所有后缀为 .txt 的文件,然后使用第一个参数提供的正则表达式将匹配的这些文件的 .txt 后缀替换为 .c
查看文件
使用 cat,tac 命令查看文件
打印文件内容到标准输出(终端),其中 cat 为正序显示,tac 为倒序从最后一行到第一行显示(cat反过来就是tac)。
$ cat test # 输出test文件中的内容到终端
可以加上 -n 参数显示行号:
$ cat -n test
使用 more 和 less 命令分页查看文件
如果说上面的 cat 是用来快速查看一个文件的内容的,那么这个 more 和 less 就是天生用来"阅读"一个文件的内容的,比如说 man 手册内部就是使用的 less 来显示内容。其中 more 命令比较简单,只能向一个方向滚动,而 less 为基于 more 和编辑器 vi
$ more test
打开后默认只显示一屏内容,终端底部显示当前阅读的进度。可以使用 Enter 键向下滚动一行,使用 Space 键向下滚动一屏,按下 h 显示帮助,q 退出。
使用 head和 tail命令查看文件
只查看文件的头几行(默认为 10 行,不足 10 行则显示全部)和尾几行。
$ tail test
甚至更直接的只看一行, 加上 -n 参数,后面紧跟行数
$ tail -n 1 test # 查看test文件的最后1行
查看文件类型
我们可以使用 file 命令查看文件的类型。
$ file /bin/ls

说明这是一个可执行文件,运行在 64 位平台,并使用了动态链接文件(共享库)。
与 Windows 不同的是,如果你新建了一个 shiyanlou.txt 文件,Windows 会自动把它识别为文本文件,而 file 命令会识别为一个空文件。这个前面我提到过,在 Linux 中文件的类型不是根据文件后缀来判断的。当你在文件里输入内容后才会显示文件类型。
编辑文件
在 Linux 下面编辑文件通常我们会直接使用专门的命令行编辑器比如(emacs,vim,nano)
本文详细介绍Linux系统下的目录结构及其操作方法,包括路径切换、文件管理、复制、删除、移动和重命名等核心功能。同时,介绍了如何使用常用命令如ls、touch、mkdir、cp、rm、mv、cat、less、head、tail和file进行文件浏览和类型识别。
1004

被折叠的 条评论
为什么被折叠?



