06-. Linux File and Directory Management
06-. Linux 文件与目录管理
绝对路径 与 相对路径的选用:
怎么方便怎么来。
1. 目录管理
. # 代表此层目录
.. # 代表上一次目录
- # 代表前一个工作目录
~ # 代表 目前用户身份 所在的家目录
~account # 代表 account 这个用户的家目录
根目录的 .. 也是存在的,也就是它自己
下面是常见的处理目录的指令
1.1. cd(change directory)
变换目录。
1.2. pwd(print woring directory)
显示当前所在的目录。
1.3. mkdir(make directory)
建立新的目录。
1.4. rmdir
删除空的目录。
目录必须一层一层删除
被删除的目录里必定不能存在其他的目录或文件(必须是 empty directory)
如果想要删除目录下所有东西:
使用rm -r xxx
2. 执行文件路径变量:$PATH
2.1. PATH环境变量的内容
由一堆目录所组成的。每个目录中间用冒号(:)隔开。
2.2. PATH的作用
简化命令查找
如果没有 PATH 变量,用户每次运行一个命令时都需要指定完整的路径。例如,运行 ls 命令时,需要输入 /bin/ls 。而通过设置 PATH ,用户可以直接输入 ls ,系统会自动在 PATH 中指定的目录中查找 ls 命令的可执行文件。
提高效率
PATH 变量允许用户快速访问系统中安装的各种工具和应用程序,而无需记住每个命令的完整路径。
3. 文件与目录管理
3.1. 文件、目录的检视:ls
ls
下达 ls 的时候,默认显示的只有:非隐藏档的档名、以档名进行排序及文件名代表的颜色显示。
3.2. 复制:cp
、删除:rm
与移动:mv
cp
、删除:rm
与移动:mv
3.2.1. cp
:copy
可以:
复制
建立连结档(快捷方式)
对比两文件的新旧而予以更新
复制整个目录
在预设的条件中, cp
的来源档与目的档的权限是不同 的,目的档的拥有者通常会是指令操作者本身。
3.2.2. mv
: move
可以:
移动目录与文件
更改名字(重命名)
3.2.3. rm
: remove
可以:
移除文件/目录
4. 文件内容查询
cat 由第一行开始显示文件内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
od 以二进制的方式读取文件内容!
4.1. cat
(concatenate)
cat
(concatenate)主要的功能是 将一个文件的内容连续的印出在屏幕上面,可以加上 -n 或 -b,这样前面可以加上行号。
不过,一旦超过40行,眼睛根本看不过来。所以一般很少用的。
4.2. tac
tac
反向展示。
cat 是由『第一行到最后一行连续显示在屏幕上』,而 tac 则是『 由最后一行到第一行反向在屏幕上显示出来 』
4.3. nl
nl
添加行号打印。
4.4. more
more
一页一页翻动。
在more
程序中,有以下几个指令:
空格键 (
space
):代表向下翻一页;Enter
:代表向下翻『一行』;/
字符串 :代表在这个显示的内容当中,向下搜寻『字符串』这个关键词;:f
:立刻显示出文件名以及目前显示的行数(Ubuntu 里:
不会显示出来);q
:代表立刻离开 more ,不再显示该文件内容。b
或[ctrl]
- b :代表往回翻页,不过这动作只对文件有用,对管线无用。
4.5. less
less
一页一页翻动。
比 more 多几个好用的功能:
使用 [pageup] [pagedown] 等按键的功能来往前往后 翻看文件。
向上搜索文件,查找字符串
基本功能如下:
空格键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字符串 :向下搜寻『字符串』的功能;
?字符串 :向上搜寻『字符串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
g :前进到这个资料的第一行去;
G:前进到这个数据的最后一行去 (注意大小写);
q :离开 less 这个程序;
4.6. head
head
取出前面 n 行。
head -n 20 file.c
显示 file.c 的前 20 行
若没有加上 -n 这个选项时,默认只显示十行,若只要一行呢?那就加入『 head -n 1 filename 』即可!
4.7. tail
tail
取出后面 n 行
4.8. od
od
非纯文本档。
利用这个指令,可以将 data file 或者是 binary file 的内容数据给他读出来
4.9. touch
touch
修改文件时间或建置新档
modification time (mtime): 当该文件的『内容数据』变更时,就会更新这个时间!内容数据指的是文件的内容,而不是文件的属性或 权限喔!
status time (ctime): 当该文件的『状态 (status)』改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新 这个时间啊。
access time (atime): 当『该文件的内容被取用』时,就会更新这个读取时间 (access)。举例来说,我们使用 cat 去读取 /etc/man_db.conf , 就会更新该文件的 atime 了。
有时候的时间取决于系统时间,处理一些时间敏感的文件的时候请设置好系统时间。不要收到来自未来的文件噢!
无论如何, touch 这个指令最常被使用的情况是:
建立一个空的文件;
将某个文件日期修订为目前 (mtime 与 atime)
5. 文件与目录的默认权限和隐藏权限
读写执行(r,w,x)为基本权限。
在Ext2/Ext3/Ext4/xfs文件系统中,还可以使用chattr与lsattr设定及观察隐藏属 性。 常见的包括只能新增数据的 +a 与完全不能更动文件的 +i 属性。
6. 指令与文件的搜寻
脚本文件名搜寻:which
文件档名搜寻:whereis 或 locate
利用 find 可以加入许多选项来直接查询文件系统,以获得自己想要知道的档名。
但通常不用find
,因为很慢,也很操硬盘
7. 总结
7.1. 进入某目录成为『可工作目录』的基本权限
可使用的指令:例如 cd 等变换工作目录的指令;
目录所需权限:用户对这个目录至少需要具有 x 的权限
额外需求:如果用户想要在这个目录内利用 ls 查阅文件名,则用户对此目录还需要 r 的权限。
7.2. 进入某个目录内读取一个文件的基本权限
可使用的指令:例如本章谈到的 cat, more, less等等
目录所需权限:用户对这个目录至少需要具有 x 权限;
文件所需权限:使用者对文件至少需要具有 r 的权限才行!
7.3. 修改一个文件的基本权限
可使用的指令:例如 nano 或未来要介绍的 vi 编辑器等;
目录所需权限:用户在该文件所在的目录至少要有 x 权限;
文件所需权限:使用者对该文件至少要有 r, w 权限
7.4. 建立一个文件的基本权限
目录所需权限:用户在该目录要具有 w,x 的权限,重点在 w
7.5. 进入某目录并执行该目录下的某个指令的基本权限
目录所需权限:用户在该目录至少要有 x 的权限;
文件所需权限:使用者在该文件至少需要有 x 的权限
Last updated