赞
踩
目录
grep :文件内容过滤 (过滤文件信息的)
[root@localhost ~]# grep 'file' /etc/passwd
查找命令------用(which)查看该命令的位置
- [root@localhost ~]# which pvcreate /usr/sbin/pvcreate
- [root@localhost ~]# which df /usr/bin/df
查询命令和该命令对应的配置文件的位置
- [root@localhost ~]# whereis df df: /usr/bin/df /usr/share/man/man1/df.1.gz
- [root@localhost ~]# whereis pvcreate
- pvcreate: /usr/sbin/pvcreate /usr/share/man/man8/pvcreate.8.gz
- [root@localhost ~]# whereis lsblk
- lsblk: /usr/bin/lsblk /usr/share/man/man8/lsblk.8.gz
#find 路径 条件 跟条件相关的操作符 [-exec 动作]
-exec:参数是一个一个传递的,传递一个参数执行一次命令。
- [root@localhost ~]# find /etc/ -name "ifcfg*"
- /etc/sysconfig/network-scripts/ifcfg-lo
- /etc/sysconfig/network-scripts/ifcfg-ens33
- [root@localhost ~]# find /etc/ -name "ifcfg*" -exec cp -rf {} /root/linshi \;
- [root@localhost ~]# ls linshi
- ifcfg-ens33 ifcfg-lo i.sh
- [root@localhost ~]# find . -name "i.sh" -exec cp -rf {} /root/linshi \; #(查找当前目录下的i.sh 并且复制到/root/linshi -------> 很多文件要用通配符*)# {} 为前面查找到的内容 \; 格式
-
- [root@localhost ~]# ls linshi/
- h.sh ifcfg-ens33 ifcfg-lo i.sh li.sh shi.sh
#find 路径 -name "xxxx" | xargs -i cp {} /tmp
xargs :将前一个命令的标准输出传递给下一个命令,作为它的参数转换成下一个命令的参数列表。
- [root@localhost ~]# find /root/ -name "i.sh" | xargs -i cp {} /root/linshi
-
- [root@localhost ~]# ls linshi
- i.sh
1、exec没处理一个文件或者目录,它都需要启动一次命令,作为它的参数转换成下一个命令的参数列表
2、exec格式麻烦 必须用{} 做文件的代位符,必须用\ 来转义。作为命令的结束符,书写不便
3、xargs不能操作文件名有空格的文件
综上,如果要使用的命令支持一次处理多个文件,并且也知道这些文件里没有带空格的文件,那么使用xargs 比较方便,否则,就要用exec。
- [root@localhost ~]# find / -name "file" (从根开始找文件)
- /usr/bin/file
- /usr/share/file
-
- [root@localhost ~]# find / -name "ifcfg-ens33" (以名字的方式查找)
- /etc/sysconfig/network-scripts/ifcfg-ens33
- /root/linshi/ifcfg-ens33
-
- [root@localhost ~]# find / -iname "ifcFG-ens33" (-i忽略大小写)
- /etc/sysconfig/network-scripts/ifcfg-ens33
- /root/linshi/ifcfg-ens33
-
- [root@localhost ~]# find / -iname "*.sh" ( *表示所有字符)
- /boot/grub2/i386-pc/modinfo.sh
- /etc/dhcp/dhclient-exit-hooks.d/azure-cloud.sh
- /etc/dhcp/dhclient.d/chrony.sh
- /etc/profile.d/colorgrep.sh
- find /etc -size +5M ---------->查找大于5M
-
- find /etc -size -1M ---------->小于1M
-
- find /etc -size 5M ---------->等于5M
-
- find / -size +5M -a -size -7M ---------->(-a :add 交集)查找/ 下大于5M 小于7M的文件
-
- find / -size +5M -o -size -6M ---------->(-o :or 并集)查找/ 下大于5M 且小于6M
-
- find / -size -2M -a -name "*.sh" ---------->查找/ 小于2M 且带有 .sh 的的文件
按时间查找(atime,mtime,ctime)
-atime= access访问时间
-mtime= modify改变时间 内容修改时间会改变
-ctime= change 修改时间 属性修改时间会改变 (一般与mtime 息息相关)
-amin 分钟
-mtime
-ctime
[root@localhost ~]# stat i.sh
文件:"i.sh"
大小:16 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:39007279 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2022-08-13 10:07:01.143277832 +0800
最近更改:2022-08-10 13:10:30.000000000 +0800
最近改动:2022-08-10 13:13:20.283431357 +0800
[root@localhost ~]# vim i.sh
[root@localhost ~]# stat i.sh
文件:"i.sh"
大小:16 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:33614250 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2022-08-13 11:11:17.500303619 +0800
[root@localhost ~]# find ./i.sh -atime -2 (访问时间两天内)
./i.sh[root@localhost ~]# echo "章鱼小丸子" >> i.sh
[root@localhost ~]# find ./i.sh -ctime -3 (修改时间 3天内)
./i.sh
[root@localhost ~]# find ./i.sh -ctime +3
[root@localhost ~]# find ./i.sh -mtime -3
./i.sh
[root@localhost ~]# stat i.sh
文件:"i.sh"
大小:32 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:33614250 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2022-08-13 11:11:17.500303619 +0800
最近更改:2022-08-13 11:15:09.055815171 +0800
最近改动:2022-08-13 11:15:09.055815171 +0800
创建时间:-
find . -amin +1 (访问时间一分钟前)
find . -amin -1 (访问时间一分钟内)
-type f ------->f 普通文件
-type d ------->d 目录
-type l ------->l 链接
-type b ------->b 块设备
- [root@localhost ~]# find /tmp -type f
- /tmp/yum.log
- /tmp/tom.txt
- /tmp/yum_save_tx.2022-08-09.19-07.46Cgs5.yumtx
- [root@localhost ~]# find /tmp -type f -a -name "*.txt"
- /tmp/tom.txt
- [root@localhost ~]# find /dev -type d -size +5M -o -name "*.conf"
-
- [root@localhost ~]# find /etc/ -type d -name "*.conf.d"
- /etc/dracut.conf.d
- /etc/X11/xorg.conf.d
- /etc/prelink.conf.d
- /etc/ld.so.conf.d
- /etc/polkit-1/localauthority.conf.d
- /etc/krb5.conf.d
-
- [root@localhost ~]# find /etc -type l
- [root@localhost ~]# find /dev -type b
-
[root@localhost ~]# find . -perm 755 ------>查找当前目录 精确查找755
[root@localhost ~]# find /usr/bin -perm -4000 ------>精确查找 包含suid
[root@localhost ~]# find /usr/bin -perm -2000 ------>包含sgid
[root@localhost ~]# find /usr/bin -perm -1000 ------>包含sticky
chmod u+s file -------> 普通用户通过suid 提权 针对文件
||
chmod 4777 file -------> 效果同上,数字不建议使用
- [root@localhost ~]# su - tuan
- 上一次登录:六 8月 6 14:15:50 CST 2022pts/0 上
- [tuan@localhost ~]$ cat /root/i.sh
- cat: /root/i.sh: 权限不够
- [tuan@localhost ~]$ 登出
- [root@localhost ~]# which cat
- /usr/bin/cat
- [root@localhost ~]# chmod u+s /usr/bin/cat
- [root@localhost ~]# ls /usr/bin/cat
- /usr/bin/cat
- [root@localhost ~]# ll -d /usr/bin/cat
- -rwsr-xr-x. 1 root root 54080 11月 6 2016 /usr/bin/cat
- [root@localhost ~]# su - tuan
- 上一次登录:六 8月 13 14:06:12 CST 2022pts/0 上
- [tuan@localhost ~]$ cat /root/i.sh
- 一只三明治
- 章鱼小丸子
-
- [tuan@localhost ~]$ 登出
- [root@localhost ~]# chmod u-s /usr/bin/cat
- [root@localhost ~]# ll -d /usr/bin/cat
- -rwxr-xr-x. 1 root root 54080 11月 6 2016 /usr/bin/cat
sgid 组继承 (2) 只能对目录设置获得该程序所属组用户的权限(如果对一个目录使用SGID 且用户在此目录拥有w 权限的话,使用者在此目录下建立新文件,则创建的这个文件的群组与此目录的群组相同)
chmod g+s dir ------->针对目录
||
chmod 2770 dir ------->同上
- [root@localhost ~]# ls
- anaconda-ks.cfg a.sh.tar nginx-1.16.0 swap.img
- a.sh i.sh nginx-1.16.0.tar.gz
- a.sh.bak linshi ntfs-3g-2016.2.22-3.el7.x86_64.rpm
-
- [root@localhost ~]# ll -d linshi (查看目录的权限)
- drwxr-xr-x 2 root root 53 8月 13 10:21 linshi
-
- [root@localhost ~]# touch ./linshi/li.sh
- [root@localhost ~]# ll ./linshi/li.sh
- -rw-r--r-- 1 root root 0 8月 13 14:22 ./linshi/li.sh
-
- [root@localhost ~]# chmod g+s ./linshi (组继承)
- [root@localhost ~]# ll -d ./linshi
- drwxr-sr-x 2 root root 66 8月 13 14:22 ./linshi
- [root@localhost ~]# groupadd linshi (创建组)
-
- [root@localhost ~]# chown ,linshi ./linshi (注意属主和属组用.隔开 不是逗号)
- chown: 无效的用户: ",linshi"
- [root@localhost ~]# chown .linshi ./linshi (修改linshi目录的属组)
- [root@localhost ~]# ll -d ./linshi (查看)
- drwxr-sr-x 2 root linshi 66 8月 13 14:22 ./linshi
-
- [root@localhost ~]# echo "冰可乐" >> ./linshi/shi.sh (在加了组继承目录下创建文件)
- [root@localhost ~]# ll ./linshi/shi.sh (查看属组)
- -rw-r--r-- 1 root linshi 10 8月 13 14:27 ./linshi/shi.sh
-
- [tuan@localhost ~]$ touch /root/linshi/h.sh (这里从/root就进不去了)
- touch: 无法创建"/root/linshi/h.sh": 权限不够
- [tuan@localhost ~]$ 登出
- [root@localhost ~]# ll -d
- dr-xr-x---. 6 root root 4096 8月 13 14:22 .
- [root@localhost ~]# chmod 557 . (修改root的权限)
- [root@localhost ~]# su - tuan
- 上一次登录:六 8月 13 14:53:52 CST 2022pts/0 上
- [tuan@localhost ~]$ touch /root/linshi/h.sh
- [tuan@localhost ~]$ ll /root/linshi/h.sh
- -rw-rw-r-- 1 tuan linshi 0 8月 13 14:55 /root/linshi/h.sh
sticky (1) t权限 权限控制 需要设置名单
这个就是针对others来设置的,SBIT目前只对目录有效,对目录的作用是:当用户在该目录i下建立文件或者目录时 ,仅有自己与root才有权力删除,T权限,只有该文件的对应属猪可以删还有root可以删除,更改属主
chmod o+t dir
||
chmod 1770 dir
- [root@localhost ~]# mkdir /opt/linshi1
- [root@localhost ~]# ll -d /opt
- drwxr-xr-x. 5 root root 48 8月 13 15:02 /opt
- [root@localhost ~]# chmod o+w /opt (增加其他用户的写权限)
- [root@localhost ~]# ll -d /opt/linshi1/
- drwxr-xr-x 2 root root 6 8月 13 15:02 /opt/linshi1/
- [root@localhost ~]# chmod o+w /opt/linshi1/
- [root@localhost ~]# chmod o+t /opt/linshi1/ (添加权限控制)
- [root@localhost ~]# ll -d /opt/linshi1/
- drwxr-xrwt 2 root root 6 8月 13 15:02 /opt/linshi1/
-
- [root@localhost ~]# su - tom
- 上一次登录:六 8月 6 16:59:20 CST 2022pts/0 上
- [tom@localhost ~]$ echo "冰块" >> /opt/linshi1/1.sh (使用tom用户在该目录下创建文件)
- [tom@localhost ~]$ ll /opt/linshi1/1.sh
- -rw-rw-r-- 1 tom tom 7 8月 13 15:04 /opt/linshi1/1.sh
- [tom@localhost ~]$ 登出
- [root@localhost ~]# su - tuan
- 上一次登录:六 8月 13 14:55:39 CST 2022pts/0 上
- [tuan@localhost ~]$ rm -rf /opt/1.sh
- [tuan@localhost ~]$ rm -rf /opt/linshi1/1.sh (切换tuan 删除tom 用户在该目录里创建的文件)
- rm: 无法删除"/opt/linshi1/1.sh": 不允许的操作
- [tuan@localhost ~]$ 登出
- [root@localhost ~]# chmod o-t /opt/linshi1 (取消)
- [root@localhost ~]# su - tuan
- 上一次登录:六 8月 13 15:05:13 CST 2022pts/0 上
- [tuan@localhost ~]$ rm -rf /opt/linshi1/1.sh
- [tuan@localhost ~]$ ll /opt/linshi1/
- 总用量 0
Window打包压缩工具
结尾:.rar .zip
打包工具: winrar zip 7zip
linux打包压缩工具
结尾:.tar.gz .tar.bz2 .zip
工具:gzip 和tar(打包)
bzip2 (只压缩)
tar cvf xxx.tar 被打包的文件名 -------> c:创建 create v:详细信息verbose f: 文件file
tar xvf xxx.tar [-C /root/Desktop]-------> x :extract 解压缩 解包 -C: 指定解包路径
- [root@localhost ~]# tar cvf a.sh.tar a.sh (打包当前目录的a.sh并命名为 a.sh.tar)
- a.sh
- [root@localhost ~]# ls
- anaconda-ks.cfg i.sh nginx-1.16.0.tar.gz
- a.sh linshi ntfs-3g-2016.2.22-3.el7.x86_64.rpm
- a.sh.tar nginx-1.16.0 swap.img
-
- [root@localhost ~]# cp a.sh ./a.sh.bak
-
- [root@localhost ~]# tar xvf a.sh.tar ./
- tar: .:归档中找不到
- tar: 由于前次错误,将以上次的错误状态退出
- [root@localhost ~]# tar xvf a.sh.tar (解包)
- a.sh
-
- [root@localhost ~]# tar xvf a.sh.tar -C /root/linshi (将a.sh包解压到指定目录 )
- a.sh
- [root@localhost ~]# ls /root/linshi
- a.sh
gzip 命令只能用来压缩文件,不能压缩目录,即便指定了目录,也只能压缩目录里的所有文件
gzip 文件名 - -----------> 格式 file.gz 结尾
gzip -c 文件名 > /opt/文件名.gz ---------->压缩到指定位置
bzip2 源文件 ---------> 格式 file.bz2结尾
bzip2 需要安装 yum -y install bzip2
gunzip 压缩文件
bunzip2 压缩文件
gzip -d 压缩文件
bzip2 -d 压缩文件
-d :discompress 解压缩
tar cvzf file.tar.gz 源文件 ----------> z: 表示gz压缩
tar cvjf file.tar.bz2 源文件 ---------->j: 表示bz2压缩
tar cvf file.tar.gz /tmp/`date +%F-%X` -etc.tar.gz /etc/ #将打包的文件按放到/tmp目录下,并以当前时间开头命名
tar xvzf 压缩文件 [-C 解压路径]
tar xvjf 压缩文件 [-C 解压路径]
# mkdir `date +%F` -upload
# touch file -`date +%F`.txt
软链接 或 符号链接 硬链接
一般情况下,文件名和inode号码是“一一对应”关系,每个 inode号码对应一个文件名。但是,Unix/Linux 系统允许,多个文件指向同一个 inode号码。
这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为“硬链接”(hard link)
- [root@localhost ~]# echo 煎饼果子 >> /root/linshi/file1
- [root@localhost ~]# ll -i /root/linshi/file1 (-i 显示inode编号)
- 50911993 -rw-r--r-- 1 root root 13 8月 13 16:08 /root/linshi/file1
- [root@localhost ~]# ln /root/linshi/file1 /file1-h1 (做硬链接)
- [root@localhost ~]# ll -i /root/linshi/file1 /file1-h1
- 50911993 -rw-r--r-- 2 root root 13 8月 13 16:08 /file1-h1
- 50911993 -rw-r--r-- 2 root root 13 8月 13 16:08 /root/linshi/file1
- [root@localhost ~]# rm -rf /root/linshi/file1 (删除源文件)
- [root@localhost ~]# ll -i /file1-h1 (查看链接文件)
- 50911993 -rw-r--r-- 1 root root 13 8月 13 16:08 /file1-h1
- [root@localhost ~]# cat /file1-h1
- 煎饼果子
运行上面这条命令以后,源文件与目标文件的inode 号码相同,都指向同一个 inode号。 inode信息中有一项叫做“链接数”,记录指向该 的文件名总数,这时候就会增加1。
反过来,删除一个文件名,就会使得 inode节点中的“链接数”减1。 当这个值减到0,表明没有文件名指向这个 inode ,系统就会回收这个 inode号码,以及其所对应的 block 区域。
文件A和文件B 的 inode 号不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B 。因此,无论打哪个文件,最终读取的都是文件B。这时,文件A就称为文件B 的“软链接”(soft link)或者“符号链接”(symbolic link)
这意味着,文件A依赖于文件B 而存在,如果删了文件B,打开文件A就会报错:“no such file or directory” 。这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode“链接数”不会因此发生变化。
ln -s 命令可以创建软链接
ln -s 源文件 链接文件
- [root@localhost ~]# echo 烤冷面 >> /root/linshi/file1
- [root@localhost ~]# ll -i /root/linshi/file1
- 50911993 -rw-r--r-- 1 root root 10 8月 13 16:37 /root/linshi/file1
- [root@localhost ~]# ln -s /root/linshi/file1 /file1-l (将文件filel1 软链接 到file1-l)
- [root@localhost ~]# ll -i /root/linshi/file1 /file1-l (查看inode)
- 32440 lrwxrwxrwx 1 root root 18 8月 13 16:39 /file1-l -> /root/linshi/file1
- 50911993 -rw-r--r-- 1 root root 10 8月 13 16:37 /root/linshi/file1
- [root@localhost ~]# cat /file1-l
- 烤冷面
- [root@localhost ~]# rm -rf /file1-l (取消软链接)
- [root@localhost ~]# ln -s /root/linshi/file1 /file1-l
- [root@localhost ~]# rm -rf /root/linshi/file1 (删除源文件)
- [root@localhost ~]# ll /file1-l (已失效)
- lrwxrwxrwx 1 root root 18 8月 13 16:47 /file1-l -> /root/linshi/file1
- [root@localhost ~]# rm -rf /file1-l
#给目录设置软链接必须是绝对路劲
- [root@qfedu.com ~]# ln -s /root/aaa/ /usr/bbb
-
- [root@qfedu.com ~]#ll /usr/bbb
-
- lrwxrwxrwx 1 root root 10 Dec 29 21:08 /usr/bbb -> /root/aaa/
-
- [root@qfedu.com ~]# rm -rf /usr/bbb #取消链接,
注意:删除目录链接时目录后面加“/”是删除目录,不加是删除链接
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。