# mount -t iso9660 -o,loop /dev/sr0 /mnt
(补充:这里的 /dev/sr0 是光驱文件的名称,这里的 /mnt 指的是要挂载的目录)
# mount -t iso9660 -o,loop /dev/sr0 /mnt
(补充:这里的 /dev/sr0 是光驱文件的名称,这里的 /mnt 指的是要挂载的目录)
# mount -t iso9660 -o,loop /root/CentOS.iso /mnt
(补充:这里的 CentOS.iso 是指的要挂载的镜像文件的名称,这里的 /mnt 指的是要挂载的目录)
纪念:站主于 2020 年 1 月完成了此开源实验,并将过程中的所有命令经过整理和注释以后,形成以下教程
服务端 192.168.1.20
客户端 192.168.1.21
1) 服务器提供 NFS 服务将自己的目录分享
2) 客户端挂载和使用 NFS 服务将服务端分享的目录挂载在自己的目录上
1) 所有服务器的系统都需要是 openSUSE 15.1 版本
2) 所有服务器都要关闭防火墙
3) 所有服务器系统都要配置好可用的软件源(最好是软件数量最多的官方版本)
4) 需要按照拓扑图给对应的服务器配置好 IP 地址和主机名
5) 所有服务器都要可以相互 ping 通自己和对方的 IP 地址和主机名
(分别在服务端和客户端上执行以下步骤)
# zypper install nfs-kernel-server
# zypper install nfs-client
(分别在服务端和客户端上执行以下步骤)
# systemctl enable rpcbind
# systemctl enable nfsserver
(分别在服务端和客户端上执行以下步骤)
# systemctl start rpcbind
# systemctl start nfsserver
(只在服务端上执行以下步骤)
# mkdir /nfsserver
(只在客户端上执行以下步骤)
# mkdir /nfsclient
(只在服务端上执行以下步骤)
# vi /etc/exports
添加以下内容:
......
/nfsserver 192.168.1.21(rw,no_root_squash,no_subtree_check)
(补充:这里的 192.168.1.21 是客户端的 IP 地址)
(只在服务端上执行以下步骤)
# exportfs -a
(只在客户端上执行以下步骤)
# vi /etc/fstab
添加以下内容:
......
192.168.1.20:/nfsserver /nfsclient nfs timeo=120,rw,soft,nolock 0 0
(只在客户端上执行以下步骤)
# mount -a
(只在客户端上执行以下步骤)
# df -h | grep 192.168.1.20
(补充:如果出现了类似 “192.168.1.20:/nfsserver 38G 5.5G 31G 16% /nfsclient”,则代表 NFS 搭建成功了)
# find <directory> <parameter> <parameter> ...... -print <-exec|-ok> <command|file> {<command>} \;
1) 目录 指需要查找的目录
2) 参数 限制匹配的条件,可以有多个
3) -print 将匹配的结果进行标准输出
4) -exec 让后面的命令执行查找到的内容
5) -ok 和 -exec 的作用相同,只不过每执行一步就需要用户确认一下
6) command 对匹配的结果执行命令
7) file 对匹配的结果进行文件种类分析,后面的 {} 里的命令必须为空
8) 命令 对匹配结果要执行的命令
(注意:<-exec|-ok> {} \;,这是一个固定格式,谁也不能被缺少。并且 {<命令>} 和 \ 之间有一个空格)
9) -xdev 不显示警告,只显示查找到的内容,这样显示起来简单美观
1) -name n 名称是 n 的文件或目录
2) -iname n 名称是 n 的文件或目录,并且忽略大小写
3) -lname n 名称是 n 的链接
(注意:在 3) 参数中,n 是被链接文件的名称而不是链接文件本身的名称)
-type n :文件类型是 n 的文件
(补充:这里的 n 可以是 d、f、l,它们分别代表目录、文件、链接)
1) -uid n 所属 gid 是 n 的文件或目录
2) -user n 所属主名称为 n 的文件或目录
3) -gid n 所属 gid 是 n 的文件或目录
4) -group n 所属组名称为 n 的文件或目录
5) -nouser 匹配无所属主的文件或目录
6) -nogroup 匹配无所属组的文件或目录
1) -perm /u=n 所属主权限是 n 的文件或目录
2) -perm /u=n 所属组权限是 n 的文件或目录
3) -perm /o=n 所其他的权限是 n 的文件或目录
(补充:在以上 1) 到 3) 参数中 n 可以是 r、w、x 它们分别代表读权限、写权限、执行权限)
4) -perm -n 所属主、所属组、其他的权限是 n 的文件或目录
(补充:在 (4 参数中 n 是可以是 1、2、4)
5) -perm nnn 权限是 nnn 的文件或目录
(
补充:
在 5) 参数中:
n 是数字
第一个 n 是特殊权限
第二个 n 是所属主的权限
第三个 n 是所属组的权限
第四个 n 是其他的权限
例:600
)
6) -perm nnnn 权限是 nnnn 的文件或目录
(
补充:
在 6) 参数中:
n 是数字
第一个 n 是特殊权限
第二个 n 是所属主的权限
第三个 n 是所属组的权限
第四个 n 是其他的权限
例:0600
)
1) -amin n 在过去 n 分钟内被读取过的文件或目录
2) -anewer file 比文件 file 更晚被读取过的文件或目录
3) -atime n 在过去 n 天内被读取过的文件或目录
4) -mmin n 在过去 n 分钟内被修改过内容的文件或目录
5) -mnewer file 比文件 file 更晚被修改过内容的文件或目录
6) -mtime n 在过去 n 天内被修改过内容的文件或目录
7) -cmin n 在过去 n 分钟内被修改过属性(比如新建)的文件或目录
8) -cnewer file 比文件 file 更晚被修改过属性(比如新建)的文件或目录
9) -ctime n 在过去 n 天内被修改过属性(比如新建)的文件或目录
(补充:在以上 1) 到 9) 参数中 n 是数字, +n 表示 n 以前,-n 表示 n 以内,n 表示第 n)
1) -empty 为空的文件或目录
2) -size n 文件大小是 n 的文件或目录
(补充:在 2) 参数中 n 是数字, +n 表示比 n 大,-n 表示比 n 小,单位有 b、m、g 等)
1) -path ‘n’ 路径名称符合 n 的文件或目录
2) -ipath ‘n’ 路径名称符合 n 的文件或目录,并且忽略大小写
3) -depth n 路径深度为 n 的文件或目录
4) -maxdepth n 最大路劲深度为 n 的文件或目录
(补充:在以上 1) 到 4) 参数中 n 是数字)
1) -fstype n 匹配硬盘格式为 n 文件或目录
(补充:1) 参数中 n 可以是 ext3、ext4、xfs 等硬盘格式)
2) -mount 是被挂载的文件或目录
1) -not 不匹配后面的参数,需要放在其他参数前面
2) ! 不匹配后面的参数,需要放在其他参数前面
3) -a 和,需要放在两个参数之前
4) -and 和,需要放在两个参数之前
5) -o 或,需要放在两个参数之前
6) -or 或,需要放在两个参数之前
7) <parameter> ( <parameter> n <parameter> ) 指定将某两个参数作为一个整体和另一个逻辑参数进行匹配
8) <parameter> -prune -n <parameter> <parameter> 指定某两个参数进行逻辑匹配
(补充:在以上 7) 到 8) 参数中 n 可以是 -a、-and、-o、-or 以上 3) 到 6) 参数)
# find . -name "*\.txt"
# find . -name "*\.txt" -not -name "test1.txt" -not -name "test2.txt"
# find /var/log -type f -not -name "wtmp" -not -name "btmp" -not -name "lastlog" -exec chmod o-rwx {} +
# find . -type d
# find /tmp/ -maxdepth 1 -type d -exec cp -p -f ./.htaccess.orig '{}'/.htaccess \;
# find . -user root
# find . -nouser -o -nogroup
# find / -user natasha -exec cp -rp {} /root/findfiles/ \;
# find . -type f -perm 0777 -exec ls -l {}\;
# find . -type f -perm -2
# find . -perm /a=x
# /usr/bin/find . -type f -perm /o=w -exec chmod o-w {} \;
# find / -type f \( -perm -1000 -o -perm -2000 -o -perm -4000 \) -print
# find . -ctime -10
# find /var/log/mysql -type f -mtime +3 -ok rm {}\;
(注意:此方法会出现交互界面,需要在交互界面确认以后才会对找到的文件进行操作)
# find . -type f -size 0 -exec ls -l {} \;
# find . -type f -empty
在 / 目录和 /proc/ 目录查找文件格式为 ext3 无所属主或所属组的文件和目录
# find / -path '/proc/*' -prune -o -fstype ext3 -nouser -o -nogroup
在 \ 目录查找以
# find . -type f
# find . -type f \( -name "*.txt" -or -name "*.dox" \)
# find . -type f ! -perm 777
# find . -type f \( -perm -2000 -o -perm -4000 \) -exec file {} \;
# find / -nouser -o -nogroup
1) RPM 的全名是 RPM Package Manager
1) RPM 是 CentOS、RHEL、openSUSE、SUSE 的软件安装包
2) RPM 是使用 cpio 格式压缩成的包
# rpm2cpio <文件名> | cpio -div
(补充:解压之后就可以看到如果安装这个 RPM 文件的话,有哪些目录和文件会被创建)