1、介绍
rhcsa:红帽认证系统管理员。
红帽公司:软件和服务,开放源码------操作系统软件。
软件:用高级语言(c,java,c++等)写的程序。
硬件:cpu,输入输出设备I/O设备,存储器(内存【断电后数据会消失】,硬盘),操作系统是硬件上的第一层软件,其他软件必须在操作系统之上运行。
操作系统:windows【图形用户界面GUI(简单,效率低),闭源,个人电脑】,linux【操作系统内核,命令行界面CLI(较难,效率高),源代码开放(GPL协议),企业服务器】------软件稳定,rhel(7,8)------centos(7,8),centos-stream--rhel(9)---rocky linux(9)
学习linux的原因:
1、因为企业需要该技术
2、学linux可以加深你对windows的理解
1、软件(操作系统镜像)下载地址:rhel-baseos-9.1-x86_64-dvd.iso
迅雷云盘:https://pan.xunlei.com/s/VNHNNny4k204avjWcLPEE-htA1?pwd=psn7#
百度云盘:https://pan.baidu.com/s/1CrwEZq1oYVrwFBawNvaHHw?pwd=rhel 提取码:rhel
2、vmware workstation pro下载地址:https://download3.vmware.com/software/WKST-1700-WIN/VMware-workstation-full-17.0.0-20800274.exe
3、markdown(md)格式写笔记的软件:typora,微信群下载
4、远程连接工具(安装在c盘):xshell:https://www.xshell.com/zh/free-for-home-school/
mobaxterm:https://mobaxterm.mobatek.net/download.html
1.1 安装linux操作系统 ⭐⭐⭐⭐⭐
1、创建虚拟机
在windows上安装vmware workstation pro软件,使用该软件可创建很多虚拟机,每个虚拟机之间互不干涉。
创建虚拟机步骤中必须手动选择:选择linux操作系统并选择rhel9的版本------虚拟机文件路径建议不要放在C盘。
2、安装linux操作系统
(1)准备好虚拟机和镜像文件
(2)打开虚拟机的设置,找到CD/DVD,选中启动时连接,浏览镜像文件的路径。
(3)开机
(4)按照提示一步一步的安装操作系统,硬盘分区(20G):(选择标准分区,/boot---500M,/根目录------15G,swap------2G);用户管理:root用户的密码123(管理员,选中允许root用户使用密码ssh登录),创建普通用户(xiaoming,123)
(5)安装完毕后即可重启系统
3、安装linux操作系统后的设置
bash
1)查看linux网卡的ip地址
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo #表示linux主机自己
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:70 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.147/24 brd 192.168.168.255 scope global dynamic noprefixroute ens160 #使用该地址
valid_lft 1281sec preferred_lft 1281sec
inet6 fe80::20c:29ff:fe54:d870/64 scope link noprefixroute
valid_lft forever preferred_lft forever
2)使用cmd、xshell,mobaxterm连接linux
ssh root@192.168.168.147
3)给linux虚拟机创建快照,方便日后系统无法启动时可以恢复到当前状态
ip地址说明:
ip地址的作用:标识设备在互联网上的位置
ip地址的分类:ipv4地址(40亿个),ipv6地址(40亿*40亿*40亿*40亿)
ipv4地址的分类:A(0-127)/8,B(128-191)/16,C(192-223)/24,D(224-239),E类(240-255)
ip地址的构成:ipv4地址由32位二进制组成,ipv6由128位二进制组成
二进制:0,1
私有地址:互联网主机无法直接访问该主机,可以使用nat地址转使用公有地址访问互联网主机
公有地址:互联网主机可以直接访问该主机,花钱买
网卡配置ip参数:ip地址,掩码,网关,dns域名解析服务器(将域名解析成ip地址)------114.114.114.114,8.8.8.8
bash
#windows和linux主机间的通信:两主机的ip地址
windows主机可以访问linux主机:ping 192.168.168.147
linux主机可以访问windows主机:ping 192.168.168.1
[root@localhost ~]# who am i
root pts/1 2023-08-01 11:00 (192.168.168.1)
bash
#linux能否上网
[root@localhost ~]# ping www.baidu.com
2、基础指令 ⭐⭐⭐⭐⭐
2.1 命令格式
bash
#命令提示符:[用户名@主机名 当前的工作目录]提示符,~代表当前用户的家目录,root用户的家目录路径:/root,#符号表示管理员的提示符,其他所有人的提示符都为$
[root@localhost ~]#
#xiaoming用户的家目录路径为:/home/xiaoming
[xiaoming@localhost ~]$
bash
#命令格式:命令 选项 参数;命令、选项和参数之间用空格隔开
命令:命令的作用是什么对应选取使用什么命令,按tab键进行命令的补全【一下tab键,两下tab键是列出所有该字母开头的指令】
选项:命令的某个功能,可以同时写多个选项,选项和选项之间用空格隔开
参数:该命令对什么(网卡,文件,用户,磁盘等等)生效
bash
#查看命令的使用手册
[root@localhost ~]# date --help
[root@localhost ~]# man date
NAME
date - print or set the system date and time
SYNOPSIS
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
#[]表示option选项可以出现在该命令也可以没有,...表示可以同时写多个选项
DESCRIPTION
Display the current time in the given FORMAT, or set the system date.
Mandatory arguments to long options are mandatory for short options too.
-s, --set=STRING
set time described by STRING #使用-s设置当前的时间
######部分输出省略######
#想要翻看手册可以使用上下键,空格键,g第一页,G最后一页;使用/关键字,回车后会进行搜索,输入n可以在搜索到的字符间跳转
#百度:linux中ip指令的用法
2.2 ip地址相关指令
1、获取ip地址
bash
#查看网卡的名称和连接状态
[root@localhost ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens160 ethernet 已连接 ens160
lo loopback 未托管 --
#将未连接的网卡连接
[root@localhost ~]# nmcli device connect ens160
#ens160网卡对应名为ens160的CONNECTION获取ip地址
[root@localhost ~]# nmcli connection up ens160
#查看ens160网卡的网关地址
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.168.2 0.0.0.0 UG 100 0 0 ens160
#dns地址:114.114.114.114
2、查看ip地址
bash
#查看网卡的ip地址
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:70 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.147/24 brd 192.168.168.255 scope global dynamic noprefixroute ens160
valid_lft 1338sec preferred_lft 1338sec
inet6 fe80::20c:29ff:fe54:d870/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:7a brd ff:ff:ff:ff:ff:ff
altname enp19s0
inet 172.24.24.136/24 brd 172.24.24.255 scope global dynamic noprefixroute ens224
valid_lft 1464sec preferred_lft 1464sec
inet6 fe80::a0d5:de91:d932:66c6/64 scope link noprefixroute
valid_lft forever preferred_lft forever
#查看ens160网卡的ip地址
[root@localhost ~]# ip a show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:70 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.147/24 brd 192.168.168.255 scope global dynamic noprefixroute ens160
valid_lft 1294sec preferred_lft 1294sec
inet6 fe80::20c:29ff:fe54:d870/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3、测试主机与主机间的连通性
bash
[root@localhost ~]# ping -c 2 192.168.168.147
PING 192.168.168.147 (192.168.168.147) 56(84) 比特的数据。
64 比特,来自 192.168.168.147: icmp_seq=1 ttl=64 时间=0.074 毫秒
64 比特,来自 192.168.168.147: icmp_seq=2 ttl=64 时间=0.061 毫秒
4、windows远程连接linux
bash
#windows远程连接linux的root账号(管理员账号)
ssh root@192.168.168.147
[root@localhost ~]# who am i
root pts/2 2023-08-01 14:04 (192.168.168.1)
#连接的当前用户是root,192.168.168.1表示windows网卡的地址
#windows远程连接linux的xiaoming账号(普通账号)
ssh xiaoming@192.168.168.147
[xiaoming@localhost ~]$ who am i
xiaoming pts/3 2023-08-01 14:06 (192.168.168.1)
5、配置ip地址
bash
[root@localhost ~]# nmtui
[root@localhost ~]# nmcli connection up ens160
2.3 时间相关的指令
1、调整时区
bash
#中国标准时间CST,世界标准时间:UTC;CST=UTC+8
#设置时区为 Asia/Shanghai
[root@localhost ~]# timedatectl set-timezone Asia/Shanghai
#查看时区
[root@localhost ~]# timedatectl status
2、调整时间
bash
#修改时间
[root@localhost ~]# date -s '20220801 12:00'
2022年 08月 01日 星期一 12:00:00 CST
#查看当前时间
[root@localhost ~]# date
2022年 08月 01日 星期一 12:00:02 CST
[root@localhost ~]# date +%Y/%m/%d
2023/08/01
[root@localhost ~]# date '+%Y/%m/%d %H:%M'
2023/08/01 14:46
2.4 用户的切换
bash
#查看编号为1000的账号的信息
[root@localhost ~]# id 1000
用户id=1000(xiaoming) 组id=1000(xiaoming) 组=1000(xiaoming)
#root用户切换到普通用户xiaoming不需要xiaoming的密码
[root@localhost ~]# su -l xiaoming
[xiaoming@localhost ~]$
#xiaoming切换到root用户需要root用户的密码
[xiaoming@localhost ~]$ su -l root
密码:
#退出当前账号的登录
[root@localhost ~]#exit
#修改密码
[root@rhcsa xiaoming]# passwd
更改用户 root 的密码 。
新的密码:
无效的密码: 密码少于 8 个字符
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
#普通用户给自己修改密码:1、需要输入原密码;2、新密码和原密码不能相同;3、密码要长于8个字符且不能太系统化
[xiaoming@localhost ~]$ passwd
更改用户 xiaoming 的密码 。
当前的密码:
新的密码:
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
#忘记密码怎么办?
#xiaoming忘记密码怎么办?找root用户重置
[root@rhcsa xiaoming]# passwd xiaoming
更改用户 xiaoming 的密码 。
新的密码:
无效的密码: 密码少于 8 个字符
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
#root用户忘记密码怎么办?
1)重启虚拟机
2)将鼠标点进虚拟机,按e键
3)linux开头的行末尾添加rd.break,按ctrl+x
4)输入mount -o remount,rw /sysroot
5)chroot /sysroot
6)passwd root
7)touch /.autorelabel
8)exit
9)exit
2.5 设置主机名
bash
#永久修改主机名
[root@localhost ~]# hostnamectl hostname rhcsa
#修改后需要重新远程连接才生效,重启也可以生效
[root@rhcsa ~]#
[root@rhcsa ~]# hostnamectl status
Static hostname: rhcsa
#查看主机名文件
[root@rhcsa ~]# cat /etc/hostname
rhcsa
2.6 工作目录的切换
bash
文件路径:linux中文件的具体位置
绝对路径:以/开始的路径叫绝对路径:/etc/hostname,
相对路径:不是以/开始的路径叫相对路径
#查看当前的工作路径,目录------文件夹
[root@rhcsa ~]# pwd
/root
[xiaoming@localhost ~]$ pwd
/home/xiaoming
#切换当前的工作目录
[root@rhcsa ~]# cd /home/xiaoming
[root@rhcsa xiaoming]# pwd
/home/xiaoming
#..代表当前的工作目录的上一级目录
[root@rhcsa xiaoming]# cd ..
#代表当前工作目录
[root@rhcsa home]# cd .
#切换到当前用户的家目录
[root@rhcsa /]# cd ~等同于[root@rhcsa /]# cd
#在当前的工作目录和上一次工作目录之间来回切换
[root@rhcsa etc]# cd -
3、linux的目录结构和文件类型 ⭐⭐⭐⭐⭐
bash
#语法:ls [OPTION]... [FILE]...
OPTION(选项):选项可以写也可以不写,可以同时写多个,写多个的时候可以合并写也可以分开写(-l -h=-lh=-hl)
-l 长列表列出文件属性
-h 和-l一起使用,使用KB,MB,GB,TB等方式显示文件的大小
-d 显示目录文件本身而不是目录文件的内容
-a 显示所有的文件包括隐藏文件(以.开头的文件)
FILE(文件):可以写文件也可以不写文件,写文件可以同时写多个
bash
#长列表查看目录下的文件
[root@rhcsa ~]# ll /
[root@rhcsa ~]# ls -l /
总用量 28
dr-xr-xr-x. 2 root root 6 8月 10 2021 afs
lrwxrwxrwx. 1 root root 7 8月 10 2021 bin -> usr/bin #命令的可执行文件所在路径
dr-xr-xr-x. 5 root root 4096 8月 1 10:54 boot #系统启动相关的文件所在目录
drwxr-xr-x. 19 root root 3320 8月 2 09:09 dev #设备文件,硬盘设备文件
drwxr-xr-x. 133 root root 8192 8月 2 09:32 etc #配置文件
drwxr-xr-x. 3 root root 22 8月 1 10:53 home #所有普通用户的家目录所在路径
lrwxrwxrwx. 1 root root 7 8月 10 2021 lib -> usr/lib #库文件所在路径
lrwxrwxrwx. 1 root root 9 8月 10 2021 lib64 -> usr/lib64 #库文件所在路径
drwxr-xr-x. 2 root root 6 8月 10 2021 media #挂载点目录
drwxr-xr-x. 3 root root 18 8月 1 10:50 mnt #挂载点目录
drwxr-xr-x. 2 root root 6 8月 10 2021 opt #第三方软件包所在目录
dr-xr-xr-x. 363 root root 0 8月 2 08:46 proc #虚拟的文件系统
dr-xr-x---. 13 root root 4096 8月 2 09:32 root #管理员的家目录
drwxr-xr-x. 45 root root 1180 8月 2 08:46 run #程序运行相关文件所在目录
lrwxrwxrwx. 1 root root 8 8月 10 2021 sbin -> usr/sbin #命令的可执行文件所在路径,管理员能够执行的
drwxr-xr-x. 2 root root 6 8月 10 2021 srv #网络服务的数据
dr-xr-xr-x. 13 root root 0 8月 2 08:46 sys #虚拟的文件系统
drwxrwxrwt. 28 root root 4096 8月 2 09:33 tmp #临时数据文件
drwxr-xr-x. 12 root root 144 8月 1 10:47 usr #unix software resource,软件资源所在目录
drwxr-xr-x. 20 root root 4096 8月 1 10:54 var #数据可变化的文件所在目录,系统的日志
说明:
d rwx r-x r-x. 20 root root 4096 8月 1 10:54 var
文件类型 文件的所属者对于文件的权限 文件的所属组用户的权限 其他人的权限 文件的硬链接次数 文件的所属者 文件的所属组 文件的大小(1B=8bit) 文件的最后一次修改时间 文件名
###################################重点记忆######################
[root@rhcsa ~]# ls -ld /dev /etc /home /root /var
drwxr-xr-x. 19 root root 3320 8月 2 09:09 /dev
drwxr-xr-x. 133 root root 8192 8月 2 09:32 /etc
drwxr-xr-x. 3 root root 22 8月 1 10:53 /home
dr-xr-x---. 13 root root 4096 8月 2 10:25 /root
drwxr-xr-x. 20 root root 4096 8月 1 10:54 /var
#################################################################
文件类型:
l 软链接文件====windows下面的快捷方式
d 目录文件====windwos下的文件夹:下面可以存储文件
- 普通文件====windows下的txt文档
b 块设备文件=====磁盘设备
c 字符设备文件,了解
p 管道文件,了解
s 套接字文件,了解
[root@rhcsa ~]# ls -ld /bin /root /home /dev /etc /var/ /root/anaconda-ks.cfg /dev/nvme0n1
lrwxrwxrwx. 1 root root 7 8月 10 2021 /bin -> usr/bin
drwxr-xr-x. 19 root root 3320 8月 2 09:09 /dev
brw-rw----. 1 root disk 259, 0 8月 2 08:46 /dev/nvme0n1
drwxr-xr-x. 133 root root 8192 8月 2 09:32 /etc
drwxr-xr-x. 3 root root 22 8月 1 10:53 /home
dr-xr-x---. 13 root root 4096 8月 2 10:45 /root
-rw-------. 1 root root 1187 8月 1 10:53 /root/anaconda-ks.cfg
drwxr-xr-x. 20 root root 4096 8月 1 10:54 /var/
4、文件的管理 ⭐⭐⭐⭐⭐
文件名的命名规则:
- 不能使用/来当文件名
- 文件名不能超过255个字符
- 文件名区分大小写,fa,Fa,fA,FA为四个不同的文件
- 同一个目录下的不同类型的文件名不能同名
4.1 目录文件的管理
1、创建
bash
语法: mkdir [OPTION]... DIRECTORY...
[root@rhcsa ~]# mkdir -pv /root/dir5/dir55/dir555
mkdir: 已创建目录 '/root/dir5'
mkdir: 已创建目录 '/root/dir5/dir55'
mkdir: 已创建目录 '/root/dir5/dir55/dir555'
[root@rhcsa ~]# mkdir -pv /root/dir{6,7,8}
[root@rhcsa ~]# mkdir -pv /root/dir{10..15}
mkdir: 已创建目录 '/root/dir10'
mkdir: 已创建目录 '/root/dir11'
mkdir: 已创建目录 '/root/dir12'
mkdir: 已创建目录 '/root/dir13'
mkdir: 已创建目录 '/root/dir14'
mkdir: 已创建目录 '/root/dir15'
[root@rhcsa ~]# mkdir -pv /root/dir{10..15} /root/directory{1,2}{3,4}
mkdir: 已创建目录 '/root/directory13'
mkdir: 已创建目录 '/root/directory14'
mkdir: 已创建目录 '/root/directory23'
mkdir: 已创建目录 '/root/directory24'
2、查看
可以使用{a...z},{1...10},{1,2,3,4,5,6,7,8,9,10}描述abcd......z或者1,2,3,4......10字符
可以使用通配符匹配文件名,只能在查看文件时使用:*:表示匹配任意零个或者任意多个任意字符
?:匹配任意的单一字符
\]:匹配该符号内的单字符,例如\[123456789\]=\[1-9\],\[a-z
bash
[root@rhcsa ~]# ll -d /root/dir*
drwxr-xr-x. 2 root root 6 8月 2 11:17 /root/dir1
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir10
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir11
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir12
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir13
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir14
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir15
drwxr-xr-x. 2 root root 6 8月 2 11:18 /root/dir2
drwxr-xr-x. 3 root root 19 8月 2 11:19 /root/dir3
drwxr-xr-x. 2 root root 6 8月 2 11:20 /root/dir4
drwxr-xr-x. 3 root root 19 8月 2 11:20 /root/dir5
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir6
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir7
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir8
drwxr-xr-x. 2 root root 6 8月 2 11:23 /root/directory13
drwxr-xr-x. 2 root root 6 8月 2 11:23 /root/directory14
drwxr-xr-x. 2 root root 6 8月 2 11:23 /root/directory23
drwxr-xr-x. 2 root root 6 8月 2 11:23 /root/directory24
[root@rhcsa ~]# ll -d /root/dir{1..8}
drwxr-xr-x. 2 root root 6 8月 2 11:17 /root/dir1
drwxr-xr-x. 2 root root 6 8月 2 11:18 /root/dir2
drwxr-xr-x. 3 root root 19 8月 2 11:19 /root/dir3
drwxr-xr-x. 2 root root 6 8月 2 11:20 /root/dir4
drwxr-xr-x. 3 root root 19 8月 2 11:20 /root/dir5
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir6
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir7
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir8
[root@rhcsa ~]# ll -d /root/dir?
drwxr-xr-x. 2 root root 6 8月 2 11:17 /root/dir1
drwxr-xr-x. 2 root root 6 8月 2 11:18 /root/dir2
drwxr-xr-x. 3 root root 19 8月 2 11:19 /root/dir3
drwxr-xr-x. 2 root root 6 8月 2 11:20 /root/dir4
drwxr-xr-x. 3 root root 19 8月 2 11:20 /root/dir5
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir6
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir7
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir8
[root@rhcsa ~]# ll -d /root/dir??
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir10
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir11
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir12
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir13
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir14
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir15
[root@rhcsa ~]# ll -d /root/dir[1-8]
drwxr-xr-x. 2 root root 6 8月 2 11:17 /root/dir1
drwxr-xr-x. 2 root root 6 8月 2 11:18 /root/dir2
drwxr-xr-x. 3 root root 19 8月 2 11:19 /root/dir3
drwxr-xr-x. 2 root root 6 8月 2 11:20 /root/dir4
drwxr-xr-x. 3 root root 19 8月 2 11:20 /root/dir5
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir6
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir7
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir8
[root@rhcsa ~]# ll -d /root/dir[123456789]
drwxr-xr-x. 2 root root 6 8月 2 11:17 /root/dir1
drwxr-xr-x. 2 root root 6 8月 2 11:18 /root/dir2
drwxr-xr-x. 3 root root 19 8月 2 11:19 /root/dir3
drwxr-xr-x. 2 root root 6 8月 2 11:20 /root/dir4
drwxr-xr-x. 3 root root 19 8月 2 11:20 /root/dir5
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir6
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir7
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir8
3、编辑
bash
编辑目录文件实际上是在该目录下创建文件:可以创建目录文件,普通文件,软链接文件等等
4、删除
bash
[root@rhcsa ~]# rm -r /root/dir[1-9]
rm:是否删除目录 '/root/dir2'?y
rm:是否进入目录'/root/dir3'?
rm:是否删除目录 '/root/dir4'?y
rm:是否进入目录'/root/dir5'? y
rm:是否进入目录'/root/dir5/dir55'? y
rm:是否删除目录 '/root/dir5/dir55/dir555'?y
rm:是否删除目录 '/root/dir5/dir55'?yy
rm:是否删除目录 '/root/dir5'?y
rm:是否删除目录 '/root/dir6'?y
rm:是否删除目录 '/root/dir7'?y
rm:是否删除目录 '/root/dir8'?y
[root@rhcsa ~]# ll -d /root/dir[1-9]
drwxr-xr-x. 3 root root 19 8月 2 11:19 /root/dir3
[root@rhcsa ~]# ll -d /root/dir[1-9]
drwxr-xr-x. 3 root root 19 8月 2 11:19 /root/dir3
[root@rhcsa ~]# ll -d /root/dir*
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir10
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir11
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir12
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir13
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir14
drwxr-xr-x. 2 root root 6 8月 2 11:21 /root/dir15
drwxr-xr-x. 3 root root 19 8月 2 11:19 /root/dir3
drwxr-xr-x. 2 root root 6 8月 2 11:23 /root/directory13
drwxr-xr-x. 2 root root 6 8月 2 11:23 /root/directory14
drwxr-xr-x. 2 root root 6 8月 2 11:23 /root/directory23
drwxr-xr-x. 2 root root 6 8月 2 11:23 /root/directory24
[root@rhcsa ~]# rm -fr /root/dir*
4.2 普通文件的管理
1、创建
bash
touch命令的两种用法:
1)如果文件存在,则更新该文件的是时间
2)如果文件不存在,则表示创建一个普通文件
[root@localhost ~]# touch /root/file{1..4} /root/file{1,2}{3,4}
2、查看cat、head,tail,less
bash
#linux系统的主机名配置文件
[root@rhcsa0801 ~]# cat /etc/hostname
rhcsa0801
#在输出文件内容的同时输出行数
[root@rhcsa0801 ~]# cat -n /etc/hostname
1 rhcsa0801
#显示该文件有多少行
[root@rhcsa0801 ~]# wc -l /etc/passwd
#查看linux系统的发行版本信息
[root@rhcsa0801 ~]# cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="9.1 (Plow)"
[root@rhcsa0801 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.1 (Plow)
#linux系统的用户配置文件,一行代表一个用户的信息
[root@rhcsa0801 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash #管理员用户的个人信息,可以远程登录
bin:x:1:1:bin:/bin:/sbin/nologin #系统用户的个人信息,不能登录
xiaoming:x:1000:1000:xiaoming:/home/xiaoming:/bin/bash #普通用户的个人信息,可以远程登录
#查看文件的前2行内容
[root@rhcsa0801 ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
#查看文件的最后两行
[root@rhcsa0801 ~]# tail -2 /etc/passwd
systemd-oom:x:978:978:systemd Userspace OOM Killer:/:/usr/sbin/nologin
xiaoming:x:1000:1000:xiaoming:/home/xiaoming:/bin/bash
#追踪文件内容即如果文件有新增内容则在屏幕上输出
[root@rhcsa0801 ~]# tail -f /var/log/messages
#面试题:查看/etc/passwd文件的第10-16行内容
[root@rhcsa0801 ~]# head -16 /etc/passwd | tail -7
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
#查看文件内容,按q退出该程序,其余操作和man指令操作一样
[root@rhcsa0801 ~]# less /etc/ssh/sshd_config
管道符|:command1 | command2 | command3 ,将command1处理后的输出交给command2,再将command2处理后的数据交给command3
bash
#根据PATTERNS匹配到文件相应内容后输出该行
语法:grep [OPTION...] PATTERNS [FILE...]
OPTION:
-i 忽略大小写
-n 显示匹配到的内容的行号
PATTERNS:
字符 表示匹配该字符
[a-z] 匹配所有的小写字母
[A-Z] 匹配所有的大写字母
[0-9] 匹配所有的数字
[0-9a-Z] 匹配所有的小写字母、大小写字母
^r 匹配r字符开头的行
h$ 匹配h字符结尾的行
[root@rhcsa0801 ~]# grep root /etc/passwd /etc/ssh/sshd_config
/etc/passwd:root:x:0:0:root:/root:/bin/bash
/etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
/etc/ssh/sshd_config:#ChrootDirectory none
[root@rhcsa0801 ~]# grep -in root /etc/passwd /etc/ssh/sshd_config
/etc/passwd:1:root:x:0:0:root:/root:/bin/bash
/etc/passwd:10:operator:x:11:0:operator:/root:/sbin/nologin
/etc/ssh/sshd_config:40:#PermitRootLogin prohibit-password
/etc/ssh/sshd_config:90:# the setting of "PermitRootLogin without-password".
/etc/ssh/sshd_config:116:#ChrootDirectory none
[root@rhcsa0801 ~]# grep ^r /etc/passwd
root:x:0:0:root:/root:/bin/bash
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
[root@rhcsa0801 ~]# grep h$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
xiaoming:x:1000:1000:xiaoming:/home/xiaoming:/bin/bash
bash
#使用:分隔符分隔/etc/passwd文件中的行内容,输出使用:分隔符分隔开的第一个字段的数据
#-d指定分隔符,如果是空格需要使用引号引起来,-f指定第几个字段
[root@rhcsa0801 ~]# cut -d : -f 1 /etc/passwd
#输出使用:分隔符分隔开的第一个和第六个字段的数据
[root@rhcsa0801 ~]# cut -d : -f 1,6 /etc/passwd
[root@rhcsa0801 ~]# cut -d : -f 1-3 /etc/passwd
#使用:分隔符分隔/etc/passwd文件中的行内容,输出使用:分隔符分隔开的按照第三个字段排序后的内容
#-t指定分隔符,-k指定第几个字段,-n表示按照数值大小排序,-r表示逆序显示,默认是升序(从小到大)
[root@rhcsa0801 ~]# sort -t : -k 3 -nr /etc/passwd
[root@rhcsa0801 ~]# cat /root/file
ming 9
ming 9
hong 8
ming 9
bai 10
#去掉重复的行内容,uniq指令认为相邻重复的行才是重复内容,非相邻重复的行不认为是重复的
[root@rhcsa0801 ~]# uniq /root/file
ming 9
hong 8
ming 9
bai 10
[root@rhcsa0801 ~]# sort -t ' ' -k 2 -n /root/file | uniq
hong 8
ming 9
bai 10
*************面试题:********************************************
公司有网站日志记录,统计出访问该网站的访问次数最多的客户端ip地址是多少
[root@rhcsa0801 ~]# cat /root/file
2022/12/01 12:00 10.0.0.1 Chrome
2022/12/11 12:00 192.168.1.2 Chrome
2022/12/12 12:00 10.0.0.2 Chrome
2023/01/01 13:00 192.168.1.2 firefox
2023/06/06 15:01 10.0.0.2 firefox
2023/08/01 13:00 192.168.1.2 firefox
#uniq的-c选项可以统计重复行重复的次数
[root@rhcsa0801 ~]# cut -d " " -f 3 /root/file | sort | uniq -c | sort -t " " -k 1 -nr | head -1
3 192.168.1.2
****************************************************************
3、编辑
bash
1、echo:将键盘上的输入输出到屏幕;>表示将命令的标准输出重定向到文件,会覆盖原来文件的内容;>>表示将命令的标准输出追加到文件
[root@rhcsa0801 ~]# echo 123 >> /root/file
[root@rhcsa0801 ~]# echo 10 >> /root/file10
[root@rhcsa0801 ~]# ll /root/file10
-rw-r--r--. 1 root root 3 8月 2 15:40 /root/file10
[root@rhcsa0801 ~]# cat /root/file10
10
2、将命令执行后的标准输出重定向到文件
[root@rhcsa0801 ~]# cat /etc/passwd > /root/passwd
#将命令执行后的标准错误输出重定向到文件
[root@rhcsa0801 ~]# cat /root/file12 2> /root/file
3、vim/vi编辑器
1)所有的linux的操作系统都支持该指令
2)有些程序会调用该指令编辑文件,计划任务(时间 执行的指令)
3)在写一些代码(c,java,python,shell等等)的时候可以根据颜色辨别语法的正确性
4)在编辑linux的一些配置文件时关键字也会有颜色显示
[root@rhcsa0801 ~]# vim /etc/passwd
命令模式:
光标的跳转:上下左右键;整个文档的行首或者行尾gg,G,10gg或者20G;当前光标所在行行首行尾:^,$;按照单词跳转:w,b
复制粘贴:yy,3yy,p,P
删除:dd,2dd,dG,dgg
撤销:u
插入模式:iaso、IASO
i 光标前插入
a 光标后插入
末行模式:
文档的保存退出相关指令 :wq :wq! :w :w /dir/file :q :q!
将文件1写入到该文件 :r /etc/passwd
显示文件内容的行号 :set nu
搜索关键字 /keywords 使用n可以在搜索到的关键字之间跳转
替换整个文档里面的所有的行的old为new :%s/old/new/g
替换3-12行之间的所有的root为admin :3,12s/root/admin/g
显示光标列和行坐标线 :set cursorline :set cursorcolumn
bash
#案例:装httpd包并启动,访问
[root@rhcsa0801 ~]# ll /etc/yum.repos.d/
总用量 4
-rw-r--r--. 1 root root 358 8月 2 11:48 redhat.repo
[root@rhcsa0801 ~]# vim /etc/yum.repos.d/aliyun.repo
[aliyun-base]
name=aliyun-base
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/os/
gpgcheck=0
[aliyun-app]
name=aliyun-app
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/AppStream/x86_64/os/
gpgcheck=0
#安装httpd程序
[root@rhcsa0801 ~]# yum install httpd -y
#启动httpd程序
[root@rhcsa0801 ~]# systemctl enable --now httpd
#停止防火墙服务
[root@rhcsa0801 ~]# systemctl disable --now firewalld
在浏览器上输入http://ip地址(ip地址写你的linux虚拟机的ip地址)访问
[root@rhcsa0801 ~]# echo "hello world" > /var/www/html/index.html
再在浏览器上输入http://ip地址(ip地址写你的linux虚拟机的ip地址)访问,查看区别
bash
#设置登录欢迎信息
[root@rhcsa0801 ~]# vim /etc/motd
hello,my name is zhao
重新远程连接则可以看见该信息输出到屏幕上
bash
#给命令设置别名
[root@rhcsa0801 ~]# vim /etc/bashrc
alias lyonghu='ll /etc/passwd'
4、删除
bash
rm -rf 文件名
4.3 软链接文件的管理
软链接对应于windows中的快捷方式,链接到的是某个文件的路径
bash
#软链接又名符号链接,建议写绝对路径
[root@rhcsa0801 ~]# ln -s /root/anaconda-ks.cfg /a.cfg
[root@rhcsa0801 ~]# ln -s /root/dir2/ /dir2
[root@rhcsa0801 ~]# ll -d /dir2 /root/dir2
lrwxrwxrwx. 1 root root 11 8月 4 14:03 /dir2 -> /root/dir2/
drwxr-xr-x. 2 root root 6 8月 2 13:50 /root/dir2
#删除普通文件的软链接文件
[root@rhcsa0801 ~]# rm -r /root/a.cfg
rm:是否删除符号链接 '/root/a.cfg'?y
#删除目录文件的软链接文件,注意不要写文件名后面的/
[root@rhcsa0801 ~]# rm -r /dir2
rm:是否删除符号链接 '/dir2'?n
[root@rhcsa0801 ~]# rm -r /dir2/
rm:是否删除目录 '/dir2/'?
4.4 块设备文件的管理
bash
[root@rhcsa0801 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 8.4G 0 rom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 500M 0 part /boot
├─nvme0n1p2 259:2 0 15G 0 part /
└─nvme0n1p3 259:3 0 2G 0 part [SWAP]
[root@rhcsa0801 ~]# ll /dev/sr0 /dev/nvme0n1*
brw-rw----. 1 root disk 259, 0 8月 4 09:35 /dev/nvme0n1
brw-rw----. 1 root disk 259, 1 8月 4 09:35 /dev/nvme0n1p1
brw-rw----. 1 root disk 259, 2 8月 4 09:35 /dev/nvme0n1p2
brw-rw----. 1 root disk 259, 3 8月 4 09:35 /dev/nvme0n1p3
brw-rw----+ 1 root cdrom 11, 0 8月 4 09:35 /dev/sr0
4.5 文件的复制和移动
bash
#cp复制源文件存在
#复制/root/q文件到/root/passwd
[root@rhcsa0801 ~]# cp /root/q /root/passwd
#复制目录文件,将/root/dir2复制到已存在的/root/dir3目录里面
[root@rhcsa0801 ~]# cp -r /root/dir2 /root/dir3
#复制/root/file2 /root/dir2 /root/passwd 文件到已存在的/dir1目录里面
[root@rhcsa0801 ~]# cp -r /root/file2 /root/dir2 /root/passwd /dir1
bash
#mv移动后源文件不存在
#将/root/q文件移动到/root/passwd3,q文件会消失,/root下面会多一个passwd3文件等同于重命名
[root@rhcsa0801 ~]# mv /root/q /root/passwd3
#将/root/passwd3移动到已存在的/root/dir4目录
[root@rhcsa0801 ~]# mv /root/passwd3 /root/dir4
#将/root/dir2 移动到已存在的/root/dir4目录里面
[root@rhcsa0801 ~]# mv /root/dir2 /root/dir4
[root@rhcsa0801 ~]# mv /root/file2 /root/dir2 /root/passwd /dir5
4.6 查找文件
bash
[root@rhcsa0801 ~]# ll /root/ -d
dr-xr-x---. 15 root root 4096 8月 4 14:50 /root/
文件类型 文件的权限 文件的所属者 文件的所属组 文件的大小 文件的mtime 文件的名字
find 路径 -type [f|d|l|b|c|p|s]
find 路径 -perm 777
find 路径 -user/-uid 用户名/用户的编号
find 路径 -group/-gid 组名/组编号
find 路径 -size -2k/2k/+2k
find 路径 -mtime/-atime/-ctime -3/3/+3
mtime:如果修改了文件内容则该时间更新
atime:如果访问过该文件则时间更新
ctime:如果文件的元数据(文件的名字,文件的大小)变化则时间更新
find 路径 -name 文件名
find 路径 -iname 文件名
[root@rhcsa0801 ~]# find / -iname file
4.7 文件的打包和压缩
bash
#压缩、解压:
.zip 压缩指令:zip,unzip
.gz 压缩指令:gzip,gunzip
.bz2 压缩指令:bzip2,bunzip2
.xz 压缩指令:xz,unxz
.lz 压缩指令:xz --format=lzma,xz --format=lzma --decompress
[root@rhcsa0801 yasuo]# tree /yasuo/
/yasuo/
├── dir1
│ └── hostname
├── passwd
└── sshd
#zip的压缩和解压缩
[root@rhcsa0801 yasuo]# zip /yasuo/passwd.zip /yasuo/passwd
[root@rhcsa0801 yasuo]# ll /yasuo/
总用量 12
drwxr-xr-x. 2 root root 22 8月 4 15:24 dir1
-rw-r--r--. 1 root root 2154 8月 4 15:24 passwd
-rw-r--r--. 1 root root 1050 8月 4 15:27 passwd.zip
[root@rhcsa0801 yasuo]# unzip /yasuo/passwd.zip
Archive: /yasuo/passwd.zip
inflating: yasuo/passwd
[root@rhcsa0801 yasuo]# ll /yasuo/
总用量 20
drwxr-xr-x. 2 root root 22 8月 4 15:24 dir1
-rw-r--r--. 1 root root 5 8月 4 15:28 file
-rw-r--r--. 1 root root 175 8月 4 15:28 file.zip
-rw-r--r--. 1 root root 2154 8月 4 15:24 passwd
-rw-r--r--. 1 root root 1050 8月 4 15:27 passwd.zip
-rw-------. 1 root root 3667 8月 4 15:24 sshd
drwxr-xr-x. 2 root root 20 8月 4 15:45 yasuo
#gzip,bzip2,xz的压缩和解压缩
[root@rhcsa0801 yasuo]# bzip2 /yasuo/file /yasuo/passwd
[root@rhcsa0801 yasuo]# ll /yasuo/
总用量 12
drwxr-xr-x. 2 root root 22 8月 4 15:24 dir1
-rw-r--r--. 1 root root 42 8月 4 15:28 file.bz2
-rw-r--r--. 1 root root 922 8月 4 15:24 passwd.bz2
-rw-------. 1 root root 3667 8月 4 15:24 sshd
drwxr-xr-x. 2 root root 20 8月 4 15:45 yasuo
[root@rhcsa0801 yasuo]# bzip2 -c /yasuo/sshd > /yasuo/sshd.bz2
[root@rhcsa0801 yasuo]# ll /yasuo/
总用量 16
drwxr-xr-x. 2 root root 22 8月 4 15:24 dir1
-rw-r--r--. 1 root root 42 8月 4 15:28 file.bz2
-rw-r--r--. 1 root root 922 8月 4 15:24 passwd.bz2
-rw-------. 1 root root 3667 8月 4 15:24 sshd
-rw-r--r--. 1 root root 1744 8月 4 15:53 sshd.bz2
drwxr-xr-x. 2 root root 20 8月 4 15:45 yasuo
[root@rhcsa0801 yasuo]# bunzip2 /yasuo/passwd.bz2
[root@rhcsa0801 yasuo]# ll /yasuo/
总用量 16
drwxr-xr-x. 2 root root 22 8月 4 15:24 dir1
-rw-r--r--. 1 root root 5 8月 4 15:28 file
-rw-r--r--. 1 root root 2154 8月 4 15:24 passwd
-rw-------. 1 root root 3667 8月 4 15:24 sshd
-rw-r--r--. 1 root root 1744 8月 4 15:53 sshd.bz2
[root@rhcsa0801 yasuo]# bunzip2 -c /yasuo/sshd.bz2 > /yasuo/sshd1
[root@rhcsa0801 yasuo]# ll /yasuo/
总用量 20
drwxr-xr-x. 2 root root 22 8月 4 15:24 dir1
-rw-r--r--. 1 root root 5 8月 4 15:28 file
-rw-r--r--. 1 root root 2154 8月 4 15:24 passwd
-rw-------. 1 root root 3667 8月 4 15:24 sshd
-rw-r--r--. 1 root root 3667 8月 4 15:55 sshd1
-rw-r--r--. 1 root root 1744 8月 4 15:53 sshd.bz2
bash
#tar打包压缩文件
[root@rhcsa0801 yasuo]# tar -czf dps.tar.gz /yasuo/dir1 /yasuo/passwd /yasuo/sshd
[root@rhcsa0801 yasuo]# tar -cjf dps.tar.bz2 /yasuo/dir1 /yasuo/passwd /yasuo/sshd
[root@rhcsa0801 yasuo]# tar -cJf dps.tar.xz /yasuo/dir1 /yasuo/passwd /yasuo/sshd
tar: 从成员名中删除开头的"/"
tar: 从硬连接目标中删除开头的"/"
[root@rhcsa0801 yasuo]# ll /yasuo/
总用量 16
drwxr-xr-x. 2 root root 22 8月 4 15:24 dir1
-rw-r--r--. 1 root root 2737 8月 4 16:00 dps.tar.bz2
-rw-r--r--. 1 root root 2707 8月 4 16:02 dps.tar.gz
-rw-r--r--. 1 root root 2154 8月 4 15:24 passwd
-rw-------. 1 root root 3667 8月 4 15:24 sshd
#将打包压缩文件解压解包
[root@rhcsa0801 yasuo]# tar -xf /yasuo/dps.tar.gz
[root@rhcsa0801 yasuo]# ll /yasuo/
总用量 16
drwxr-xr-x. 2 root root 22 8月 4 15:24 dir1
-rw-r--r--. 1 root root 2737 8月 4 16:00 dps.tar.bz2
-rw-r--r--. 1 root root 2707 8月 4 16:02 dps.tar.gz
-rw-r--r--. 1 root root 2154 8月 4 15:24 passwd
-rw-------. 1 root root 3667 8月 4 15:24 sshd
drwxr-xr-x. 3 root root 44 8月 4 16:03 yasuo
[root@rhcsa0801 yasuo]# tar -xf /yasuo/dps.tar.bz2
[root@rhcsa0801 yasuo]# tar -xf /yasuo/dps.tar.xz
[root@rhcsa0801 yasuo]# tar -xf /yasuo/dps.tar.gz -C /dir10
[root@rhcsa0801 yasuo]# tree /dir10
/dir10
└── yasuo
├── dir1
│ └── hostname
├── passwd
└── sshd
#查看打包压缩文件的文件结构
[root@rhcsa0801 yasuo]# tar -tf /yasuo/dps.tar.gz
yasuo/dir1/
yasuo/dir1/hostname
yasuo/passwd
yasuo/sshd
4.8 不同主机间的文件传输
bash
#windows和linux主机之间传输文件
xftp程序,mobaxterm的sftp
#linux和linux主机之间传输文件
#将本地的/root/file10文件上传到192.168.168.143的/root/file
[root@rhcsa0801 ~]# scp /root/file10 root@192.168.168.143:/root/file
#192.168.168.143上的/root/huifu文件下载到/root/shoudao
[root@rhcsa0801 ~]# scp root@192.168.168.143:/root/huifu /root/shouda
5、用户和用户组的管理
5.1 用户的管理 ⭐⭐⭐⭐⭐
bash
#添加用户
[root@rhcsa0801 yasuo]# useradd xiaohong
[root@rhcsa0801 yasuo]# id xiaohong
用户id=1001(xiaohong) 组id=1001(xiaohong) 组=1001(xiaohong)
[root@rhcsa0801 ~]# useradd sunwukong -G xiyouji
[root@rhcsa0801 ~]# id sunwukong
用户id=1002(sunwukong) 组id=1003(sunwukong) 组=1003(sunwukong),1002(xiyouji)
[root@rhcsa0801 ~]# useradd wujing -g sunwukong -G xiyouji
#sunwukong组叫wujing的基本组,xiyouji组叫wujing的附加组
[root@rhcsa0801 ~]# id wujing
用户id=1003(wujing) 组id=1003(sunwukong) 组=1003(sunwukong),1002(xiyouji)
[root@rhcsa0801 ~]# groupadd xiyoujihouzhuan
[root@rhcsa0801 ~]# useradd wuneng -g sunwukong -G xiyouji,xiyoujihouzhuan
[root@rhcsa0801 ~]# id wuneng
用户id=1004(wuneng) 组id=1003(sunwukong) 组=1003(sunwukong),1002(xiyouji),1004(xiyoujihouzhuan)
#查看useradd指令的帮助
[root@rhcsa0801 ~]# useradd --help
#查看usermod的帮助
[root@rhcsa0801 ~]# usermod --help
#修改wujing的名字为shawujing
[root@rhcsa0801 ~]# usermod -l shawujing wujing
#删除wuneng账号但不删除家目录
[root@rhcsa0801 ~]# userdel wuneng
#删除wujing并删除家目录
[root@rhcsa0801 ~]# userdel -r wujing
[root@rhel9-1 ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码:uid:gid:用户的描述信息:家目录:命令解释器【shell】
linux用户分类:
管理员:权限最高的用户,0
系统用户:无法登陆,用来运行程序的,1-999
普通用户:帮助管理员去管理系统,提升权限为root,1000-65535
bash
#修改密码:passwd
#账号的密码管理
[root@rhel9-1 ~]# ll /etc/shadow
----------. 1 root root 1138 Jul 4 16:15 /etc/shadow
[root@rhel9-1 ~]# useradd xiaohei
[root@rhel9-1 ~]# vim /etc/shadow
#普通用户和root账号改密码的区别:普通用户只能改自己的密码,修改密码时需要原密码,新密码必须长于8个字符且不能太简单
[root@rhel9-1 ~]# passwd xiaohei
Changing password for user xiaohei.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@rhel9-1 ~]# grep xiaohei /etc/shadow
xiaohei:$y$j9T$qy4HYncZ2GHyAieM7Ei9b0$nNyEoQjmHR7sPbLB1dol3DUohwmUcFE5TY1qMgMU5q4:19542:0:99999:7:::
用户名:密码:最后一次修改密码距离1970年1月1日的时间:密码的最短使用期限:密码的最长使用期限:密码的过期警告时间:密码过期的宽限时间:账号的失效时间:保留字段
#非交互式修改root的密码
[root@rhel9-1 ~]# echo 123 | passwd --stdin root
Changing password for user root.
passwd: all authentication tokens updated successfully.
#修改xiaohei的密码为789
[root@rhel9-1 ~]# echo 789 | passwd --stdin xiaohei
5.2 用户组的管理
bash
基本组/主组:用户必须拥有的组,有且仅有一个
附加组:除了基本组以外的组都叫附加组,可以有很多个附加组或没有附加组
#添加组
[root@rhcsa0801 ~]# groupadd xiyouji
#删除组,不能删除用户的主组
[root@rhcsa0801 ~]# groupdel xiyouji
[root@rhel9-1 ~]# groupadd group1
#组信息文件
[root@rhel9-1 ~]# grep group1 /etc/group
group1:x:1003:
组名:组密码:gid:组成员【以该组为附加组的成员】
#useradd的-G表示指定用户的附加组
[root@rhel9-1 ~]# useradd user2 -G group1
[root@rhel9-1 ~]# id user2
uid=1003(user2) gid=1004(user2) groups=1004(user2),1003(group1)
[root@rhel9-1 ~]# grep group1 /etc/group
group1:x:1003:user2
#组密码配置文件
[root@rhel9-1 ~]# ll /etc/gshadow
----------. 1 root root 750 Jul 5 10:36 /etc/gshadow
[root@rhel9-1 ~]# grep group1 /etc/gshadow
group1:!::user2,redhat
组名:组密码:组管理员:组成员【以该组为附加组的成员】
#修改组信息:groupmod
[root@rhel9-1 ~]# groupmod -n zu1 group1
[root@rhel9-1 ~]# grep zu1 /etc/group
zu1:x:1003:user2,redhat
#修改组密码:gpasswd
[root@localhost ~]# gpasswd xiyouji
正在修改 xiyouji 组的密码
新密码:
请重新输入新密码:
5.3 用户的登录情况
bash
[root@rhel9-1 ~]# w
10:48:35 up 1:24, 3 users, load average: 0.00, 0.00, 0.05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 09:24 0.00s 0.11s 0.00s w
redhat pts/1 10:46 3.00s 0.00s 0.00s vim ./fle
root pts/2 10:46 1:53 0.00s 0.00s -bash
[root@rhel9-1 ~]# who
root pts/0 2023-07-05 09:24 (192.168.168.1)
redhat pts/1 2023-07-05 10:46 (192.168.168.1)
root pts/2 2023-07-05 10:46 (192.168.168.1)
[root@rhel9-1 ~]# last
redhat pts/1 192.168.168.1 Wed Jul 5 10:54 - 10:55 (00:00)
[root@rhel9-1 ~]# lastlog
Username Port From Latest
root pts/2 192.168.168.1 Wed Jul 5 10:46:42 +0800 2023
5.4 用户的提权
bash
#用户提权:su -l 用户名【必须知道该用户名的密码】
#用户提权:sudo -u 用户名 command 【是当前账号的密码】
[xiaoming@rhel9-1 ~]$ sudo -u root ls -l /root
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for xiaoming:
xiaoming is not in the sudoers file. This incident will be reported.
#添加xiaoming的信息到/etc/sudoers文件中
[root@rhel9-1 ~]# grep xiaoming /etc/sudoers
xiaoming ALL=(ALL) ALL #允许xiaoming,在任何地方,使用任何人的身份,执行任何指令
[xiaoming@rhel9-1 ~]$ sudo -u root ls -l /root
[sudo] password for xiaoming:
total 1160
drwxr-xr-x. 2 root root 44 Jul 4 15:34 dir1
drwxr-xr-x. 3 root root 18 Jul 4 15:48 dir2
drwxr-xr-x. 3 root root 18 Jul 4 15:50 dir3
-rw-r--r--. 1 root root 48 Jul 4 15:59 file3
drwxr-xr-x. 4 root root 35 Jul 5 09:50 home
-rw-r--r--. 1 root root 3288 Jul 5 09:51 hp.tar.xz
drwxrwxr-x. 10 redhat redhat 4096 Aug 21 2021 keepalived-2.2.4
-rw-r--r--. 1 root root 1151290 Jul 4 15:53 keepalived-2.2.4.tar.gz
-rw-r--r--. 1 root root 2140 Jul 5 09:50 passwd
drwxr-xr-x. 3 root root 30 Jul 4 15:47 root
-rw-r--r--. 1 root root 1962 Jul 4 15:49 sd.tar.bz2
-rw-r--r--. 1 root root 1911 Jul 4 15:38 sd.tar.gz
-rw-------. 1 root root 3667 Jul 4 15:34 sshd
-rw-r--r--. 1 root root 366 Jul 4 16:51 star
#添加组xiyouji的信息到/etc/sudoers文件中
[root@rhel9-1 ~]# groupadd xiyouji
[root@rhel9-1 ~]# useradd wukong -g xiyouji
[root@rhel9-1 ~]# echo 123 | passwd --stdin wukong
[root@rhel9-1 ~]# grep xiyouji /etc/sudoers
%xiyouji ALL=(ALL) ALL
[wukong@rhel9-1 ~]$ sudo -u redhat ls -l /home/
5、用户对于文件的权限
-
修改文件的所属者和所属组
bash#修改/root/file3的所属者为xiaoming,所属组为xiyouji [root@rhel9-1 ~]# chown xiaoming:xiyouji /root/file3 [root@rhel9-1 ~]# ll /root/file3 -rw-r--r--. 1 xiaoming xiyouji 48 Jul 4 15:59 /root/file3 #-R表示递归修改/test目录下的所有文件的所属者为xiaoming,所属组为xiyouji [root@localhost ~]# chown -R xiaoming:xiyouji /test [root@localhost ~]# ll /test/ -d drwxr-xr-x. 3 xiaoming xiyouji 31 8月 7 15:13 /test/ [root@localhost ~]# ll /test/ 总用量 0 drwxr-xr-x. 3 xiaoming xiyouji 19 8月 7 15:13 dir1 -rw-r--r--. 1 xiaoming xiyouji 0 8月 7 15:13 file1 -
修改文件的某一类人【所属者、所属组、其他人】的权限
bash#所属者user,u;所属组group,g;其他人other,o;all-a表示所有人 chmod u/g/o/a + - = rwx 文件 r:4 w:2 x:1 chmod 750 文件 [root@rhel9-1 ~]# chmod u=rwx,g=rx,o=- /root/file3 [root@rhel9-1 ~]# ll /root/file3 -rwxr-x---. 1 wujing xiyouji 48 Jul 4 15:59 /root/file3 rwx------111------7 r-x------101------5 ---------000------0 [root@rhel9-1 ~]# chmod 755 /root/file3 [root@rhel9-1 ~]# ll /root/file3 -rwxr-xr-x. 1 wujing xiyouji 48 Jul 4 15:59 /root/file3
5.1 用户对于普通文件的权限 ⭐⭐⭐⭐⭐
| 权限 | r-- | -w- | --x |
|---|---|---|---|
| 普通用户可以执行的命令 | 读,cat | 写,vim,但是不能查看内容 | 执行,啥也干不了 |
bash
[root@rhel9-1 ~]# mkdir /test
[root@rhel9-1 ~]# cd /test
[root@rhel9-1 test]# echo hello > /test/hi
[root@rhel9-1 test]# ll
total 4
-rw-r--r--. 1 root root 6 Jul 5 14:26 hi
[root@rhel9-1 test]# cat /test/hi
hello
普通文件可能出现的正常的权限:---,r--,rw-,r-x,rwx
5.2 用户对于目录文件的权限 ⭐⭐⭐⭐⭐
| 权限 | r-- | -w- | --x |
|---|---|---|---|
| 普通用户可以执行的命令 | 读,只能看到文件的名字,看不见属性 | 啥也干不了 | 执行,cd |
bash
[root@rhel9-1 test]# chmod o=r /test
[root@rhel9-1 test]# ll -d /test
drwxr-xr--. 2 root root 16 Jul 5 14:34 /test
目录文件可能出现的权限:---,r-x,rwx
总结:
- 1、你是谁
- 2、你在哪,仅限于使用相对路径才需要考虑当前的工作目录在哪
- 3、你要干什么
重点:能否删除某个文件,取决于该文件所在目录的权限
5.3 访问控制列表ACL
bash
#给其他人中的个别用户或者组设置额外的权限
[root@rhel9-1 test]# ll -d /test
drwxr-x---. 2 root root 30 Jul 5 14:43 /test
#设置其他人中的wuneng对/test有rwx
[root@rhel9-1 test]# setfacl -m u:wuneng:rwx /test
[root@rhel9-1 test]# ll -d /test
drwxrwx---+ 2 root root 30 Jul 5 14:43 /test
#设置其他人中属于xiyouji组的用户对于/test文件的权限为rwx
[root@rhel9-1 test]# setfacl -m g:xiyouji:rwx /test
#查看/test的acl
[root@rhel9-1 test]# getfacl /test
getfacl: Removing leading '/' from absolute path names
# file: test
# owner: root
# group: root
user::rwx
user:wuneng:rwx
group::r-x
group:xiyouji:rwx
mask::rwx
other::---
#删除acl权限
#删除xiyouji组对于/test的权限
[root@rhel9-1 test]# setfacl -x g:xiyouji /test
#删除所有acl
[root@rhel9-1 test]# setfacl -b /test
5.4 特殊权限
-
suid:u+s,二进制文件,/bin和/sbin:用户执行指令的时候,先找到指令的可执行文件,执行文件后会变成一个进程,该进程的所属者会变为该程序文件的所属者
bash#用户执行命令过程图 user2------------命令-----u+s user1 程序文件------------进程 user1------------能否操作某个文件,取决于user1能否操作该文件 user2------------命令------程序文件------进程 user2------能否操作某个文件,取决于user2能否操作该文件 ######################################## [root@rhel9-1 test]# ll /usr/bin/passwd -rwsr-xr-x. 1 root root 32648 Aug 10 2021 /usr/bin/passwd 用户修改密码:密码信息存储在/etc/shadow(只有root才能修改该文件) redhat------passwd------[u+s]/usr/bin/passwd------passwd进程(root)------------/etc/shadow -
sgid:g+s:目录文件:任何人在该目录下创建的文件的所属组和目录的所属组保持一致
bash[root@rhel9-1 test]# ll /dir1/ -d drwxr-xrwx. 2 root root 6 Jul 5 15:51 /dir1/ [wuneng@rhel9-1 test]$ mkdir /dir1/wuneng [wuneng@rhel9-1 test]$ ll /dir1/ total 0 drwxr-xr-x. 2 wuneng wuneng 6 Jul 5 15:53 wuneng [root@rhel9-1 test]# chmod g+s /dir1/ [root@rhel9-1 test]# ll /dir1/ -d drwxr-srwx. 3 root root 20 Jul 5 15:53 /dir1/ [wuneng@rhel9-1 test]$ mkdir /dir1/wuneng1 [wuneng@rhel9-1 test]$ ll /dir1/ total 0 drwxr-xr-x. 2 wuneng wuneng 6 Jul 5 15:53 wuneng drwxr-sr-x. 2 wuneng root 6 Jul 5 15:53 wuneng1 -
sticky:o+t,目录文件,用户不能够删除别人创建的文件,只能删除自己创建的文件
bash[root@rhel9-1 test]# ll /dir1/ -d drwxr-srwx. 4 root xiyouji 35 Jul 5 15:53 /dir1/ [root@rhel9-1 test]# [root@rhel9-1 test]# ll /dir1/ total 0 drwxr-xr-x. 2 wuneng wuneng 6 Jul 5 15:53 wuneng drwxr-sr-x. 2 wuneng root 6 Jul 5 15:53 wuneng1 drwxr-sr-x. 2 wuneng xiyouji 6 Jul 5 15:54 wuneng2 [root@rhel9-1 test]# id xiaoming uid=1004(xiaoming) gid=1001(xiaoming) groups=1001(xiaoming) [root@rhel9-1 test]# su - xiaoming [xiaoming@rhel9-1 ~]$ cd /dir1/ [xiaoming@rhel9-1 dir1]$ ll total 0 drwxr-xr-x. 2 wuneng wuneng 6 Jul 5 15:53 wuneng drwxr-sr-x. 2 wuneng root 6 Jul 5 15:53 wuneng1 drwxr-sr-x. 2 wuneng xiyouji 6 Jul 5 15:54 wuneng2 [xiaoming@rhel9-1 dir1]$ rm -rf /dir1/* [xiaoming@rhel9-1 dir1]$ ll total 0 [root@rhel9-1 test]# chmod o+t /dir1/ [root@rhel9-1 test]# ll -d /dir1/ drwxr-srwt. 2 root xiyouji 6 Jul 5 15:57 /dir1/ [root@rhel9-1 test]# su - xiaoming [xiaoming@rhel9-1 ~]$ echo xiaoming > /dir1/xiaoming [xiaoming@rhel9-1 ~]$ ll /dir1/ total 4 -rw-r--r--. 1 xiaoming xiyouji 9 Jul 5 15:58 xiaoming [wuneng@rhel9-1 dir1]$ id wuneng uid=1007(wuneng) gid=1009(wuneng) groups=1009(wuneng) #注意此处由于root给该目录设置了o+t的特殊权限,wuneng就无法删除xiaoming的文件,只有xiaoming自己可以删除 [wuneng@rhel9-1 dir1]$ rm -f /dir1/xiaoming rm: cannot remove '/dir1/xiaoming': Operation not permitted [xiaoming@rhel9-1 ~]$ rm -f /dir1/xiaoming
5.5 umask(权限掩码)------可以控制用户创建文件的权限
bash
[root@rhel9-1 test]# umask
0022
普通文件的权限属性:666
目录文件的权限属性:777
6、磁盘管理
6.1 磁盘分区
1、查看磁盘
bash
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 8.4G 0 rom /run/media/root/RHEL-9-1-0-BaseOS-x86_64
nvme0n1 259:0 0 40G 0 disk
├─nvme0n1p1 259:1 0 500M 0 part /boot
├─nvme0n1p2 259:2 0 20G 0 part /
└─nvme0n1p3 259:3 0 2G 0 part [SWAP]
#给你的虚拟机添加15g的sata类型的硬盘,10g的scsi的硬盘,5G的nvme的硬盘
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 15G 0 disk
sdb 8:16 0 10G 0 disk
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 500M 0 part /boot
├─nvme0n1p2 259:2 0 15G 0 part /
└─nvme0n1p3 259:3 0 2G 0 part [SWAP]
nvme0n2 259:4 0 5G 0 disk
#说明:nvme类型的磁盘名为:nvme0n1(第一块磁盘),nvme0n2(第二块磁盘)......,该类型的分区名为nvme0n1p1(第一块磁盘的第一个分区),nvme0n1p2(第一块磁盘的第二个分区)......
#sata、scsi类型磁盘名为:sda,sdb,......,分区名为:sda1(第一块磁盘的第一个分区),sda2(第一块磁盘的第二块分区)......
#sr0是第一块光盘,sr1是第二块光盘
[root@localhost ~]# fdisk -l
2、分区
- MBR:主分区:个数0-4个,扩展分区:个数0-1个{逻辑分区},磁盘大小不能超过2.2T,
Disklabel type: dos - GPT:可以分大于2.2T的分区,分区个数1-128,
Disklabel type: gpt
bash
#/dev/nvme0n2为mbr格式(四个主分区),/dev/sda为mbr格式(三个主分区,一个扩展分区,1个逻辑分区),/dev/sdb为gpt格式(2个分区)
================/dev/nvme0n2为mbr格式(四个主分区)=====================================================
[root@localhost ~]# fdisk /dev/nvme0n2
欢迎使用 fdisk (util-linux 2.37.4)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x8a5a57d1 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):m
帮助:
DOS (MBR)
a 开关 可启动 标志
b 编辑嵌套的 BSD 磁盘标签
c 开关 dos 兼容性标志
常规
d 删除分区
F 列出未分区的空闲区
l 列出已知分区类型
n 添加新分区
p 打印分区表
t 更改分区类型
v 检查分区表
i 打印某个分区的相关信息
杂项
m 打印此菜单
u 更改 显示/记录 单位
x 更多功能(仅限专业人员)
脚本
I 从 sfdisk 脚本文件加载磁盘布局
O 将磁盘布局转储为 sfdisk 脚本文件
保存并退出
w 将分区表写入磁盘并退出
q 退出而不保存更改
新建空磁盘标签
g 新建一份 GPT 分区表
G 新建一份空 GPT (IRIX) 分区表
o 新建一份的空 DOS 分区表
s 新建一份空 Sun 分区表
命令(输入 m 获取帮助):n
分区类型
p 主分区 (0 primary, 0 extended, 4 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (1-4, 默认 1):
第一个扇区 (2048-10485759, 默认 2048):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-10485759, 默认 10485759): +1G
创建了一个新分区 1,类型为"Linux",大小为 1 GiB。
命令(输入 m 获取帮助):p
Disk /dev/nvme0n2:5 GiB,5368709120 字节,10485760 个扇区
磁盘型号:VMware Virtual NVMe Disk
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8a5a57d1
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/nvme0n2p1 2048 2099199 2097152 1G 83 Linux
命令(输入 m 获取帮助):n
分区类型
p 主分区 (1 primary, 0 extended, 3 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (2-4, 默认 2):
第一个扇区 (2099200-10485759, 默认 2099200):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2099200-10485759, 默认 10485759): +1G
创建了一个新分区 2,类型为"Linux",大小为 1 GiB。
命令(输入 m 获取帮助):p
Disk /dev/nvme0n2:5 GiB,5368709120 字节,10485760 个扇区
磁盘型号:VMware Virtual NVMe Disk
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8a5a57d1
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/nvme0n2p1 2048 2099199 2097152 1G 83 Linux
/dev/nvme0n2p2 2099200 4196351 2097152 1G 83 Linux
命令(输入 m 获取帮助):n
分区类型
p 主分区 (2 primary, 0 extended, 2 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (3,4, 默认 3):
第一个扇区 (4196352-10485759, 默认 4196352):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (4196352-10485759, 默认 10485759): +1G
创建了一个新分区 3,类型为"Linux",大小为 1 GiB。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (3 primary, 0 extended, 1 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 e):p
已选择分区 4
第一个扇区 (6293504-10485759, 默认 6293504):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (6293504-10485759, 默认 10485759): +1G
创建了一个新分区 4,类型为"Linux",大小为 1 GiB。
命令(输入 m 获取帮助):p
Disk /dev/nvme0n2:5 GiB,5368709120 字节,10485760 个扇区
磁盘型号:VMware Virtual NVMe Disk
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8a5a57d1
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/nvme0n2p1 2048 2099199 2097152 1G 83 Linux
/dev/nvme0n2p2 2099200 4196351 2097152 1G 83 Linux
/dev/nvme0n2p3 4196352 6293503 2097152 1G 83 Linux
/dev/nvme0n2p4 6293504 8390655 2097152 1G 83 Linux
#由于设置的为mbr格式的分区,所以只能分四个主分区
命令(输入 m 获取帮助):n
要创建更多分区,请先将一个主分区替换为扩展分区。
命令(输入 m 获取帮助):w
=================================================================================================
===============/dev/sda为mbr格式(三个主分区,一个扩展分区,1个逻辑分区)===========================
[root@localhost ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.37.4)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x79976a6a 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (0 primary, 0 extended, 4 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (1-4, 默认 1):
第一个扇区 (2048-31457279, 默认 2048):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-31457279, 默认 31457279): +2G
创建了一个新分区 1,类型为"Linux",大小为 2 GiB。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (1 primary, 0 extended, 3 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (2-4, 默认 2):
第一个扇区 (4196352-31457279, 默认 4196352):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (4196352-31457279, 默认 31457279): +2G
创建了一个新分区 2,类型为"Linux",大小为 2 GiB。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (2 primary, 0 extended, 2 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (3,4, 默认 3):
第一个扇区 (8390656-31457279, 默认 8390656):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (8390656-31457279, 默认 31457279): +2G
创建了一个新分区 3,类型为"Linux",大小为 2 GiB。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (3 primary, 0 extended, 1 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 e):
将使用默认回应 e。
已选择分区 4
第一个扇区 (12584960-31457279, 默认 12584960):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (12584960-31457279, 默认 31457279):
创建了一个新分区 4,类型为"Extended",大小为 9 GiB。
命令(输入 m 获取帮助):p
Disk /dev/sda:15 GiB,16106127360 字节,31457280 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x79976a6a
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 2048 4196351 4194304 2G 83 Linux
/dev/sda2 4196352 8390655 4194304 2G 83 Linux
/dev/sda3 8390656 12584959 4194304 2G 83 Linux
/dev/sda4 12584960 31457279 18872320 9G 5 扩展
命令(输入 m 获取帮助):n
所有主分区都在使用中。
添加逻辑分区 5
第一个扇区 (12587008-31457279, 默认 12587008):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (12587008-31457279, 默认 31457279): +3G
创建了一个新分区 5,类型为"Linux",大小为 3 GiB。
命令(输入 m 获取帮助):p
Disk /dev/sda:15 GiB,16106127360 字节,31457280 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x79976a6a
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 2048 4196351 4194304 2G 83 Linux
/dev/sda2 4196352 8390655 4194304 2G 83 Linux
/dev/sda3 8390656 12584959 4194304 2G 83 Linux
/dev/sda4 12584960 31457279 18872320 9G 5 扩展
/dev/sda5 12587008 18878463 6291456 3G 83 Linux
命令(输入 m 获取帮助):w
分区表已调整。
============================================================================================
=================/dev/sdb为gpt格式(2个分区)=========================================
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.37.4)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x37d06545 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):m
帮助:
DOS (MBR)
a 开关 可启动 标志
b 编辑嵌套的 BSD 磁盘标签
c 开关 dos 兼容性标志
常规
d 删除分区
F 列出未分区的空闲区
l 列出已知分区类型
n 添加新分区
p 打印分区表
t 更改分区类型
v 检查分区表
i 打印某个分区的相关信息
杂项
m 打印此菜单
u 更改 显示/记录 单位
x 更多功能(仅限专业人员)
脚本
I 从 sfdisk 脚本文件加载磁盘布局
O 将磁盘布局转储为 sfdisk 脚本文件
保存并退出
w 将分区表写入磁盘并退出
q 退出而不保存更改
新建空磁盘标签
g 新建一份 GPT 分区表
G 新建一份空 GPT (IRIX) 分区表
o 新建一份的空 DOS 分区表
s 新建一份空 Sun 分区表
命令(输入 m 获取帮助):g
已创建新的 GPT 磁盘标签(GUID: 9DB23489-3822-E84B-A8D1-D8360B49216C)。
命令(输入 m 获取帮助):n
分区号 (1-128, 默认 1):
第一个扇区 (2048-20971486, 默认 2048):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-20971486, 默认 20971486): +4G
创建了一个新分区 1,类型为"Linux filesystem",大小为 4 GiB。
命令(输入 m 获取帮助):n
分区号 (2-128, 默认 2):
第一个扇区 (8390656-20971486, 默认 8390656):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (8390656-20971486, 默认 20971486): +4G
创建了一个新分区 2,类型为"Linux filesystem",大小为 4 GiB。
命令(输入 m 获取帮助):p
Disk /dev/sdb:10 GiB,10737418240 字节,20971520 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:9DB23489-3822-E84B-A8D1-D8360B49216C
设备 起点 末尾 扇区 大小 类型
/dev/sdb1 2048 8390655 8388608 4G Linux 文件系统
/dev/sdb2 8390656 16779263 8388608 4G Linux 文件系统
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
=======================================================================================
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 15G 0 disk
├─sda1 8:1 0 2G 0 part
├─sda2 8:2 0 2G 0 part
├─sda3 8:3 0 2G 0 part
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 3G 0 part
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 4G 0 part
└─sdb2 8:18 0 4G 0 part
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 500M 0 part /boot
├─nvme0n1p2 259:2 0 15G 0 part /
└─nvme0n1p3 259:3 0 2G 0 part [SWAP]
nvme0n2 259:4 0 5G 0 disk
├─nvme0n2p1 259:9 0 1G 0 part
├─nvme0n2p2 259:10 0 1G 0 part
├─nvme0n2p3 259:11 0 1G 0 part
└─nvme0n2p4 259:12 0 1G 0 part
6.2 格式化
bash
#格式化:给对应的分区添加文件系统,文件系统:操作系统用于明确磁盘或者分区上的数据的方法和数据结构,操作系统通过文件系统去读取磁盘上的数据
#windows上面的文件系统类型:FAT(不能存储大于4G的文件),NTFS
#linux上面的文件系统类型:ext系列(ext3,ext4),xfs
#将/dev/sda1格式化为ext3的类型
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 15G 0 disk
├─sda1 8:1 0 2G 0 part
├─sda2 8:2 0 2G 0 part
├─sda3 8:3 0 2G 0 part
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 3G 0 part
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 4G 0 part
└─sdb2 8:18 0 4G 0 part
sr0 11:0 1 8.4G 0 rom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 500M 0 part /boot
├─nvme0n1p2 259:2 0 15G 0 part /
└─nvme0n1p3 259:3 0 2G 0 part [SWAP]
nvme0n2 259:4 0 5G 0 disk
├─nvme0n2p1 259:9 0 1G 0 part
├─nvme0n2p2 259:10 0 1G 0 part
├─nvme0n2p3 259:11 0 1G 0 part
└─nvme0n2p4 259:12 0 1G 0 part
[root@localhost ~]# mkfs.
mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat
[root@localhost ~]# mkfs.ext3 /dev/sda1
mke2fs 1.46.5 (30-Dec-2021)
创建含有 524288 个块(每块 4k)和 131072 个inode的文件系统
文件系统UUID:c24c9530-ed02-48aa-ae0d-ce718294454a
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912
正在分配组表: 完成
正在写入inode表: 完成
创建日志(16384 个块)完成
写入超级块和文件系统账户统计信息: 已完成
[root@localhost ~]# mkfs.ext4 /dev/sda2
mke2fs 1.46.5 (30-Dec-2021)
创建含有 524288 个块(每块 4k)和 131072 个inode的文件系统
文件系统UUID:1851a334-ae1d-462b-86d2-a93d7ba347dc
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912
正在分配组表: 完成
正在写入inode表: 完成
创建日志(16384 个块)完成
写入超级块和文件系统账户统计信息: 已完成
[root@localhost ~]# mkfs.xfs /dev/sda3
meta-data=/dev/sda3 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mkfs.xfs /dev/sda5
meta-data=/dev/sda5 isize=512 agcount=4, agsize=196608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1
data = bsize=4096 blocks=786432, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#查看分区的id号
[root@localhost ~]# blkid
/dev/nvme0n1p3: UUID="1aa81e1d-41b6-48e3-bf35-d796bd6a70aa" TYPE="swap" PARTUUID="e354d59d-03"
/dev/nvme0n1p1: UUID="f9df2358-250c-46cb-a39f-37df4abaf7fc" TYPE="xfs" PARTUUID="e354d59d-01"
/dev/nvme0n1p2: UUID="b9e18dfa-7e74-4e97-b272-09bbf1e38f18" TYPE="xfs" PARTUUID="e354d59d-02"
/dev/sdb2: PARTUUID="aef3fcf2-7e2c-b849-bf37-defde2b06812"
/dev/sdb1: PARTUUID="0b5279af-c3a4-6e46-a76d-35b21642f92b"
/dev/sr0: UUID="2022-10-27-08-34-36-00" LABEL="RHEL-9-1-0-BaseOS-x86_64" TYPE="iso9660" PTUUID="3854687c" PTTYPE="dos"
/dev/nvme0n2p3: PARTUUID="8a5a57d1-03"
/dev/nvme0n2p1: PARTUUID="8a5a57d1-01"
/dev/nvme0n2p4: PARTUUID="8a5a57d1-04"
/dev/nvme0n2p2: PARTUUID="8a5a57d1-02"
/dev/sda2: UUID="1851a334-ae1d-462b-86d2-a93d7ba347dc" TYPE="ext4" PARTUUID="79976a6a-02"
/dev/sda5: UUID="c50ad0ee-b1f0-44dc-a09f-d01f5f85e211" TYPE="xfs" PARTUUID="79976a6a-05"
/dev/sda3: UUID="34290c01-a532-4646-8a24-79313f00feb8" TYPE="xfs" PARTUUID="79976a6a-03"
/dev/sda1: UUID="c24c9530-ed02-48aa-ae0d-ce718294454a" SEC_TYPE="ext2" TYPE="ext3" PARTUUID="79976a6a-01"
6.3 挂载⭐⭐⭐⭐⭐
bash
#挂载:将磁盘分区挂载到挂载点目录,将磁盘分区和根目录中的某个目录文件做一个关联,访问该目录就是访问磁盘分区数据
#临时挂载:重启系统后会失效:mount /dev/分区名 挂载点目录
[root@localhost ~]# mkdir -pv /guazai{1..4}
#将/dev/sda1挂载到/guazai1目录
[root@localhost ~]# mount /dev/sda1 /guazai1/
#将/dev/sda2挂载到/guazai2目录
[root@localhost ~]# mount /dev/sda2 /guazai2/
#将/dev/sda3载到/guazai3目录
[root@localhost ~]# mount /dev/sda3 /guazai3/
#将/dev/sda5挂载到/guazai4
[root@localhost ~]# mount /dev/sda5 /guazai4/
#查看具体的挂载信息
[root@localhost ~]# mount | grep guazai
/dev/sda2 on /guazai2 type ext4 (rw,relatime,seclabel)
/dev/sda1 on /guazai1 type ext3 (rw,relatime,seclabel)
/dev/sda3 on /guazai3 type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/sda5 on /guazai4 type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 872M 0 872M 0% /dev/shm
tmpfs 349M 9.8M 339M 3% /run
/dev/nvme0n1p2 15G 4.0G 12G 27% /
/dev/nvme0n1p1 495M 268M 227M 55% /boot
tmpfs 175M 92K 175M 1% /run/user/0
/dev/sda2 2.0G 24K 1.8G 1% /guazai2
/dev/sda1 2.0G 92K 1.9G 1% /guazai1
/dev/sda3 2.0G 47M 2.0G 3% /guazai3
/dev/sda5 3.0G 54M 3.0G 2% /guazai4
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 872M 0 872M 0% /dev/shm
tmpfs tmpfs 349M 9.8M 339M 3% /run
/dev/nvme0n1p2 xfs 15G 4.0G 12G 27% /
/dev/nvme0n1p1 xfs 495M 268M 227M 55% /boot
tmpfs tmpfs 175M 92K 175M 1% /run/user/0
/dev/sda2 ext4 2.0G 24K 1.8G 1% /guazai2
/dev/sda1 ext3 2.0G 92K 1.9G 1% /guazai1
/dev/sda3 xfs 2.0G 47M 2.0G 3% /guazai3
/dev/sda5 xfs 3.0G 54M 3.0G 2% /guazai4
#将/etc/ssh/sshd_config 复制到/guazai1目录(复制文件到/dev/sda1分区)
[root@localhost ~]# cp /etc/ssh/sshd_config /guazai1
[root@localhost ~]# ll /guazai1/
总用量 20
drwx------. 2 root root 16384 8月 8 14:08 lost+found
-rw-------. 1 root root 3667 8月 8 14:25 sshd_config
[root@localhost ~]# mkdir /guazai5
[root@localhost ~]# mkdir /guazai5
[root@localhost ~]# mount /dev/sda1 /guazai5/
[root@localhost ~]# ll /guazai5/
总用量 20
drwx------. 2 root root 16384 8月 8 14:08 lost+found
-rw-------. 1 root root 3667 8月 8 14:25 sshd_config
[root@localhost ~]# ll /guazai1/
总用量 20
drwx------. 2 root root 16384 8月 8 14:08 lost+found
-rw-------. 1 root root 3667 8月 8 14:25 sshd_config
#如果将一个分区挂载到两个不同的目录,查看挂载信息如下
[root@localhost ~]# mount | grep /dev/sda1
/dev/sda1 on /guazai1 type ext3 (rw,relatime,seclabel)
/dev/sda1 on /guazai5 type ext3 (rw,relatime,seclabel)
#卸载:
# 方式1:umount 分区名
# 方式2:umount 挂载点目录
[root@localhost ~]# mount | grep /dev/sda1
/dev/sda1 on /guazai1 type ext3 (rw,relatime,seclabel)
/dev/sda1 on /guazai5 type ext3 (rw,relatime,seclabel)
[root@localhost ~]# umount /dev/sda1
[root@localhost ~]# mount | grep /dev/sda1
/dev/sda1 on /guazai1 type ext3 (rw,relatime,seclabel)
[root@localhost ~]# umount /guazai1
[root@localhost ~]# mount | grep /dev/sda1
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 872M 0 872M 0% /dev/shm
tmpfs tmpfs 349M 9.8M 339M 3% /run
/dev/nvme0n1p2 xfs 15G 4.0G 12G 27% /
/dev/nvme0n1p1 xfs 495M 268M 227M 55% /boot
tmpfs tmpfs 175M 92K 175M 1% /run/user/0
/dev/sda2 ext4 2.0G 24K 1.8G 1% /guazai2
/dev/sda3 xfs 2.0G 47M 2.0G 3% /guazai3
/dev/sda5 xfs 3.0G 54M 3.0G 2% /guazai4
/dev/sr0 iso9660 8.5G 8.5G 0 100% /mnt
#开机自动挂载
#查看分区的uuid
[root@localhost ~]# blkid
/dev/nvme0n1p3: UUID="1aa81e1d-41b6-48e3-bf35-d796bd6a70aa" TYPE="swap" PARTUUID="e354d59d-03"
/dev/nvme0n1p1: UUID="f9df2358-250c-46cb-a39f-37df4abaf7fc" TYPE="xfs" PARTUUID="e354d59d-01"
/dev/nvme0n1p2: UUID="b9e18dfa-7e74-4e97-b272-09bbf1e38f18" TYPE="xfs" PARTUUID="e354d59d-02"
/dev/sr0: UUID="2022-10-27-08-34-36-00" LABEL="RHEL-9-1-0-BaseOS-x86_64" TYPE="iso9660" PTUUID="3854687c" PTTYPE="dos"
/dev/sda2: UUID="1851a334-ae1d-462b-86d2-a93d7ba347dc" TYPE="ext4" PARTUUID="79976a6a-02"
/dev/sda5: UUID="c50ad0ee-b1f0-44dc-a09f-d01f5f85e211" TYPE="xfs" PARTUUID="79976a6a-05"
/dev/sda3: UUID="34290c01-a532-4646-8a24-79313f00feb8" TYPE="xfs" PARTUUID="79976a6a-03"
/dev/sda1: UUID="c24c9530-ed02-48aa-ae0d-ce718294454a" TYPE="ext3" PARTUUID="79976a6a-01"
/dev/sdb2: PARTUUID="aef3fcf2-7e2c-b849-bf37-defde2b06812"
/dev/sdb1: PARTUUID="0b5279af-c3a4-6e46-a76d-35b21642f92b"
/dev/nvme0n2p3: PARTUUID="8a5a57d1-03"
/dev/nvme0n2p1: PARTUUID="8a5a57d1-01"
/dev/nvme0n2p4: PARTUUID="8a5a57d1-04"
/dev/nvme0n2p2: PARTUUID="8a5a57d1-02"
#编辑开机自动挂载信息文件,写你自己的uuid,不要复制我的内容
[root@localhost ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Aug 1 02:47:14 2023
#
# 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.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=b9e18dfa-7e74-4e97-b272-09bbf1e38f18 / xfs defaults 0 0
UUID=f9df2358-250c-46cb-a39f-37df4abaf7fc /boot xfs defaults 0 0
UUID=1aa81e1d-41b6-48e3-bf35-d796bd6a70aa none swap defaults 0 0
UUID=c24c9530-ed02-48aa-ae0d-ce718294454a /guazai1 ext3 defaults 0 0
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 872M 0 872M 0% /dev/shm
tmpfs 349M 5.7M 344M 2% /run
/dev/nvme0n1p2 15G 4.0G 12G 27% /
/dev/nvme0n1p1 495M 268M 227M 55% /boot
tmpfs 175M 52K 175M 1% /run/user/42
tmpfs 175M 36K 175M 1% /run/user/0
[root@localhost ~]# mount -a
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 872M 0 872M 0% /dev/shm
tmpfs 349M 5.7M 344M 2% /run
/dev/nvme0n1p2 15G 4.0G 12G 27% /
/dev/nvme0n1p1 495M 268M 227M 55% /boot
tmpfs 175M 52K 175M 1% /run/user/42
tmpfs 175M 36K 175M 1% /run/user/0
/dev/sda1 2.0G 96K 1.9G 1% /guazai1
[root@localhost ~]# ll /guazai1
总用量 20
drwx------. 2 root root 16384 8月 8 14:08 lost+found
-rw-------. 1 root root 3667 8月 8 14:25 sshd_config
7、网络管理 ⭐⭐⭐⭐⭐
7.1 查看网卡信息
在虚拟机的设置里面查看或者查看虚拟机的右下角有几张网卡,看网卡的模式
看vmware workstation pro程序的菜单栏的编辑------>虚拟网络编辑器------>更改设置------到此根据实际情况调整三个模式的信息
- 桥接模式:和你的物理机的网卡(有线网卡、无线网卡)在一个网段,能否上网取决于物理机,如果桥接不上,虚拟机的该网卡则没有地址;不推荐
- nat模式:具体所属网段查看虚拟网络编辑器的具体设置,可以自己改,能否上网取决于物理机;该种方式始终有地址,推荐
- 仅主机模式:具体所属网段查看虚拟网络编辑器的具体设置,可以自己改,不能上网,不推荐
注:根据不同的模式确定该网卡的网段,ip地址,掩码,【如果需要上网:网关、dns】
7.2 nmcli
1、网卡的物理接口名称
bash
[root@localhost ~]# ip a
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:70 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.147/24 brd 192.168.168.255 scope global dynamic noprefixroute ens160
valid_lft 1212sec preferred_lft 1212sec
inet6 fe80::20c:29ff:fe54:d870/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:7a brd ff:ff:ff:ff:ff:ff
altname enp19s0
4: ens256: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:84 brd ff:ff:ff:ff:ff:ff
altname enp27s0
[root@localhost ~]# ip a show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:70 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.147/24 brd 192.168.168.255 scope global dynamic noprefixroute ens160
valid_lft 1160sec preferred_lft 1160sec
inet6 fe80::20c:29ff:fe54:d870/64 scope link noprefixroute
valid_lft forever preferred_lft forever
#查看网卡的信息
[root@localhost ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens160 ethernet 已连接 ens160
ens224 ethernet 已断开 --
ens256 ethernet 已断开 --
lo loopback 未托管 --
#连接网卡设备
[root@localhost ~]# nmcli device connect ens224
成功用 "ens224844071a5-3543-4545-a5ea-42ed2e4e726d" 激活了设备 ""。
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:70 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.147/24 brd 192.168.168.255 scope global dynamic noprefixroute ens160
valid_lft 1656sec preferred_lft 1656sec
inet6 fe80::20c:29ff:fe54:d870/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:7a brd ff:ff:ff:ff:ff:ff
altname enp19s0
inet 172.24.24.136/24 brd 172.24.24.255 scope global dynamic noprefixroute ens224
valid_lft 1656sec preferred_lft 1656sec
inet6 fe80::f3d2:cad5:466:bef3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens160 ethernet connected ens160
ens224 ethernet connected ens224
ens256 ethernet connected ens256
#断开网卡设置
[root@localhost ~]# nmcli device disconnect ens224
成功断开设备 "ens224"。
[root@localhost ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens160 ethernet 已连接 ens160
ens224 ethernet 已断开 --
ens256 ethernet 已断开 --
lo loopback 未托管 --
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:70 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.147/24 brd 192.168.168.255 scope global dynamic noprefixroute ens160
valid_lft 1563sec preferred_lft 1563sec
inet6 fe80::20c:29ff:fe54:d870/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:7a brd ff:ff:ff:ff:ff:ff
altname enp19s0
4: ens256: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:84 brd ff:ff:ff:ff:ff:ff
altname enp27s0
2、网卡的配置信息
bash
#查看网卡配置信息
[root@localhost ~]# nmcli c
NAME UUID TYPE DEVICE
ens160 ea20f084-97f7-3690-95b6-c80e9081f6c0 ethernet ens160
ens224 844071a5-3543-4545-a5ea-42ed2e4e726d ethernet --
ens256 831c62f1-7c63-4d18-8f5f-b21b2bd29fae ethernet --
[root@localhost ~]# nmcli connection
NAME UUID TYPE DEVICE
ens160 ea20f084-97f7-3690-95b6-c80e9081f6c0 ethernet ens160
ens224 844071a5-3543-4545-a5ea-42ed2e4e726d ethernet --
ens256 831c62f1-7c63-4d18-8f5f-b21b2bd29fae ethernet --
#查看当前自动获取的网关地址
[root@localhost ~]# nmcli connection show ens160 | grep -i gateway
connection.gateway-ping-timeout: 0
ipv4.gateway: --
ipv6.gateway: --
IP4.GATEWAY: 192.168.168.2
IP6.GATEWAY: --
#修改ens160配置的ip参数,ipv4.method表示当前使用手动配置的地址不再使用自动获取地址,autoconnect表示开机自动加载该配置
[root@localhost ~]# nmcli connection modify ens160 ipv4.method manual autoconnect yes ipv4.addresses 192.168.168.146/24 ipv4.gateway 192.168.168.2 ipv4.dns 114.114.114.114 +ipv4.addresses 192.168.168.147/24
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:70 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.147/24 brd 192.168.168.255 scope global dynamic noprefixroute ens160
valid_lft 1222sec preferred_lft 1222sec
inet6 fe80::20c:29ff:fe54:d870/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:7a brd ff:ff:ff:ff:ff:ff
altname enp19s0
4: ens256: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:84 brd ff:ff:ff:ff:ff:ff
altname enp27s0
inet6 fe80::c702:8e31:f6bd:ca3a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
#修改完配置后一定要加载一下
[root@localhost ~]# nmcli connection up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/10)
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:70 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.146/24 brd 192.168.168.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 192.168.168.147/24 brd 192.168.168.255 scope global secondary noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe54:d870/64 scope link tentative noprefixroute
valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:7a brd ff:ff:ff:ff:ff:ff
altname enp19s0
4: ens256: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:84 brd ff:ff:ff:ff:ff:ff
altname enp27s0
inet6 fe80::c702:8e31:f6bd:ca3a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost ~]# ping -c2 www.baidu.com
PING www.a.shifen.com (14.119.104.189) 56(84) 比特的数据。
64 比特,来自 14.119.104.189 (14.119.104.189): icmp_seq=1 ttl=128 时间=38.0 毫秒
64 比特,来自 14.119.104.189 (14.119.104.189): icmp_seq=2 ttl=128 时间=33.9 毫秒
--- www.a.shifen.com ping 统计 ---
已发送 2 个包, 已接收 2 个包, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 33.889/35.920/37.952/2.031 ms
#给网卡ens160新添加一个配置为peizhi
[root@localhost ~]# nmcli connection add con-name peizhi ifname ens160 type ethernet ipv4.method manual autoconnect no ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8
#删除配置
[root@localhost ~]# nmcli connection delete peizhi
7.3 nmtui
进入文本图形界面使用上下左右回车,空格键调整配置,修改完地址后一定要使用nmcli con up ens160重载该配置
bash
[root@localhost ~]# nmcli connection up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/18)
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:70 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.147/24 brd 192.168.168.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 192.168.168.145/24 brd 192.168.168.255 scope global secondary noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe54:d870/64 scope link tentative noprefixroute
valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:7a brd ff:ff:ff:ff:ff:ff
altname enp19s0
4: ens256: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:54:d8:84 brd ff:ff:ff:ff:ff:ff
altname enp27s0
bash
#拓展:使用web界面配置网卡参数
[root@localhost ~]# systemctl enable --now cockpit.socket
在windows浏览器上输入:你的主机的ip地址:9090
7.4 下载网站上的文件
bash
#先看能否上网
[root@localhost ~]# ping -c 2 www.baidu.com
PING www.a.shifen.com (14.119.104.189) 56(84) bytes of data.
64 bytes from 14.119.104.189 (14.119.104.189): icmp_seq=1 ttl=54 time=32.1 ms
64 bytes from 14.119.104.189 (14.119.104.189): icmp_seq=2 ttl=54 time=32.6 ms
#使用curl下载
[root@localhost ~]# curl https://dldir1.qq.com/qqfile/qq/QQNT/ad5b5393/linuxqq_3.1.2-13107_x86_64.rpm -o ./linuxqq_3.1.2-13107_x86_64.rpm
#使用wget指令下载
[root@localhost qq]# wget https://dldir1.qq.com/qqfile/qq/QQNT/ad5b5393/linuxqq_3.1.2-13107_x86_64.rpm
#使用wget指令将文件下载至/home目录名为qq
[root@localhost /]# wget https://dldir1.qq.com/qqfile/qq/QQNT/ad5b5393/linuxqq_3.1.2-13107_x86_64.rpm -O /home/qq
8、软件包管理 ⭐⭐⭐⭐⭐
8.1 rpm管理软件包
1、获得rpm的软件包
-
去官网查找,不推荐
bash#安装qq [root@localhost ~]# curl https://dldir1.qq.com/qqfile/qq/QQNT/ad5b5393/linuxqq_3.1.2-13107_x86_64.rpm -o ./linuxqq_3.1.2-13107_x86_64.rpm [root@localhost ~]# rpm -ivh /root/linuxqq_3.1.2-13107_x86_64.rpm error: Failed dependencies: libXScrnSaver is needed by linuxqq-3.1.2_13107-1.x86_64 #挂载光盘 [root@localhost ~]# mount /dev/sr0 /mnt mount: /mnt: WARNING: source write-protected, mounted read-only. [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 872M 0 872M 0% /dev/shm tmpfs 349M 9.8M 339M 3% /run /dev/nvme0n1p2 20G 4.3G 16G 22% / /dev/sdb1 4.0G 61M 4.0G 2% /guazai3 /dev/nvme0n1p1 495M 268M 227M 55% /boot /dev/sda5 974M 24K 907M 1% /guazai2 /dev/sda1 2.0G 96K 1.9G 1% /guazai1 tmpfs 175M 96K 175M 1% /run/user/0 /dev/sr0 8.5G 8.5G 0 100% /mnt #查找qq所需要的libXScrnSaver包 [root@localhost ~]# find /mnt -name "libXScrnSaver*" /mnt/AppStream/Packages/libXScrnSaver-1.2.3-10.el9.i686.rpm /mnt/AppStream/Packages/libXScrnSaver-1.2.3-10.el9.x86_64.rpm /mnt/AppStream/Packages/libXScrnSaver-devel-1.2.3-10.el9.i686.rpm /mnt/AppStream/Packages/libXScrnSaver-devel-1.2.3-10.el9.x86_64.rpm [root@localhost ~]# rpm -ivh /mnt/AppStream/Packages/libXScrnSaver-1.2.3-10.el9.x86_64.rpm [root@localhost ~]# rpm -ivh /root/linuxqq_3.1.2-13107_x86_64.rpm Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:linuxqq-3.1.2_13107-1 ################################# [100%] #查看qq有没有安装,rpm -qa是查询所有已经安装了的软件包 [root@localhost ~]# rpm -qa | grep qq linuxqq-3.1.2_13107-1.x86_64 #卸载qq [root@localhost ~]# rpm -evh linuxqq Preparing... ################################# [100%] Cleaning up / removing... 1:linuxqq-3.1.2_13107-1 ################################# [100%] [root@localhost ~]# #查询安装qq后生成了哪些文件 [root@localhost ~]# rpm -ql linuxqq #查询某个文件是由哪个程序产生的 [root@localhost ~]# rpm -qf /usr/share/applications/qq.desktop linuxqq-3.1.2_13107-1.x86_64 -
去镜像站点,推荐
bash
#安装产生小火车的程序
[root@localhost ~]# wget https://rpmfind.net/linux/epel/9/Everything/x86_64/Packages/s/sl-5.02-1.el9.x86_64.rpm
[root@localhost ~]# rpm -ivh sl-5.02-1.el9.x86_64.rpm
[root@localhost ~]# sl
#安装产生满屏幕字母的程序
[root@localhost ~]# wget https://rpmfind.net/linux/fedora/linux/releases/38/Everything/x86_64/os/Packages/c/cmatrix-2.0-5.fc38.x86_64.rpm
[root@localhost ~]# rpm -ivh cmatrix-2.0-5.fc38.x86_64.rpm
[root@localhost ~]# cmatrix
[root@localhost ~]# cmatrix -C red
[root@localhost ~]# cmatrix -C blue
[root@localhost ~]# cmatrix -C black
8.2 yum/dnf管理软件包
解决软件的依赖关系,可以自动的去服务器下载程序包
1、使用yum安装软件包
bash
[root@localhost ~]# yum install httpd
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Error: There are no enabled repositories in "/etc/yum.repos.d", "/etc/yum/repos.d", "/etc/distro.repos.d".
[root@localhost ~]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.
#查看当前系统的版本信息,找到对应版本的本地仓库和网络仓库:rhel9-【rhel9,centos-stream】;rhel8-【rhel8,centos8】;rhel7-【rhel7,centos7】
[root@localhost ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.1 (Plow)
#在/etc/yum.repos.d目录下新建文件:文件扩展名叫repo,内容如下
#使用本地仓库,如果不能上网,则只能使用该方式:一定要注意挂载光盘
#可以设置系统开机时执行mount /dev/sr0 /mnt(永久挂载光盘)
[root@localhost ~]# echo "mount /dev/sr0 /mnt" >> /etc/rc.d/rc.local
[root@localhost ~]# chmod a+rx /etc/rc.d/rc.local
#此文件内容需要自己写,不要把中文写进去了
[root@localhost yum.repos.d]# cat suibian.repo
[app] #仓库标识
name=app #仓库名称
baseurl=file:///mnt/AppStream #仓库的位置
gpgcheck=0 #是否校验软件包,0表示不校验,如果不写该行默认表示需要校验
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[base]
name=base
baseurl=file:///mnt/BaseOS
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@localhost yum.repos.d]# yum install httpd -y
#设置httpd服务开机自动启动
[root@localhost yum.repos.d]# systemctl enable --now httpd
#关闭防火墙服务
[root@localhost yum.repos.d]# systemctl disable --now firewalld
#使用网络源,如果能上网的情况下推荐使用该方式较简单,此文件自己新建并且内容可以照抄(此处的软件包对应操作系统版本为rhel9)
[root@localhost yum.repos.d]# vim /etc/yum.repos.d/wangluo.repo
[wangluo-app]
name=wanluo-app
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/AppStream/x86_64/os/
gpgcheck=0
[wangluo-base]
name=wangluo-base
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/os/
gpgcheck=0
[root@localhost yum.repos.d]# yum install bind -y
2、yum指令的用法
bash
#查询所有的仓库:yum repolist
#安装软件包:yum -y install 包名
#升级软件包:yum update 包名
#卸载软件包:yum remove 包名 -y
#查看软件包列表(包含已安装和可以使用当前仓库安装的包):yum list
#查询某个指令是哪个包产生的:yum whatprovides 指令
#查询服务的包名 yum provides
8.3 软件/程序运行管理
1、运行程序
bash
#1、直接执行指令------程序文件(/usr/bin/*,/usr/sbin/*),程序运行后会变成一个进程,进程会随着终端的关闭而关闭
#2、使用systemctl去管理后台可以一直运行的程序---服务
查看httpd服务的运行状态:systemctl status httpd
启动httpd服务:systemctl start httpd
重启httpd服务:systemctl restart httpd
设置httpd开机自启动:systemctl enable httpd --now
关闭httpd的开机自动启动:systemctl disable httpd --now
2、查看进程运行情况
bash
[root@localhost ~]# ps -ef | head
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 08:25 ? 00:00:01 /usr/lib/systemd/systemd rhgb --switched-root --system --deserialize 31
root 2 0 0 08:25 ? 00:00:00 [kthreadd]
root 3 2 0 08:25 ? 00:00:00 [rcu_gp]
root 4 2 0 08:25 ? 00:00:00 [rcu_par_gp]
root 5 2 0 08:25 ? 00:00:00 [netns]
root 7 2 0 08:25 ? 00:00:00 [kworker/0:0H-events_highpri]
root 9 2 0 08:25 ? 00:00:00 [kworker/0:1H-events_highpri]
root 10 2 0 08:25 ? 00:00:00 [mm_percpu_wq]
root 12 2 0 08:25 ? 00:00:00 [rcu_tasks_kthre]
#当前进程的执行者 进程的编号 该进程的父进程的编号 当前进程对应的程序
[root@localhost ~]# ps aux | head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.6 174864 11308 ? Ss 08:25 0:01 /usr/lib/systemd/systemd rhgb --switched-root --system --deserialize 31
root 2 0.0 0.0 0 0 ? S 08:25 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 08:25 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 08:25 0:00 [rcu_par_gp]
root 5 0.0 0.0 0 0 ? I< 08:25 0:00 [netns]
root 7 0.0 0.0 0 0 ? I< 08:25 0:00 [kworker/0:0H-events_highpri]
root 9 0.0 0.0 0 0 ? I< 08:25 0:00 [kworker/0:1H-events_highpri]
root 10 0.0 0.0 0 0 ? I< 08:25 0:00 [mm_percpu_wq]
root 12 0.0 0.0 0 0 ? I 08:25 0:00 [rcu_tasks_kthre]
#当前进程的执行者 进程的编号 当前进程占用cpu的百分比 当前进程占用内存的百分比 当前进程对应的程序
#动态查看进程的运行情况
[root@localhost ~]# top
3、终止进程
bash
#ctrl+c
#使用killall指令终止进程:killall 程序名称
#使用kill指令强制终止进程:kill -9 进程的id
#重启系统
4、前台和后台进程转换
bash
#让进程在后台运行:命令 &
#查看后台运行的进程:jobs -l
#将后台进程放到前台执行:fg 编号
#暂停当前的进程:ctrl+z
#让后台暂停的进程继续运行:bg 编号
9、搭建网盘服务
bash
web客户端软件【浏览器:firefox,谷歌浏览器】
在浏览器上可以输入网址:协议://主机名:端口/目录资源;
协议:http(明文传输,默认80),https(加密传输,默认443)
主机名:主机在互联网上的名字------域名,ip地址
bash
web服务器软件【httpd】
安装:yum install httpd -y
启动httpd程序:systemctl enable --now httpd
关闭防火墙:systemctl disable firewalld --now
关闭selinux,每次启动虚拟机都需要执行该指令: setenforce 0
静态网站:服务器网站提供的是index.html这样的静态页面
动态网站:服务器网站提供的是需要php程序解析的页面文件
#搭建网盘服务,动态网站------httpd程序;数据库(存储用户数据),软件包mariadb-server;php程序写的页面文件【网络上下载别人写好的】,php程序
[root@localhost ~]# yum install httpd php php-zip php-gd php-mysqlnd mariadb-server -y
[root@localhost ~]# systemctl enable httpd mariadb --now
[root@localhost ~]# systemctl disable firewalld --now
[root@localhost html]# setenforce 0
[root@localhost ~]# ss -lntup | grep httpd
tcp LISTEN 0 511 *:80 *:* users:(("httpd",pid=37343,fd=4),("httpd",pid=37101,fd=4),("httpd",pid=37100,fd=4),("httpd",pid=37099,fd=4),("httpd",pid=37096,fd=4))
[root@localhost ~]# ss -lntup | grep mariadb
tcp LISTEN 0 80 *:3306 *:* users:(("mariadbd",pid=38616,fd=19))
#初始化数据库root用户的密码
[root@localhost html]# mysqladmin -uroot password 'root'
#登录数据库,-p后输入密码不可以加空格
[root@localhost html]# mysql -uroot -proot
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 26
Server version: 10.5.16-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
#创建nextcloud数据库,数据库语句中分号表示该条语句结束
MariaDB [(none)]> create database nextcloud;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| nextcloud |
| performance_schema |
+--------------------+
4 rows in set (0.001 sec)
MariaDB [(none)]> exit
Bye
#上传并解压nextcloud网盘服务对应的php页面文件
[root@localhost ~]# cp nextcloud-24.0.5.tar.bz2 /var/www/html/
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# tar -xf nextcloud-24.0.5.tar.bz2
#一定要修改nextcloud目录的所属者,如果不修改的话会出现客户端无法访问nextcloud
[root@localhost html]# chown -R apache:apache nextcloud
[root@localhost html]# systemctl restart httpd
bash
#在浏览器输入网址:http://192.168.168.143/nextcloud,根据提示操作
10、初始化系统
bash
1、安装系统,选择对应的linux版本,阿里云镜像站点、163镜像站点等等
2、装好系统后,先配置网络:ip地址,掩码,网关,dns域名解析服务器
[root@localhost ~]# nmtui
[root@localhost ~]# ping -c2 www.baidu.com
3、调整时区和时间
[root@localhost ~]# timedatectl set-timezone Asia/Shanghai
4、写yum仓库,查看当前的发行版本信息选择与之匹配的仓库
#1、如果操作系统发行版本为centos7.9,仓库如下
[root@localhost ~]# vim /etc/yum.repos.d/centos7.repo
[centos7-base]
name=centos7-base
baseurl=https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/
gpgcheck=0
#2、如果操作系统发行版本为rhel9、rocky9,centos-stream,仓库如下:
[root@localhost yum.repos.d]# vim /etc/yum.repos.d/wangluo.repo
[wangluo-app]
name=wanluo-app
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/AppStream/x86_64/os/
gpgcheck=0
[wangluo-base]
name=wangluo-base
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/os/
gpgcheck=0
5、安装基础软件包,bash-completion包的作用为提供命令的tab键补全
[root@localhost ~]# yum install vim bash-completion -y
课堂练习
bash
1、创建好虚拟机的快照
2、使用windows电脑的命令行ping你安装好的虚拟机【ping】
3、使用不同的账号去远程登录并ping baidu【ssh,ping】
4、修改你的账号的密码为123 【passwd】
5、修改你的主机名为rhcsa0801并查看主机名是否修改成功【hostnamectl,cat /etc/hostname】
6、查看你当前账号的工作目录具体路径【pwd】
7、切换你当前的账号身份为其他账号【su -】
8、修改你当前的时区为Asia/Shanghai
bash
1、在/root下创建html目录,并在该目录下创建普通文件index.html,该文件内容为"this is web server"
2、给/root/html/index.html文件创建软链接为/index.html.link
3、找到你的根目录下的所有的块设备文件
4、将/etc/passwd和/etc/ssh/sshd_config文件复制到/root/etc/目录下
5、复制/var/log/messages文件到/root目录下
6、打包/root/messages和/root/etc/为/root/me.tar.bz2
7、将/root/me.tar.bz2上传至windows并解压
8、添加用户wukong,并设置该用户属于xiyouji组
9、找到/etc/passwd中有wukong信息的行内容
10、修改wukong用户的密码为wukong123
11、#真实案例:公司网站日志文件如下【它会记录谁曾经在什么时间访问过它】;领导要求:查出访问我们公司网站次数排名前三的客户端ip地址,并且还要知道访问的次数;
[root@localhost ~]# cat /root/access.log
2021/01/01 01:01 192.168.168.1 ie
2021/01/02 01:02 192.168.168.2 chrome
2021/01/03 01:03 192.168.168.1 ie
2021/01/04 12:00 192.168.168.1 ie
2021/01/05 01:05 192.168.168.3 firefox
2021/01/06 01:06 192.168.168.4 chrome
2021/01/06 02:06 192.168.168.4 chrome
2021/01/06 03:06 192.168.168.4 chrome
2021/01/07 12:07 192.168.168.5 ie
2021/01/06 01:06 192.168.168.4 chrome
bash
1、创建目录/dir1,该文件的所属者为root,所属组为xiyouji
2、复制/etc/ssh/sshd_config文件到/dir1目录并改名为sshd
3、wukong属于xiyouji组的成员,且wukong可以编辑sshd文件并且删除该文件
4、xiaoming可以查看sshd文件的内容,但不能删除该文件
bash
1、设置wukong账号可以查看/root家目录下的文件
2、添加用户wujing账号,他的附加组为shenxian,基本组为xiyouji
3、添加用户yangjian账号,他的基本组为shenxian
4、设置shenxian组的账号都可以使用sudo指令
5、创建目录/dir1,复制/etc/passwd文件到该目录,xiaoming用户可以编辑该文件但不能删除该文件,xiaohei既可以编辑该文件也可以删除该文件
6、设置/youji文件夹的所属者为root,所属组为xiyouji,xiyouji组的所有人都可以在该目录创建文件
7、设置dongyouji所属组的人可以查看/youji目录下的文件,但不能删除
8、安装qq程序
作业
第一次作业
bash
1、修改当前主机名为rhcsa,设置当前时区为Asia/Shanghai
2、在/home/和/root目录下面创建file1文件和dir1目录
3、在/home/file1文件里面写入内容hello,welcome to home
4、在/root/file1文件里面写入当前的时间并写入内容this is administrator
5、在/root/dir1目录下面新建文件file2,内容和/root/file1文件内容一样
第二次作业
bash
1、查看/etc/passwd文件的第18-20行内容,并将找到的内容存储至/home/passwd文件中(head,tail,>,>>)
2、查找/etc/passwd文件中包含root字符的行并将找到的行存储至/root/passwd文件中(grep,>,>>)
3、将/home目录复制到/root目录(cp -r)
4、将/root/home目录,/home/passwd和/root/passwd打包并压缩为/root/hp.tar.xz(tar -cJf)
5、创建组admin-group,添加用户admin属于admin-group组(groupadd,useradd -g -G)
6、为admin账号设置密码为123(passwd)
第三次作业
bash
1、创建一个3G大小的分区,并格式化为xfs的文件系统类型,将/etc/passwd文件复制到该分区
先查看自己的磁盘,能否分3G,如果当前磁盘空间已使用完,则添加新磁盘
2、安装httpd软件包,并让该程序开机自启动,关闭防火墙服务
[root@localhost ~]# cat /etc/yum.repos.d/wangluo.repo
[wangluo-app]
name=wanluo-app
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/AppStream/x86_64/os/
gpgcheck=0
[wangluo-base]
name=wangluo-base
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/os/
gpgcheck=0
#装包,启动httpd,关闭firewalld
[root@localhost ~]# yum install httpd -y
[root@localhost ~]# systemctl enable --now httpd
[root@localhost ~]# systemctl disable --now firewalld