文章目录
- Linux最常用的几个系统管理命令
- 查看网络信息的原初 ifconfig
- 默认无参数使用
- -s显示短列表
- 配置IP地址
- 修改MTU
- 启动关闭网卡
- 显示进程状态 ps
- 语法
- 几个实例
- 默认情况
- 显示所有进程
- 查找特定进程信息
- 任务管理器的 top
- 常规使用
- 显示完整命令
- 设置信息更新次数
- 设置信息更新时间
- 显示指定的进程信息
- 指定用户的进程信息
- 更多信息
Linux最常用的几个系统管理命令
仅个人想法,会持续不间断更新和改进。
看看网络,确认一下目前的状态,看看有没有异常进程。
查看网络信息的原初 ifconfig
Linux ifconfig
命令用于显示或设置网络设备,在调试或调优的时间经常使用。
官方定义为:
ifconfig - configure a network interface
对于这个命令,一般只要掌握如何查看,如何设置IP地址基本就可以了,对于网络钻的比较深的,还需要更多一些参数。
使用方法为:
# 显示
$ ifconfig [-v] [-a] [-s] [interface]
# 设置
$ ifconfig [-v] interface [aftype] options | address ...
一些参数的含义为:
-a
:显示所有网卡的状态,即使是down的状态-s
:显示一个短列表interface mtu N
设置最大传输单元【需要管理员权限】netmask addr
:设置掩码地址【需要管理员权限】interface up
激活网卡【需要管理员权限】interface down
关闭网卡【需要管理员权限】interface hw ether xx.xx.xx.xx.xx.xx
设置MAC地址【需要管理员权限】
默认无参数使用
如果不指定任何参数,直接显示当前活动的接口,如下:
$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.123 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 xxxx::xxxx:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x20<link>
inet6 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x0<global>
ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 5634431 bytes 4994127142 (4.6 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 858051 bytes 109858013 (104.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0xc7320000-c733ffff
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.6.123 netmask 255.255.255.0 broadcast 192.168.6.255
inet6 xxxx::xxxx:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x20<link>
ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 1547215 bytes 92862867 (88.5 MiB)
RX errors 0 dropped 6 overruns 0 frame 0
TX packets 3230 bytes 922051 (900.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 219608 bytes 105943591 (101.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 219608 bytes 105943591 (101.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
其中一般希望看到的信息包括:
- inet:为IP地址
- ether:为MAC地址
- MTU:最大传输单元
不加任何参数只会显示已经配置并且活跃的网卡信息,如果使用ifconfig -a
就可以显示全部的网卡状态了,即使有些网卡是down的状态。
亦或者指定一个interface,比如上面的eth1,则只输出这个网卡的信息,如下:
$ ifconfig eth1
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.6.123 netmask 255.255.255.0 broadcast 192.168.6.255
inet6 xxxx::xxxx:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x20<link>
ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 1547215 bytes 92862867 (88.5 MiB)
RX errors 0 dropped 6 overruns 0 frame 0
TX packets 3230 bytes 922051 (900.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
-s显示短列表
如果只想看到MTU以及数据包的状态,可以用该参数,如下:
$ ifconfig -s
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 5665450 0 0 0 867639 0 0 0 BMRU
eth1 1500 3489187217 0 101054 0 501260400 0 0 0 BMU
lo 65536 219708 0 0 0 219708 0 0 0 LRU
输出信息主要包含了MTU值,发送及接收的数据情况。
配置IP地址
如下对eth0网卡配置IP地址、掩码以及广播地址,当然可以分布操作
# 给eth0配置IP地址
$ ifconfig eth0 192.168.1.123
# 给eth0配置IP地址和子网掩码
$ ifconfig eth0 192.168.1.123 netmask 255.255.255.0
# 给eth0配置IP地址、子网掩码还有广播地址
$ ifconfig eth0 192.168.1.123 netmask 255.255.255.0 broadcast 192.168.1.255
修改MTU
在某些情况下可能需要修改MTU值,比如增到到MTU为9000,如下:
$ ifconfig eth1
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.6.123 netmask 255.255.255.0 broadcast 192.168.6.255
inet6 xxxx::xxxx:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x20<link>
ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 1547215 bytes 92862867 (88.5 MiB)
RX errors 0 dropped 6 overruns 0 frame 0
TX packets 3230 bytes 922051 (900.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# 修改MTU
$ ifconfig eth1 MTU 9000
$ ifconfig eth1
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9000
inet 192.168.6.123 netmask 255.255.255.0 broadcast 192.168.6.255
inet6 xxxx::xxxx:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x20<link>
ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 1547215 bytes 92862867 (88.5 MiB)
RX errors 0 dropped 6 overruns 0 frame 0
TX packets 3230 bytes 922051 (900.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
已经看到输出的信息已经把mtu更新为了9000.
这个值对网络传输影响很大。
启动关闭网卡
启动关闭主要的应用场景为重新设置了IP地址,或者暂时对某个网卡进行操作。
# 关闭eth0
$ ifconfig eth0 down
# 启动eth0
$ ifconfig eth0 up
不过需要注意的是
- 很多的设置操作都需要管理员权限;
- 很多操作在重启后设置都会还原,如果需要永久设置,需要更改network的一些配置文件;
- 这个程序基本被淘汰了,已经不在更新,所有的操作或者用法均可以通过
ip
来搞定。等明天~。
显示进程状态 ps
ps
命令是“process status”的缩写,类似于 windows 的任务管理器
ps
命令用于显示当前系统的进程状态。
通常搭配kill
指令随时中断、删除不必要的程序。
同时呢,ps
命令是非常强大的进程查看命令,可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分【Windows】任务管理器的信息都是可以通过执行该命令得到的。
语法
$ ps [参数]
常用参数
- -A 列出所有的行程
- -w 显示加宽可以显示较多的资讯
- -au显示较详细的资讯
- -aux显示所有包含其他使用者的行程
其中aux的输出信息如下所示:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- USER: 行程拥有者
- PID: pid
- %CPU: 占用的 CPU 使用率
- %MEM: 占用的内存使用率
- VSZ: 占用的虚拟内存大小
- RSS: 占用的内存大小
- TTY: 终端的minor装置号码
- STAT: 该行程的状态:
- D: 无法中断的休眠状态 (通常 IO 的进程)
- R: 正在执行中
- S: 静止状态
- T: 暂停执行
- Z: 不存在但暂时无法消除
- W: 没有足够的内存分页可分配
- <: 高优先序的行程
- N: 低优先序的行程
- L: 有内存分页分配并锁在内存内 (实时系统或捱A I/O)
- START: 行程开始时间
- TIME: 执行的时间
- COMMAND:所执行的指令
几个实例
默认情况
$ ps
PID TTY TIME CMD
44965 pts/0 00:00:00 bash
56519 pts/0 00:00:00 ps
什么参数都不跟的话,基本输出没啥用处。
显示所有进程
通常情况下,最常用的为把所有进程显示出来:
$ ps -aux
$ ps -A
把所有进程显示出来,并输出到ps.txt文件:
$ ps -aux > ps.txt
查找特定进程信息
大部分情况下,希望查找有问题的进程或者感兴趣的进程,使用管道如下:
$ ps -aux | grep ssh
root 1303 0.0 0.0 82468 1204 ? Ss Apr17 0:00 /usr/sbin/sshd
root 3260 0.0 0.0 52864 572 ? Ss Apr17 0:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
root 24188 0.0 0.0 112652 956 pts/0 S+ 11:39 0:00 grep --color=auto ssh
任务管理器的 top
top
命令比较像Windows里面的任务管理器,提供一个动态实时的系统状态检测,可以检测实时显示内存、CPU、进程的运行状态,主要在分析系统负载的时候比较常用。
官方定义为:
top - display Linux processes
状态默认实时显示,间隔为1秒。
使用的方法如下(选项超级多,其实不复杂):
$ top -bcHiOSs -d secs -n max -u|U user -p pid -o fld -w [cols]
参数说明:
-d
: 改变显示的更新速度,或是在交互式( interactive command)按s
或d
-c
: 切换显示模式,共有两种模式,一是只显示执行程序的名称,另一种是显示完整的路径与名称;这个在定位执行命令的时候较常用-n
: 更新的次数,完成后将会退出-b
: 批模式操作,主要用来将top
的结果输出到其他程序或者文件;-i
: 不显示任何闲置不使用CPU的进程-s
: 安全模式,取消交谈式指令-pN1 -pN2 ... or -pN1,N2,N3 ...
:指定PID模式,仅仅监控N1,N2等信息-u/U user
:仅仅关注user的进程情况
常规使用
在输入top
命令以后,如果希望退出,可以数据q或者直接Ctrl+c即可。
还有一个情况,可以输入h进行帮助查询,用于进一步的交互操作。
通常情况下,最常用的就是输入top
命令,不加任何参数,这种情况下最希望看到的就是最占用系统资源的进程。
如下所示:
$ top
top - 22:23:20 up 461 days, 7:52, 18 users, load average: 1.82, 1.57, 1.45
Tasks: 773 total, 1 running, 768 sleeping, 0 stopped, 4 zombie
%Cpu(s): 10.1 us, 6.5 sy, 0.0 ni, 83.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 32664832 total, 668020 free, 15683576 used, 16313236 buff/cache
KiB Swap: 16449532 total, 13409776 free, 3039756 used. 15787188 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7965 dbus 20 0 76092 8456 1704 S 7.5 0.0 40307:04 dbus-daemon
23460 root 20 0 397640 5560 3248 S 4.2 0.0 4738:26 accounts-daemon
4321 user 20 0 821828 104812 4584 S 3.2 0.3 7380:28 gsd-color
此时可以看到系统的基本信息,可以看到分为三个部分:
- 汇总信息:可以看到系统的运行状态,总的负载信息,运行总的任务,登陆的用户,CPU及内存的状态等等。
- Fields/Columns 头信息:用来标记接下来所有进程对应的信息
- Task 区域:每个运行程序的各种信息,在Fields/Columns有对应的,比如PID、用户、占用CPU、MEM及对应的命令等等。
显示完整命令
$ top -c
7965 dbus 20 0 76092 8456 1704 S 7.5 0.0 40307:04 /usr/bin/dbus-daemon
此时省去其他信息,可以看到dbus-daemon增加了路径信息为**/usr/bin/dbus-daemon**
设置信息更新次数
这个命令用于定量显示,比如刷新10次后退出,如下:
$ top -n 10
设置信息更新时间
如果觉得太长或者太短,可以通过-d
来设置,或者在交互模式下输入d
或者s
来设置。
$ top -d 0.8 # 设置为0.8秒
$ top -d 6 # 设置为6秒
显示指定的进程信息
如果仅仅对某个进程感兴趣,如下指定PID即可。
$ top -p 1234 # 对进程1234感兴趣
指定用户的进程信息
作为管理员or朋友,或许对某个用户感兴趣,比如user,此时可以仅仅显示该用户的进程信息
$ top -u user
更多信息
Hi,XDJM们,更多信息欢迎移步我的主页、CSDN或微信公众号letsProgramming.
- 🐱 github
- 🏠 Homepage https://shaoguangleo.github.io
- CSDN CSDN http://blog.csdn.net/shaoguangleo
- 微信公众号:letsProgramming