作为一名后端,我经常使用这几个 Linux 命令

开篇

本文来简单介绍下作为一名后端开发, 要在 linux 服务器上进行简单的运维,需要用到的常用命令。

几点声明:

  1. 本文不会涉及 cd 、cp、mv 这些相当入门级的命令

  2. 文中命令涉及的参数都有很多,这里不会展开讲,只要不涉及到写复杂脚本,文中给出的参数基本够用

  3. 很多命令会有 N 多个替代品,这个主要看个人习惯

  4. 个人实践操作的系统版本是 Centos7.x

正文

1. 查看网络端口占用情况

netstat : 用于显示 tcp,udp 的端口和进程等相关情况。

常用参数:

  • -t (tcp) 仅显示tcp相关选项
  • -u (udp)仅显示udp相关选项
  • -n 拒绝显示别名,能显示数字的全部转化为数字
  • -l 仅列出在Listen(监听)的服务状态
  • -p 显示建立相关链接的程序名

语法格式:

netstat -tunlp | grep 端口号

示例:查看 15001 端口的情况

# netstat -tunlp | grep 15001
tcp6       0      0 :::15001                :::*                    LISTEN      29751/java 
2. 查看系统磁盘使用情况

df:可以利用该命令来查看硬盘被占用了多少空间,目前还剩下多少空间等信息。

常用参数:

  • -h:人类可阅读的方式显示

示例:

# df -h

文件系统                                  容量  已用  可用 已用% 挂载点
/dev/mapper/centos_miwifi--r3g--srv-root   99G   18G   82G   18% /
devtmpfs                                  3.9G     0  3.9G    0% /dev
tmpfs                                     3.9G     0  3.9G    0% /dev/shm
tmpfs                                     3.9G   65M  3.9G    2% /run
tmpfs                                     3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/vda1                                1014M  125M  890M   13% /boot
tmpfs                                     799M     0  799M    0% /run/user/0
3. 查看系统性能指标

top: 实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

这个命令可以单独拿出来写一篇文章。这里不展开讲,详情参考 https://blog.youkuaiyun.com/yjclsx/article/details/81508455

示例:

主要的系统参数都能从下面的结果中看出来

# top

top - 20:43:40 up 127 days, 11:13,  4 users,  load average: 0.00, 0.07, 0.09
Tasks: 110 total,   1 running, 109 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.8 us,  0.3 sy,  0.0 ni, 98.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8175412 total,   139096 free,  6063940 used,  1972376 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1707316 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND      
29458 root      20   0 2880512 285764  13784 S   0.7  3.5  47:38.10 java         
29674 root      20   0 2898464 322984  13872 S   0.7  4.0  12:30.21 java         
30060 root      20   0 2904380 403896  14376 S   0.3  4.9  13:24.09 java         
    1 root      20   0  125216   2988   1716 S   0.0  0.0  18:45.95 systemd      
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.83 kthreadd     
4. 应用进程管理

查看系统进程: ps

# ps  -ef | grep java
UID       PID  PPID  C STIME TTY        TIME    CMD
root      1069  1004  0 6月28 ?       01:22:39 java -jar demo.jar

杀死系统进程:kill

kill -9 进程号
5. 远程登录

ssh: 远程控制我们的服务器, 通常我们需要从一台服务器跳到另一台服务器去操作,就需要用到 ssh 工具。

语法格式:

ssh -p 5002 root@127.0.0.1

-p 后面是端口

root 是服务器用户名

127.0.0.1 是服务器 ip

ssh 的默认端口号为22, 一般不需要指定

示例:

# ssh root@192.168.10.11
6. 解压缩

tar: 它有 4 个功能:1) 将多个文件打包为一个文件 2)将文件打包并压缩 3)打包的文件解包 4)将打包压缩的文件解压

参数:

  • -x 从归档中解出文件
  • -c 创建新的文档
  • -z 压缩文件
  • -f 要操作的文件名
  • -v 显示操作过程

示例:

1. 把 1.txt 和 2.txt 文件打包为 12.tar 
# tar -cvf 12.tar 1.txt 2.txt

2. 把 1.txt  2.txt  文件打包并压缩为  12.tar.gz
# tar -zcvf 12.tar 1.txt 2.txt

3. 将 12.tar 解包 
# tar -xvf 12.tar

4. 将 12.tar.gz 解压
# tar -zxvf 12.tar.gz
7. 查看网络情况

ifconfig: 查看本机网络情况

# ifconfig
// 网卡 eth0, ip 172.16.10.187
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.10.187  netmask 255.255.255.0  broadcast 172.16.10.255
        inet6 fe80::5054:ff:fee7:9d2e  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:e7:9d:2e  txqueuelen 1000  (Ethernet)
        RX packets 112721126  bytes 28488869877 (26.5 GiB)
        RX errors 0  dropped 6  overruns 0  frame 0
        TX packets 21713192  bytes 33718998167 (31.4 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ping: 用来测试与目标主机的连通性

# ping www.baidu.com

PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data.
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=52 time=11.1 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=2 ttl=52 time=11.0 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=3 ttl=52 time=11.3 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=4 ttl=52 time=11.4 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=5 ttl=52 time=11.4 ms

telnet: 用于测试当前环境与远程主机的端口之间的防火墙开通与否 (偷懒的命令)

# telnet 172.16.10.187 15001
Trying 172.16.10.187...
Connected to 172.16.10.187.
Escape character is '^]'.

8. 查看日志等文件内容

more

分页显示文件内容, 按空格键显示下一页内容,按 回车键 会显示下一行内容,按 b 键就会往回一页显示

查看 application.yml 文件内容
# more application.yml

查看文件内容,一次显示 5 行
# more -5 application.yml

查看文件内容,从第 5 行开始显示
# more +5 application.yml

tail

显示文件尾部的内容,默认情况下只显示指定文件的末尾 10 行

实时查看 log 文件的尾部
# tail -f service.log

查看log 末尾 200行日志
# tail -200f service.log

less

可以 向前或向后 查看文件内容

按空格键显示下一屏的内容,按回车键显示下一行的内容

按 q 退出

# less 文件名

head

显示文件开头的内容,默认情况下,只显示文件的头10行内容

与 tail 命令刚好相反

cat

显示文件内容,如果文件内容过多,则只会显示最后一页的内容

# cat 文件名

总结

作为一名后端工程师,经常需要我们自己远程到服务器去查看、启动、关闭进程,查看线上日志、排查应用、系统、网络等问题, 而以上的命令基本可以解决我们大多数菜鸟的日常运维操作。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值