Linux 文件与目录管理
一、目录与路径(PATH)
1. 绝对路径:绝对路径的正确度比较好。
2. 相对路径:比较方便,cd ../man。
3. 执行文件路径的变量($PATH):
(1)不同身份用户默认的PATH不同,默认能够随意执行的命令也不同。
(2)PATH 是可以修改的,所以一般用户还是可以通过修改 PATH 来执行某些位于 /sbin 或 /usr/sbin 下的命令来查询。
(3)使用绝对路径或相对路径直接指定某个命令的文件名来执行,会比查询 PATH 来得正确。
(4)本目录(.)最好不要放到 PATH 当中。
二、 文件与目录管理
1. 查看文件与目录:ls
将主文件夹下的所有文件列出来(含属性与隐藏文件):ls -al ~
完整呈现文件的修改时间:ls -al --full-time ~
2. 复制、删除与移动:cp,rm,mv
(1)切换到/tmp,并将/var/log/wtmp复制到/tmp且查看属性:
cd /tmp
cp /var/log/wtmp .
ls -l /var/log/wtmp wtmp
(2) 复制 /etc/ 这个目录下的所有内容到 /tmp
cp /etc/ /tmp
cp -r /etc/ /tmp —— -r 可以复制目录,但是文件与目录的权限可能会被改变。
(3) 删除 bashrc 文件
rm -i bashrc —— -i 互动模式,在删除前询问用户是否操作
(4) 将 /tmp 下面开头为 bashrc 的文件名全部删除
rm -i bashrc*
(5) 将 /tmp/etc/ 这个目录删除掉
rm -r /tmp/etc —— -r 递归删除。
(6) 复制一个文件,创建一个目录,将文件移动到目录中
cd /tmp
cp ~/.bashrc bashrc
mkdir mvtest
mv bashrc mvtest
三、文件内容查阅
1. 查看文件内容:cat,tac,nl
cat -n /etc/issue —— -n 打印出行号
nl -b a /etc/issue —— nl(添加行号打印); -b a(不论是否为空行,同样列出行号)
2. 可翻页查看:more,less
3. 数据选取:head,tail
(1) 显示前20行: head -n 20 /etc/man.config
(2) 后面100行的数据都不打印,只打印前面几行: head -n -100 /etc/man.config
(3) 显示最后20行:tail -n 20 /etc/man.config
(4) 列出100行以后的数据: tail -n +100 /etc/man.config
4. 非纯文本文件:od
请将 /usr/bin/passwd 的内容使用 ASCII 方式来输出: od -t c /usr/bin/passwd —— c 使用ASCII
5. 修改文件时间或创建新文件:touch
mtime(内容数据更改),ctime(时间状态),atime(该文件的内容被取用)
(1)新建一个空的文件并查看时间:
cd /tmp
touch testtouch
ls -l testtouch
(2)将~/.bashrc 复制成为 bashrc,假设复制完全的属性,检查其日期
cp -a ~/.bashrc bashrc
ls -l bashrc; ls -l --time=atime bashrc; ls -l --time=ctime bashrc
四、文件与目录的默认权限与隐藏权限
1. 文件默认权限:umask 0022
(1)若用户创建文件,最大666
(2)若用户新建目录,777
umask 的分数指的是“该默认值需要减掉的权限”
2. 文件隐藏属性 chattr,lsattr
(1)chattr(设置文件隐藏属性)
cd /tmp
touch attrtest
chattr +i attrtest ——给予 i 的属性
rm attrtest ——无法删除
chattr -i attrtest ——取消 i 的属性
(2)lsattr(显示文件隐藏属性)
chattr +aij attrtest
lsattr attrtest
显示结果:----ia---j--- attrtest
3. 文件特殊权限:SUID(4),SGID(2),SBIT(1)
4. 查看文件类型:file —— 知道某个文件的基本数据
file /var/lib/mlocate/mlocate.db ——这是 data 文件
五、命令与文件的查询
1. 脚本文件名的查询
which : 寻找执行文件
2. 文件名的查找:wheweis,lacate,find