说明
鸟哥的Linux的私房菜基础学习篇(第三版)关于Linux文件与目录管理的阅读笔记
正文
目录的相关操作命令
特殊的目录:
/ 代表根目录
. 代表此层目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表“目前用户身份”所在的主文件夹
~account 代表account这个用户的主文件夹(account是个账号名称)
常见的处理目录的命令
cd(切换目录 Change Directory)
cd [相对路径或绝对路径] 注意:目录名称与cd命令之间存在一个空格
cd ~ : 表示回到自己的主文件夹
cd : 仅输入cd时,代表的就是“cd ~”的意思
cd .. : 表示目前的上层目录
cd / :表示回到root目录
pwd(显示目前所在的目录 Print Working Directory)
pwd [-P]
参数-p,可以让我们取得正确的目录名称,而不是以连接文件的路径来显示的
mkdir(新建新目录 make directory)
mkdir [-mp] 目录名称
参数:
-m :配置文件案的权限,直接设置,不需要看默认权限(umask)
-p :递归创建所需目录<./font>
rmdir(删除“空”的目录 remove directory)
rmdir [-p] 目录名称
参数 -p : 连同上层“空的”目录也一起删除
注意:目录需要一层一层地删除,且被删除的目录中必定不能存在其他的目录或文件
文件与目录的管理
查看文件与目录:ls
参数:
-a : 全部的文件,连同隐藏文件(开头为 . 的文件)一起列出来
-A:列出全部文件(连同隐藏文件,但不包括.与..这两个目录)
-d : 仅列出目录本身,而不是列出目录内的文件数据
-h:将文件容量以人类较易读的方式(GB,KB等)列出来
-l : 列出长数据串,包含文件的属性与权限等数据 命令 ll 为 ls -l
-R:连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来
-S:以文件容量大小排序,而不是用文件名排序
复制cp(copy)
该命令除了单纯的复制文件外,还可以创建连接文件(即快捷方式),对比两文件的新旧而予以更新,以及复制整个目录等功能
cp [参数] 源文件(source)目标文件(destination)
参数:
-a:相当于-pdr的意思
-f :为强制(force)的意思,若目标文件已经存在且无法开启,则删除后再尝试一次
-i:若目标文件已经存在时,在覆盖时会先询问操作的进行
-r:递归持续复制,用于目录的复制行为
-p:连同文件的属性一起复制,而非使用默认属性(备份常用)
注意:在默认条件中,cp的源文件与目的文件的权限是不同的,目的文件的所有者通常会是命令操作者本身。在备份的操作时,要注意特殊权限的文件,不能直接以cp来复制,必须要加上-a或-p等可以完整复制文件权限的参数
删除rm(remove)
rm [-fir] 文件或目录
参数:
-f:force强制的意思,忽略不存在的文件,不会出现警告信息
-i : 在删除前会询问用户是否操作
-r:递归删除,最重用在目录的删除 注意:非常危险的参数
移动或更名mv(move)
mv [-fiu] source destination
mv [opitons] source1 source2 ….. directory
参数:
-f : force强制,如果目标文件已存在,不会询问而直接覆盖
-i : 若目标文件存在,会询问是否覆盖
-u : 若目标文件已经存在,且source比较新,才会更新(update)
注意:如果有多个源文件或目录,则最后一个目标文件一定是“目录”,意思为将所有的数据移动到该目录中
另一个用途是:更该文件名,在Linux中有个rename可以用来更改大量的文件名
文件内容查阅
直接产看文件内容
cat (concatenate)
由第一行开始显示文件内容
cat [-参数]
参数:
-b:列出行号,仅针对非空白行做行号显示,空白行不标行号
-E:将结尾的断行字符$显示出来
-n:打印出行号,连同空白行也会有行号
tac(方向列示)
从最后一行开始显示,可以看出tac是cat的倒写形式
nl(添加行号打印)
nl [-bnw]
参数:
-b : 指定行号指定的方式 -b a : 空行显示行号 -b t : 空行不显示行号
-n:行号的表示方法 -n ln:行号在屏幕的最左方显示 -n rn:行号在自己字段的最右方显示,且不加0 -n rz:最右方显示且加0
-w:行号字段占用的位数
可翻页查看
more(一页一页翻动)
在最后一行会显示出目前显示的百分比
按键命令:
空格键(Space):代表向下翻一页
Enter(回车键):代表向下滚动一行
/字符串:代表在这个显示的内容中,向下查询“字符串”这个关键字
:f :立刻显示出文件名以及目前显示的行数
q:代表立刻 离开more,不再显示该文件的内容
b 或 [ctrl]-b : 代表往回翻页,这个操作只对文件有用,对管道无用
less(一页一页翻动)
在使用more的时,不能向前翻,只能向后翻,使用less时,可以使用上、下按键进行前后翻页
按键命令:
空格键:向下翻动一页
[PageDown]:向下翻动一页
[PageUp]:向上翻动一页
/字符串:向下查询“字符串”
?字符串:向上查询“字符串”
n:重复前一个查询(与/ 或?有关)
q:离开less
数据选取
head(取出前面几行)
head [-n number] 文件
head -n 20 文件 —–显示文件的前20行
head -n -100 文件 —–列出前面的所有行数,但不包括后面的100行
tail(取出后面几行)
tail [-n number] 文件
参数:
-n:后面接数字,代表显示几行的意思
-f:表示持续监测后面所接的文件名,ctrl+c结束
tail -n +100 文件名 —– 代表该文件从100行以后都会被列出来
若想让文件有数据写入时就立刻显示到屏幕上,使用-f参数
非纯文本文件:od
od [-t TYPE] 文件
参数:
-t :后面可以接各种“类型(TYPE)”的输出 如:
a : 利用默认的字符来输出
c:使用ASCII字符来输出
d:十进制 f:浮点数 o:八进制 x:十六进制
修改文件时间或创建新文件:touch
文件的时间参数:
modification time(mtime): 当该文件“内容数据”更改时,就会更新这个时间
status time(ctime):当该文件“状态(status)”改变时,就会更新这个时间,如权限与属性发生改变
access time(atime):当“该文件的内容被取用”时,就会更新这个读取时间(access)如cat命令读取文件时
touch [-acdmt] 文件
参数:
-a:修改访问时间
-c:仅修改文件的时间,若该文件不存在则不创建新文件
-d:后面可以接欲修改日期而不用当前日期
-m:仅修改mtime
-t : 后面可以接欲修改的时间而不用目前的时间,格式为[YYMMDDhhmm]
面试经常问到touch命令的功能:
创建一个空的文件
将某个文件日期改为目前日期(mtime与atime)
查看文件类型 file
文件的查询
脚本文件名的查询
which(寻找“执行文件”)
which [-a] command
参数:
-a:将所有由PATH目录中可以找到的命令均列出,而不只第一个被找到的命令的名称
文件名的查找
find命令不常用,速度慢。常用whereis和locate来查找,如果找不到采用find命令。
whereis和locate是利用数据库来查找数据,所以快速,find命令直接查找硬盘。但是使用时会发现whereis和locate这个命令有时会找到已经删除的文件或找不到新创建的文件
whereis(寻找特定的文件)
whereis [-bmsu] 文件或目录名
参数:
-b:只找二进制格式的文件
-m:只找在说明文件manual路径下的文件
-s:只找source源文件
-u:查找不在上述三个选项中的其他特殊文件
locate
locate [-ir] keyword
参数:
-i:忽略大小写的差异
-r:后面可接正则表达式的显示方式
locate寻找的数据是由已创建数据库/var/lib/mlocate/里面的数据所查找到的
find
find [PATH] [option] [action]
参数:
1.与时间有关的参数 共有:-atime -ctime -mtime
-mtime n :n为数字,意义为在n天之前的“一天之内”被更改过的文件
-mtime +n:列出在n天之前(不含n天本身)被更改过的文件
-mtime -n:列出在n天之内(含n天benshen)被更改过的文件
-newer file:file为一个存在的文件,列出比file还要新的文件名
ex:
find / -mtime 0 —— 将系统过去24小时内有改动(mtime)的文件列出
时间轴:
+4代表大于等于5天前的文件名
-4代表小于等于4天内的文件名
4则是代表4~5那一天的文件名
2.与用户或用户组名相关的参数
-uid n:用户id -gid n:用户组id
-user name:用户账号名称
-group name:用户组名
-nouser:寻找文件的所有者不存在/ect/passwd的人
-nogroup:寻找文件的所有用户组不存在与/etc/group中的文件
3.与文件权限及名称有关的参数
-name filename:查找文件名为filename的文件
-size [+-]SIZE:查找比SIZE还要大(+)或小(-)的文件
-type TYPE:查找文件类型为TYPE的,类型主要有:一般正规文件(f)设备文件(b,c)目录(d)连接文件(l)socket(s)及FIFO(p)
-perm mode:查找文件权限“刚好等于”mode的文件
-perm -mode:查找文件权限“必须要全部包括mode的权限”的文件
-perm +mode:查找文件权限“包含任一mode的权限”的文件