写在前面
想必,通过《【小白几分钟】几分钟了解Linux常用基本命令》这一篇文章,大家应该对Linux系统的操作有了一个大致的了解,如果还没有看过基础命令篇的胖友们,可以点进去阅览一下,并且对应着命令敲一遍
接下来,打算跟大家介绍一下Linux中的一些进阶命令,该篇能让你对Linux系统环境有个更好的认知,话不多说,进入正题
Linux常用进阶命令
-
df
功能描述:查看磁盘空间
语法:df
[选项]
常用选项:
-h 以高可读性显示
示例:
[root@vultr ~]# df -h
Filesystem Size Used Avail Use% Mounted on
//文件系统 容量 已使用 可用 已用% 挂载点
devtmpfs 463M 0 463M 0% /dev
tmpfs 494M 20K 494M 1% /dev/shm
tmpfs 494M 50M 444M 11% /run
tmpfs 494M 0 494M 0% /sys/fs/cgroup
/dev/vda1 25G 4.0G 20G 17% /
tmpfs 99M 0 99M 0% /run/user/0
-
free
功能描述:查看内存使用情况
语法:free
[选项]
常用选项:
-m 以MB为单位显示内存使用情况
示例:
[root@vultr ~]# free -m
total used free shared buffers cached
#内存总数 已使用数量 空闲数量 当前废弃不用 输入缓存数量 输出缓存数量
Mem: 2016 1973 42 0 163 1497
-/+ buffers/cache: 312 1703#真实剩余内存可为1703MB
Swap: 4094 0 4094
#swap交换内存,当系统真实内存不够用的时候可以临时用磁盘空间来充当内存,一般大小为真实内存的2-4倍
-
lsblk
功能描述:用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,cd-ROM等等。
语法:lsblk
示例:
[root@Jobs ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 25G 0 disk
└─vda1 253:1 0 25G 0 part /
//字段含义
NAME:这是块设备名
MAJ:MIN:本栏显示主要和次要设备号
RM:本栏显示设备是否可移动设备。RM值等于1,这说明他们是可移动设备
SIZE:本栏列出设备的容量大小信息
RO:该项表明设备是否为只读。RO值为0,不是只读的
TYPE:本栏显示块设备是否是磁盘或磁盘上的一个分区
MOUNTPOINT:设备挂载的挂载点
-
mount
功能描述:用于加载文件系统到指定的挂载点
语法:mount
设备原始地址(设备原始地址都统一在/dev
下) 需挂载的位置路径
示例:
[root@Jobs ~]# mkdir -p /mnt/cdrom //创建一个挂载点,最好在“/mnt/”下创建
[root@Jobs ~]# ls /mnt
cdrom
[root@Jobs ~]#mount /dev/sr0 /mnt/cdrom //挂载到cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only //挂载成功后便可正常使用
[root@Jobs ~]#umount /mnt/cdrom //卸载已挂载的文件
-
|
功能描述:|
为管道符,一般可用于将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入
语法:管道符不能单独使用,必须要其他指令一同使用,主要起辅助作用
示例:
[root@vultr /]# ls / | wc -l //统计根目录下,有多少个文件
22
[root@vultr /]# ls / | grep o //“grep”起到了过滤作用,过滤出含有“o”的文件
boot
home
lost+found
opt
proc
root
-
id
功能描述:显示真实有效的UID(用户id)和GID(组id)
语法:id
[用户名]
示例:
[root@vultr ~]# id //后面不跟任何参数视为查看当前用户id信息
uid=0(root) gid=0(root) groups=0(root)
[root@vultr ~]# id testdog //查看“testdog”这个用户的id信息
uid=501(testdog) gid=1002(testdog) groups=1002(testdog)
[root@vultr ~]# id -un //功能和“whoami”相同, 查看当前登录用户名,一般用户shell脚本中
root
-
ps
功能描述:显示当前系统的进程状态,
语法:ps
[选项] (结合管道符使用)
常用选项:
-e 列出全部进程
-f 显示全部字段(列)
示例:
[root@vultr ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jul02 ? 00:00:04 /usr/lib/systemd/systemd --switched-root --system --des
root 2 0 0 Jul02 ? 00:00:00 [kthreadd]
root 3 2 0 Jul02 ? 00:00:00 [rcu_gp]
root 5 2 0 Jul02 ? 00:00:00 [kworker/0:0H]
root 7 2 0 Jul02 ? 00:00:00 [mm_percpu_wq]
...
字段含义:
UID:执行该进程的用户id
PID:进程id
PPID:进程的父级进程id,如果一个程序找不到父级id,该程序则视作僵尸进程
C:cpu的占用率,以%显示
STIME:进程的启动时间
TTY:发起该进程的设备识别符号,如果显示“?”则表示进程不是有终端设备发起的
TIME:进程的执行时间
CMD:该进程的名称或对应的路劲
[root@vultr ~]# ps -ef | grep python
//结合管道符使用,过滤出名称为“python”的进程,注意这条命令行本身也是一个进程,所有会显示在最后
root 484 1 0 Jul02 ? 00:00:00 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
root 891 1 0 Jul02 ? 00:00:18 /usr/bin/python -Es /usr/sbin/tuned -l -P
root 999 1 0 Jul02 ? 00:00:19 python main.pyc 8888
root 1218 1 0 Jul02 ? 00:00:19 python task.pyc
root 1806 1 0 Jul02 ? 00:00:47 /bin/python /usr/bin/ssserver -c /etc/shadowsocks.json -d start
root 24854 24380 0 14:18 pts/0 00:00:00 grep --color=auto python
-
top
功能描述:可以实时动态地查看系统的整体运行情况
语法:top
[选项]
常用交互命令:
-M 根据驻留内存大小进行排序
-P 根据CPU使用百分比大小进行排序
-1 当服务器拥有多个cpou时,可以使用“1”来切换显示各个cpu的详细信息
-q 退出程序
示例:
[root@vultr ~]# top
top - 14:29:08 up 1 day, 23:13, 2 users, load average: 0.00, 0.01, 0.00
//系统之间 运行1天 启动了23:13分钟 2个用户当前登录 分别表示在1分钟内、5分钟内、15分钟内的负载情况
Tasks: 95 total, 1 running, 61 sleeping, 0 stopped, 0 zombie
//总进程数量 运行进程数 睡眠进程数 停止进程数 僵尸进程数
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
//CPU使用情况
KiB Mem : 1009800 total, 477188 free, 227052 used, 305560 buff/cache
//物理内存使用情况
KiB Swap: 1049596 total, 1049596 free, 0 used. 576220 avail Mem
//交换内存使用情况
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAD
1 root 20 0 43328 4976 3860 S 0.0 0.5 0:04.26 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
...
字段含义:
PID:进程id
USER:该进程对应的用户
PR:优先级,数值越大优先级越高
VIRT:虚拟内存
RES:常驻内存
SHR:共享内存
进程实际使用内存 = 常驻内存(RES)- 共享内存 (SHR)
*S:表示进程的状态“S”表示sleeping,“R”表示running
*%CPU:Cpu占用百分比
*%MEN:内存占用百分比
TIME+:执行时间
*COMMAD:进程的名称或路径
-
du
功能描述:查看目录的真实大小
语法:du
[选项] [文件]
常用选项:
-s 只显示汇总大小
-h 以高可读性显示
[root@vultr ~]# du -h /etc //列出“etc”文件夹下每个文件大小
4.0K /etc/ppp/peers
36K /etc/ppp
8.0K /etc/cron.hourly
8.0K /etc/python
4.0K /etc/gcrypt
40K /etc/iproute2
...
[root@vultr ~]# du -sh /etc/ //统计“etc”文件夹的总大小
13M /etc/
-
find
功能描述:文件搜索
语法:find
[搜索范围] [匹配条件]
常用匹配条件:
-name 按照文件名来查找(-iname不区分大小写)
-type 按照类型查找(-iname不区分大小写)
-user 按照文件所有者查找
-exec find 命令对匹配的文件执行该参数所给出的其他linux命令。相应命令的形式为'命令' {} ;,注意{ }和\;之间的空格。
示例:
[root@vultr ~]# find /etc -name te* //在etc文件夹下找出所有以te开头的文件
/etc/terminfo
[root@vultr /]# find /tmp -user root | grep test* //按所有者root来查询以“test”开头的文件
/tmp/testwjj
/tmp/testwjj/test
/tmp/testwjj/test.pl
/tmp/test.pl
[root@vultr ~]# find /tmp/ -type d //查找tmp目录下,类型为文件
/tmp/
/tmp/.X11-unix
/tmp/testt
/tmp/testt/test2
/tmp/testt/test2/test3
/tmp/.XIM-unix
/tmp/.font-unix
/tmp/test1
/tmp/test1/test2
/tmp/test1/test2/test3
/tmp/.Test-unix
/tmp/.ICE-unix
[root@vultr ~]# find /tmp/ -type d | wc -l //统计tmp目录下,类型为文件的总数
12
[root@vultr /]# find /tmp -name test* -exec ls -l {} \; //将tmp文件夹下,以test开头的文件详细列出
total 4
-rw-r--r-- 1 root root 0 Jun 22 14:04 test
-rw-r--r-- 1 root root 40 Jun 22 15:30 test.pl
-rw-r--r-- 1 root root 0 Jun 22 14:04 /tmp/testwjj/test
-rw-r--r-- 1 root root 40 Jun 22 15:30 /tmp/testwjj/test.pl
-rw-r--r-- 1 root root 40 Jun 26 10:40 /tmp/test.pl
-
service
功能描述:控制系统服务的工具,启动、停止、重启和关闭服务
语法:service
[服务名称] start/stop/restart
示例:
[root@vultr ~]# service mysql restart //以重启“mysql”服务为例,大家也可以去尝试停止和关闭等命令
Redirecting to /bin/systemctl restart mysql.service
-
kill
功能描述:杀死进程
语法1:kill
PID (先要通过ps -ef
进行进程的查询,然后再通过PID杀死进程)
语法2:killall
进程名称
示例:
[root@vultr ~]# ps -ef | grep vim //通过“ps”命令找到“vim”的PID
root 3268 2884 0 16:21 pts/1 00:00:00 vim install.log
root 3370 2822 0 16:21 pts/0 00:00:00 grep vim
[root@vultr ~]#kill 3268 //通过PID杀死进程
[root@vultr ~]#kill 3268 //再次输入命令则会提示没有这个进程,表示该进程已被杀死
-bash: kill: (3268) - 没有那个进程
-
reboot
功能描述:重启服务器
语法:reboot
[选项]
常用选项:
-w 仅做测试,并不是真的关机,只会把重开机器的数据写入/var/log目录下的wtmp记录文件
示例:
[root@vultr ~]# reboot //重开机。
[root@vultr ~]# reboot -w //做个重开机的模拟(只有纪录并不会真的重开机)。
-
shutdown
功能描述:关机(慎用!)
语法:shutdown
[选项] (参数)
常用选项:
-h 将系统关机
示例:
[root@vultr ~]# shutdown -h now //立即关机
[root@vultr ~]# init 0 //立即关机
[root@vultr ~]# poweroff //立即关机
-
netstat
功能描述:显示Linux中网络系统的状态信息
语法:netstat
[选项]
常用选项:
-t 表示只列出tpc协议的连接
-n 直接使用ip地址
-l “state”列中被监听的连接
-p 显示发起连接的进程的PID和进程名称
示例:
[root@vultr ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 943/nginx: master p
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 922/pure-ftpd (SERV
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 916/sshd
tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 995/python
tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN 943/nginx: master p
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1616/master
...
写在最后
至此的话,关于Linux的一些进常用阶操作也都说完了,有不太明白的胖友们,可以去“Linux命令手册”进行查询,感觉这东西真的是神器啊,所以向各位胖友安利了两次
自从有了这个手册,腰不酸、腿不疼,就连man
命令都用的少了(还不是因为英文差),但这边还是希望有条件的胖友还是可以使用man
命令对Linux的命令进行帮助查询,毕竟不是每个人都像我英文这么差的,以后呢,也要好好学习英语了。。。
那最后就来句英文的鸡汤作为结尾吧~