Linux文件和目录管理
1. 绝对路径和相对路径
-
绝对路径:
路径的写法一定是从根目录 / 写起的
如:/usr/local/mysql -
相对路径:
路径的写法不是由根目录 / 写起的
如:1. # cd /home 2. # cd test
用户先进入到home,在进入到test,此时的test是相对于/home来说的,所以称为相对目录1.2. cd
- 用处:
是用来变更用户所在目录的,如果后面什么都不跟,就会直接进入当前用户的根目录下。
如:# cd /home # cd /usr - 命令cd后面只能是目录名,如果跟了文件名,则会报错
如:# cd /etc/passwd - 在linux中 “.” 表示当前目录,“…”’表示当前目录的上一级目录
1.3. pwd
- 用处:
用户显示当前所在目录
如: # pwd
1.4. mkdir
- 用处:
用于创建目录 - 命令格式:
mkdir [-mp] [目录名称]
-m选项用于指定要创建目录的权限(不常用)
-p选项用于递归创建目录(常用),可以帮助我们创建一大串级联目录
当创建一个已经存在的目录时,不会报错
1.5. rmdir
- 用处:
用于删除空目录,可以是一个目录,也可以是多个目录,但不能删除文件 - 命令格式:
rmdir [-p] [目录名称]
1.6. rm
- 用处:
用来删除文件和目录 - 选项
- -r: 删除目录用的选项,类似rmdir,但可以删除非空目录
- -f:表示强制删除。不在询问是都删除,而是直接删除,删除一个不存在的文件或者目录不会报错
- -r: 删除目录用的选项,类似rmdir,但可以删除非空目录
- 用处:
2. 环境变量path
-
2.1 which
-
用处:
用于查找某个命令的绝对路径
-
2.2 PATH
- 将命令的绝对路径添加到环境变量PATH中后,我们就可以在终端直接打出命令而不需要打出绝对路径
-
2.3 cp
- 用处:
该命令用来复制文件或者目录 - 命令行格式:
cp [选项] [来源文件] [目的文件]
如: cp test1 test2 即把test1复制成test2 - 选项
- -r: 如果要赋值一个目录,必须加-r选项,否则不能复制
- i: 这是安全选项,如果遇到一个已存在的文件,会询问是否覆盖
echo命令用于打印字符,">"起写入作用,在linux中叫做重定向
cat命令用来读一个文件,并把内容打印到屏幕上
- -r: 如果要赋值一个目录,必须加-r选项,否则不能复制
- 用处:
-
2.4 mv
- 用处:
用来移动文件 - 命令行格式
mv [选项] [源文件或者目录] [目标文件或者目录] - 命令情况
- 目标文件是目录,但该目录不存在(存在)
如果目录存在,则会把源文件或目录移动到该目录中
如果目录不存在,则会把原目录重命名为给定的目标文件名
- 目标文件是文件,但该文件不存在(存在)
如果文件存在,则会询问是否覆盖
如果文件不存在,则会把源文件重命名为给定的目标文件名
- 目标文件是目录,但该目录不存在(存在)
- 用处:
3. 与文档相关的命令
-
3.1 cat
- 用处:用于查看一个文件的内容并将其显示在屏幕上。
- 选项(可以不加选项直接跟文件名):
- -n:查看文件时,把行号也显示在屏幕上
- -A:显示所有内容,包括特殊字符。
-
3.2 tac(倒序)
- 用法:将文件内容倒序的显示在屏幕上。比如先显示最后一行,在显示倒数第二行
-
3.3 more(适合文件内容过多时)
- 用处:也用于查看一个文件的内容
- 用法:当文件内容太多,一屏不能全部显示时,可以用命令more,看完一屏后按空格继续看下一屏,ctrl+D上翻,ctrl+F下翻。提前退出按Q
-
3.4 less(比more命令功能丰富)
- 用处:用于查看文件内容
- 用法:space键翻页,j键向下移动,k键向上移动
按 / 键并输入一个字符串,然后回车,这样就可以查找这个字符串了
查找多个字符串则按n键显示下一个
-
3.5 head
- 用处: 用于显示文件的前10行,后面直接跟文件名
- 选项:-n 用于显示文件的前n行
-
3.6 tail
- 用处:用于显示文件的后10行,后面直接跟文件名
- 选项: -n 用于显示文件的后n行
-f 用于动态的显示文件的最后10行
4. linux文件属性
-
4.1 所有者(文件的拥有者)
-
4.2 所属组 (值文件属于哪一个用于组)
-
4.3 文件属性
- 例:
图片中的九列字母和-就包含了对文件属性的描述 - 第一列(该文件的类型,所有者,所属组以及其他用户对该文件的权限,共11位):
- 第一位:用来描述文件的类型
- d(目录) -(普通文件) l(为链接文件) b(块文件)
- c(串行端口设备文件,如鼠标,打印机等) s(套接字文件)
- 2-10位(三位一组,r可读,w可写,x可执行):
- 前三位:所有者(user)的权限
- 中间三位:所属组(group)的权限
- 后三位:其他非本群组用户(others)的权限
- 第一位:用来描述文件的类型
- 第二列:表示该文件占用的节点(如果是目录,则与该目录下是子目录数量有关)
- 第三列:表示该文件的所有者
- 第四列:表示该文件的所属组
- 第五列:表示该文件的大小
- 第六,七,八列:表示该文件最后一次修改的时间(月份,日期,时间)
- 第九列:表示文件名
- 例:
5.更改文件的权限
-
5.1 chgrp
- 用处:更改文件所属组
- 格式:chgrp [组名] [文件名]
- 选项: -R 级联更改子目录以及子文件
-
5.2chown
- 用处:更改文件的所有者
- 格式:chown [-R] 账户名:组名 文件名(-R只适用于目录)
-
5.3 chmod
- 用处:更改用户对文件/目录的读写执行权限(Linux用数字代替rwx,r=4,w=2,x=1,-=0)
- 格式:chmod [-R] xyz 文件名
- 注:在linux系统中,一个目录的默认权限为755,文件的默认权限为644
- 其他修改方式:
-
5.4 umask
- 用处:改变文件的默认权限
- 格式:umask xxx
- umask的预设值为0022,
- 若用户建立普通文件,则预设没有可执行权限,最大值为666
- 若用户建立目录,则预设鄋权限均开放,即777
- umask可以在/etc/bashrc里面更改,默认情况下,root的umask是022,一般使用者的权限为002
6. 修改文件的属性
-
6.1 chattr
- 用处:修改文件的属性
- 格式:chattr [±=] [Asaci] [文件或者目录名]
- 注:[±=]:代表增加,减少和设定
- [Asaci]:
- A : 增加该属性后,表示文件或目录的atime将不可修改
- s : 增加该属性后,会将数据同步写入磁盘
- a : 增加该属性后,表示只能追加不能删除,非root用户不能设定该属性(常用)
- c : 增加该属性后,表示自动压缩该文件,读取时会自动解压
- i : 增加该属性后,表示文件不能删除,重命名,设定链接,写入以及新增数据(常用)
-
6.2 lsattr
- 用处:该命令用于读取文件或者目录的特殊权限
- 格式:lsattr [-aR] [文件/目录名]
- -a:类似于ls的-a 选项,即连同隐藏文件一同列出
- -R:连同子目录的数据一同列出
-
6.3 set uid,set gid,sticky bit (不懂…)
7.在LINUX下搜索文件
-
7 .1 which(查找可执行文件的绝对路径)
- 用处:用来查找PATH环境变量中出现的路径下的可执行文件
- 例如:which cat
-
7.2 whereis(查找文件)
- 用处:用于搜索文件
- 方法:通过预先生成的一个文件列表库查找与给出的文件名相关的文件
- 格式:whereis [-bms] [ 文件名称]
- -b: 只查找二进制文件
- -m:只查找帮助文件(在man目录下的文件)
- -s:只查看源代码文件
-
7.3 locate
- 用处:查看文件(不管是目录名还是文件名,只要包含我们要搜索的关键词,都会列出来)
- 格式:locate 文件名
- 注意:不合适精准搜索
-
7.4 find(常用)
- 用处:搜索文件
- 格式:find [路径] [参数]
- 参数:
- -atime +n/-n:表示访问或执行时间大于或小于n天的文件
- ctime +n/-n:表示写入,更改inode属性(如更改所有者,权限或者链接)的时间大于或小于n天的文件
- -mtime +n/-n:表示写入时间大于或小于n天的文件,该参数用的最多
- -name filename:表示直接查找该文件名的文件
- -type filetype:表示通过文件类型来查找文件
- stat (可用来列出文件的atime,ctime,mtime时间)
此文章资料出自《跟阿铭学Linux》,若要转载则附上原出处谢谢