ps: 红字字体为重要部分, 仔细看
一、 文件、目录隐藏属性
1. chattr: 改变文件或目录隐藏属性;
2. lsattr: 查看文件或目录隐藏属性;
常用选项:
①。 -i: 不能删除、改名、移动、重定向、追加;
对文件操作;
[root@Centos2 ~]# echo aa > a.txt [root@Centos2 ~]# chattr +i a.txt [root@Centos2 ~]# rm -rf a.txt rm: cannot remove `a.txt': Operation not permitted #提示没权限 [root@Centos2 ~]# mv a.txt b.txt mv: cannot move `a.txt' to `b.txt': Operation not permitted [root@Centos2 ~]# mv a.txt /tmp mv: cannot move `a.txt' to `/tmp/a.txt': Operation not permitted [root@Centos2 ~]# echo "11" > a.txt -bash: a.txt: Permission denied [root@Centos2 ~]# echo "11" >> a.txt -bash: a.txt: Permission denied [root@Centos2 ~]# lsattr a.txt ----i--------e- a.txt
对目录操作;
[root@Centos2 /]# chattr +i /root/ [root@Centos2 /]# lsattr | grep root ……………………/省略 ----i--------e- ./root [root@Centos2 /]# mkdir /root/a mkdir: cannot create directory `/root/a': Permission denied [root@Centos2 /]# echo "aaa" > /root/1.txt -bash: /root/1.txt: Permission denied [root@Centos2 /]# tocuh /root/aaa.txt -bash: tocuh: command not found
②。 -a: 只能追加;
[root@Centos2 ~]# chattr +a a.txt [root@Centos2 ~]# echo "aaaaaa" > a.txt -bash: a.txt: Operation not permitted [root@Centos2 ~]# mv a.txt b.txt mv: cannot move `a.txt' to `b.txt': Operation not permitted [root@Centos2 ~]# rm -rf a.txt rm: cannot remove `a.txt': Operation not permitted [root@Centos2 ~]# echo "11111" >> a.txt ps: 目录显示方法和-i一样。
③。 -R: 递归显示隐藏权限;
[root@Centos2 ~]# lsattr -R /root/ ………………/省略 -----a-------e- /root/a.txt
④。 -d: 显示目录本身隐藏权限;
[root@Centos2 ~]# chattr +a 2/ [root@Centos2 ~]# lsattr -d 2/ -----a-------e- 2/
二、 如何判断内置命令和外置命令
1. 内置命令: 存放在内核
[root@Centos2 ~]# type cd cd is a shell builtin [root@Centos2 ~]# type pwd pwd is a shell builtin [root@Centos2 ~]# type type type is a shell builtin
2. 外置命令:
[root@Centos2 ~]# type shutdown shutdown is /sbin/shutdown [root@Centos2 ~]# type cat cat is hashed (/bin/cat) [root@Centos2 ~]# type vim vim is /usr/bin/vim [root@Centos2 ~]# type find find is /bin/find
三、 搜索文件
1. which: 通过PATH环境变量到该路径内查找可执行文件, 所以基本的功能是寻找可执行文件
[root@Centos2 ~]# which ps /bin/ps [root@Centos2 ~]# which pwd /bin/pwd [root@Centos2 ~]# which cd /usr/bin/which: no cd in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
2. whereis: 和find相比, whereis查找的速度非常快, 这是因为linux系统会将系统内的所有文件都记录在一个数据文件中
[root@Centos2 ~]# whereis passwd passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz [root@Centos2 ~]# whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz
3. find: 查找文件
find作用: Find是一个非常有效的工具, 它可以遍历当前目录甚至于整个文件系统来查找某些文件或目录
find参数:
-name : 按照文件名查找文件
-perm : 按照文件权限来查找文件
-user : 按照文件属主来查找文件
-group: 按照文件属组来查找文件
-mmin : 查看几分钟内修改的文件
-atime -n +n: 访问或执行时间小于/大于n天的文件
-ctime -n +n: 写入、更改inode属性(例如更改所有者、权限或者链接)时间小于/大于n天内的文件
-mtime -n +n: 写入时间小于/大于n天的文件. -n表示文件距现在n天以内,+n表示文件距现在n天以前.
-nogroup: 查找无有效属组的文件. 即该文件属组在/etc/group中不存在.
-nouser: 查找无有效属主的文件. 即该文件属主在/etc/passwd中不存在.
-type: b:块设备文件
d:目录
c:字符设备文件
p:管道文件
l:符号链接文件
f:普通文件
-size n[c]: 查找文件长度为n块的文件, 带有c时表示文件长度以字节计.
-mount: 在查找文件时不跨越文件系统mount点
1. 在家目录下搜索以".txt"结尾的文件
[root@test01 ~]# find ~ -name "*.txt" /root/bomc.txt /root/1.txt
2. 在当前目录中搜索以大写字母开头的文件或目录
[root@test01 ~]# find . -name "[A-Z]*"
./.config/Trolltech.conf ./Videos ./Desktop ………………
3. 在当前目录查找权限为755的文件或目录
[root@test01 ~]# find . -perm 755 ./.config ./Videos ./Desktop ………………
4. 在当前目录查找属组为root的文件
[root@test01 ~]# find . -group root ./.tcshrc ./install.log ………………
5. 在当前目录查找更改时间在3日以前的文件
[root@test01 ~]# find . -mtime +3 ./.tcshrc./install.log ………………
6. 在/etc目录下查找所有的目录
[root@test01 ~]# find /etc/ -type d|more /etc/ /etc/chkconfig.d /etc/init ………………
7. 在当前目录下查找排除目录以外的文件
[root@test01 ~]# find . ! -type d./.tcshrc./install.log ………………
8. 在当前目录下查找排除符号连接的文件
[root@test01 ~]# find . -type l./.kde/cache-test01 ………………
9. 查找当前目录下查找文件长度大于10字节的文件
[root@test01 ~]# find . -size +10c
./.tcshrc
./install.log
./.esd_auth
………………
10. 查看当前目录下的所有普通文件, 并用ls -l将它们列出
[root@test01 ~]# find . -type f | xargs ls -l 或者如下命令 [root@test01 ~]# find . -type f -exec ls -l {} \;
11. 查看/var/log目录下5天以前的日志文件, 并用rm将它们删除
[root@test01 ~]# find /var/log/ -type f -mtime +5 | xargs rm -rf [root@test01 ~]# find /var/log/ -type f -mtime +5 -exec rm -rf {} \;
11. 查找1天以内创建的文件
[root@test01 ~]# find / -type f -mtime -1
四、 用stat命令查看目录、文件时间
1. a、m、ctime解释
atime: 最近查看文件的时间;
mtime: 最近修改文件内容的时间;
ctime: 最近文件属性的更改时间和文件大小变化时间;
[root@Centos2 /]# stat linux/ File: `linux/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 1045419 Links: 2 Access: (4775/drwsrwxr-x) Uid: ( 0/ root) Gid: ( 501/ user2) Access: 2015-03-17 23:02:55.525610032 -0400 Modify: 2015-03-17 23:02:54.225616979 -0400 Change: 2015-03-17 23:02:54.225616979 -0400 [root@Centos2 /]# echo "aaa" > linux/aaa.txt [root@Centos2 /]# stat linux File: `linux' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 1045419 Links: 2 Access: (4775/drwsrwxr-x) Uid: ( 0/ root) Gid: ( 501/ user2) Access: 2015-03-17 23:02:55.525610032 -0400 Modify: 2015-03-17 23:06:26.894616709 -0400 Change: 2015-03-17 23:06:26.894616709 -0400 ps: 当我们往linux目录写入文件时, 它的mtime和ctime都发生时间的变化
五、 文件特殊权限
[root@Centos2 ~]# mkdir linux [root@Centos2 ~]# ls -ld linux/ drwxr-xr-x 2 root root 4096 Mar 17 22:47 linux/ [root@Centos2 ~]# chmod g+s linux/ [root@Centos2 ~]# chown user1:user2 linux/ [root@Centos2 ~]# ls -ld linux/ drwxr-sr-x 2 user1 user2 4096 Mar 17 22:47 linux/ [root@Centos2 ~]# touch linux/linux.txt [root@Centos2 ~]# ls -l linux/ total 0 -rw-r--r-- 1 root user2 0 Mar 17 22:48 linux.txt ps: set_uid: 拥有set_uid权限(临时拥有该命令的属主去执行二进制的命令,只能用于文件) set_gid: 继承目录属组权限 stick_bit: 防删除位, 其它用户不能删除,只有创建者能删 详细请见: http://www.zhukun.net/archives/5962
六、 链接文件
1. 软连接
[root@Centos2 linux]# echo "11111" > 1.txt [root@Centos2 linux]# ln -s 1.txt /home/home_1.txt [root@Centos2 linux]# ls -l /home/ ……………………/省略 lrwxrwxrwx 1 root root 5 Mar 17 23:40 home_1.txt -> 1.txt [root@Centos2 linux]# rm -rf /home/home_1.txt [root@Centos2 linux]# ls -l /home/
2. 硬连接
[root@Centos2 linux]# ln 1.txt /home/home-1.txt [root@Centos2 linux]# ls -l /home/ …………………………./省略 -rw-r--r-- 2 root root 6 Mar 17 23:40 home-1.txt [root@Centos2 linux]# rm -rf /home/home-1.txt [root@Centos2 linux]# ln 1.txt /boot/ ln: creating hard link `/boot/1.txt' => `1.txt': Invalid cross-device link #硬连接不能跨分区 ps: 硬连接=复制+同步+删除源文件无障碍+不能跨分区+不能用于目录 软连接=快捷方式+同步+删除源文件废废+能跨分区+能用于目录
如有不对地址, 请及时提示