Linux的相关命令2(Ubuntu总结)

一、网络命令

1、ifconfig的命令

$ ifconfig           #查看所有已激活的网络端口信息
$ ifconfig ens33     #查看系统中指定的网络端口信息
$ sudo ifconfig ens33 192.168.1.5  #修改系统指定的网络端口(网卡ens33)的IP地址
$ sudo ifconfig lo down            #关闭指定的网络端口(网卡lo)
$ sudo ifconfig lo up              #开启指定的网络端口(网卡lo)

2、ping的命令

$ ping -c2 -t2 www.baidu.com       #测试上网的功能ping命令 发送2次 2s一次

ping [参数] [主机名或IP地址]
参数:-c数目,在发送指定数目的包后停止;-i秒数,设置设置间隔几秒发送一个网络封包给一台机器,预设值是一秒送一次;-s字节数,指定发送数据字节数,预设值56,加上8字节的ICMP头,一共64ICMP数据字节;-t存活数值,设置存活数值TTL的大小。

3、natstat的命令

$ netstat -a    #显示所有连线中的socket,默认不显示LISTEN相关。
                  #-t仅显示tcp相关项;-u仅显示udp相关项
$ netstat -r    #显示路由表

参数说明:
-a(all) 显示说有连接的socket
-n拒绝显示别名,能显示数字的全部转换成数字
-t仅列出有在监听的服务状态
-p显示建立相关链接的程序名
-r显示路由信息,路由表
-e显示扩展信息,例如uid
-s按各个协议进行统计。
-c每隔一个固定时间,执行该nelstatl命令。 #nelstatl命令好像没有(本人试过了)

4、route的命令

$ route -n  									#显示路由信息
$ sudo route add default gw 192.168.1.254 #添加默认网关192.168.1.254
$ sudo route del default gw 192.168.1.254 #删除默认网关192.168.1.254

route命令用于显示和操作IP路由表。
命令格式 Route [-f] [-p] [cmd mask Netmask] [Gateway]
add: 添加一条新路由
del: 删除一条路由
-c 显示更多信息
-n 不解析名字
-v 显示详细的处理信息
-F 显示发送信息
-C 显示路由缓存
-f 清除所有网关入口的路由表
-p 与add命令一起使用时使路由具有永久性
-net 目标地址是一个网络
-host 目标地址是一个主机
netmask 当添加一个网络路由时需要使用网络掩码
gw 路由数据包通过网关。你指定的网关必须能够通过。

Flags 标志的常用参数
U: Up表此路由当前为启动状态。
H: Host表此网关为一主机。
G: Gateway,表此网关为一路由器
R: Reinstate Route,使用动态路由重新初始化的路由
D: Dynameically,此路由是动态性地写入
M: Modified,此路由守护程序或导向器动态修改的。
!: 表此路由当前为关闭状态。

# windows下的cmd中
$ ipconfig/release  #断开网络
$ ipconfig/renew    #重启网络

二、进程相关的命令

1、kill的命令

$ kill -s SIGXXX 1234    #给进程ID为1234的发送一个信号SIGXXX(XXX可以是KILL)
$ kill -N 1234	        #N可以是9 、15等
$ kill -s SIGXXX -1234   #给进程组发送一个信号SIGXXX
$ kill -l                #查看当前系统所支持的信号

kill格式 kill [信号代码] PID #用来终止一个进程。向指定的进程发送信号;
前台可以使用ctrl+c终止,后台进程就必须用kill命令来终止。
-0 给所有在当前进程中的进程发送信号
-1 给所有进程号大于1的进程发送信号
-9 强行终止进程
-15 终止进程
-17 将进程挂起
-19 将挂起的进程激活
-a 终止所有进程
-l 指定信号的名称列表。若不加选项,则-l参数会列出全部信号名称
-p 模拟发送信号。显示进程的ID,不发送信号
-s 指明发送给进程的信号,eg:-9(强行终止),默认发送TERM信号
-u 指定用户

2、killall的命令

$ killall nginx           #杀死所有nginx同名的进程
$ killall -TERM nginx     #向进程nginx发送指定信号

格式:killall [参数] [进程名]

3、pkill的命令

$ pkill -u zhang           #杀死zhang的所有用户
$ w                        #查看在线用户
$ pkill -vu   root         #杀死所有用户(除了root)

pkill命令通过程序的名字,直接杀死所有进程
格式 pkill [optionsl] patttern

4、xkill的命令

$ xkill

图形化关闭前台进程;
使用;在终端输入xkill #图形化关闭进程
点击运行的不同类型的进程,如gedit、firebox等类型的程序
点击哪关哪。

