vim,top,htop和服务控制
1.vim练习
设置显示行号; 移动到第43行,向右移动57个字符,查看括号内的是什么内容;
3.(as most of thoseabove should normally be)
移动到第一行,并向下查找“gzip”这个字符串,它在第几行;
将50行到100行之间的man更改为MAN;
4.gzip 在94行
修改完后,突然反悔了,要全部复原,有哪些方法?
6.按u键,ctrl+r:还原最近一次的撤销操作
到第27行,并且删除15个字符,结果出现的第一个字符是什么?
10. >
1.命令模式–>输入模式
- i:insert,在当前光标所在字符的前面,转为输入模式
- I:大写的i,在当前光标所在行的行首转换为输入模式
- a:append,在当前光标所在字符的后面转换为输入模式
- A:在当前光标所在行的行尾转换为输入模式
- o:open,在当前光标所在行的下方新建一行并转为输入模式
- O:大写的o,不是数字0,在当前光标所在行的上方新建一行并转换为输入模式
2.末行模式关闭文件
- q!—不保存退出
- wq!—强行保存并退出
- x—强行保存并退出
3.命令模式关闭文件
- ZZ
4.移动光标
-
字符移动
-
h—左
-
l—右
-
j—下
-
k—上
5.行内移动
-
0---数字0,跳转到绝对行首 ^---跳转到行首的第一个非空白字符 $---跳转到绝对行尾
-
行间跳转
-
gg--跳转到第一行 G--跳转到最后一行 数字+gg跳转到第#行 数字+G跳转到第#行
6.字符编辑
-
x删除光标所在处的单个字符 #x 删除光标所在处及其向后共#个字符 xp 交换光标所在处的字符及其后面字符的位置
-
删除命令–d
-
d$:表示删除当前光标所在位置到行尾的内容 d^:表示删除当前光标所在位置到第一个行首非空白字符位置的内容 d0:表示删除当前光标所在位置到绝对行首的内容 #d跳转符:删除跳转符指定范围内的#个,例如 #dw #de #db dd:删除当前光标所在行整行 #dd:删除包括当前光标所在行在内的#行 D:删除当前光标所在行的内容,保留空行 1,5d:表示删除第1到第5行
-
范围表示方法
-
表示方法 意义 . 光标所在当前行 $ 最后一行 +#(数字) 光标所在行往后#行 $-# 倒数第#行 % 全文
7.复制命令—yy
8.粘贴命令–p
- 小写p
- 若删除或复制的为整行内容,则粘贴至光标所在行的下方
- 若删除或复制的为非整行,则粘贴至光标所在字符的后面
- 大写p
- 若删除或复制的为整行内容,则粘贴至光标所在行的上方
- 若删除或复制的为非整行,则粘贴至光标所在字符的前面
9.替换命令–r
- R:替换模式,替换多个字符
- r#:将当前光标的字符替换为#,这里的#可以是任何字符
10.撤销命令–u
- u:撤销前一次的编辑操作,连接u命令可以撤销此前的n次编辑操作
- ctrl+r:还原最近一次的撤销操作
11.可视化模式:可视化模式下可以对选取的内容进行前面讲的所有编辑操作
- v:按字符选取内容
- V:按矩形块(行)选取内容
12.文本查找
- /+所用单词:从上往下查找匹配的内容
- n:从上往下查找匹配到的内容的下一条
- N:从下往上查找匹配到的内容的下一条
13.查找并替换:s命令只能在末行模式下使用
- 1,5 s/abc/def/g:表示把第一行到第五行的所有abc替换为def
14.末行模式下显示或取消显示行号
- set nu:显示行号
- set nonu:取消显示行号
2.监控进程活动
2.1 io负载
1.负载,有多少任务在等着CPU调度运行的情况,需要等待的任务
查看CPU和内存
[root@SYL2 ~]# grep 'model name' /proc/cpuinfo
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
[root@SYL2 ~]# grep 'processor' /proc/cpuinfo //看CPU编号
processor : 0
processor : 1
processor : 2
processor : 3
[root@SYL2 ~]# nproc //CPU个数
4
[root@SYL2 ~]#
[root@SYL2 ~]# ls /proc/cpuinfo //CPU在哪个位置
/proc/cpuinfo
[root@SYL2 ~]# ls /proc/meminfo //内存路径
/proc/meminfo
[root@SYL2 ~]#
2…Linux中可以使用top
、uptime
显示负载平均值的情况。
[root@SYL2 ~]# uptime
16:47:06 up 2:48, 2 users, load average: 1.49, 0.89, 0.55
[root@SYL2 ~]#
oad average:1分钟,5分钟,15分钟
load average //CPU队列中等待运行的任务的个数
2.2实时进程监控
1.top
用于实现全屏动态显示系统信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2lBkj0t2-1657286822599)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401165654895.png)]
注明:
-
cpu(s):多颗CPU平均负载,按1键显示每颗CPU平均负载。 us //表示用户空间; sy //表示内核空间; ni //表示调整nice值,CPU占用的比率; id //表示空闲百分比; wa //表示等待IO完成所占据的时间百分比; hi //表示hard interrupt,硬件中断占据的时间百分比; si //表示软中断占据的时间百分比; st //表示steal,被虚拟化技术偷走的时间(比如运行虚拟机) PR //优先级 NI //nice值 VIRT //虚拟内存集 RES //常驻内存集 SHR //共享内存大小 S //进程状态 //top命令交互式子命令: M //根据驻留内存大小进行排序,默认根据CPU百分比排序 P //根据CPU使用百分比进行排序 T //根据累计时间(占据CPU时长)进行排序 l //是否显示平均负载和启动时间 t //是否显示进程和CPU状态相关信息 m //是否显示内存相关信息 c //是否显示完整的命令行信息 q //退出top命令 k //终止某个进程 1 //显示所有CPU的信息 s //修改刷新时间间隔 top - 16:49:12 up 2:50, 2 users, load average: 1.01, 0.96, 0.63 //按小写的l显示top这两行没有,在按下l又回来了 Tasks: 177 total, 1 running, 176 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 1.6 sy, 0.0 ni, 97.8 id, 0.0 wa, 0.3 hi, 0.1 si, 0.0 st //按小写t3遍去除,在按一遍回来 MiB Mem : 1785.4 total, 1218.2 free, 250.1 used, 317.1 buff/cache MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 1381.2 avail Mem //按小写m按3遍消失,在按一遍显示
-
按小l
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YLBvuzOm-1657286822600)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401170528745.png)]
-
按t
-
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yKRGhMd6-1657286822601)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401170603048.png)]
-
按m
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qgvENNas-1657286822602)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401170616052.png)]
-
按大写的P给CPU排序
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rWOqsHpm-1657286822603)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401165821092.png)]
-
按M给内存使用率排序
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TwEqM9Tr-1657286822604)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401165901781.png)]
-
按T给时间排序
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rzDTYJ9h-1657286822605)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401165923349.png)]
-
按c显示命令详细
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ONwUaAgF-1657286822606)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401170057742.png)]
-
按h看帮助文档
-
Help for Interactive Commands - procps-ng 3.3.15 Window 1:Def: Cumulative mode Off. System: Delay 3.0 secs; Secure mode Off. Z,B,E,e Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scale l,t,m Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info 0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix mode f,F,X Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width L,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/right R,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justify c,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justify x,y . Toggle highlights: 'x' sort field; 'y' running tasks z,b . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y') u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criteria n,#,^O . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s) C,... . Toggle scroll coordinates msg for: up,down,left,right,home,end k,r Manipulate tasks: 'k' kill; 'r' renice d or s Set update interval W,Y Write configuration file 'W'; Inspect other output 'Y' q Quit ( commands shown with '.' require a visible task display window ) Press 'h' or '?' for help with Windows, Type 'q' or <Esc> to continue
-
按大写Z切换颜色,在按a换颜色,在按回车,q退出
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cf6McBf2-1657286822608)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401171442996.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-APfMfq3L-1657286822609)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401171629913.png)]
2.用htop
用于实现全屏动态显示系统信息
2.1 安装htop
[root@SYL2 ~]# yum -yq install epel-release
Failed to set locale, defaulting to C.UTF-8
Installed:
epel-release-8-11.el8.noarch
[root@SYL2 ~]# yum -yq install htop
Failed to set locale, defaulting to C.UTF-8
Importing GPG key 0x2F86D6A1:
Userid : "Fedora EPEL (8) <epel@fedoraproject.org>"
Fingerprint: 94E2 79EB 8D8F 25B2 1810 ADF1 21EA 45AB 2F86 D6A1
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
Installed:
htop-3.0.5-1.el8.x86_64
[root@SYL2 ~]# rpm -qa|grep htop
htop-3.0.5-1.el8.x86_64
[root@SYL2 ~]#
2.2 进入htop
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PxS0ZG80-1657286822609)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401172630484.png)]
help 帮助文档 ---h
setup 设置 ---s
search 搜索---/
filter 过滤---\
tree 进程树---t
sortby 排序
nice -
nice +
kill 杀死进程---k
quit 退出 ---q
-
h查看帮助文档
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5iE3qSyv-1657286822610)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401173959098.png)]
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cxulmM4d-1657286822611)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401175313094.png)]
-
鼠标点击serch,按/ 输入你需要的命令
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6VVxtl9H-1657286822612)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401173616765.png)]
-
\
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VsJozrC5-1657286822613)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220401174851427.png)]
3.服务控制
3.1systemd的简介
-
systemd
是用户空间的第一个应用程序 -
[root@SYL2 ~]# ll /sbin/init lrwxrwxrwx. 1 root root 22 Feb 11 23:37 /sbin/init -> ../lib/systemd/systemd [root@SYL2 ~]# ll /lib/systemd/systemd //lib/systemd/systemd是系统启动的第一个程序 -rwxr-xr-x. 1 root root 1601320 Feb 11 23:37 /lib/systemd/systemd [root@SYL2 ~]# pstree systemd-+-NetworkManager---2*[{NetworkManager}] |-VGAuthService |-agetty
-
init程序的类型:
- SysV风格:init(centos5),实现系统初始化时,随后的初始化操作都是借助于脚本来实现的(系统启动特别慢)
- 特点:要等第一个进程执行完才执行下个
- 配置文件:/etc/inittab
-
Upstart风格:init(centos6),由ubuntu研发的,通过总线形式以接近于并行的方式工作,效率比SysV高
- 配置文件:/etc/inittab,/etc/init/*.conf
-
Systemd风格:systemd程序(centos7)
-
特点:启动速度比SysV和Upstart都快
-
配置文件
/usr/lib/systemd/system,/etc/systemd/system
[root@SYL2 ~]# ls /usr/lib/systemd/system NetworkManager-dispatcher.service NetworkManager-wait-online.service NetworkManager.service
- 不需要通过任何脚本来启动服务,只启动一个systemd进程就可以,不需要创建进程,销毁进程(脚本里面)
- systemd不真正在系统初始化时去启动任何一个服务
- 只要服务没用到,它告诉你启动了,实际上并没有启动。仅当第一次去访问时才会真正启动服务
-
-
[root@SYL2 ~]# ll /etc/inittab -rw-r--r--. 1 root root 490 Feb 11 23:37 /etc/inittab [root@SYL2 ~]# cat /etc/inittab //以前版本是控制系统启动,进入那些模式 0 关机 1 单用户,用来系统维护,破解密码 2,3,4 多用户模式 5 图形模式 6 重启 init 6 重启
3.2 systemd的核心概念Unit
1.特性
-
//基于socket的激活机制: socket与服务程序分离,当有人去访问时才会真正启动服务,以此来实现按需激活进程与服务的并行启动 //基于bus的激活机制: 所有使用dbus实现进程间通信的服务,可以在第一次被访问时按需激活 //基于device的激活机制: 支持基于device激活的系统服务,可以在特定类型的硬件接入到系统中时,按需激活其所需要用到的服务 //基于path的激活机制: 某个文件路径变得可用,或里面出现新文件时就激活某服务 //系统快照: 保存各unit的当前状态信息于持久存储设备中,必要时能自动载入 //向后兼容sysv init脚本
2.systemd
使用unit
的概念来管理服务,这些unit
表现为一个个配置文件。
systemd
通过对这些配置文件进行标识和配置达到管理服务的目的:
-
//这些unit文件中主要包含了系统服务、监听socket、保存的系统快照 //及其它与init相关的信息保存至以下目录: /usr/lib/systemd/system /run/systemd/system /etc/systemd/system
-
unit
类型 -
Service unit
文件扩展名为.service,用于定义系统服务-
Target unit //文件扩展名为.target,用于模拟实现“运行级别” runlevel0.target和poweroff.target //关机 runlevel1.target和rescue.target //单用户模式 runlevel2.target和multi-user.target //对于systemd来说,2/3/4级别没有区别 runlevel3.target和multi-user.target //对于systemd来说,2/3/4级别没有区别 runlevel4.target和multi-user.target //对于systemd来说,2/3/4级别没有区别 runlevel5.target和graphical.target //图形级别 runlevel6.target和reboot.target //重启 Device unit //文件扩展名为.device,用于定义内核识别的设备 Mount unit //文件扩展名为.mount,用于定义文件系统挂载点 Socket unit //文件扩展名为.socket,用于标识进程间通信用的socket文件 Snapshot unit //文件扩展名为.snapshot,用于管理系统快照 Swap unit //文件扩展名为.swap,用于标识swap设备 Automount unit //文件扩展名为.automount,用于实现文件系统的自动挂载点 Path unit //文件扩展名为.path,用于定义文件系统中的一个文件或目录
-
-
不兼容特性
-
//systemctl命令固定不变 //非由systemd启动的服务,systemctl无法与之通信 //只有已经启动的服务在级别切换时才会执行stop,在centos6以前是所有S开头的服务全部start,所有K开头的服务全部stop //系统服务不会读取任何来自标准输入的数据流 //每个服务的unit操作均受5分钟超时时间限制
3.3 systemctl
管理服务
1.常用命令
-
systemctl COMMAND name[.service|.target] //.service可以省略 start name.service //启动服务 stop name.service //停止服务 restart name.service //重启服务 status name.service //查看服务状态 reboot //重启
-
运行邮箱服务
-
[root@SYL2 ~]# ss -antl //查看进程,只有个远程 State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 [::]:22 [::]:* [root@SYL2 ~]#
-
[root@SYL2 ~]# yum -yq install postfix //安装邮箱服务 Failed to set locale, defaulting to C.UTF-8 Installed: libicu-60.3-2.el8_1.x86_64 postfix-2:3.5.8-4.el8.x86_64 [root@SYL2 ~]# rpm -qa|grep postfix postfix-3.5.8-4.el8.x86_64 [root@SYL2 ~]# [root@SYL2 ~]# rpm -qa|grep postfix postfix-3.5.8-4.el8.x86_64 [root@SYL2 ~]# systemctl status postfix.service //查看邮箱状态 ● postfix.service - Postfix Mail Transport Agent Loaded: loaded (/usr/lib/systemd/system/postfix.service> Active: inactive (dead) [root@SYL2 ~]# systemctl start postfix //重启邮箱服务 [root@SYL2 ~]# systemctl status postfix //查看服务 ● postfix.service - Postfix Mail Transport Agent Loaded: loaded (/usr/lib/systemd/system/postfix.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2022-04-01 18:55:34 CST; 6s ago Process: 686748 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS) Process: 686746 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS) Process: 686718 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS) Process: 686692 ExecStartPre=/usr/sbin/restorecon -R /var/spool/postfix/pid/master.pid (code=exited, status=255) Main PID: 686840 (master) Tasks: 3 (limit: 11175) Memory: 5.2M CGroup: /system.slice/postfix.service ├─686840 /usr/libexec/postfix/master -w ├─686841 pickup -l -t unix -u └─686842 qmgr -l -t unix -u Apr 01 18:55:33 SYL2 systemd[1]: Starting Postfix Mail Transport Agent... Apr 01 18:55:33 SYL2 restorecon[686692]: /usr/sbin/restorecon: lstat(/var/spool/postfix/pid/master.pid) failed: No such file or dir> Apr 01 18:55:34 SYL2 postfix/master[686840]: daemon started -- version 3.5.8, configuration /etc/postfix Apr 01 18:55:34 SYL2 systemd[1]: Started Postfix Mail Transport Agent. ~ ~ ~ ~ lines 1-19/19 (END) [root@SYL2 ~]# systemctl restart postfix //重启邮箱服务 [root@SYL2 ~]# systemctl stop postfix //停止邮箱服务 [root@SYL2 ~]# systemctl status postfix ● postfix.service - Postfix Mail Transport Agent Loaded: loaded (/usr/lib/systemd/system/postfix.service; disabled(开机不自启);> Active: inactive (dead)死亡 Apr 01 18:59:41 SYL2 systemd[1]: Stopping Postfix Mail Transport Agen> Apr 01 18:59:41 SYL2 systemd[1]: postfix.service: Succeeded. Apr 01 18:59:41 SYL2 systemd[1]: Stopped Postfix Mail Transport Agent. Apr 01 18:59:41 SYL2 systemd[1]: Starting Postfix Mail Transport Agen> Apr 01 18:59:42 SYL2 restorecon[696361]: /usr/sbin/restorecon: lstat(> Apr 01 18:59:42 SYL2 postfix/master[696460]: daemon started -- versio> Apr 01 18:59:42 SYL2 systemd[1]: Started Postfix Mail Transport Agent. Apr 01 19:00:02 SYL2 systemd[1]: Stopping Postfix Mail Transport Agen> Apr 01 19:00:02 SYL2 systemd[1]: postfix.service: Succeeded. Apr 01 19:00:02 SYL2 systemd[1]: Stopped Postfix Mail Transport Agent. [root@SYL2 ~]# [root@SYL2 ~]# systemctl enable postfix //设置邮箱开机自启 Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service. [root@SYL2 ~]# systemctl status postfix ● postfix.service - Postfix Mail Transport Agent Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled(开机自启); > Active: inactive (dead) Apr 01 18:59:41 SYL2 systemd[1]: Stopping Postfix Mail Transport Agen> Apr 01 18:59:41 SYL2 systemd[1]: postfix.service: Succeeded. Apr 01 18:59:41 SYL2 systemd[1]: Stopped Postfix Mail Transport Agent. Apr 01 18:59:41 SYL2 systemd[1]: Starting Postfix Mail Transport Agen> Apr 01 18:59:42 SYL2 restorecon[696361]: /usr/sbin/restorecon: lstat(> Apr 01 18:59:42 SYL2 postfix/master[696460]: daemon started -- versio> Apr 01 18:59:42 SYL2 systemd[1]: Started Postfix Mail Transport Agent. Apr 01 19:00:02 SYL2 systemd[1]: Stopping Postfix Mail Transport Agen> Apr 01 19:00:02 SYL2 systemd[1]: postfix.service: Succeeded. Apr 01 19:00:02 SYL2 systemd[1]: Stopped Postfix Mail Transport Agent. lines 1-14/14 (END) [root@SYL2 ~]# systemctl disable postfix //开机不自启 Removed /etc/systemd/system/multi-user.target.wants/postfix.service. [root@SYL2 ~]#
3.4 CentOS6以前版本的系统控制服务方式
-
service NAME start //启动NAME服务 service NAME stop //停止NAME服务 service NAME status //查看NAME服务状态 service NAME restart //重启NAME服务 chkconfig --add NAME //把NAME脚本纳入管理并设置开机自启 chkconfig NAME on //设置开机自启 chkconfig NAME off //设置开机不自动启动
ice: Succeeded.
Apr 01 19:00:02 SYL2 systemd[1]: Stopped Postfix Mail Transport Agent.
lines 1-14/14 (END)
[root@SYL2 ~]# systemctl disable postfix //开机不自启
Removed /etc/systemd/system/multi-user.target.wants/postfix.service.
[root@SYL2 ~]#
#### 3.4 CentOS6以前版本的系统控制服务方式
- ```basic
service NAME start //启动NAME服务
service NAME stop //停止NAME服务
service NAME status //查看NAME服务状态
service NAME restart //重启NAME服务
chkconfig --add NAME //把NAME脚本纳入管理并设置开机自启
chkconfig NAME on //设置开机自启
chkconfig NAME off //设置开机不自动启动