linux作为服务器的常用的系统,其稳定性已经得到较为普遍的认可,在我们开发和系统运维的过程中,经常会用到相关的CLI命令程序(Command Line Interface,因为用linux系统作为服务器,如ubuntu系统,经常会裁剪掉其图形用户窗口的功能,工程师一般都使用过CLI去和系统进行交互)。
第一个向大家介绍的命令为“netstat -tulnp”,netstat是一个网络工具,用以显示当前网络相关的软件和系统网络相关硬件的信息,参数tulnp是个累积的量,t表示显示当前系统所有的tcp sockets(tcp连接),u表示udp连接,n表示显示数字形式的地址和端口,l表示当前监听的端口(一般服务程序启动后会在特定端口监听远程客户端前来访问的连接请求)p代表网络相关的进程。如安装(可以通过sudo apt install mysql-server命令进行安装)并启动(可以通过sudo systemctl start mysql命令进行启动)了mysql服务器后执行命令后会显示mysql进程相关的信息。有时提示需要系统用户才能显示相关信息时,可以在命令前面加上sudo。执行后如下:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1921/mysqld
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 298/sshd
如果只想看mysql服务相关的信息,只需执行sudo netstat -tulnp | grep mysql命令,在linux命令中 ‘|’ 可以理解为pipeline模式,前面的命令作为后面命令的输入。而grep在linux中是一个强大的文本搜索匹配工具,可以将满足条件的文本行输出到终端屏幕上。
第二个向大家介绍的命令示例在前面的基础上综合命令awk(过滤提取,和print结合着用,后面$符号后面跟着个数字表示第几列信息),grep以及xargs(将过滤提取的数据作为参数传递给命令行)的使用。比如在你的机器上,docker的本地镜像有点多,或者你想批处理一次性删除满足某些条件的镜像,可以用如下的命令示例来参考:
docker images | grep "keyword" | awk '{print $3}' | xargs docker rmi -f
以上命令的含义为找到含有keyword相关字眼的docker镜像,并且过滤出第三个参数(即为docker镜像的ID),然后将满足这些条件的docker镜像一次批处理进行删除。
这篇文档后面将持续更新,将常用的命令行汇总一下,以备后需查阅。
Leave a Reply