5、pgrep的命令

$ pgrep -lo hud-service 
$ pgrep -l hud-service
$ pgrep -ln hud-service     #查询指定程序的进程三种方式
$ pgrep -G other,ma         #匹配真实组ID是other或者ma的进程(逗号相对与命令差不多,前面的成立后面不执行)
$ pgrep -G other,ma -U root,ma  #条件被指派,这些条件按逻辑与运算,匹配组为other或ma,用户为root或ma的进程
$ pgrep -u root   #显示root用户的进程(指定root)
$ pgrep -V -P 1   #列出父进程不为1(init进程)的进程
$ pgrep -P 1      #列出父进程为1(init进程)的所有进程
$ pgrep at        #列出at字符串相关的程序

pgrep命令:通过程序的名字或其他属性查找进程,一般用来判断程序是否正在运行。
格式:pgerp [options] pattern #返回进程ID

6、ps的命令

$ ps -A            #显示所有进程
$ ps -u root       #显示指定用户信息
$ ps -ef           #显示所有进程信息,连同命令行
$ ps -ef | grep ssh#查询特定的进程ssh  ps和grep常用的组合用法
$ ps -l            #将目前属于用户自己这次登入的PID与相关信息列示出来
$ ps aux           #列出目前所有的正在内存当中的程序
$ ps -axjf         #列出类似程序树的程序显示
$ ps aux | egrep(cron|syslog)#找出与cron与syslog这两个服务相关的PID
$ ps -o pid,ppid,pgrep,tpgid       #输出指定的字段

ps命令:显示进程的状态。无选项时显示当前用户在当前终端启动的进程
参数说明
a 显示所有进程
-a 显示统一终端下的所有程序
-A 显示所有进程
c 显示进程的真实名称
-N 反向选择
-e 等于“-A”
e 显示环境变量
f 显示进程间的关系
-H 显示树状关系
r 显示当前中断的进程
T 显示当前终端的所有进程
u 指定用户的所有进程
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的进程
-C<命令> 列出指定命令的状态
–lines<行号> 每页显示的行数
–width<字符数> 每页显示的字符数
–help 显示帮助信息
–version 显示版本信息

7、pstree的命令

$ pstree -u   #树状图的进程显示用户名称

pstree命令:以树状方式表现进程的父子关系
格式:pstree [选项]
-a 显示每个程序的完整指令,包含路径、参数或常住服务的标示
-c 不使用精简标示法
-G 使用VT100终端机的列绘图字符
-h 列出状图字符时,特别表明现在执行的程序
-H<程序识别码> 此参数的效果和指定“-h”参数类似,但特别表明指定的程序
-l 采用长列格式显示树状图
-n 用程序识别码排序。预设是与程序名称来排序。
-p 显示程序识别码
-u 显示用户名称
-U 使用UTF-8列绘图字符

8、top的命令

top命令:动态显示CPU利用率,内存利用率等相关消息。格式top [-d秒数] 默认5秒刷新一次

$ top         #显示 按m按内存排序,按t按时间排序,按p按CPU使用率排序,ctrl+c,q退出
$ top -c      #显示完整指令
$ top -b      #以批处理模式显示程序信息(一直查看,未清除以前信息)
$ top -S      #以累计模式显示程序信息
$ top -n 2    #表示更新2次后终止更新显示
$ top -d 3    #表示更新周期为3秒
$ top -p 139  #显示进程号为139的进程信息,CPU,内存占有率等
$ top -n 10   #更新10次后退出
$ top -s      #使用者将不能利用交谈式指令来对进程下指令
$ top -n 2 -b > top.log  #将更新显示二次的结果输入到名称为top.log的档案内(重定向文件)

$ gnome-system-monitor   #图形化的系统检测器,类似于windows的任务管理器差不多。
#也可这样查看系统监视器 “应用程序”->“系统工具”->“系统监视器”

9、nice的命令

nice命令:指定将要启动的进程优先级。不指定优先级时默认为10
格式: nice [-优先级值] 命令

$ nice vi &    #将vi命令设置默认优先级10
$ nice -n 19 vi & #设置vi命令的优先级为19

10、renice的命令

renice命令:修改运行中的进程优先级,设置指定用户或组群的进程优先级

$ renice -5 -p 5200  #将PID为5200的进程优先级设置为-5
$ renice -5 -u xue   #将属于用户为xue的进程优先级设置为-5
$ renice 5 -g group1 #将属于group1组的进程优先级设置为5
$ renice -n -5 -p 5200  #将PID为5200的进程优先级设置为-5
$ renice -n +5 -p 5200  #将PID为5200的进程优先级设置为5

