目录
红帽学习笔记[RHCSA]第二周
环境
- rhel-server-7.0-x86_64-dvd.iso 镜像
- VMware-workstation
第七课[网络配置相关]
在Vmware中添加网卡
编辑
-> 编辑虚拟网络
-> 添加网络
->随便选择一个如VMnet2
-> 选择仅主机模式
-> 勾掉使用本地DHCP服务将ip分给虚拟机
-> 子网Ip默认就行
注:
1. win10 用户需要管理源权限,否则都是灰的添加不了,点击重启就好
2. Wmnet1,WMnet8是WMware默认的网卡
# 打开 windows CMD # 会看到如下的网卡信息 C:\Users\kanewang>ipconfig Ethernet adapter VMware Network Adapter VMnet2: Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::bcdf:fdfb:c5b2:884b%34 IPv4 Address. . . . . . . . . . . : 192.168.94.1 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . :
将网卡添加到虚拟机上
右键要添加的虚拟机
- > 设置
-> 网络设配器
-> 自定义(U):特定虚拟网络
- > 选择刚才添加的一块VMnet2
-> 确定
关于网卡命名规则
# 开头 en+一位字母 -> 以太网网卡 或 wl+一位字母 -> 无线网网卡 # 一位字母 o 表示 板载 s 表示 热插拔 p 表示 pci插槽 # 用命令查看一下网卡信息 ip addr # 第一块是环回测试地址 127.0.0.1 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:fb:7d:19 brd ff:ff:ff:ff:ff:ff
配置网络
# 查看当前配置 [root@localhost Desktop]# nmcli connection show NAME UUID TYPE DEVICE # 增加一个配置 [root@localhost Desktop]# nmcli connection add ifname eno16777736 con-name fisrt type ethernet autoconnect yes ip4 192.168.11.2/24 gw4 192.168.94.1 Connection 'fisrt' (9ca186d9-8fb9-48fa-9973-bb8bdb7d18f0) successfully added. # 命令解析 # add 添加 # ifname 网卡名字 可以tab不全出来 # con-nam 连接的名字 随意起 # type 类型ethernet 以太网 # autoconnect 自动连接 # ip4 ip地址 与网卡的子网要在一个网段(为了测试ip设置了错误的) # gw4 可以没有网关,这里写的是VMnet2 这块网卡的ip # 启动这个连接 [root@localhost Desktop]# nmcli connection up fisrt Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1) # 再次ip addr查看 [root@localhost Desktop]# ip addr 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:fb:7d:19 brd ff:ff:ff:ff:ff:ff inet 192.168.11.2/32 brd 192.168.11.2 scope global eno16777736 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fefb:7d19/64 scope link valid_lft forever preferred_lft forever # 在windows中 cmd ping刚才的ip 192.168.11.2 C:\Users\kanewang>ping 192.168.11.2 Pinging 192.168.11.2 with 32 bytes of data: Request timed out. # 修改一个连接 # 将ip改为与网卡一个子网的 [root@localhost Desktop]# nmcli connection modify fisrt ipv4.addresses 192.168.94.200/24 # 重启网络 [root@localhost Desktop]# systemctl restart network # 再次查看 ip addr [root@localhost Desktop]# ip addr 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:fb:7d:19 brd ff:ff:ff:ff:ff:ff inet 192.168.94.200/24 brd 192.168.52.200 scope global eno16777736 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fefb:7d19/64 scope link valid_lft forever preferred_lft forever # 再次使用windows cmd ping这个IP C:\Users\kanewang>ping 192.168.94.200 Pinging 192.168.94.200 with 32 bytes of data: Reply from 192.168.94.200: bytes=32 time<1ms TTL=64 Reply from 192.168.94.200: bytes=32 time<1ms TTL=64
注:上面的操作,可以直接编辑 /etc/sysconfig/network-scripts/ifcfg-xxx文件来达到效果.我们查看一下,我刚才生生的文件.标*的是必要行
[root@localhost Desktop]# cat /etc/sysconfig/network-scripts/ifcfg-fisrt TYPE=Ethernet * BOOTPROTO=none * IPADDR0=192.168.94.200* PREFIX0=24* DEFROUTE=yes* IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=fisrt UUID=9ca186d9-8fb9-48fa-9973-bb8bdb7d18f0 DEVICE=eno16777736 ONBOOT=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes
网络配置命令总结
# 查看 connection nmcli connection show # 增加 nmcli connection add #后面参数上面详细介绍了 # 修改 nmcli connection modify # 删除 nmcli connection delete # 开启 nmcli connection up
更改hostname
# 临时更改 [root@localhost Desktop]# hostname test [root@localhost Desktop]# # 发现并没有改变,重新开一个terminal就能看见变化了 # 永久更改 hostnamectl set-hostname master # 更改 /etc/hosts 将域名与ip配置关系 # 更改 /etc/resolv.conf配置dns
关于SSH的一些配置
配置仅主机模式的网卡后,物理机就可以通过ssh远程访问虚拟机了.我们来做一些配置
- 不让root用户远程登陆
# 更改文件/etc/ssh/sshd_config 为no 并打开配置 [root@localhost Desktop]# vi /etc/ssh/sshd_config PermitRootLogin no
- 客户端提示当前保存的信息与一致的不符
删除该用户家目录下的 .ssh/known_hosts文件,重新保存
远程复制文件 SCP
# 其实是往自己机器上copy scp /test/ root@192.168.94.200:/root/test
关于init(在7中已经不用了)
运行级别
# 0 - 停机(千万不能把initdefault 设置为0 ) # 1 - 单用户模式 # 2 - 多用户,没有 NFS # 3 - 完全多用户模式(标准的运行级) # 4 - 没有用到 # 5 - X11 (xwindow) # 6 - 重新启动 (千万不要把initdefault 设置为6 )
init 5 #进入桌面模式
第八课
nice值
- 什么是nice值
给进程设置的优先级就是nice。nice的范围是-20~20
。nice值越小占用的系统资源就越多,就是这个进程不nice。
- 如何查看nice值
# 使用top命令查看时 会有一列时NI 就是nice值 top - 14:01:36 up 9 min, 2 users, load average: 0.08, 0.23, 0.18 Tasks: 494 total, 2 running, 492 sleeping, 0 stopped, 0 zombie %Cpu(s): 16.7 us, 16.7 sy, 0.0 ni, 66.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3742 root 20 0 619884 18616 12072 R 60.4 1.0 0:00.85 gnome-terminal- 3778 root 20 0 123924 1940 1152 R 60.4 0.1 0:00.43 top 1 root 20 0 53692 7660 2524 S 0.0 0.4 0:03.93 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.07 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.34 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root rt 0 0 0 0 S 0.0 0.0 0:00.66 migration/0
- 设置nice值
# 执行4个 dd命令 一致在吃资源 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3985 root 20 0 107920 624 532 R 95.6 0.0 0:14.21 dd if=/dev/zero of=/dev/null 3977 root 20 0 107920 624 532 R 93.7 0.0 0:15.64 dd if=/dev/zero of=/dev/null 3981 root 20 0 107920 620 532 R 86.4 0.0 0:14.18 dd if=/dev/zero of=/dev/null 3973 root 20 0 107920 624 532 R 84.4 0.0 0:16.26 dd if=/dev/zero of=/dev/null # renice 其那两个nice值为-20 renice -19 3977 renice -20 3985 renice +19 3981 renice +19 3973 #再次查看top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3977 root 1 -19 107920 624 532 R 100.0 0.0 10:14.42 dd if=/dev/zero of=/dev/null 3985 root 0 -20 107920 624 532 R 100.0 0.0 10:38.96 dd if=/dev/zero of=/dev/null 3981 root 39 19 107920 620 532 R 96.5 0.0 10:01.17 dd if=/dev/zero of=/dev/null 3973 root 39 19 107920 624 532 R 88.6 0.0 9:55.61 dd if=/dev/zero of=/dev/null # 修改后-20的进程一直比19nice值得占用的多,此时如果再开一个进程会更明显,但是虚拟机卡住了,做不了任何操作
调整时间
- timedatectl
# 查看 [root@master /]# timedatectl Local time: Fri 2019-08-30 14:21:58 CST Universal time: Fri 2019-08-30 06:21:58 UTC RTC time: Fri 2019-08-30 14:21:58 Timezone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: no RTC in local TZ: no DST active: n/a # 设置时间 [root@master /]# timedatectl set-time "2019-08-30 14:24:20" [root@master /]# date Fri Aug 30 14:24:23 CST 2019 # 查看所有时区 [root@master /]# timedatectl list-timezones # 设置时区 [root@master /]# timedatectl set-timezone Asia/Hong_Kong # 设置ntp同步为yes timedatectl set-ntp 1
- 自动对时
使用的时服务 chronyd。redhat7自带的。
# 编辑配置文件,注释掉默认的4行,增加阿里云的同步时间配置 [root@master ~]# vi /etc/chrony.conf #server 0.rhel.pool.ntp.org iburst #server 1.rhel.pool.ntp.org iburst #server 2.rhel.pool.ntp.org iburst #server 3.rhel.pool.ntp.org iburst server ntp6.aliyun.com iburst [root@localhost ~]# vi /etc/chrony.conf [root@localhost ~]# vi /etc/chrony.conf [root@localhost ~]# systemctl restart chronyd [root@localhost ~]# systemctl enable chronyd
安装软件包
什么时RPM:RPM package manager 包管理
包的全名:
httpd-tools-2.4.6-17.el7.x86_64.rpm # httpd-tools是名字 # 2.4.6是版本 # 17是发行班号(发行的次数) # .el7是radhat7平台 # .x86_64处理器cpu的架构 # .noarch是32位64位都可以
- 考试提供的iso镜像中有rpm的包。挂载后直接使用
[root@localhost /]# mount /dev/sr0 /mnt mount: /dev/sr0 is write-protected, mounting read-only [root@localhost /]# cd /mnt/Packages/ # packages下面全都是rpm包 # -i 安装 -v详细信息 -h 显示进度条 [root@localhost Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm warning: tree-1.6.0-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ################################# [100%] Updating / installing... 1:tree-1.6.0-10.el7 ################################# [100%] # 卸载 [root@localhost Packages]# rpm -evh tree Preparing... ################################# [100%] Cleaning up / removing... 1:tree-1.6.0-10.el7 ################################# [100%] # 查看包 [root@localhost Packages]# rpm -q tree tree-1.6.0-10.el7.x86_64 #查看所有包,太多了不直接显示 [root@localhost Packages]# rpm -qa|grep "tree" tree-1.6.0-10.el7.x86_64 # 查看包的详细 [root@localhost Packages]# rpm -qi tree Name : tree Version : 1.6.0 Release : 10.el7 Architecture: x86_64 Install Date: Fri 30 Aug 2019 04:16:26 PM CST Group : Applications/File Size : 89505 License : GPLv2+ Signature : RSA/SHA256, Thu 03 Apr 2014 05:33:48 AM CST, Key ID 199e2f91fd431d51 Source RPM : tree-1.6.0-10.el7.src.rpm Build Date : Tue 28 Jan 2014 01:29:58 AM CST Build Host : x86-020.build.eng.bos.redhat.com Relocations : (not relocatable) Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> Vendor : Red Hat, Inc. URL : http://mama.indstate.edu/users/ice/tree/ Summary : File system tree viewer Description : The tree utility recursively displays the contents of directories in a tree-like format. Tree is basically a UNIX port of the DOS tree utility. # 查看包装在哪里 [root@localhost Packages]# rpm -ql tree /usr/bin/tree /usr/share/doc/tree-1.6.0 /usr/share/doc/tree-1.6.0/LICENSE /usr/share/doc/tree-1.6.0/README /usr/share/man/man1/tree.1.gz # 查看文件从哪个包来的 [root@localhost Packages]# rpm -qf /usr/share/doc/tree-1.6.0 tree-1.6.0-10.el7.x86_64
关于rpm 包的依赖问题
树形依赖:
a->b->c
直接按照提示从下层一个个装就可以,按照c>b>a的顺序环形依赖:
a->b->c->a
将三个包名写在一起,直接一次装模块依赖:用httpd举例
# 需要一些模块 [root@localhost Packages]# rpm -ivh httpd-2.4.6-17.el7.x86_64.rpm warning: httpd-2.4.6-17.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY error: Failed dependencies: /etc/mime.types is needed by httpd-2.4.6-17.el7.x86_64 httpd-tools = 2.4.6-17.el7 is needed by httpd-2.4.6-17.el7.x86_64 libapr-1.so.0()(64bit) is needed by httpd-2.4.6-17.el7.x86_64 libaprutil-1.so.0()(64bit) is needed by httpd-2.4.6-17.el7.x86_64 # 访问 http://www.rpmfind.net/ 去查找这个模块在哪个包中,安装那个包
使用yum 安装软件包
什么是yum : yellow dog update manage黄狗更新管理器
使用rpm安装yum
[root@master Packages]# rpm -ivh yum-3.4.3-118.el7.noarch.rpm warning: yum-3.4.3-118.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ################################# [100%] package yum-3.4.3-118.el7.noarch is already installed
- 配置yum源
###注:考试给一个http的连接给啥写啥### # 将iso光盘挂在到/mnt目录上 sudo mount -o /dev/sr0 /mnt # 查看目录挂载 [kane@master mnt]$ df -H Filesystem Size Used Avail Use% Mounted on /dev/mapper/rhel-root 19G 3.3G 16G 18% / devtmpfs 949M 0 949M 0% /dev tmpfs 958M 152k 958M 1% /dev/shm tmpfs 958M 9.4M 949M 1% /run tmpfs 958M 0 958M 0% /sys/fs/cgroup /dev/sda1 521M 125M 397M 24% /boot /dev/sr0 3.8G 3.8G 0 100% /mnt # 我们将iso中的package配置成yum源 sudo yum-config-manager --add-repo=file:///mnt # 到 yum源目录下 [root@master request-key.d]# cd /etc/yum.repos.d/ # 追加内容gpgcheck=0。让其不检查 [root@master yum.repos.d]# echo "gpgcheck=0" >> ./mnt.repo # 刷新缓存 [root@master yum.repos.d]# yum makecache
- 安装与安装回滚
# 安装httpd [root@master yum.repos.d]# yum install httpd # 查看安装历史 [root@master yum.repos.d]# yum history Loaded plugins: langpacks, product-id, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 5 | kane <kane> | 2019-10-22 13:45 | Install | 5 history list # 回滚某次安装 使用ID [root@master yum.repos.d]# yum history undo 5 # 再次查看,会多一个抹去的操作 [root@master yum.repos.d]# yum history Loaded plugins: langpacks, product-id, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 6 | kane <kane> | 2019-10-22 13:47 | Erase | 5 5 | kane <kane> | 2019-10-22 13:45 | Install | 5 history list # 此处看不到每个Id都是做什么的,我们可以查看yum安装log [root@master yum.repos.d]# cat /var/log/yum.log Oct 22 13:45:09 Installed: apr-1.4.8-3.el7.x86_64 Oct 22 13:45:09 Installed: apr-util-1.5.2-6.el7.x86_64 Oct 22 13:45:09 Installed: httpd-tools-2.4.6-17.el7.x86_64 Oct 22 13:45:09 Installed: mailcap-2.1.41-2.el7.noarch Oct 22 13:45:11 Installed: httpd-2.4.6-17.el7.x86_64 Oct 22 13:47:04 Erased: httpd-2.4.6-17.el7.x86_64 Oct 22 13:47:04 Erased: httpd-tools-2.4.6-17.el7.x86_64 Oct 22 13:47:04 Erased: mailcap-2.1.41-2.el7.noarch Oct 22 13:47:04 Erased: apr-util-1.5.2-6.el7.x86_64 Oct 22 13:47:05 Erased: apr-1.4.8-3.el7.x86_64
- 软件包组
[root@master yum.repos.d]# yum groups list Loaded plugins: langpacks, product-id, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. There is no installed groups file. Maybe run: yum groups mark convert (see man yum) Available environment groups: Minimal Install Infrastructure Server File and Print Server Basic Web Server Virtualization Host Server with GUI Available Groups: Compatibility Libraries Console Internet Tools Development Tools Graphical Administration Tools Legacy UNIX Compatibility Scientific Support Security Tools Smart Card Support System Administration Tools System Management Done
第九课
文件归档
- tar是什么
通过tar
命令可以将大型文件汇集成一个文件(归档),注意没有压缩功能。
- 压缩方式
gzip
通过gzip过滤文档,使用最广泛
bzip2
通常比gzip压缩小,但是不如gzip广泛
xz
比较新,压缩率比较高
- tar命令参数介绍
-A 追加文件至归档 -c 创建一个新的归档 -v 列出处理文件的过程 -f 要操作的归档的名字 -t 列出归档内容 -x 从归档文件中解压出内容 -a 使用文档后缀名来决定压缩程序 -j bzip2 压缩方式 -J xz压缩方式 -z gzip压缩方式
- tar命令操作
# 创建tar [root@master kane]# tar cf 1.tar ./tar_test/ # 查看tar内容 [root@master kane]# tar -tf 1.tar ./tar_test/ ./tar_test/11.q ./tar_test/22.q ./tar_test/44.q ./tar_test/33.q # 解压出来 [root@master test]# ls 1.tar [root@master test]# tar -xvf 1.tar ./tar_test/ ./tar_test/11.q ./tar_test/22.q ./tar_test/44.q ./tar_test/33.q [root@master test]# ls 1.tar tar_test # 创建一个使用gzip压缩的文件 [root@master kane]# tar -zcf 2.tar ./tar_test/ # 比较一下 1.tar 与 2.tar 。发现2.tar确实小了很多 [root@master test]# ll total 16 -rw-r--r--. 1 root root 10240 Oct 22 14:57 1.tar -rw-r--r--. 1 root root 178 Oct 22 15:01 2.tar drwxr-xr-x. 2 root root 50 Oct 22 14:57 tar_test
硬盘
- 分类
/dev/sd 表示串口设备 /dev/hd 表示并口设备(现在很难找并口设备) /dev/vd 虚拟出来的
- 硬盘设备的命名规则
# 按设备 第一块 /dev/sda 第二款 /dev/sdb # 按分区 第一个分区 /dev/sda1 第二个分区 /dev/sda2
- 硬盘结构
# 物理结构 机械硬盘与固态硬盘(寿命不如机械硬盘) # 逻辑结构 1. 磁道:以盘片为中心,半径大小不同的同心圆组成的环形区域。 2. 扇区:磁道上的一段圆弧 3. 柱面:虚的,类似于筒壁
分区创建、使用
- 为什么要分区
1. 便于管理 2. 不同类型的数据分开放 3. 分隔操作系统 4. 初始化硬盘
- 分区的类型
1. 主分区: 安装操作系统,启动和引导操作系统。最多只能有`4`个主分区。MBR(Master Boot Recorder) 主要开机扇区,放置硬盘的信息。一共512B,前面446B字节是程序,`64B`表示分区每个分区是16B。所以一共只能有4个主分区。最后两个字节是保留位。 2. 扩展分区: 为了解除只有4个主分区的限制就有了扩展分区。但是扩展分区占用主分区的编号,最多只能有一个扩展分区。可以在扩展分区上创建逻辑分区供我们来使用 3. 逻辑分区: 在扩展分区上创建逻辑分区来使用。 4. 注意: 分区不是无限的,对于串口设备,最多15个。`1~4`主分区或扩展分区`5-15`逻辑分区。即使主分区只用了一个分区号,逻辑分区也不能使用前面四个分区号。
- 创建分区的步骤
1. 进入到分区操作 2. 通知内核读取分区表 3. 创建文件系统即格式化 4. 挂载使用
- 创建
主分区
操作
1. 操作在虚拟机上操作,需要添加一块硬盘给虚拟机。 2. 查看硬盘情况 [root@localhost Desktop]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 19.5G 0 part ├─rhel-root 253:0 0 17.5G 0 lvm / └─rhel-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk sr0 11:0 1 1024M 0 rom 3. 使用fdisk 进入到 sda硬盘的分区 [root@master Desktop]# fdisk /dev/sda 4. 查看分区(此时还没有分区)使用命令 p 命令(输入 m 获取帮助):p 磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0000220c 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 41943039 20458496 8e Linux LVM 5. 使用fdisk进入到sdb开始分区 [root@localhost Desktop]# fdisk /dev/sdb 6. 创建一个主分区 Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): Using default response p Partition number (1-4, default 1): First sector (2048-41943039, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +1000M Partition 1 of type Linux and of size 1000 MiB is set Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xb43d3ed1 Device Boot Start End Blocks Id System /dev/sdb1 2048 2050047 1024000 83 Linux 7. 注:关于扇区大小,精确计算扇区位置比较复杂直接使用 +{K,M,G}比较方便 8. 保存 w 自动退出 9. 通知内核 [root@localhost Desktop]# partprobe 10. 创建文件系统即格式化 [root@localhost Desktop]# mkfs.ext4 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 64000 inodes, 256000 blocks 12800 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=262144000 8 block groups 32768 blocks per group, 32768 fragments per group 8000 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: done Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done 11. 挂在到目录上 [root@localhost Desktop]# mount /dev/sdb1 /first 12. 查看分区 [root@localhost Desktop]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 19.5G 0 part ├─rhel-root 253:0 0 17.5G 0 lvm / └─rhel-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 1000M 0 part /first sr0 11:0 1 1024M 0 rom
- 创建
扩展分区
逻辑分区
1. 直接进入sdb [root@localhost Desktop]# fdisk /dev/sdb 2. 创建扩展分区,创建了10个G Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): e Partition number (2-4, default 2): First sector (2050048-41943039, default 2050048): Using default value 2050048 Last sector, +sectors or +size{K,M,G} (2050048-41943039, default 41943039): +10G Partition 2 of type Extended and of size 10 GiB is set Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xb43d3ed1 Device Boot Start End Blocks Id System /dev/sdb1 2048 2050047 1024000 83 Linux /dev/sdb2 2050048 23021567 10485760 5 Extended 3. 创建逻辑分区 Command (m for help): n Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l Adding logical partition 5 First sector (2052096-23021567, default 2052096): Using default value 2052096 Last sector, +sectors or +size{K,M,G} (2052096-23021567, default 23021567): +1G Partition 5 of type Linux and of size 1 GiB is set Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xb43d3ed1 Device Boot Start End Blocks Id System /dev/sdb1 2048 2050047 1024000 83 Linux /dev/sdb2 2050048 23021567 10485760 5 Extended /dev/sdb5 2052096 4149247 1048576 83 Linux 4. 保存-通知内核-格式化-挂载 [root@localhost Desktop]# partprobe [root@localhost Desktop]# mkfs.ext4 /dev/sdb5 [root@localhost Desktop]# mount /dev/sdb5 /second 5. 查看分区 [root@localhost Desktop]# [root@localhost Desktop]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 19.5G 0 part ├─rhel-root 253:0 0 17.5G 0 lvm / └─rhel-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 1000M 0 part /first ├─sdb2 8:18 0 1K 0 part └─sdb5 8:21 0 1G 0 part /second sr0 11:0 1 1024M 0 rom 6. 查看文件系统 [root@localhost Desktop]# df -H Filesystem Size Used Avail Use% Mounted on /dev/mapper/rhel-root 19G 3.2G 16G 17% / devtmpfs 949M 0 949M 0% /dev tmpfs 958M 144k 958M 1% /dev/shm tmpfs 958M 9.3M 949M 1% /run tmpfs 958M 0 958M 0% /sys/fs/cgroup /dev/sda1 521M 125M 397M 24% /boot /dev/sdb1 1.1G 2.6M 944M 1% /first /dev/sdb5 1.1G 2.7M 951M 1% /second
分区自动挂载
- 查看文件
/etc/fstab
[root@localhost Desktop]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Thu Aug 15 20:39:14 2019 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/rhel-root / xfs defaults 1 1 UUID=a0d45f55-dcf8-4d8e-b32d-4d1eb66a07bc /boot xfs defaults 1 2 /dev/mapper/rhel-swap swap swap defaults 0 0
- 自动挂载的三种方式
1. 使用UUID 2. 使用label 3. 使用设备名(不建议,因为设备名有可能会更换)
- UUID
1. 查看UUID [root@localhost Desktop]# blkid /dev/sdb5 /dev/sdb5: UUID="1eb4fbaa-5744-48e1-809d-90181843eddb" TYPE="ext4" /* 在没创建文件系统的时候是没有UUID的*/ 2. 编辑/etc/fstab文件 UUID=1eb4fbaa-5744-48e1-809d-90181843eddb /third xfs defaults 0 0 设备或分区或镜像名 挂载点 文件系统类型 挂载选项 是否备份 是否开机检测 3. 重启虚拟机 4. 查看目录情况,可以看到已经自动挂载上了 [root@localhost Desktop]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/rhel-root 18G 3.0G 15G 17% / devtmpfs 905M 0 905M 0% /dev tmpfs 914M 84K 914M 1% /dev/shm tmpfs 914M 8.9M 905M 1% /run tmpfs 914M 0 914M 0% /sys/fs/cgroup /dev/sdb5 190M 1.6M 175M 1% /third /dev/sda1 497M 119M 379M 24% /boot
- 标签
1. 重新创建一个逻辑分区db6 1. 查看分区标签(默认为空) [root@localhost Desktop]# e2label /dev/sdb6 2. 设置一个标签 [root@localhost Desktop]# e2label /dev/sdb6 game [root@localhost Desktop]# e2label /dev/sdb6 game 3. 编辑 /etc/fstab 添加以标签为开始的自动挂载 LABEL=game /forth ext4 defaults 0 0 4. 重启后查看文件系统 [root@localhost Desktop]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/rhel-root 18G 3.0G 15G 17% / devtmpfs 905M 0 905M 0% /dev tmpfs 914M 152K 914M 1% /dev/shm tmpfs 914M 8.9M 905M 1% /run tmpfs 914M 0 914M 0% /sys/fs/cgroup /dev/sdb6 190M 1.6M 175M 1% /forth /dev/sdb5 190M 1.6M 175M 1% /third /dev/sda1 497M 119M 379M 24% /boot
注:上述编辑完 /etc/fstab
后先mount -a
测试一下是否正确,否则可能导致虚拟机启动不了。
Swap虚拟内存
- 虚拟内存是一种计算机内存管理的一种结束,可以把不常用的数据缓存到硬盘上。
- 两种方式
1. 交换分区 2. 交换文件
- 查看虚拟内存
[root@localhost Desktop]# free -h total used free shared buffers cached Mem: 1.8G 809M 1.0G 9.6M 912K 268M -/+ buffers/cache: 539M 1.3G Swap: 2.0G 0B 2.0G
- 使用文件作为Swap
1. 创建文件/swap/swapfile,使用dd用指定大小的块拷贝到问价中 [root@localhost Desktop]# dd if=/dev/zero of=/swap/swapfile bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 7.59467 s, 141 MB/s 2. 将文件转成swap root@localhost Desktop]# mkswap /swap/swapfile Setting up swapspace version 1, size = 1048572 KiB no label, UUID=7df01b33-7874-4ae9-b275-1306427bcf82 3. 激活swap [root@localhost Desktop]# swapon /swap/swapfile swapon: /swap/swapfile: insecure permissions 0644, 0600 suggested. 4. 查看发现多了1个G [root@localhost Desktop]# free -h total used free shared buffers cached Mem: 1.8G 1.7G 77M 9.7M 168K 1.0G -/+ buffers/cache: 711M 1.1G Swap: 3.0G 0B 3.0G 5. 配置开机生效 vi /etc/fstab /swap/swapfile swap swap defaults 0 0 6. 关闭swap [root@localhost Desktop]# swapoff /swap/swapfile [root@localhost Desktop]# free -h total used free shared buffers cached Mem: 1.8G 1.7G 75M 9.8M 168K 1.0G -/+ buffers/cache: 711M 1.1G Swap: 2.0G 0B 2.0G 7. 重启一次看看开机是否挂载上 root@localhost Desktop]# free -h total used free shared buffers cached Mem: 1.8G 818M 1.0G 9.8M 916K 266M -/+ buffers/cache: 551M 1.2G Swap: 3.0G 0B 3.0G
- 使用分区作为swap
1. 创建一个 1G swap 分区 [root@localhost Desktop]# fdisk /dev/sdb Command (m for help): n Partition type: p primary (0 primary, 1 extended, 3 free) l logical (numbered from 5) Select (default p): l Adding logical partition 8 First sector (2926592-20973567, default 2926592): Using default value 2926592 Last sector, +sectors or +size{K,M,G} (2926592-20973567, default 20973567): +1G Partition 8 of type Linux and of size 1 GiB is set Command (m for help): t Partition number (1,5-8, default 8): 8 Hex code (type L to list all codes): 82 Changed type of partition 'Linux' to 'Linux swap / Solaris' Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xed07c356 Device Boot Start End Blocks Id System /dev/sdb1 2048 20973567 10485760 5 Extended /dev/sdb5 4096 413695 204800 83 Linux /dev/sdb6 415744 825343 204800 83 Linux /dev/sdb7 827392 2924543 1048576 82 Linux swap / Solaris /dev/sdb8 2926592 5023743 1048576 82 Linux swap / Solaris /* 创建后需要用t命令去修改分区类型为 82( Linux swap / Solaris ) */ 2. 保存退出后通知内核 3. 格式化成 交换分区 [root@localhost Desktop]# mkswap /dev/sdb8 Setting up swapspace version 1, size = 1048572 KiB no label, UUID=0cf98e08-cfe7-4818-8a39-2c51987c0677 4. 激活后查看又多了1G [root@localhost Desktop]# swapon /dev/sdb8 [root@localhost Desktop]# free -h total used free shared buffers cached Mem: 1.8G 830M 996M 9.8M 1.7M 273M -/+ buffers/cache: 555M 1.2G Swap: 4.0G 0B 4.0G
软连接与硬链接
硬链接
:基本不用,硬链接与cp类似,但是硬链接不占用内存。硬连接不更新文件时间。创建时不能跨分区
软连接
:符号连接,类似windows快捷方式,占用i接待你,创建的时候没有其他限制
touch testfile #创建硬链接 ln testfile testfile.hard # 创建软连接 ln -s testfile testfile.hard # 硬链接在原来的文件删除时还是好用的,软连接不好用 # 开机自启其实就是创建软连接
第十课
计划任务[At & Cron Jobs]
at
# at 命令只能计划一次性任务但是比较方便。 # 先输入时间 [root@localhost Desktop]# at 10:02 # 输入要做的事情 at> echo 222 > test.log # CTRL + D 退出 at> <EOT> job 2 at Fri Oct 25 10:02:00 2019 # 查看计划中的任务 [root@localhost Desktop]# atq 2 Fri Oct 25 10:02:00 2019 a root # 时间过去后查看当前路径下 显示 10:02分创建了test.log [root@localhost Desktop]# ll total 4 -rw-r--r--. 1 root root 4 Oct 25 10:02 test.log # 查看内容 [root@localhost Desktop]# cat test.log 222
crond
周期性计划任务命令
crontab -e # 进入编辑当前用户的计划任务 crontab -e -u kane # 为别的用户设置计划任务 crontab -l # 查看自己计划任务 crontab -l -u kane # 查看别的用户的计划任务
- 创建计划任务
# 创建一个每隔1分钟echo一个内容并追加到一个文件中 [root@localhost Desktop]# crontab -e */1 * * * * /bin/date >> test2.log # 查看一下 [root@localhost Desktop]# crontab -l */1 * * * * /bin/date >> /root/Desktop/test2.log # 查看一下结果 Fri Oct 25 13:53:01 CST 2019 Fri Oct 25 13:54:01 CST 2019 Fri Oct 25 13:55:01 CST 2019 Fri Oct 25 13:56:02 CST 2019 Fri Oct 25 13:57:01 CST 2019 Fri Oct 25 13:58:01 CST 2019 Fri Oct 25 13:59:01 CST 2019 Fri Oct 25 14:00:01 CST 2019 Fri Oct 25 14:01:01 CST 2019 Fri Oct 25 14:02:01 CST 2019 Fri Oct 25 14:03:01 CST 2019 Fri Oct 25 14:04:02 CST 2019 Fri Oct 25 14:05:01 CST 2019 Fri Oct 25 14:06:01 CST 2019 Fri Oct 25 14:07:01 CST 2019 Fri Oct 25 14:08:01 CST 2019 Fri Oct 25 14:09:01 CST 2019 Fri Oct 25 14:10:01 CST 2019 Fri Oct 25 14:11:01 CST 2019 Fri Oct 25 14:12:01 CST 2019 Fri Oct 25 14:13:01 CST 2019 Fri Oct 25 14:14:01 CST 2019 Fri Oct 25 14:15:01 CST 2019 Fri Oct 25 14:16:01 CST 2019 Fri Oct 25 14:17:01 CST 2019
- 计划任务格式介绍
# 基本介绍 ┌───────────── 分钟 (0 - 59) │ ┌───────────── 小时 (0 - 23) │ │ ┌───────────── 月中的天 (1 - 31) │ │ │ ┌───────────── 月份 (1 - 12) │ │ │ │ ┌───────────── 周中的天 (0 - 6)[0是周日] │ │ │ │ │ ┌──────────── 命令[注意:bin下保存命令最好用绝对路径.eg:/bin/date] | | | | | | * * * * * /bin/date > date.log # 特殊字符介绍 * 代表所有有效字符 - 代表一个范围(eg:1-4 代表 1,2,3,4) , 代表一些列的指定值(eg:1,2,3) / 代表间隔频率(eg:*/1 * * * * 就是每分钟)(eg:* */2 * * * 就是每两个小时)
- 计划任务黑白名单
# 黑名单 vi /etc/cron.deny # 白名单 vi /etc/cron.allow # 经过测试白名单的优先级比黑名单高
逻辑卷管理
- 逻辑卷是对磁盘空间的划分和管理,创建过程是一个先整合在做划分的一个过程
- 概念
1. 物理卷 指硬盘分区,也可以是整个硬盘或已创建的软RAID,是LVM的基本存储设备。 2. 卷组 是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个逻辑卷。 3. 逻辑卷 类似于非LVM系统中的硬盘分区,它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件系统。
- 创建流程
1. 创建物理卷 pvcreate 2. 创建卷组 vgcreate 3. 创建逻辑卷 lvcreate 4. 创建文件系统(格式化) 5. 挂载使用
- 创建
# 创建 物理卷 [root@localhost /]# pvcreate /dev/sdb5 Wiping ext4 signature on /dev/sdb5. Physical volume "/dev/sdb5" successfully created # 创建卷组 [root@localhost /]# vgcreate vg1 /dev/sdb5 Volume group "vg1" successfully created # 创建逻辑卷 [root@localhost /]# lvcreate -L 100M -n lv1 vg1 Logical volume "lv1" created # 查看物理卷 [root@localhost /]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 rhel lvm2 a-- 19.51g 0 /dev/sdb5 vg1 lvm2 a-- 196.00m 96.00m # 查看卷组 [root@localhost /]# vgs VG #PV #LV #SN Attr VSize VFree rhel 1 2 0 wz--n- 19.51g 0 vg1 1 1 0 wz--n- 196.00m 96.00m # 查看逻辑卷 [root@localhost /]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert root rhel -wi-ao---- 17.51g swap rhel -wi-ao---- 2.00g lv1 vg1 -wi-a----- 100.00m # 挂载后就可以使用了 [root@localhost /]# mount /dev/vg1/lv1 /fifth
- 管理卷组
# 扩展卷组,将物理卷/dev/sdb6同样加到vg1这个卷组里 [root@localhost /]# vgextend vg1 /dev/sdb6 Volume group "vg1" successfully extended # 查看,又多了200M 来自/dev/sdb6 [root@localhost /]# vgs VG #PV #LV #SN Attr VSize VFree rhel 1 2 0 wz--n- 19.51g 0 vg1 2 1 0 wz--n- 392.00m 292.00m # -------------------------- # lv的操作需要制定到路径 /dev/vg1/lv1 # 扩展逻辑卷,扩展大小 [root@localhost /]# lvextend -L +50M /dev/vg1/lv1 Rounding size to boundary between physical extents: 52.00 MiB Extending logical volume lv1 to 152.00 MiB Logical volume lv1 successfully resized # 查看逻辑卷 [root@localhost /]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert root rhel -wi-ao---- 17.51g swap rhel -wi-ao---- 2.00g lv1 vg1 -wi-a----- 152.00m # 减少到 40M [root@localhost /]# lvreduce -L 40M /dev/vg1/lv1 WARNING: Reducing active logical volume to 40.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce lv1? [y/n]: y Reducing logical volume lv1 to 40.00 MiB Logical volume lv1 successfully resized [root@localhost /]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert root rhel -wi-ao---- 17.51g swap rhel -wi-ao---- 2.00g lv1 vg1 -wi-a----- 40.00m # 减少vg [root@localhost /]# vgreduce vg1 /dev/sdb6 Removed "/dev/sdb6" from volume group "vg1" [root@localhost /]# vgs VG #PV #LV #SN Attr VSize VFree rhel 1 2 0 wz--n- 19.51g 0 vg1 1 1 0 wz--n- 196.00m 156.00m
- 删除卷
1. 先卸载挂载 [root@localhost /]# umount /dev/vg1/lv1 2. 删除LV [root@localhost /]# lvremove /dev/vg1/lv1 Do you really want to remove active logical volume lv1? [y/n]: y Logical volume "lv1" successfully removed 3. 删除VG [root@localhost /]# vgremove vg1 Volume group "vg1" successfully removed 4. 删除PV [root@localhost /]# pvremove /dev/sdb6 Labels on physical volume "/dev/sdb6" successfully wiped
- 按需挂载
autofs
# yum安装autofs [root@localhost /]# yum install autofs # 编辑 文件 /etc/auto.master /misc /etc/auto.misc /test /etc/test.autofs --timeout 10 # 增加行,10秒后自动卸载 挂载目录 按照配置文件 # 编辑挂载配置文件 [root@localhost etc]# vi /etc/test.autofs test -fstype=ext4,rw :/dev/sdb6 # 重启autofs [root@localhost etc]# systemctl restart autofs # 查看当前挂载情况 [root@localhost etc]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/rhel-root 18G 3.0G 15G 17% / devtmpfs 905M 0 905M 0% /dev tmpfs 914M 140K 914M 1% /dev/shm tmpfs 914M 8.9M 905M 1% /run tmpfs 914M 0 914M 0% /sys/fs/cgroup /dev/sda1 497M 119M 379M 24% /boot /dev/sdb5 190M 1.6M 175M 1% /third /dev/sr0 3.5G 3.5G 0 100% /mnt # 访问目录 /test/test [root@localhost etc]# cd /test/test # 再次查看自动挂载上了 [root@localhost test]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/rhel-root 18G 3.0G 15G 17% / devtmpfs 905M 0 905M 0% /dev tmpfs 914M 140K 914M 1% /dev/shm tmpfs 914M 8.9M 905M 1% /run tmpfs 914M 0 914M 0% /sys/fs/cgroup /dev/sda1 497M 119M 379M 24% /boot /dev/sdb5 190M 1.6M 175M 1% /third /dev/sr0 3.5G 3.5G 0 100% /mnt /dev/sdb6 190M 1.6M 175M 1% /test/test
十一课
文件特殊权限facl
- 查看权限
[root@localhost test]# getfacl lost+found/ # file: lost+found/ # owner: root # group: root user::rwx # 代表用户拥有读、写、执行权限 group::--- # 代表组没有任何权限 other::--- # 代表其他没有任何权限
- 编辑权限
# 查看kane用户 对文件夹权限 [kane@localhost test]$ cd lost+found/ bash: cd: lost+found/: Permission denied # 给文件夹lost+found/ kane用户加上rwx的权限 [root@localhost test]# setfacl -m u:kane:rwx lost+found/ # 先查看一下特殊权限 [root@localhost test]# getfacl lost+found/ # file: lost+found/ # owner: root # group: root user::rwx user:kane:rwx group::--- mask::r-- other::--- # 用kane用户再次访问 bash: cd: lost+found/: Permission denied [kane@localhost test]$ cd lost+found/ [kane@localhost lost+found]$ # 修改组就是 [root@localhost test]# setfacl -m g:kane:rwx lost+found/ # 修改其他 [root@localhost test]# setfacl -m o:rwx lost+found/
Selinux
加强的安全Linux体系
[root@localhost test]# setenforce 0 # 临时修改 [root@localhost test]# getenforce Permissive # 每个参数的意义 enforcing[1] 严格模式。selinux全部开启,只有匹配的才会允许,并记录到日志当中 permissive[0] 非严格模式。selinux部分开启,所有允许访问,不配的时候,会记录到日志 disabled 禁用 # 永久修改。需要重启 [root@localhost test]# vi /etc/selinux/config SELINUX=disabled