昨天,学习了vim编辑工具,今天学习Linux系统的目录结构、补充命令和配置网络。
一、目录结果
1.1目录的特点
Windows和Linux:
Windows中c、d、e盘,每个都是一个根系统【多根系统】;Linux中只有一个根【单根系统】
1.2各个目录存储的内容
/root:linux中挂管理员用户的家目录
/home:linux中挂存储普通用户的家目录的目录。 例如:tom用户的家目录是 /home/tom
/tmp:这个是临时目录,这个目录下存储的是临时的文件,这个目录有两个特点
特点1:任何用户都可以在这个目录下创建文件,但是普通用户只能操作自己的文件。 例:tom可以在tmp目录下新建文件、删除文件、修改文件,但是只能操作自己创建的文件。
特点2:这个目录下文件的,如果30天内没有被访问过,那么这个文件会自动的删除。
/var:这个目录存储的是经常会发生变化的文件,例如日志文件。 问题:日志文件的存储位置 系统中有各种各样的日志,可以修改日志的保存位置,但是默认位置/var/log下,例如系统日志/var/log/messages。 问题:监控日志的变化,用哪个命令? tail -f 文件名。
/usr:用户自己安装的软件一般放到这个位置。 例如:安装nginx,iginx的安装目录 /usr/local/nginx
/etc:这个目录保存的是配置文件。 /etc/passwd /etc/shadow /etc/group /etc/inittab /etc/init.d/functions /etc/crontab /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/hosts。
/bin、/sbin、/usr/bin、/usr/local/bin、/usr/local/sbin、/root/bin:这里存储的是命令。 问题:如何查看外部命令的保存位置 whereis 或 which。
/dev:这个目录存储的是设备文件。【linux中每个设备都对应一个文件,例如u盘,设备文件/dev/sdb】
/proc、/sys:这两个是两个伪文件系统,这里的文件具有这些特点:
特点1.这里的文件不是真实文件,而是系统当前这一刻的系统信息的映射。包括:进程信息、内存信息、cpu信息...
特点2:这里的文件都不能用vi直接进行编辑,可以用echo重定向进行编辑。 例如:echo “6553600”>/proc/sys/net/nf_conntrack_max。
特点3:伪文件系统中的文件,会在系统关机的时候,所有文件会自动删除,下次开机自动重新生成。
/boot:存储系统开机的时候的文件。
二、补充命令
2.1tree
需要先配置好yum,然后用yum安装tree
命令格式:tree 目标目录
2.2find
linux中搜索文件有两种个命令
locate:速度很快,但是结果不准确。
linux中维护了一个数据库,数据库中就记录了系统中的每个文件的文件名和文件的保存路径,这个数据库每天早上更新一次。 locate搜索文件的时候,就是去检查数据库中的记录,所以搜索速度快。
find:速度慢,但是结果准确。 find搜索文件的时候,就是逐一检查及其子目录的文件。
find的格式: find 搜索目录 搜索条件 执行的动作
搜索目录:指定搜索的位置 / /etc/ /home
搜索条件:指定根据什么条件进行搜索
-name:根据文件名进行搜索 -size:根据文件的大小进行搜索 -perm:根据文件的权限进行搜索 -ctime:根据文件的修改事件进行搜索 -mtime:根据文件的编辑时间进行搜索
执行的动作:找到文件后执行的操作: -print:显示找到文件 -exec:找到文件后,执行一个命令。
例子:从home下找出a.txt
find /home -name a.txt --print
find的查找条件
-name filename:指定查找文件的文件名作为查找条件。
例子:找文件名是a.txt的文件 -name a.txt
例子:找文件后缀是.txt的文件 -name *.txt
例子:从系统中找出后缀是txt的文件和目录
# find / -name "*.txt"
例子:从/tmp下找出后缀是txt的文件和目录
# find /tmp -name "*.txt"
例子:从当前位置下找出后缀是txt的文件和目录
# find ./ -name "*.txt"
-iname filename:指定查找文件的文件名作为查找条件(忽略大小写)。
-group gname:根据文件的属组进行查找;-user uname:根据文件的属主进行查找。
例子:找文件的属主是 py22 的文件和目录
# find / -user "py22
-uid UID:根据文件的属组ID进行查找;-gid GID:根据文件的属组ID进行查找。
例子:根据 py22 的gid查找文件
第一步:查看/etc/group,查看py22的gid(假设找到的gid是1004)
第二步:执行find
# find / -gid "1004"
-nogroup:查找没有属组的文件;-nouser:查找没有属主的文件。
例子:找出没有属主的文件
# find / -nouser
-size n
n:表示文件的大小、后面跟上的是单位,常用的单位有如下
‘b’ for 512-byte blocks (this is the default if no suffix is
used)
‘c’ for bytes
‘w’ for two-byte words
‘k’ for Kilobytes (units of 1024 bytes)
‘M’ for Megabytes (units of 1048576 bytes)
‘G’ for Gigabytes (units of 1073741824 bytes)
如果不指定单位类型,那么默认是以字节为单位
例子:
5M
4G
例子:找文件大小是1M的文件
find / -size 1M
说明:
查找找结果是<=1M的文件
例子:找文件大小是2M的文件
find / -size 2M
说明:
查找找结果是大于1M,但是小于等于2M的文件
例子:找文件大小是1G的文件
find / -size 1G
说明:
查找找结果是<=1G的文件
例子:找文件大小是2G的文件
find / -size 2G
说明:
查找找结果是大于1G,但是小于等于2G的文件
-size [+-]n +:大于指定的值 -:小于指定的值
例子:找文件大小大于1G的文件
find / -size +1G
-type 类型:根据文件的类型进行查找。 d:目录类型文件 f:一般文件 l:链接文件
例子:找目录类型的文件
# find / -type d
例子:找一般文件
# find / -type f
-mtime [+-]n:文件的创建(单位是天);-ctim[+-]n:文件修改时间(单位是天); -atime [+-]n:文件的访问时间(单位是天)。说明: n:单位是天 -mtime 5:表示5天之前的那一天所创建的文件。 -n: -mtime -5:表示在5天之内所创建的文件。 +n: -mtime +5:表示在5天之前所创建的文件
-mmin [+-]n: 单位是分钟。 -cmin [+-]n: 单位是分钟。 -amin [+-]n: 单位是分钟。
例子:找出tmp下上次访问时间在7天之前的文件
# find /tmp -atime +7
组合条件: -a:且,要求多个条件同时满足。 -o:或,要求多个条件满足任意一个即可。 -not:不是。
例子:从home下找文件类型是一般文件,并且后缀是txt
# find /home -type f -a -name *.txt
例子:从/home找后缀是txt文件
# find /home -name *.txt
例子:从/home下找后缀不是txt的文件
# find /home -not -name *.txt
例子:从/tmp下找出后缀是wps 或doc 或exel的文件
# find /tmp/ -name *.doc -o -name *.exel -o -name *.wps
例子:从/tmp下找出后缀不是wps,也不是doc的文件
# find /tmp/ -not -name *.doc -a -not -name *.wps
或
# find /tmp/ -not \( -name "*.txt" -o -name "*.wps" \)
-perm mode:根据文件的权限进行查找(做到的是精确匹配)。 例:例子:将文件的权限为642的文件找出(rw-r---w-) # find /tmp -perm 642。
-perm /mode:只有9个权限为中任意一个匹配成功,查找出该文件。 例:例子:执行如下查找 -perm /001 file1 rw--w---x file2 rwx------ file3 r--r--r-- 结果只会找到file1
-perm -mode:目标文件必须包含find规则中的9个权限位。 例1::执行如下查找 -perm -401 file1 rw--w---x file2 rwx------ file3 r--r--r-- 结果会找出file1。 例2:例子:找出系统中全部用户都有执行的权限的文件。答:# find / -perm -111。 例3:例子:找出系统中属主没有执行权限的文件 答:# find / -not -perm /100。
执行的动作: -print:将找到的文件输出到终端(默认) -ls:将找到的文件以长格式的形式输出(相当于执行ls-l) -exec:表示要执行一个命令。
-exec的格式: find xxx -exec 命令\。
例子:删除tmp下后缀是txt的文件
# find /tmp -name "*.txt" -exec rm -rf {} \;
例子:将tmp下有执行权限的文件复制到/home下
# find /tmp -perm /111 -exec cp -a {} /home \;
例子:将tmp下有执行权限的文件中的执行权限去除
# find /tmp -perm /111 -exec chmod a-x {} \;
例子:将tmp下有执行权限的文件的文件名后加上一个.bak
# find /tmp -perm /111 -exec mv {} {}.bak
2.3校验文件
生成校验值 对比校验
将敏感文件生成校验:md5sum /etc/passwd /etc/shadow /etc/group /etc/inittab>0513.md5check
得到文件:0513.md5check
校验风险
[root@VM-16-8-centos ~]# md5sum -c 0513.md5check
/etc/passwd: OK
/etc/shadow: OK
/etc/group: FAILED
/etc/inittab: OK
三、配置网络
3.1网卡配置文件
网卡配置文件的路径:/etc/sysconfig/network-scripts/
网卡配置文件的名称:ifcfg-xxx
网卡配置文件的内容
TYPE=Ethernet #指定网卡类型是以太网
BOOTPROTO=static|dhcp #指定ip地址类型,static是静态ip,dhcp为动态ip
NAME=ens33 #指定网卡名称
DEVICE=ENS33 #指定网卡名称
ONBOOT=yes|no #yes:设置网卡开机的时候,自动激活,no:开机不激活网卡
IPADDR=10.100.204.123 #指定网卡的IP地址
NETMASK=255.255.0.0 #指定子网掩码
GATEWAY=10.100.255.254 #指定网关
DNS=8.8.8.8 #指定主DNS
DNS2=114.114.114.114 #指定备用DNS
UUID=c5c3a8d-2s61-44ac-a882-2786a7953c59 #这个可以删掉,这个是唯一标识网卡的id【两个网卡的uuid不能相同】
HWADDR=cc:xx:xx:xx:xx:xx #指定网卡的mac地址,也是唯一的标识【两个网卡的mac地址不能相同】
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
3.2虚拟机的网络配置
让虚拟机能上网
方法1:nat方法-用此方法
前提:物理机必须能上网。 用此方法,不需要配置ip,自动获取即可
方法2:桥接方法
操作步骤
第一步:修改虚拟机的网络连接方式 NAT 略
第二步:修改网卡的配置文件 vi /etc/sysconfig/network-scripts/ifcfg-xxxxxx
第三步:重启网卡 sysconfig restart network
第四步:检查网卡ip,测试是否可以上网 ip addr ping www.qq.com
让物理机和虚拟机可以通信
方法1:桥接方法
方法2:vmnet8方法:让物理机的vmnet的网卡地址和虚拟机的网卡地址在同一网段就可以了
方法3:vmnet1方法
操作步骤:
本案例:基于vmnet8实现物理机和虚拟机通信
物理机的vmnet8的地址:10.10.10.1/8 虚拟机的地址:10.10.10.2/8
第一步:添加一个新网卡
第二步:修改网卡的配置文件
1.首先找到网卡名。 ip addr 找到新网卡的码名称:ens36
2.将原来的配置文件复制成新网卡的配置文件。
cd /etc/sysconfig/network-scripts/ cp ifcfg-ens33 ifcfg-ens36 vi ifcfg-ens36
第三步:重启网卡。 systemctl restart network
第四步: 检查网卡ip。 id addr
第五步: 配置物理机的vmnet8的地址为10.10.10.1
第六步:测试物理机和虚拟机是否可以通信
在物理机和虚拟机上,分别互相ping对方
3.3 用xshell远程连接linux 略
3.4 linux的网相关命令
ping
作用1:解析域名【将用域名转换为ip地址的过程】
作用2:测试两个主机之间是否可以通信
格式:ping 选项 目标ip/目标域名
选项: -4:ipv4的地址
-w:n秒内是否可以通信
-c:回复n条
netstat
作用:查看当前主机的网络链接情况
格式: netstat 选项
选项:
-n:以数字方式显示:显示ip地址、端口
-t:显示tcp协议类型的网络链接
-u:显示udp协议类型的网络链接
-l:显示出与监听状态的网络链接
-a:显示所有的网络链接
-p:显示生成这个网络链接的进程id
ss
作用:查看当前主机的网络链接情况
格式: ss 选项
选项:
-n:以数字方式显示:显示ip地址、端口
-t:显示tcp协议类型的网络链接
-u:显示udp协议类型的网络链接
-l:显示出于监听状态的网络链接
-a:显示所有的网络链接
-p:显示生成这个网络链接的进程
lsof
这个命令需要首先配置yum源,然后进行安装
作用: 检查指定的端口是哪个进程启动的
格式: lsof -i 端口