-p 进程号 修改指定进程的优先级
-u 用户名 修改指定用户所启动进程的默认优先级
-g 组群和 修改指定组群中所有用户所启动进程的默认优先级

三、前台进程与后台进程的调度

默认情况下一个命令执行后,此命令独占Shell,并拒绝其它输入。称为前台进程。反之后台进程。
前台任务和后台任务的控制和调度,称为任务控制

1、切换进程

将前台任务放入后台
$ command &   #将一个命令放入后台执行
ctrl+z        #将一个正在执行的前台进程暂时停止,放入后台
控制后台进程
$ jobs            #列出系统作业号和名称
$ fg [%作业号]   #前台恢复运行
$ bg [%作业号]   #后台恢复运行
$ kill [%作业号] #给定信息发送终止信号

2、调度

进程调度 (进程优先级值越低,优先级越高;取值-20~19)
对于偶尔运行的进程,采用at或batch调度
对于特定时间重复运行的进程,采用cron调度

(1)at调度

$ sudo apt install at    #加载at工具
$ sudo apt install atp   #加载atp工具
$ at 5pm + 2days         #两天后上午5点执行date +%Y/%m/%d-%H:%M 的命令
warning: commands will be executed using /bin/sh
at> date +%Y/%m/%d-%H:%M<EOT>    #输入完成按组合键Ctrl+D保存并退出
job 5 at Fri Jul 15 17:00:00 2022
$ atq      #查看at任务 也可使用at -l
$ atrm 7   #删除任务队列中的任务7

at调度:格式 [选项] [时间] 设置指定时间执行指定命令
-f :从指定文件而非标准输入设备获取将要执行的命令
-l :显示等待执行的调度作业。
-d :删除指定的调度作业
(1)绝对计时法 “HH:MM(小时:分钟)采用24小时;若12小时 则后面加AM(上午),PM(下午)”
(2)相对计时法 now+时间间隔 单位是minutes(分钟)、hours(小时)、day(天)、week(星期)
(3)直接计时法 today(今天)、tomorrow(明天)、midnight(深夜)、noon(中午)、teatime(下午4点)

(2)crontab的调度

cron调度(at和batch只能执行一次,cron可以重复执行)
crontab配置文件/var/spool/cron/用户
在这里插入图片描述
(1)所有字段不能为空,字段之间使用空格分开,如果字段不指定内容,则使用“*”符号
(2)可以使用“-”表一段时间。如日期字段中输入“1-5”,没每个月的前5天都要执行该命令
(3)可使用“,”符号来表示指定的时间。如在日期中输入“5,15,25”表示5日、15日、25日


0 * /2 * * * echo “Have a good dream” >> /tmp/test.txt   #每两个小时追加一次

0 23-7 /2,8 * * * echo “hello crontab” >> /tmp/test.txt  #晚上11点到早上7点没两个小时

0 11 4 * 1-3 cmd line                                   #每个月的 4 号和每个星期一到星期三的早上11点

crontab命令:维护用户的crontab配置文件 # 格式crontab [选项]
-e:创建斌编辑crontab配置文件
-l:显示crontab配置文件内容
-r:删除crontab文件

(3)crond进程

$ service crond restart
#或者
$ systemctl restart crond.service

crond进程在系统启动时自动启动,并一直运行于后台。crond进程负责检测crontab配置文件,并安装crontab内容定期重复执行指定的cron调度工作。创建或修改了crontab配置文件后需要“service crond restart” 重启crond进程服务。

四、其他

1、删除非目录文件

$ ls --file-type | grep -v /$ | xargs rm -f  #删除当前目录下非目录文件的命令
# 使用 ls --file-type 会列举出当前目录下所有的文件和文件夹,且文件夹后面会带一个 /
# 再用 grep -v 将文件夹过滤掉,文件夹的 / 符号在结尾,所以使用正则表达式 /$ 过滤
# 最后将其他所有的文件通过 rm 命令删除,此时需要将文件名通过 xargs 传递到命令行参数中

2、查找目录下的所有文件内容

$ find /opt/nfs -type f | xargs grep "apple" -wnH  
#find查找的普通文件中找”apple”,要求剔除“appletree”的单词
# xargs代表find的输出作为grep的参数(否则grep只会在find的查找出来的列表中找,不会进入文件内找)

猜你喜欢

转载自blog.csdn.net/weixin_44763594/article/details/125774771