rhcsa笔记大全
1、介绍
markdown的语法写笔记
rhcsa:红帽认证的Linux操作系统管理员
软件:用语言(c语言,c++,java,python,go)写代码
软件:CPU(运算和控制),输入设备,输出设备,存储器
PAM:内存32G,断电后里面存储的数据会消失
硬盘:1T,断电后数据依旧存在
1GB=1024MB=1024*1024KB=1024*1024*1024B(字节)
1字节=8bit
0 1 二进制
操作系统:软件,是所有硬件上的第一层软件,iOS,macOS,Android,Windows,Linux(开源)
闭源:不共享源代码
开源:开放源代码,所有人都可以看到这个代码,全世界的人都可以为你的代码做bug修复,添加新功能,软件会很稳定,用户体验好
不同的操作系统会有对应的应用程序
服务器:服务的机器,7*24小时服务于很多人,当用户在访问服务器的时候,服务器需要自动回复,提前设定好用户可能会访问的信息,不用的服务需要使用不同的程勋去实现一一软件
1.1安装Linux操作系统
#软件说明
xshell:Windows远程连接Linux的工具
xftp:Windows和Linux主机传文件
VMware workstation Pro :可以虚拟很多台虚拟机
typora:写笔记
rhel-baseos-9.1-x86_64-dvd.iso:linux操作系统镜像文件
如何安装Linux操作系统:
1、虚拟机:用一个软件虚拟很多台虚拟机【vmware workstation pro】
2、安装linux系统:操作系统镜像【RHEL9】
1、创建虚拟机需要注意的信息:要指定安装的操作系统为linux并且版本是rhel9 64位的系统
2、安装linux系统的过程:必须浏览iso镜像文件的路径;虚拟机开机的时候需要加载光驱;设置磁盘分区,先设置标准分区【/boot 500M;/根 20G,swap(虚拟内存) 2G】;设置root(系统管理员用户)的密码:123
GUI:图形用户界面
CLI:命令行界面
1.2了解IP地址
每台主机在当前局域网环境中都需要有一个唯一的ip地址才能够和其他主机通信,如果需要和互联网上的主机通信需要配置当前主机的网关ip地址,DNS服务器ip地址
#在linux里面查看网卡的ip地址
1、先看虚拟机的网卡是否连接
2、使用root登录进入linux主机
3、点击桌面左上角的图标打开terminal
4、查看你的网卡的名字
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:7b:1f:c4 brd ff:ff:ff:ff:ff:ffaltname enp3s0inet 192.168.168.143/24 brd 192.168.168.255 scope global dynamic noprefixroute ens160valid_lft 1692sec preferred_lft 1692secinet6 fe80::20c:29ff:fe7b:1fc4/64 scope link noprefixroutevalid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:7b:1f:ce brd ff:ff:ff:ff:ff:ffaltname enp19s0
5、假设需要上面示例的ens224获得地址
[root@localhost ~]# nmcli device connect ens224
Device 'ens224' successfully activated with 'e4c269eb-9c44-4286-a5ba-140f390fa8ee'.
[root@localhost ~]# nmcli connection up ens224
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
6、查看ens224的ip地址
[root@localhost ~]# ip a show ens224
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:7b:1f:ce brd ff:ff:ff:ff:ff:ffaltname enp19s0inet 192.168.168.144/24 brd 192.168.168.255 scope global dynamic noprefixroute ens224valid_lft 1749sec preferred_lft 1749secinet6 fe80::aee3:95cf:2c22:7058/64 scope link noprefixroutevalid_lft forever preferred_lft forever
1.3 windows远程连接linux
windows上面选择相应的程序:xshell,mobaxterm,secureCRT,使用ping 192.168.168.144
#使用root账号远程连接
ssh root@192.168.168.144
[root@localhost ~]#
#使用其他账号远程连接
#先查看是否有该账号
[root@localhost ~]# id redhat
uid=1000(redhat) gid=1000(redhat) groups=1000(redhat),10(wheel)
ssh redhat@192.168.168.144
[redhat@localhost ~]$
1.4 创建快照
将当前安装好的linux系统的状态保存下来,方便日后恢复到当前状态
1.5 不同账号登录后的提示信息
#提示信息格式:[用户名@当前主机的主机名 当前用户所处的工作目录],#代表root用户的提示符,$表示普通用户的提示符;~表示当前用户的家目录(文件夹)
#显示当前的工作目录
[root@localhost ~]# pwd
/root
#切换当前的工作目录
[root@localhost ~]# cd /home/redhat/
[root@localhost redhat]# pwd
/home/redhat
[redhat@localhost ~]$ pwd
/home/redhat
所有的文件的路径都从/根目录开始,任何字符后面的/都表示分隔符
绝对路径:从根目录开始的路径都叫绝对路径
相对路径:不是从根目录开始的路径
#查看当前登录账号信息
[root@localhost home]# whoami
root
#切换账号,root账号切换到其他账号不需要密码,其他账号切换账号需要密码
[root@localhost home]# su - redhat
[redhat@localhost ~]$
[redhat@localhost ~]$ su - root
Password:
[root@localhost ~]# exit
logout
[redhat@localhost ~]$ exit
logout
[root@localhost home]#
#修改密码,普通用户和root用户修改密码的区别:1、普通用户只能够给自己改密码2、普通用户需要输入原密码3、普通用户修改的新密码需要长于8个字符且不能太系统化
[root@rhel9 ~]# passwd
Changing password for user root.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@rhel9 ~]# passwd redhat
Changing password for user redhat.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[redhat@localhost ~]$ passwd
Changing password for user redhat.
Current password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.#忘记密码
1、普通用户忘记,可以找root账号重置
2、root用户忘记密码
2.1 重启机器,在倒数6秒的界面按e键
2.2 在linux开头的那一行的末尾写rd.break,按ctrl+x执行
2.3 在提示符后面输入 mount -o remount,rw /sysroot(重新挂载系统)
2.4 随后用chroot /sysroot 命令改变系统目录为临时挂载目录
2.5 passwd root
2.6 touch /.autorelabel在根目录下创建相关文件
2.7 exit
2.8 exit#查看主机名
[root@localhost home]# hostnamectl
#修改主机名
[root@localhost home]# hostnamectl hostname rhel9.1-0701
#查看主机名信息的存储配置文件
[root@rhel9 ~]# cat /etc/hostname
rhel9.1-0701#查看时间
[root@rhcsa0701 ~]# date
[root@rhcsa0701 ~]# date "+%F %T" (格式为 YYYY-MM-DD HH:MM:SS)
(%F:等价于 %Y-%m-%d,输出格式为 年-月-日(例如 2024-07-29)。
%T:等价于 %H:%M:%S,输出格式为 时:分:秒(例如 14:30:45)。)
2023-07-01 10:08:43
#修改时间
[root@rhcsa0701 ~]# date -s "20230702 9:54"
Sun Jul 2 09:54:00 AM CST 2023#查看时区
[root@rhcsa0701 ~]# timedatectl
#修改时区
[root@rhcsa0701 ~]# timedatectl set-timezone Asia/Shanghai#查看当前系统的发行版本信息
[root@rhel9 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.1 (Plow)
1.6 好用的快捷键
停止当前的程序:ctrl+c
清屏:ctrl+l或者clear
补全命令:tab,按一下或者两下
2、linux的目录结构和文件类型
命令的格式:命令 [选项]…… [参数]……
-
命令,必须要写,你想要做什么
-
选项:有些命令可以不带选项,有些命令可以同时带多个选项,例如:
-l
、--help
-
参数:有些命令没有参数,有些命令必须带参数,有些命令可以同时写多个参数
#查看命令的使用手册 命令 --help [root@rhcsa0701 ~]# man ls 上下键:一行行的上下翻动文档 一页一页的翻动文档:空格和b /keywords 可以根据关键词寻找,输入n,N
#查看目录下面的文件,查看目录的内容
[root@rhcsa0701 home]# ls /home/
redhat xiaoming
[root@rhcsa0701 home]# ls /root/ /home/
/home/:
redhat xiaoming/root/:
anaconda-ks.cfg Desktop Documents Downloads Music Pictures Public Templates Videos
#查看所有文件包括隐藏文件
[root@rhcsa0701 ~]# ls -a /root/
. anaconda-ks.cfg .bash_logout .bashrc .config Desktop Downloads .local Music Public Templates .Xauthority
.. .bash_history .bash_profile .cache .cshrc Documents .lesshst .mozilla Pictures .tcshrc Videos
注意:.代表当前目录,..代表上一级目录
#查看当前目录本身的信息
[root@rhcsa0701 ~]# ls -ld /root/
dr-xr-x---. 14 root root 4096 Jul 2 11:07 /root/
#以PB,TB,GB,MB,KB,B查看文件的大小
[root@rhcsa0701 ~]# ls -lh /boot
total 229M
-rw-r--r--. 1 root root 208K Sep 30 2022 config-5.14.0-162.6.1.el9_1.x86_64
drwxr-xr-x. 3 root root 17 Jul 1 10:55 efi
drwx------. 5 root root 97 Jul 2 11:28 grub2
-rw-------. 1 root root 119M Jul 1 10:58 initramfs-0-rescue-01ac7c9301734622a1eb4fc5398054df.img
-rw-------. 1 root root 53M Jul 1 11:00 initramfs-5.14.0-162.6.1.el9_1.x86_64.img
-rw-------. 1 root root 31M Jul 1 11:25 initramfs-5.14.0-162.6.1.el9_1.x86_64kdump.img
drwxr-xr-x. 3 root root 21 Jul 1 10:57 loader
lrwxrwxrwx. 1 root root 51 Jul 1 10:57 symvers-5.14.0-162.6.1.el9_1.x86_64.gz -> /lib/modules/5.14.0-162.6.1.el9_1.x86_64/symvers.gz
-rw-------. 1 root root 5.1M Sep 30 2022 System.map-5.14.0-162.6.1.el9_1.x86_64
-rwxr-xr-x. 1 root root 12M Jul 1 10:57 vmlinuz-0-rescue-01ac7c9301734622a1eb4fc5398054df
-rwxr-xr-x. 1 root root 12M Sep 30 2022 vmlinuz-5.14.0-162.6.1.el9_1.x86_64#长列表列出文件的属性【元数据】
[root@rhcsa0701 home]# ls -l /
total 28
dr-xr-xr-x. 2 root root 6 Aug 10 2021 afs
lrwxrwxrwx. 1 root root 7 Aug 10 2021 bin -> usr/bin #二进制文件所在的目录,命令的可执行文件所在目录
dr-xr-xr-x. 5 root root 4096 Jul 1 11:25 boot #启动系统所必须要的文件所在目录
drwxr-xr-x. 19 root root 3320 Jul 2 09:25 dev #设备文件所在目录
drwxr-xr-x. 133 root root 8192 Jul 2 09:32 etc #配置文件所在目录
drwxr-xr-x. 4 root root 36 Jul 2 09:28 home #普通用户的家目录
lrwxrwxrwx. 1 root root 7 Aug 10 2021 lib -> usr/lib #库文件
lrwxrwxrwx. 1 root root 9 Aug 10 2021 lib64 -> usr/lib64 #库文件,64位的库
drwxr-xr-x. 2 root root 6 Aug 10 2021 media #挂载点目录
drwxr-xr-x. 3 root root 18 Jul 1 10:56 mnt #挂载点目录
drwxr-xr-x. 2 root root 6 Aug 10 2021 opt #第三方软件包所在目录
dr-xr-xr-x. 352 root root 0 Jul 2 09:12 proc #虚拟的文件系统
dr-xr-x---. 14 root root 4096 Jul 2 09:58 root #root用户的家目录
drwxr-xr-x. 45 root root 1180 Jul 2 09:12 run #程序运行产生文件所在目录
lrwxrwxrwx. 1 root root 8 Aug 10 2021 sbin -> usr/sbin #二进制文件所在的目录,命令的可执行文件所在目录,主要是管理类的指令——管理员
drwxr-xr-x. 2 root root 6 Aug 10 2021 srv #第三方服务产生的文件所在目录
dr-xr-xr-x. 13 root root 0 Jul 2 09:12 sys #虚拟的文件系统
drwxrwxrwt. 28 root root 4096 Jul 2 09:59 tmp #临时文件所在目录
drwxr-xr-x. 12 root root 144 Jul 1 10:55 usr #软件资源
drwxr-xr-x. 20 root root 4096 Jul 1 11:25 var #可变化数据所在目录,系统的日志文件/var/log/messages
文件的类型 文件的所属者的权限 文件的所属组的权限 其他人的权限 acl访问控制列表 文件的硬链接次数 文件的所属者 文件的所属组 文件的大小,单位为B字节 文件的mtime修改时间 文件名1、文件的类型7种:一切皆文件d 目录文件l 软链接文件<——>快捷方式- 普通文件b 块设备文件c 字符设备文件p 管道文件s 套接字文件[root@rhcsa0701 home]# ls -l /etc/hostname /etc/redhat-release /etc/passwd
-rw-r--r--. 1 root root 10 Jul 1 16:18 /etc/hostname
-rw-r--r--. 1 root root 2153 Jul 2 09:28 /etc/passwd
-rw-r--r--. 1 root root 44 Sep 28 2022 /etc/redhat-release[root@rhcsa0701 home]# ls -l /dev/nvme0n* /dev/sr0
brw-rw----. 1 root disk 259, 0 Jul 2 09:12 /dev/nvme0n1 #硬盘
brw-rw----. 1 root disk 259, 1 Jul 2 09:12 /dev/nvme0n1p1 #硬盘的第一个分区
brw-rw----. 1 root disk 259, 2 Jul 2 09:12 /dev/nvme0n1p2 #硬盘的第二个分区
brw-rw----. 1 root disk 259, 3 Jul 2 09:12 /dev/nvme0n1p3 #硬盘的第三个分区
brw-rw----+ 1 root cdrom 11, 0 Jul 2 09:25 /dev/sr0 #光盘2、用户的权限:r读 w写 x可执行-没有权限,u+s,g+s,o+t,权限的可能性:---,--x,-w-,-wx,r--,r-x,rw-,rwx
文件的所属者user:---,rwx 文件的所属组group:---,rwx 其他人other:---,rwx
3、文件管理
3.1 目录文件的管理
1、创建
[root@rhcsa0701 ~]# mkdir -pv /root/dir3/dir33/dir333
mkdir: created directory '/root/dir3'
mkdir: created directory '/root/dir3/dir33'
mkdir: created directory '/root/dir3/dir33/dir333'
-p:创建目录时,如果该目录的父目录不存在则先创建父目录
-v:显示创建了哪些文件
[root@rhcsa0701 ~]# mkdir -pv /root/dir4 /home/dir1
[root@rhcsa0701 ~]# mkdir -pv /{root,home}/dir6
mkdir: created directory '/root/dir6'
mkdir: created directory '/home/dir6'
[root@rhcsa0701 ~]# mkdir -pv /root/dir{7,8,9,10}
[root@rhcsa0701 ~]# mkdir -pv /root/dir{11..20}
2、编辑
#目录文件的内容是很多文件
可以在目录文件下面创建:目录文件mkdir,普通文件,软链接,块设备文件
3、查看
#1、查看目录本身信息
[root@rhcsa0701 ~]# ls -ld /root/dir1
drwxr-xr-x. 2 root root 6 Jul 2 14:13 /root/dir1
#*表示零个或者任意多个任意字符
[root@rhcsa0701 ~]# ls -ld /root/dir*
drwxr-xr-x. 2 root root 6 Jul 2 14:27 /root/dir
drwxr-xr-x. 2 root root 6 Jul 2 14:13 /root/dir1
drwxr-xr-x. 2 root root 6 Jul 2 14:20 /root/dir10
drwxr-xr-x. 2 root root 6 Jul 2 14:20 /root/dir11
drwxr-xr-x. 2 root root 6 Jul 2 14:20 /root/dir12
drwxr-xr-x. 2 root root 6 Jul 2 14:20 /root/dir13
#2、查看目录的内容
[root@rhcsa0701 ~]# ls -l /root/dir
total 0
#ll为ls -l的别名
[root@rhcsa0701 ~]# ll /root/dir
[root@rhcsa0701 ~]# ls /root/dir
[root@rhcsa0701 ~]# tree /root/dir3/
/root/dir3/
└── dir33└── dir333
4、删除
#删除目录必须使用-r选项
[root@rhcsa0701 ~]# rm -r /root/dir
rm: remove directory '/root/dir'? y
[root@rhcsa0701 ~]# ll /root/dir
ls: cannot access '/root/dir': No such file or directory
#删除目录时会询问是否删除,此时可以使用-f选项强制删除
[root@rhcsa0701 ~]# rm -r -f /root/dir*
[root@rhcsa0701 ~]# ll /root/
3.2 普通文件的管理
1、创建
#查看文件的具体的atime【查看文件的内容】,mtime【文件的内容更新】,ctime【文件的属性发生改变】
[root@localhost ~]# stat /root/Desktop/File: /root/Desktop/Size: 6 Blocks: 0 IO Block: 4096 directory
Device: 10302h/66306d Inode: 52172338 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2023-07-02 15:03:21.176408042 +0800
Modify: 2023-07-02 15:03:21.176408042 +0800
Change: 2023-07-02 15:03:21.176408042 +0800Birth: 2023-07-01 14:00:39.791543636 +0800
#touch用法1:如果文件存在,touch该文件后会更新文件的时间:atime,mtime,ctime
#touch用法2:创建普通文件
[root@localhost ~]# touch /root/file1 /root/file2 /home/file1 /root/file{3..5}
2、编辑
#1、将命令执行之后的标准输出写入到文件,>重定向:可以将命令执行后的标准输出重定向到文件;追加重定向:将命令执行后的标准输出追加到文件
标准输出:命令成功执行之后在屏幕上输出的内容
标准错误输出:命令执行失败后在屏幕上输出的内容
[root@localhost ~]# pwd > /root/file1
[root@localhost ~]# cat /etc/redhat-release >> /root/file1
拓展:将命令执行之后的标准错误输出写入到文件,使用2>
[root@localhost ~]# ls -l /root/file2 2> /root/file1#2、使用echo指定要输出的内容,再使用>,>>将内容重定向到文件
[root@localhost ~]# echo hello world > /root/file1
#输出变量HOME的值,HOME变量是系统定义好的变量
[root@localhost ~]# echo $HOME#3、vim编辑器:vim/vi
1、所有的linux操作系统都会安装vi编辑器
2、当你在使用一些程序对系统做设置的时候其实就是改变的系统的一些文件,此时会调用vi打开该文件
3、vim可以通过颜色显示代码的语法正确性
4、一些服务的配置文件也会有颜色显示[root@localhost ~]# vim /root/file1
命令模式:光标的跳转:gg,G【跳转到文件内容的行首和行尾第一个字符】10gg或者10G,^,$【将光标跳转到光标所在行的第一个字符和最后一个字符】,w,b【将光标按照单词前后跳转】复制:yy、3yy粘贴:p,P删除:dd,2dd,dgg,dG撤销:u
插入模式:i、ai 在光标前插入内容I 在光标所在行的第一个非空字符前插入内容a 在光标后插入内容A 在光标所在行的行尾插入s 删除光标所在字符并进入插入模式S 删除光标所在行并进入插入模式o 光标所在行的下一行插入内容O 光标所在行的上一行插入内容
末行模式::w 保存内容 :w /dir/file 另存:q 退出:wq 保存退出:q! 强制退出不保存:wq! 强制保存退出:r /dir/file1 将/dir/file1文件内容写入到当前文件光标所在行的下一行/keywords 查找关键字,可以使用n,N在找到的字符之间跳转:%s/old/new/g %表示整个文档,old表示被替换的内容,new表示新的内容,g表示替换每一行的每一个old为new:1,5s/old/new/g拓展:1、可视化模式,ctrl+v通过移动上下左右键选择块内容,y表示复制,p表示粘贴在所有行行首加入#字符,先按ctrl+v,接着选中每一行的第一个字符,然后按I,接着写入#,最后按esc2、同一个窗口编辑多个文件:sp /dir/file使用ctrl+w再按一下w可以在几个文件中跳转光标
3、查看
- 整个文档内容的查看
#将文件内容全部输出到屏幕上
[root@rhel9-1 ~]# cat -n /etc/hostname
[root@rhel9-1 ~]# cat /etc/passwd
#通过less程序查看文件内容,按q才退出,使用空格一页一页的查看内容,使用b一页一页的向前看,/keywords查找关键字
[root@rhel9-1 ~]# less -N /etc/ssh/sshd_config
#查看文件前10行
[root@rhel9-1 ~]# head /etc/ssh/sshd_config(默认显示前十行)
[root@rhel9-1 ~]# head -6 /etc/ssh/sshd_config
#查看文件后10行
[root@rhel9-1 ~]# tail /etc/ssh/sshd_config
[root@rhel9-1 ~]# tail -1 /etc/ssh/sshd_config
#追踪系统日志文件:系统日志跟新一行屏幕上就会输出一行
[root@rhel9-1 ~]# tail -f /var/log/messages|管道符:将管道符前面指令的输出给管道符后面的指令进行处理
注:查看第10-20行的内容
[root@rhel9-1 ~]# head -20 /etc/ssh/sshd_config | tail -10
- 文档列内容处理后查看
[root@rhel9-1 ~]# cat /root/file1
xiaoming:60
xiaohong:80
xiaolan:90
xiaobai:100
xiaohei:50
#cut指令-d选项指定分隔符,-f指定第几个字段
[root@rhel9-1 ~]# cut -d : -f 1 /root/file1
xiaoming
xiaohong
xiaolan
xiaobai
xiaohei
#默认按照升序排列
[root@rhel9-1 ~]# sort /root/file1
xiaobai:100
xiaohei:50
xiaohong:80
xiaolan:90
xiaoming:60
#sort的-n按照数值大小排序,-r是从大到小输出
[root@rhel9-1 ~]# cut -d : -f 2 /root/file1 | sort -nr
100
90
80
60
50
#sort的-t表示分隔符,-k指定按照哪个字段排序
[root@rhel9-1 ~]# sort -t : -k 2 -nr /root/file1
xiaobai:100
xiaolan:90
xiaohong:80
xiaoming:60
xiaohei:50#去重uniq,该命令只会去掉挨在一起的行内容为重复内容
[root@rhel9-1 ~]# cat /root/file2
hello
hi
hello
hello
[root@rhel9-1 ~]# uniq /root/file2
hello
hi
hello
#统计重复行重复的次数
[root@rhel9-1 ~]# uniq -c /root/file21 hello1 hi2 hello重点面试题【年年考】注:我们有一个web服务器,假设当前web服务器日志为/root/access.log,找出访问我们web服务器次数最多的客户端的ip地址
[root@rhel9-1 ~]# cat /root/access.log
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/07/01 14:00 10.0.0.2 IE[root@rhel9-1 ~]# cut -d " " -f 3 /root/access.log | sort | uniq -c | sort -t " " -k 1 -nr | head -13 10.0.0.2
- 搜索文件内容查看:列出有关键字的行
[root@rhel9-1 ~]# cat /root/file3
root 123
ROOT
123 root
456 root 789
test
ceshi
#显示文件中有root的行
[root@rhel9-1 ~]# grep root /root/file3
root 123
123 root
456 root 789
#显示有root大小写一共16种可能性的行
[root@rhel9-1 ~]# grep -i root /root/file3
root 123
ROOT
123 root
456 root 789
#显示没有root的行,-v表示不显示匹配到的行
[root@rhel9-1 ~]# grep -v root /root/file3
ROOT
test
ceshi
[root@rhel9-1 ~]# grep -vi root /root/file3
test
ceshi
#显示root开头的行
[root@rhel9-1 ~]# grep ^root /root/file3
root 123
#显示root结尾的行
[root@rhel9-1 ~]# grep root$ /root/file3
123 root
#匹配有t或者c的行,[0-9]表示所有的数字,[a-z]表示所有的小写字母,[a-Z]所有的大小写字母
[root@rhel9-1 ~]# grep [tc] /root/file3
root 123
123 root
456 root 789
test
ceshi
[root@node01 ~]# grep [a-Z0-9] /root/file3
root 123
ROOT
123 root
456 root 789
test
ceshi
#匹配t或者c开头的行
[root@rhel9-1 ~]# grep ^[tc] /root/file3
#不匹配有t或者c的行
[root@rhel9-1 ~]# grep [^tc] /root/file3
4、删除
[root@rhel9-1 ~]# rm -rf /root/file3
3.3 软链接文件的管理——符号链接
#创建
[root@rhel9-1 ~]# echo "this is a test" > /root/test
#注意创建软链接文件的时候建议写绝对路径
[root@rhel9-1 ~]# ln -s /root/test /root/test.link
[root@rhel9-1 ~]# ll -d /root/test.link
lrwxrwxrwx. 1 root root 10 Jul 4 11:40 /root/test.link -> /root/test
[root@rhel9-1 ~]# ll /home/redhat/ -d
drwx------. 14 redhat redhat 4096 Jul 1 11:26 /home/redhat/
[root@rhel9-1 ~]# ln -s /home/redhat/ /redhat
[root@rhel9-1 ~]# ll -d /redhat/
drwx------. 14 redhat redhat 4096 Jul 1 11:26 /redhat/
[root@rhel9-1 ~]# ll -d /redhat
lrwxrwxrwx. 1 root root 13 Jul 4 11:45 /redhat -> /home/redhat/
#编辑:取决于软链接文件所链接到的文件类型
#查看:取决于软链接文件所链接到的文件类型
#删除:如果删除目录文件的软链接的时候要特别注意文件名后不要补全/
rm /root/test.link
rm /redhat
3.4 块设备文件
[root@rhel9-1 ~]# ls -l /dev | grep ^b
brw-rw----. 1 root disk 259, 0 Jul 1 13:59 nvme0n1
brw-rw----. 1 root disk 259, 1 Jul 1 13:59 nvme0n1p1
brw-rw----. 1 root disk 259, 2 Jul 1 13:59 nvme0n1p2
brw-rw----. 1 root disk 259, 3 Jul 1 13:59 nvme0n1p3
brw-rw----+ 1 root cdrom 11, 0 Jul 1 14:00 sr0
[root@rhel9-1 ~]# 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]
[root@rhel9-1 ~]# fdisk -l
Disk /dev/nvme0n1: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk model: VMware Virtual NVMe Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x986a7d75Device Boot Start End Sectors Size Id Type
/dev/nvme0n1p1 * 2048 1026047 1024000 500M 83 Linux
/dev/nvme0n1p2 1026048 42969087 41943040 20G 83 Linux
/dev/nvme0n1p3 42969088 47163391 4194304 2G 82 Linux swap / Solaris
3.5 文件的复制和移动
#复制普通文件和目录文件到/root/hostname,源文件依旧存在
[root@rhel9-1 ~]# cp /etc/hostname /root/hostname/
[root@rhel9-1 ~]# cp -r /etc/ssh/ /root/hostname/
[root@rhel9-1 ~]# cp /etc/passwd /etc/redhat-release /root/hostname/
#将test4做备份
[root@rhel9-1 ~]# cp /root/test4{,.bak}
3.6 查找根目录下的文件
#语法:
[root@rhel9-1 ~]# ll /root/
total 4
drwxr-xr-x. 2 root root 6 Jul 1 14:00 Desktop
根据文件类型查找: find 路径 -type f/d/l/b/c/p/s
根据文件的权限查找: find 路径 -perm 755
根据文件的所属者查找: find 路径 -user/-uid 用户名/用户的编号
根据文件的所属组查找: find 路径 -group/-gid 组名/组编号
根据文件的大小查找: find 路径 -size 2k/+2k/-2k
根据文件的atime时间查找: find 路径 -atime +2/-2/2 说明:+2表示3天前,2表示3天前-2天前24小时时间改变的文件,-2表示2天内时间发生改变的文件
根据文件的mtime时间查找: find 路径 -mtime +2/-2/2
根据文件的ctime时间查找: find 路径 -ctime +2/-2/2
根据文件的名字查找: find 路径 -name 文件名/"*host"/"host*"/"*host*"find 路径 -iname 文件名/"*host"/"host*"/"*host*"
#-exec表示要对find找到的文件做处理的开始标记,\;表示结束标记,{}表示find找到的文件
#将根目录下的属于redhat组的文件复制到/root/redhat
[root@rhel9-1 ~]# find / -group redhat -exec cp -r {} /root/redhat \;
3.7 文件的打包压缩
#压缩文件的后缀:.zip,.tar.gz,.tar.xz,.tar.bz2,.tar.lz等等
#压缩普通文件
#zip压缩与解压缩
[root@rhel9-1 ~]# zip /root/pc.zip /root/ceshi /root/passwd
[root@rhel9-1 ~]# ll /root/pc.zip
-rw-r--r--. 1 root root 2822 Jul 4 14:51 /root/pc.zip
[root@rhel9-1 ~]# unzip /root/pc.zip
Archive: /root/pc.zipinflating: root/ceshiinflating: root/passwd
[root@rhel9-1 ~]# tree /root/root/
/root/root/
├── ceshi
└── passwd
#gzip的压缩与解压缩,查看内容zcat
[root@rhel9-1 ~]# gzip /root/passwd /root/test4
[root@rhel9-1 ~]# ll /root/passwd.gz /root/test4.gz
-rw-r--r--. 1 root root 880 Jul 4 14:27 /root/passwd.gz
-rw-r--r--. 1 root root 1671 Jul 4 14:12 /root/test4.gz
#将 /root/test4.bak压缩为/root/test4.bak.gz
[root@rhel9-1 ~]# gzip -c /root/test4.bak > /root/test4.bak.gz
[root@rhel9-1 ~]# gunzip -c /root/test5.gz > /root/test6
[root@rhel9-1 ~]# ll /root/test6
-rw-r--r--. 1 root root 3667 Jul 4 15:06 /root/test6
#xz,unxz,xzcat,bzip2,bunzip2,bzcat略
#将目录文件和普通文件打包后压缩,-c表示创建打包文件,-z表示调用gzip程序压缩,-f必须写的选项且该选项后的第一个参数必须是.tar.……的文件
[root@rhel9-1 ~]# tar -czf /root/sd.tar.gz /root/dir1/ /root/sshd
[root@rhel9-1 ~]# tar -cjf /root/sd.tar.bz2 /root/dir1/ /root/sshd
#查看/root/sd.tar.gz里面曾经打包压缩了哪些文件
[root@rhel9-1 ~]# tar -tf /root/sd.tar.gz
root/dir1/
root/dir1/hostname
root/dir1/redhat-release
root/sshd
#解压解包,-C表示将文件解压到指定路径
[root@rhel9-1 ~]# tar -xf /root/sd.tar.gz -C /root/dir2
[root@rhel9-1 ~]# ll /root/dir2/
total 0
drwxr-xr-x. 3 root root 30 Jul 4 15:48 root
[root@rhel9-1 ~]# ll /root/dir2/root/
total 4
drwxr-xr-x. 2 root root 44 Jul 4 15:34 dir1
-rw-------. 1 root root 3667 Jul 4 15:34 sshd
3.8 文件在不同主机上的传输
#windows和linux间传输文件
sftp或者xftp#linux和linux
#下载192.168.168.130主机的/root/file3到当前工作目录
[root@rhel9-1 ~]# scp root@192.168.168.130:/root/file3 ./
#上传keepalived-2.2.4.tar.gz到192.168.168.130主机的/root/keepalived目录中
[root@rhel9-1 ~]# scp /root/keepalived-2.2.4.tar.gz root@192.168.168.130:/root/keepalived
4、用户和用户组的管理
4.1 用户的管理
#用户的个人信息文件:root,系统账号【运行系统的程序】,普通账号
[root@rhel9-1 ~]# ll /etc/passwd
-rw-r--r--. 1 root root 2095 Jul 1 11:26 /etc/passwd
[root@rhel9-1 ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码:uid:gid:用户的描述信息:家目录:命令解释器【shell】
#添加账号,-r添加系统账号
[root@rhel9-1 ~]# useradd xiaoming
[root@rhel9-1 ~]# id xiaoming
uid=1001(xiaoming) gid=1001(xiaoming) groups=1001(xiaoming)
[root@rhel9-1 ~]# grep xiaoming /etc/passwd
xiaoming:x:1001:1001::/home/xiaoming:/bin/bash
#修改账号信息
[root@rhel9-1 ~]# usermod -l daming xiaoming
[root@rhel9-1 ~]# id daming
uid=1001(daming) gid=1001(xiaoming) groups=1001(xiaoming)
#删除账号
[root@rhel9-1 ~]# userdel daming
[root@rhel9-1 ~]# ll /home/
total 0
drwx------. 3 redhat redhat 32 Jul 4 14:54 redhat
drwx------. 3 1001 xiaoming 78 Jul 4 16:09 xiaoming
[root@rhel9-1 ~]# useradd xiaohei
[root@rhel9-1 ~]# ll /home/
total 0
drwx------. 3 redhat redhat 32 Jul 4 14:54 redhat
drwx------. 3 xiaohei xiaohei 78 Jul 4 16:15 xiaohei
drwx------. 3 xiaohei xiaoming 78 Jul 4 16:09 xiaoming
#删除账号时加-r选项表示删除账号时同时删除该账号的家目录和邮箱
[root@rhel9-1 ~]# userdel -r xiaohei
[root@rhel9-1 ~]# ll /home/
total 0
drwx------. 3 redhat redhat 32 Jul 4 14:54 redhat
drwx------. 3 1001 xiaoming 78 Jul 4 16:09 xiaoming
#账号的密码管理
[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
4.2 用户组的管理
基本组:用户必须拥有的组,有且仅有一个 附加组:除了基本组以外的组都叫附加组,可以有很多个附加组 #添加组:groupadd [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 #删除组:groupdel #不能删除用户的基本组,可以删除附加组 [root@rhel9-1 ~]# groupdel zu1 groupdel: cannot remove the primary group of user 'user1' [root@rhel9-1 ~]# groupdel group4
4.3 用户登录情况查看
[root@rhel9-1 ~]# w10: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时间戳:10:48:35 当前时间。 系统运行时间:up 1:24 表示系统已经运行了 1 小时 24 分钟。 登录用户数:3 users 表示当前有 3 个用户登录。 负载平均值:load average: 0.00, 0.00, 0.05 表示系统在过去 1 分钟、5 分钟和 15 分钟内的平均负载。 用户信息: USER:用户名。 TTY:终端设备。 LOGIN@:登录时间。 IDLE:空闲时间。 JCPU:该用户占用的总 CPU 时间。 PCPU:当前进程占用的 CPU 时间。 WHAT:用户正在执行的命令。w:显示当前登录的用户及其活动情况。 who:显示当前登录的用户及其登录信息。 last:显示最近登录的用户及其登录和注销时间。 lastlog:显示每个用户最后一次登录的时间和来源。
4.4 用户的提权
#用户提权:su - 用户名【必须知道该用户名的密码】 #用户提权:sudo -u 用户名 command 【是当前账号的密码】 [xiaoming@rhel9-1 ~]$ sudo -u root ls -l /rootWe 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、文件权限
- 修改文件的所属者和所属组
#修改/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 #修改/root/file3的所属者,所属组不变 [root@rhel9-1 ~]# chown wukong /root/file3 [root@rhel9-1 ~]# id wujing uid=1006(wujing) gid=1008(wujing) groups=1008(wujing),1006(xiyouji) #修改/root/file3的所属者为wujing,所属组为wujing的基本组 [root@rhel9-1 ~]# chown wujing: /root/file3 [root@rhel9-1 ~]# ll /root/file3 -rw-r--r--. 1 wujing wujing 48 Jul 4 15:59 /root/file3 #修改/root/file3的所属组为xiyouji,所属者不变 [root@rhel9-1 ~]# chown :xiyouji /root/file3 [root@rhel9-1 ~]# ll /root/file3 -rw-r--r--. 1 wujing xiyouji 48 Jul 4 15:59 /root/file3
- 修改文件的某一类人【所属者、所属组、其他人】的权限
#所属者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,但是不能查看内容 | 执行,啥也干不了 |
[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 |
[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
#给其他人中的个别用户或者组设置额外的权限
[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:用户执行指令的时候,先找到指令的可执行文件,执行文件后会变成一个进程,该进程的所属者会变为该程序文件的所属者
#用户执行命令过程图
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:目录文件:任何人在该目录下创建的文件的所属组和目录的所属组保持一致
[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,用户不能够删除别人创建的文件,只能删除自己创建的文件
[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(权限掩码)——可以控制用户创建文件的权限
[root@rhel9-1 test]# umask
0022
普通文件的权限属性:666
目录文件的权限属性:777
6、磁盘管理
6.1 磁盘分区
1、查看磁盘
[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]
#给你的虚拟机添加5g的sata类型的硬盘,10g的scsi的硬盘
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 5G 0 disk
sdb 8:16 0 10G 0 disk
sr0 11:0 1 8.4G 0 rom
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]
#说明: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
#设置磁盘的分区类型为mbr
[root@localhost ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.37.4).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
#设置磁盘分区类型为gpt
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.37.4).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
#使用g设置磁盘分区类型为gpt
Command (m for help): g
Created a new GPT disklabel (GUID: D1D80A36-BCCC-894F-BA0F-A03D2E0EB6D6).
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# fdisk -l
Disk /dev/nvme0n1: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk model: VMware Virtual NVMe Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos #如果是dos则表示为mbr
Disk identifier: 0x986a7d75
Device Boot Start End Sectors Size Id Type
/dev/nvme0n1p1 * 2048 1026047 1024000 500M 83 Linux
/dev/nvme0n1p2 1026048 42969087 41943040 20G 83 Linux
/dev/nvme0n1p3 42969088 47163391 4194304 2G 82 Linux swap / Solaris
Disk /dev/sda: 5 GiB, 5368709120 bytes, 10485760 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8d8441bb
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt #如果是gpt则表示为gpt
Disk identifier: D1D80A36-BCCC-894F-BA0F-A03D2E0EB6D6
#给nvme类型的添加新分区4为扩展分区,再次添加逻辑分区5,大小为3G
#使用fdisk进入磁盘分区的交互式界面
[root@localhost ~]# fdisk /dev/nvme0n1
Command (m for help): n #n表示新建分区
Partition type
p primary (3 primary, 0 extended, 1 free)
e extended (container for logical partitions)
Select (default e): e #表示设置当前新建的为扩展分区
Selected partition 4
First sector (47163392-83886079, default 47163392): #将所剩余的空间全部划分给扩展分区,直接使用回车使用默认值
Last sector, +/-sectors or +/-size{K,M,G,T,P} (47163392-83886079, default 83886079): #将所剩余的空间全部划分给扩展分区,直接使用回车使用默认值
Created a new partition 4 of type 'Extended' and of size 17.5 GiB.
Command (m for help): p #p表示打印当前的分区情况
Disk /dev/nvme0n1: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk model: VMware Virtual NVMe Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x986a7d75
Device Boot Start End Sectors Size Id Type
/dev/nvme0n1p1 * 2048 1026047 1024000 500M 83 Linux
/dev/nvme0n1p2 1026048 42969087 41943040 20G 83 Linux
/dev/nvme0n1p3 42969088 47163391 4194304 2G 82 Linux swap / Solaris
/dev/nvme0n1p4 47163392 83886079 36722688 17.5G 5 Extended
Command (m for help): n #添加新的分区
All primary partitions are in use.
Adding logical partition 5
First sector (47165440-83886079, default 47165440): #一般使用回车键直接使用默认值
Last sector, +/-sectors or +/-size{K,M,G,T,P} (47165440-83886079, default 83886079): +3G #添加3G大小的分区
Created a new partition 5 of type 'Linux' and of size 3 GiB.
Command (m for help): p
Disk /dev/nvme0n1: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk model: VMware Virtual NVMe Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x986a7d75
Device Boot Start End Sectors Size Id Type
/dev/nvme0n1p1 * 2048 1026047 1024000 500M 83 Linux
/dev/nvme0n1p2 1026048 42969087 41943040 20G 83 Linux
/dev/nvme0n1p3 42969088 47163391 4194304 2G 82 Linux swap / Solaris
/dev/nvme0n1p4 47163392 83886079 36722688 17.5G 5 Extended
/dev/nvme0n1p5 47165440 53456895 6291456 3G 83 Linux
Command (m for help): w #保存退出
#给/dev/sda添加2G的主分区,3g的扩展分区,1G的逻辑分区
[root@localhost ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.37.4).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sda: 5 GiB, 5368709120 bytes, 10485760 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8d8441bb
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-10485759, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-10485759, default 10485759): +2G
Created a new partition 1 of type 'Linux' and of size 2 GiB.
Command (m for help): p
Disk /dev/sda: 5 GiB, 5368709120 bytes, 10485760 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8d8441bb
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 4196351 4194304 2G 83 Linux
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): e
Partition number (2-4, default 2):
First sector (4196352-10485759, default 4196352):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (4196352-10485759, default 10485759):
Created a new partition 2 of type 'Extended' and of size 3 GiB.
Command (m for help): n
All space for primary partitions is in use.
Adding logical partition 5
First sector (4198400-10485759, default 4198400):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (4198400-10485759, default 10485759): +1g
Created a new partition 5 of type 'Linux' and of size 1 GiB.
Command (m for help): p
Disk /dev/sda: 5 GiB, 5368709120 bytes, 10485760 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8d8441bb
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 4196351 4194304 2G 83 Linux
/dev/sda2 4196352 10485759 6289408 3G 5 Extended
/dev/sda5 4198400 6295551 2097152 1G 83 Linux
Command (m for help): w
#给gpt类型的/dev/sdb磁盘添加4g的分区
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.37.4).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-20971486, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971486, default 20971486): +4G
Created a new partition 1 of type 'Linux filesystem' and of size 4 GiB.
Command (m for help): p
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: D1D80A36-BCCC-894F-BA0F-A03D2E0EB6D6
Device Start End Sectors Size Type
/dev/sdb1 2048 8390655 8388608 4G Linux filesystem
Command (m for help): w
#查看分区结果
[root@localhost ~]# fdisk -l
Disk /dev/nvme0n1: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk model: VMware Virtual NVMe Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x986a7d75
Device Boot Start End Sectors Size Id Type
/dev/nvme0n1p1 * 2048 1026047 1024000 500M 83 Linux
/dev/nvme0n1p2 1026048 42969087 41943040 20G 83 Linux
/dev/nvme0n1p3 42969088 47163391 4194304 2G 82 Linux swap / Solaris
/dev/nvme0n1p4 47163392 83886079 36722688 17.5G 5 Extended
/dev/nvme0n1p5 47165440 53456895 6291456 3G 83 Linux
Disk /dev/sda: 5 GiB, 5368709120 bytes, 10485760 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8d8441bb
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 4196351 4194304 2G 83 Linux
/dev/sda2 4196352 10485759 6289408 3G 5 Extended
/dev/sda5 4198400 6295551 2097152 1G 83 Linux
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: D1D80A36-BCCC-894F-BA0F-A03D2E0EB6D6
Device Start End Sectors Size Type
/dev/sdb1 2048 8390655 8388608 4G Linux filesystem
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 5G 0 disk
├─sda1 8:1 0 2G 0 part
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 1G 0 part
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 4G 0 part
sr0 11:0 1 8.4G 0 rom
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]
├─nvme0n1p4 259:4 0 1K 0 part
└─nvme0n1p5 259:5 0 3G 0 part
6.2 格式化
#格式化:给对应的分区添加文件系统,文件系统:操作系统用于明确磁盘或者分区上的数据的方法和数据结构,操作系统通过文件系统去读取磁盘上的数据
#windows上面的文件系统类型:FAT(不能存储大于4G的文件),NTFS
#linux上面的文件系统类型:ext系列(ext3,ext4),xfs
#将/dev/sda1格式化为ext3的类型
[root@localhost ~]# mkfs.ext3 /dev/sda1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 524288 4k blocks and 131072 inodes
Filesystem UUID: f65159a6-f1fc-452e-8002-ea27e576407c
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done#将/dev/sda5格式化为ext4的类型
[root@localhost ~]# mkfs.ext4 /dev/sda5
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 6f4bde21-8f17-4256-9fa3-52ace7be0d43
Superblock backups stored on blocks:
32768, 98304, 163840, 229376Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
#将/dev/sdb1格式化为xfs的类型
[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=262144 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=1048576, 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 ~]# blkid
/dev/nvme0n1p5: PARTUUID="986a7d75-05" #未被格式化的输出
/dev/nvme0n1p3: UUID="195a5411-05ef-4a66-8771-baa6848df389" TYPE="swap" PARTUUID="986a7d75-03"
/dev/nvme0n1p1: UUID="7e376bfb-95af-40b9-9ac5-c429dbe2d4c3" TYPE="xfs" PARTUUID="986a7d75-01"
/dev/nvme0n1p2: UUID="6b1c1143-4556-46b9-9d44-0a60c993825e" TYPE="xfs" PARTUUID="986a7d75-02"
/dev/sdb1: UUID="6148248b-7785-410a-ad60-4cb657bf6ef7" TYPE="xfs" PARTUUID="8c7b0864-7a9e-9c42-b740-eb012c90057c" #格式化后的输出
/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/sda5: UUID="6f4bde21-8f17-4256-9fa3-52ace7be0d43" TYPE="ext4" PARTUUID="8d8441bb-05" #格式化后的输出
/dev/sda1: UUID="f65159a6-f1fc-452e-8002-ea27e576407c" SEC_TYPE="ext2" TYPE="ext3" PARTUUID="8d8441bb-01" #格式化后的输出
6.3 挂载
#挂载:将磁盘分区挂载到挂载点目录,将磁盘分区和根目录中的某个目录文件做一个关联,访问该目录就是访问磁盘分区数据
#临时挂载:重启系统后会失效:mount /dev/分区名 挂载点目录
[root@localhost ~]# mkdir -pv /guazai{1..3}
mkdir: created directory '/guazai1'
mkdir: created directory '/guazai2'
mkdir: created directory '/guazai3'
#将/dev/sda1挂载到/guazai1目录
[root@localhost ~]# mount /dev/sda1 /guazai1/
#将/dev/sda5挂载到/guazai2目录
[root@localhost ~]# mount /dev/sda5 /guazai2/
#将/dev/sdb1挂载到/guazai3目录
[root@localhost ~]# mount /dev/sdb1 /guazai3/
#查看具体的挂载信息
[root@localhost ~]# mount | grep guazai
/dev/sda1 on /guazai1 type ext3 (rw,relatime,seclabel)
/dev/sda5 on /guazai2 type ext4 (rw,relatime,seclabel)
/dev/sdb1 on /guazai3 type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
[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 5.7M 344M 2% /run
/dev/nvme0n1p2 20G 4.0G 17G 20% /
/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 92K 1.9G 1% /guazai1
/dev/sda5 974M 24K 907M 1% /guazai2
/dev/sdb1 4.0G 61M 4.0G 2% /guazai3
#将/etc/ssh/sshd_config 复制到/guazai1目录的(复制文件到/dev/sda1分区)
[root@localhost ~]# cp /etc/ssh/sshd_config /guazai1/
[root@localhost ~]# ll /guazai1/
total 20
drwx------. 2 root root 16384 Jul 10 10:46 lost+found
-rw-------. 1 root root 3667 Jul 10 10:58 sshd_config
[root@localhost ~]# mkdir /guazai4
[root@localhost ~]# ll /guazai4/
total 0
#将/dev/sda1挂载到/guazai4
[root@localhost ~]# mount /dev/sda1 /guazai4
[root@localhost ~]# ll /guazai4/
total 20
drwx------. 2 root root 16384 Jul 10 10:46 lost+found
-rw-------. 1 root root 3667 Jul 10 10:58 sshd_config
#如果将一个分区挂载到两个不同的目录,查看挂载信息如下
[root@localhost ~]# mount | grep /dev/sda1
/dev/sda1 on /guazai1 type ext3 (rw,relatime,seclabel)
/dev/sda1 on /guazai4 type ext3 (rw,relatime,seclabel)
[root@localhost ~]# ll /guazai1
total 20
drwx------. 2 root root 16384 Jul 10 10:46 lost+found
-rw-------. 1 root root 3667 Jul 10 10:58 sshd_config
[root@localhost ~]# ll /guazai4/
total 20
drwx------. 2 root root 16384 Jul 10 10:46 lost+found
-rw-------. 1 root root 3667 Jul 10 10:58 sshd_config
[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 5.7M 344M 2% /run
/dev/nvme0n1p2 20G 4.0G 17G 20% /
/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
/dev/sda5 974M 24K 907M 1% /guazai2
/dev/sdb1 4.0G 61M 4.0G 2% /guazai3
[root@localhost ~]##卸载:
# 方式1:umount 分区名
# 方式2:umount 挂载点目录
[root@localhost ~]# umount /dev/sda1
[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 5.7M 344M 2% /run
/dev/nvme0n1p2 20G 4.0G 17G 20% /
/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
/dev/sda5 974M 24K 907M 1% /guazai2
/dev/sdb1 4.0G 61M 4.0G 2% /guazai3
[root@localhost ~]# mount | grep /dev/sda1
/dev/sda1 on /guazai1 type ext3 (rw,relatime,seclabel)
[root@localhost ~]# umount /guazai1
[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 5.7M 344M 2% /run
/dev/nvme0n1p2 20G 4.0G 17G 20% /
/dev/nvme0n1p1 495M 268M 227M 55% /boot
tmpfs 175M 52K 175M 1% /run/user/42
tmpfs 175M 36K 175M 1% /run/user/0
/dev/sda5 974M 24K 907M 1% /guazai2
/dev/sdb1 4.0G 61M 4.0G 2% /guazai3
[root@localhost ~]# mount | grep /dev/sda1
[root@localhost ~]##开机自动挂载
#查看分区的uuid
[root@localhost ~]# blkid
/dev/nvme0n1p3: UUID="195a5411-05ef-4a66-8771-baa6848df389" TYPE="swap" PARTUUID="986a7d75-03"
/dev/nvme0n1p1: UUID="7e376bfb-95af-40b9-9ac5-c429dbe2d4c3" TYPE="xfs" PARTUUID="986a7d75-01"
/dev/nvme0n1p2: UUID="6b1c1143-4556-46b9-9d44-0a60c993825e" TYPE="xfs" PARTUUID="986a7d75-02"
/dev/sdb1: UUID="6148248b-7785-410a-ad60-4cb657bf6ef7" TYPE="xfs" PARTUUID="8c7b0864-7a9e-9c42-b740-eb012c90057c"
/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/sda5: UUID="6f4bde21-8f17-4256-9fa3-52ace7be0d43" TYPE="ext4" PARTUUID="8d8441bb-05"
/dev/sda1: UUID="f65159a6-f1fc-452e-8002-ea27e576407c" TYPE="ext3" PARTUUID="8d8441bb-01"
/dev/nvme0n1p5: PARTUUID="986a7d75-05"#编辑开机自动挂载信息文件,写你自己的uuid,不要复制我的内容
[root@localhost ~]# vim /etc/fstab
UUID=6b1c1143-4556-46b9-9d44-0a60c993825e / xfs defaults 0 0
UUID=7e376bfb-95af-40b9-9ac5-c429dbe2d4c3 /boot xfs defaults 0 0
UUID=195a5411-05ef-4a66-8771-baa6848df389 none swap defaults 0 0
/dev/sda1 /guazai1 ext3 defaults 0 0
UUID=6f4bde21-8f17-4256-9fa3-52ace7be0d43 /guazai2 ext4 defaults 0 0
/dev/sdb1 /guazai3 xfs defaults 0 0
[root@localhost ~]#
#让系统加载/etc/fstab文件并将未挂载的磁盘分区挂载上
[root@localhost ~]# mount -a
[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 5.7M 344M 2% /run
/dev/nvme0n1p2 20G 4.0G 17G 20% /
/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
/dev/sda5 974M 24K 907M 1% /guazai2
/dev/sdb1 4.0G 61M 4.0G 2% /guazai3
7、网络管理
7.1 查看网卡信息
在虚拟机的设置里面查看或者查看虚拟机的右下角有几张网卡,看网卡的模式
看vmware workstation pro程序的菜单栏的编辑
——>虚拟网络编辑器
——>更改设置
——到此根据实际情况调整三个模式的信息
-
桥接模式:和你的物理机的网卡(有线网卡、无线网卡)在一个网段,能否上网取决于物理机,如果桥接不上,虚拟机的该网卡则没有地址;不推荐
-
nat模式:具体所属网段查看虚拟网络编辑器的具体设置,可以自己改,能否上网取决于物理机;该种方式始终有地址,推荐
-
仅主机模式:具体所属网段查看虚拟网络编辑器的具体设置,可以自己改,不能上网,不推荐
注:根据不同的模式确定该网卡的网段,ip地址,掩码,【如果需要上网:网关、dns】
7.2 nmcli
1、网卡的物理接口名称
[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:7b:1f:c4 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.143/24 brd 192.168.168.255 scope global dynamic noprefixroute ens160
valid_lft 1236sec preferred_lft 1236sec
inet6 fe80::20c:29ff:fe7b:1fc4/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens256: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:7b:1f:ce brd ff:ff:ff:ff:ff:ff
altname enp27s0
4: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:7b:1f:d8 brd ff:ff:ff:ff:ff:ff
altname enp19s0
[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:7b:1f:c4 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.143/24 brd 192.168.168.255 scope global dynamic noprefixroute ens160
valid_lft 1145sec preferred_lft 1145sec
inet6 fe80::20c:29ff:fe7b:1fc4/64 scope link noprefixroute
valid_lft forever preferred_lft forever#查看网卡的信息
[root@localhost ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens160 ethernet connected ens160
ens224 ethernet disconnected --
ens256 ethernet disconnected --
lo loopback unmanaged --
#连接网卡设备
[root@localhost ~]# nmcli device connect ens256
Device 'ens256' successfully activated with '62adfe47-43d5-4016-92aa-8e996d5c666d'.
[root@localhost ~]# nmcli device connect ens224
Device 'ens224' successfully activated with '244349e5-d353-4f20-913d-e3df2ed97c7a'.
[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:7b:1f:c4 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.143/24 brd 192.168.168.255 scope global dynamic noprefixroute ens160
valid_lft 1069sec preferred_lft 1069sec
inet6 fe80::20c:29ff:fe7b:1fc4/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens256: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:7b:1f:ce brd ff:ff:ff:ff:ff:ff
altname enp27s0
inet 172.16.10.55/24 brd 172.16.10.255 scope global dynamic noprefixroute ens256
valid_lft 43193sec preferred_lft 43193sec
inet6 fe80::2e8f:a4d4:139f:642/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:7b:1f:d8 brd ff:ff:ff:ff:ff:ff
altname enp19s0
inet 172.24.24.135/24 brd 172.24.24.255 scope global dynamic noprefixroute ens224
valid_lft 1796sec preferred_lft 1796sec
inet6 fe80::dd4b:fff4:dca5:d4d3/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
DEVICE TYPE STATE CONNECTION
ens160 ethernet connected ens160
ens224 ethernet connected ens224
ens256 ethernet connected ens256
lo loopback unmanaged --
[root@localhost ~]# nmcli device disconnect ens224
Device 'ens224' successfully disconnected.
[root@localhost ~]# nmcli device disconnect ens256
Device 'ens256' successfully disconnected.
[root@localhost ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens160 ethernet connected ens160
ens224 ethernet disconnected --
ens256 ethernet disconnected --
lo loopback unmanaged --
[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:7b:1f:c4 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.143/24 brd 192.168.168.255 scope global dynamic noprefixroute ens160
valid_lft 1710sec preferred_lft 1710sec
inet6 fe80::20c:29ff:fe7b:1fc4/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens256: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:0c:29:7b:1f:ce brd ff:ff:ff:ff:ff:ff
altname enp27s0
4: ens224: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:0c:29:7b:1f:d8 brd ff:ff:ff:ff:ff:ff
altname enp19s0
2、网卡的配置信息
#查看网卡配置信息
[root@localhost ~]# nmcli c
NAME UUID TYPE DEVICE
ens160 ab2d6b92-07d5-3e35-a3ae-328e0749444c ethernet ens160
ens224 244349e5-d353-4f20-913d-e3df2ed97c7a ethernet ens224
ens256 62adfe47-43d5-4016-92aa-8e996d5c666d ethernet ens256
#查看当前自动获取的网关地址
[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.144/24 ipv4.gateway 192.168.168.2 ipv4.dns 114.114.114.114 +ipv4.addresses 192.168.168.143/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:7b:1f:c4 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.143/24 brd 192.168.168.255 scope global dynamic noprefixroute ens160
valid_lft 1347sec preferred_lft 1347sec
inet6 fe80::20c:29ff:fe7b:1fc4/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens256: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:0c:29:7b:1f:ce brd ff:ff:ff:ff:ff:ff
altname enp27s0
4: ens224: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:0c:29:7b:1f:d8 brd ff:ff:ff:ff:ff:ff
altname enp19s0
#将当前的配置生效
[root@localhost ~]# nmcli connection up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)
[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:7b:1f:c4 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.168.144/24 brd 192.168.168.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 192.168.168.143/24 brd 192.168.168.255 scope global secondary noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe7b:1fc4/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens256: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:0c:29:7b:1f:ce brd ff:ff:ff:ff:ff:ff
altname enp27s0
4: ens224: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:0c:29:7b:1f:d8 brd ff:ff:ff:ff:ff:ff
altname enp19s0
#给网卡ens160新添加一个配置为peizhi
[root@localhost ~]# nmcli connection add con-name peizhi ifname ens160 type ethernet ipv4.method manual autoconnect yes 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
进入文本图形界面使用上下左右回车,空格键调整配置
#拓展:使用web界面配置网卡参数
[root@localhost ~]# systemctl enable --now cockpit.socket
在windows浏览器上输入:172.16.10.55:9090
7.4 下载网站上的文件
#先看能否上网
[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.r
8、软件包管理
8.1 rpm管理软件包
1、获得rpm的软件包
-
去官网查找,不推荐
#安装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
-
去镜像站点,推荐
-
Rpmfind mirror
#安装产生小火车的程序
[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安装软件包
[root@localhost ~]# yum install httpd
Updating Subscription Management repositories.
Unable to read consumer identityThis 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.
#在/etc/yum.repos.d目录下新建文件:文件扩展名叫repo,内容如下
#使用本地仓库
[root@localhost yum.repos.d]# cat suibian.repo
[app] #仓库标识
name=app #仓库名称
baseurl=file:///mnt/AppStream #仓库的位置
gpgcheck=0 #是否校验软件包,0表示不校验,如果不写该行默认表示需要校验[base]
name=base
baseurl=file:///mnt/BaseOS
gpgcheck=0
[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
#使用网络源
[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指令的用法
#查询所有的仓库:yum repolist
#安装软件包:yum -y install 包名
#升级软件包:yum update 包名
#卸载软件包:yum remove 包名 -y
#查看软件包列表(包含已安装和可以使用当前仓库安装的包):yum list
#查询某个指令是哪个包产生的:yum provides 指令
8.3 软件/程序运行管理
1、运行程序
#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、查看进程运行情况
[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、终止进程
#ctrl+c
#使用killall指令终止进程:killall 程序名称
#使用kill指令终止进程:kill -9 进程的id
4、前台和后台进程转换
#让进程在后台运行:命令 &
#查看后台运行的进程:jobs -l
#将后台进程放到前台执行:fg 编号
#暂停当前的进程:ctrl+z
#让后台暂停的进程继续运行:bg 编号
9、搭建网盘服务、论坛、博客
web客户端软件【浏览器:firefox,谷歌浏览器】
在浏览器上可以输入网址:协议://主机名:端口/目录资源;协议
协议:http(明文传输,默认80),https(加密传输,默认443)
主机名:主机在互联网上的名字——域名,ip地址
web服务器软件【httpd】
安装:yum install httpd php mariadb-server -y
启动httpd程序:systemctl enable --now httpd
关闭防火墙:systemctl disable firewalld
静态网站:服务器网站提供的是index.html这样的静态页面
动态网站:服务器网站提供的是需要php程序解析的页面文件#搭建博客,动态网站——httpd程序,php程序写的页面文件【网络上下载别人写好的】,php程序,数据库(存储用户数据)
[root@localhost ~]# yum install httpd php php-zip php-gd 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@localhost ~]# cp nextcloud-24.0.5.tar.bz2 /var/www/html/
[root@localhost html]# tar -xf nextcloud-24.0.5.tar.bz2
[root@localhost html]# chown -R apache:apache nextcloud
#修改数据库root用户的密码
[root@localhost html]# mysqladmin -uroot password 'root'
#登录数据库
[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 ServerCopyright (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)]> exit
Bye
#在浏览器输入网址:http://192.168.168.143/nextcloud,根据提示操作
解决问题的思路:1、先看搭建成功的安装的程序有哪些,对应什么版本,操作系统的版本2、权限问题3、服务能否被访问