该文章Github地址:https://github.com/AntonyCheng/linux-notes【有条件的情况下推荐直接访问GitHub以获取最新的代码更新】
在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template【有条件的情况下推荐直接访问GitHub以获取最新的代码更新】& CSDN文章地址:https://blog.csdn.net/AntonyCheng/article/details/136555245),该模板集成了最常见的开发组件,同时基于修改配置文件实现组件的装载,除了这些,模板中还有非常丰富的整合示例,同时单体架构也非常适合SpringBoot框架入门,如果觉得有意义或者有帮助,欢迎Star & Issues & PR!
上一章:打破“闭源”主义软件基石Linux(6):常用指令(其他)
3.Linux常用指令
3.21.杀死进程kill
简介
命令:kill
作用:杀死进程
说明:kill命令本质上是给进程发送信号。
举例
打开火狐浏览器
在Linux系统中打开Linux系统自带的火狐浏览器。
查看火狐浏览器的进程id
另外一个是浏览器插件,不用管。
使用kill命令结束火狐浏览器进程
kill -s kill 3325
另一种写法是
kill -9 3325
上面两种写法本质上都是发送kill信号给火狐浏览器进程。
3.22.实时查看系统运行情况和健康状态top
简介
命令:top
作用:实时查看系统运行情况和健康状态。
细节
命令与参数
命令名 | 更新时间间隔(秒) | 不显示任何闲置或者僵死进程 | 通过进程id监控单一进程 |
---|---|---|---|
top | -d 间隔秒数 | -i | -p 进程id |
操作控制
按键 | 功能 |
---|---|
P | 默认值,根据CPU使用率排序 |
M | 以内存的使用率排序 |
N | 以PID排序 |
d | 设置数据刷新的时间间隔,单位是秒 |
q | 退出 |
在top命令模式下按h键会显示如下的帮助信息:
查询结果字段解释
第一行信息为任务队列信息
内容举例 | 说明 |
---|---|
12:26:49 | 系统当前时间 |
up 1 day, 13:32 | 系统的运行时间,前面例子表示本机已经运行1天13小时32分钟 |
2 users | 当前登录了2个用户 |
load average:0.00, 0.00, 0.00 | 系统在之前1分钟,5分钟,15分钟的平均负载。 一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。 |
第二行为进程信息
内容举例 | 说明 |
---|---|
Tasks: 95 total | 系统中的进程总数 |
1 running | 正在运行的进程数 |
94 sleeping | 睡眠的进程 |
0 stopped | 正在停止的进程 |
0 zombie | 僵尸进程。如果不是0,需要手工检查僵尸进程 |
第三行为CPU信息
内容举例 | 说明 |
---|---|
Cpu(s):0.1%us | 用户空间占用的CPU百分比,us对应user |
0.1%sy | 内核空间占用的CPU百分比,sy对应system |
0.0%ni | 改变过优先级的进程占用的CPU百分比,ni对应niced |
99.7%id | 空闲CPU的CPU百分比 |
0.1%wa | 等待输入/输出的进程的占用CPU百分比,wa对应IO wait |
0.0%hi | 硬中断请求服务占用的CPU百分比,hi对应hardware IRQ |
0.1%si | 软中断请求服务占用的CPU百分比,si对应software IRQ |
0.0%st | st(Steal time)虚拟时间百分比,也叫被hypervisor偷走的时间。 就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。 |
第四行为物理内存信息
内容举例 | 说明 |
---|---|
2031912 total | 物理内存的总量,单位KB |
70496 free | 空闲的物理内存数量 |
1780676 used | 已经使用的物理内存数量 |
174864 buff/cache | 作为缓冲的内存数量 |
使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是还未纳入内核管控范围的数量。
纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存还给free,因此Linux系统运行过程中free内存会越来越少,但不影响系统运行。因为这表示更多的空闲内存被内核管理了。
第五行为交换分区(swap)信息
内容举例 | 说明 |
---|---|
2097148 total | 交换分区(虚拟内存)的总大小 |
1137824 free | 空闲交换分区的大小 |
959324 used | 已经使用的交互分区的大小 |
58640 avail Mem | 在不交换的情况下,对启动新应用程序可用内存的估计 |
交换分区是一个非常值得关注的地方,如果swap区的used数值持续发生变化那么说明在内核和交换分区之间正在持续发生数据交换,这表示内存不够用了——必须不断把内存中的数据保存到硬盘上。
3.23.查看网络状态netstat
简介
命令:netstat
对应单词:net status
作用:查看网络状态
常用参数:netstat -anp
参数名 | 作用 |
---|---|
-a | 显示所有正在或不在侦听的套接字。 |
-n | 显示数字形式地址而不是去解析主机、端口或用户名。 |
-p | 显示套接字所属进程的PID和名称。 |
说明
netstat命令显示的网络状态信息包含两部分内容:
- 本机和外部的连接状态信息
- 本机系统内部进程间通信信息
网络连接信息
字段含义说明:
进程间通信信息
我们重点关注的是网络连接信息。
使用技巧
分屏查看
netstat -anp | less
根据进程名称查看网络状态
netstat -anp | grep sshd
根据端口号查看网络状态
netstat -anp | grep :22
这里需要注意一下,端口号本身就是一串数字,进程id也是一串数字。那么根据端口号匹配时,很多无关的进程id也会被匹配到,造成大量不必要的干扰。此时给端口号数字前加上冒号就好多了。
3.24.查看命令历史history
命令:history
作用:查看命令历史
用法:
将命令的运行结果写入文件:
- 覆盖写:命令 > 文件路径
- 追加写:命令 >> 文件路径
这里给大家介绍一个非常有意思的文件:/dev/null。它被称为Linux系统的黑洞,因为不管写入多少数据到这个文件,数据都会被销毁。
3.24.打印环境变量的值echo
简介
命令:echo
作用:将数据输出到standard output(标准输出),主要用来打印环境变量的值
关于standard output
本质
如果我们说把一条数据打印到标准输出,那么我们就是在说:打印到命令行窗口。
对比Java代码
System.out.println("Hello World!");
上面这行Java代码将字符串打印到了控制台,而如果我们我们把这段Java程序拿到Linux系统来执行,那么它就打印到standard output了。
输出环境变量
Linux中引用环境变量
在Linux系统中通过 来引用环境变量,例如: 来引用环境变量,例如: 来引用环境变量,例如:PATH
使用echo输出环境变量
3.25.命令帮助
概述
在我们学习一个新的命令时,Linux系统自带的官方命令手册就是非常权威的参考文档。而man命令和info命令都可以调出一个命令对应的文档。区别在于man命令阅读体验略好,info命令文档内容更完整。
用法
man命令
命令:man
对应单词:manual
格式:man [要查询的命令]
控制方式:
按键 | 说明 |
---|---|
空格 | 向下滚动一屏 |
回车 | 向下滚动一行 |
b | 向上滚动一屏 |
q | 退出 |
/关键词 | 搜索关键词 n向下找 N向上找 |
info命令
命令:info
对应单词:information
格式:info [要查询的命令]
控制方式:
按键 | 说明 |
---|---|
Up | Move up one line |
Down | Move down one line |
DEL | Scroll backward one screenful |
SPC | Scroll forward one screenful |
PgUp | Scroll backward in this window |
PgDn | Scroll forward in this window |
其实info命令每次进入的都是同一个文档,只是不同被查询命令进入的是这个文档的不同位置而已。
补充
大部分命令都有–help参数,也起到参考文档作用。
3.26.关机重启
意识
服务器端不要轻易关机!执行关机或重启操作前一定要问自己下面六个问题:
- 我现在操作的具体是哪一台服务器?
- 这台服务器是否是生产服务器?
- 这台服务器可能有哪些人登录?
- 我关机或重启后对其他人是否有影响?
- 这台服务器关机或重启是否会导致其他服务器无法正常工作?
- 我现在的操作是否必须通过关机或重启来实现?
一旦错误的关闭或重启了服务器,有可能会给公司造成无法弥补的损失。如果后果严重是有可能承担法律责任的。
相关命令
命令 | 作用 |
---|---|
sync | 将内存数据保存到硬盘上 |
poweroff | 关机 |
reboot | 重启 |
3.27.换行符\(反斜杠)
符号:\
作用:如果一个命令特别长,那么可以使用反斜杠表示到下一行继续输入
示例:
./configure
–prefix=/usr/local/nginx
–pid-path=/var/run/nginx/nginx.pid
–lock-path=/var/lock/nginx.lock
–error-log-path=/var/log/nginx/error.log
–http-log-path=/var/log/nginx/access.log
–with-http_gzip_static_module
–http-client-body-temp-path=/var/temp/nginx/client
–http-proxy-temp-path=/var/temp/nginx/proxy
–http-fastcgi-temp-path=/var/temp/nginx/fastcgi
–http-uwsgi-temp-path=/var/temp/nginx/uwsgi
–http-scgi-temp-path=/var/temp/nginx/scgi
3.28.给服务器发送请求curl
命令:curl
对应单词:client url
作用:通过命令给服务器发送请求
官方文档说明节选:
curl is a tool to transfer data from or to a server, using one of the supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP). The command is designed to work without user interaction.
从文档中我们可以看到curl命令支持的通信协议非常丰富,其中我们最常用的还是HTTP协议。如果有需要curl可以通过参数详细设置请求消息头。
用法举例:
通过-X参数可以指定请求方式:
curl -X POST [资源的URL地址]