linux文件与目录管理
1.相对路径/绝对路径
绝对路径就是从根目录写起的,像这样:/user/share/doc;
相对路径是先对当前的位置而言的,加入现在处于/user/share/doc目录下,那么cd ../man,将实现跳转到
/user/share/man目录下;
2.目录相关操作
. //当前目录 .. //上一层目录(根目录的上一层还是他自己) - //表示前一个工作目录 ~ //表示当前用户身份所在的住文件夹
cd //切换目录 pwd //显示当前目录位置(绝对路径) mkdir test1 //在当前目录下创建一个test1目录 mkdir -p test1/test2/test3 //在当前目录下递归地创建多级目录 rmdir test1 //删除目录test1 rmdir -p test1/test2/test3 //删除test3,连同上级目录为空的也删除
3.系统变量$PATH
其实这个应该不会陌生,$PATH的目的就是让我们更方便地去调用系统的可执行文件;
没有系统变量$PATH之前,我们执行一个命令,可能需要这样:/bin/ls;
但是如果我们把/bin加入到系统路径变量$PATH里面了,那么我们只需要敲一下ls就可以了,此时系统会自动到$PATH
里面去找有没有和**/ls相匹配的执行文件,如果有,则执行之,如果有多个,那么就执行先查询到的那个目录下的该命令。
PATH="$PATH":/root //将/root添加到系统路径变量
4.查看文件和目录ls
最后一个-h用于查看文件的大小(以b为单位)
5.复制、删除和移动
cp [options] source destination 将源文件复制到目标文件中,对于参数[options]下面列出:
-p //连同文件的属性权限全部复制 -i //若目标文件存在则询问是否覆盖 -f //强制的意思,即使目标文件存在切无法开启,则删除后再尝试一次 -s //复制为快捷方式文件 -u //若目标文件比源文件旧才更新 -r //递归操作,用于复制目录
rm [potions] 文件/目录
-i //删除前询问 -r //递归操作,用于目录的删除 -f //不会询问
所以你应该知道 rm -rf这个命令有多危险了。
mv [options] source destination
-f //如果目标文件已经存在,不会询问直接覆盖 -i //如果目标文件存在则会询问 -u //源文件比较新才会更新
6.文件内容查阅
对于同一个文件,不同的输出(显示)方式,cat为正常排版显示
当文件内容很多时,就需要翻页显示了:
more //一页一页翻动 空格----------------------向下翻一页 enter--------------------向下滚动一行 /字符串-------------------在当前页查询这个字符串 q------------------------离开这个more b或者ctrl+b---------------往回翻
与之类似的还有less命令,但是less更有弹性:
空格----------------------向下翻一页 PageDown-----------------向下翻一页 PageUp-------------------向上翻一页 /字符串-------------------向下查询字符串 ?字符串-------------------向上查询字符串 n------------------------重复前一个查询 N------------------------反向重复前一个查询 q------------------------离开less
以上命令分别为取前两行和后两行。
对于非纯文本文件,可以使用od命令来查阅文本内容:
od -t [options] 非纯文本文件 options参数如下:
a //默认字符输出 c //ASCII字符输出
7.文件的时间属性
linux下的文件都会记录该文件许多的时间参数,这里记录主要的三个时间参数:
modification time(mtime)当文件的内容数据更改时,会更新这个时间;
status time(ctime)当文件的状态,即权限与属性被更改了,都会更新这个时间;
access time(atime)当文件被取用时,会更新这个时间;
默认情况下显示文件的mtime;
前面提到过touch命令可以新建一个文件/文件夹,其实touch命令还可以修改文件的时间
touch -a file //修改文件atime为当前时间 touch -m file //修改文件mtime为当前时间 touch -c file //修改文件ctime为当前时间 touch -d "2 days ago" file //修改了atime和mtime,ctime不变 touch -t 1808080808 file //修改文件atime和mtime,ctime为目前时间
8.文件目录的默认权限和隐藏权限
我们新建一个文件/目录的时候,都会有一个默认权限,这个默认权限是怎么确定的呢
这个umask值0022指的是被拿掉的权限(用户组和其他被拿掉写的权限);
新建目录最高权限为drwxrwxrwx即777;
新建文件(默认没有x权限)最高权限为-rw-rw-rw-即666;
那么根据上面的umask值(022)来说,
新建一个文件的话,权限应该为:-rw-rw-rw- 减去 -----w--w- 等于-rw-r--r--;
新建一个目录的话,权限应该为:drwxrwxrwx 减去 -----w--w- 等于drwxr-xr-x;
9.文件隐藏属性
lsattr -a 文件/目录 该命令用来显示文件的隐藏属性;
-a //将隐藏文件的属性也秀出来 -d //如果接的是目录,则仅列出目录本身的属性(不包括目录内文件名) -R //连同子目录的数据也一并列出来
chattr +-=[options] 文件/目录 该命令用来设置文件的隐藏属性(a、i为常用的)
A //该属性使得访问该文件时atime不会被修改 S //一般文件是一步写入磁盘的,该属性使其写入变为“同步” a //该属性使得该文件只能增加数据,不能删除和修改,只有root才能修改该属性 c //这个属性,使得文件存入的时候压缩存储,读取的时候解压再读取 d //当dump程序被执行的时候,该属性使得该文件不会被dump备份 i //让一个文件不能被删除、改名、写入,只有root能设置此属性 s //如果该文件被删除,将会被完全从硬盘空间中删除 u //与s相反,如果文件被删除,数据其实还在磁盘中,可以用来找回该文件
10.文件特殊属性
SUID:仅对二进制程序有效,执行者对该程序有x权限、权限只在run-time有效、执行者将具有该程序所有者的权限
这个程序是用来改密码的,权限显示,其所有者为root,其他人有x的权限,并且仔细看所有者权限-rws
这个-rws中的s就是Set UID,简称SUID的特殊权限,那么非所有者执行这个程序的时候,会暂时以root的身份去执行
这个程序,进而更改密码。
SGID:Set GID,就是获取用户组的支持,(暂时不太明白)
SBIT:只针对目录有效,用户对该目录有读写权限后,在该目录下创建文件目录,只有root和用户自己才能删除
11.查看文件类型
file命令
12.命令和文件的查询