linux 安装包-yum 的使用
linux 进程管理 ps pstree top 指令的使用
linux 进程之间的通信
linux 守护进程
linux 内存以及硬盘使用查看
linux 防火墙iptables配置
linux 安装包-yum 的使用
包管理器是方便软件安装卸载,解决软件依赖关系的重要工具,centos 使用的yum 包管理器,软件包格式为rpm ,ubuntu使用是apt包管理器,软件安装包格式为deb。
我们使用yum包管理器一般要将yum源设置为国内阿里云的yum源,这样下载以及更新包的速率会大大增加。
第一步:备份你的原镜像文件,以免出错后可以恢复。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
第二步:根据镜像的版本下载,下载新的CentOS-Base.repo 到/etc/yum.repos.d/
查看镜像的版本: rpm -q centos-release
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
第三步:运行yum makecache生成缓存
yum clean all
yum makecache
vim /etc/yum.repos.d/CentOS-Base.repo
还有以下几条常用命令:
卸载: yum remove xxxx
查看安装软件包: yum list
更新 yum 包: yum update
如果我们想更新kernel内核版本: 可以查看内核版本: https://www.kernel.org/
查看内核版本: uname -r
安装更新内核版本:
linux 进程管理 ps pstree top 指令的使用
ps
ps -A: 显示所有进程信息
ps -u root: 显示指定用户信息
ps -ef: 显示所有进程信息,连同命令行
ps -ef|grep ssh: ps 与grep 常用组合用法,查找特定进程
ps -l: 将目前属于您自己这次登入的 PID 与相关信息列示出来
ps aux: 列出目前所有的正在内存当中的程序
ps -axjf: 列出类似程序树的程序显示
ps -aux |more: 与管道符连用,分页
ps -aux > ps001.txt: 把所有进程显示出来,并输出到ps001.txt文件
ps -o pid,ppid,pgrp,session,tpgid,comm: 输出指定的字段
pstree
使用pstree以树形方式显示正在运行的所有进程。
pstree -p 查看进程树, 可以用使用 grep 命令,可以使用 pstree -p | grep httpd 管道符进行查找httpd(apache进程)。
top
第一行:系统运行时间和平均负载
当前时间、系统已运行时间、当前登录用户的数量、最近5、10、15分钟内的平均负载。
第二行:任务
任务的总数、运行中(running)的任务、休眠(sleeping)中的任务、停止(stopped)的任务、僵尸状态(zombie)的任务。
第三行:cpu状态
第四行:内存
全部可用内存、已使用内存、空闲内存、缓冲内存
第五行:swap
全部、已使用、空闲和缓冲交换空间
第七行至N行:各进程任务的的状态监控
交互指令:
Z:改变颜色;
B:加粗
t:显示和隐藏任务/cpu信息;
m:内存信息
1:监控每个逻辑CPU的状况;
f:进入字段显示配置模式,可增加或者移除显示字段,按相应的字母新增或去除;
o:进入字段顺序设置模式,可配置显示位置顺序,按相应的字母往下移动,按“shift+相应的字母”往上移动 -常用
F:进入字段排序配置模式,可设置排序的字段;
R:正常排序/反向排序;
s:设置刷新的时间 -常用
u:输入用户,显示用户的任务
i:忽略闲置和僵死进程。这是一个开关式命令。
r:重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
c:切换显示命令名称和完整命令行。
M:根据驻留内存大小进行排序。-常用
P:根据CPU使用百分比大小进行排序。-常用
H:显示线程
d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p:通过指定监控进程ID来仅仅监控某个进程的状态。top –p PID
Linux进程间通信 信号signal kill
信号本质上是一种软件中断,软件触发的中断、和硬件的处理机制一样,当收到信号时, 停下来手头的事情,去处理信号处理函数,处理完后,再继续做原来的事情。
其实我们已经看到过:
程序在运行时, 我们想退出, 按“ctrl + c”时就已经发送了一个信号出去
段错误
除0异常信号(代码中出现整数除以0)
杀死一个进程的指令“kill -9 pid” , kill 就是 发送信号的指令, -9 是9号信号, pid是进程号
子进程结束后, 发送信号给父进程,来回收它的资源
执行下面这个指令, 可以查看本系统支持的所有的信号:
kill [options] <pid> [...]
<pid> […] : 把信号发送给列出的所有进程。
options :
-<signal> : 指定发送给进程的信号,指定信号的名称或号码都可以。
-l : 列出所有信号的名称和号码。
SIGINT 通知前台进程组终止进程 ctrl+c。
SIGKILL 立即结束程序,不能被阻塞和处理 kill -9 pid。
使用信号 15 是安全的,而信号 9 则是处理异常进程的最后手段,请勿滥用。下面我们介绍几种常使用的信号解释。
linux 守护进程
1.bohup
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,我们查看一个message文件,将窗口关闭,那么这个进程就会被杀死,如果我们想让它一直存在,我们可以使用nohub命令。
nohup command > myout.file 2>&1 &
在上面的例子中,0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ; 2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到myout.file文件中。
nohup和&的区别
& :指在后台运行 nohup :nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行。
&是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出。
Screen
Screen是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器。Screen中有会话的概念,用户可以在一个会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。通俗的讲,screen命令用于新建一个或多个“命令行窗口”,在新建的这“窗口”中,可以执行命令;每个“窗口”都是独立并行的。
yum install screen
创建会话:最简单的就是直接输入screen回车,一个新会话就完成了(debian下会有提示,再按一次回车就可以了),但偶还是推荐用下面的命令来创建会话:screen -S php
离开会话,按住键盘上的ctrl,然后依次按a和d,好了,又回到主会话了,这时你可以继续创建其它会话或者执行其它命令,对我们创建的会话内容没有任何影响,你甚至可以退出会话;
恢复创建的会话:如果还记得会话名称,可以输入命令:screen -r php
查看已经创建的会话:screen -ls
退出screen,使用screen会耗费一定的系统资源,所以当screen中的命令执行完毕之后,最好退出screen,直接输入命令
其他命令:
Ctrl + a,d #暂离当前会话
Ctrl + a,c #在当前screen会话中创建一个子会话
Ctrl + a,w #子会话列表
Ctrl + a,p #上一个子会话
Ctrl + a,n #下一个子会话
Ctrl + a,0-9 #在第0窗口至第9子会话间切换
Linux 内存以及磁盘 查看命令
内存使用率查看命令: free -m 显示的是M显示
swap 占用的是在磁盘上,我们一般比较关注的是 buff和available,这就会显示出来可以释放的内存空间。
磁盘查看的命令: fdisk -l: 列出全部的分区, df -h:用于显示 Linux 系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等。
linux 防火墙iptables配置
查看
iptables -nvL –line-number
-L查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加上-t NAT参数。
-n不对ip地址进行反查,加上这个参数显示速度会快很多。
-v输出详细信息,包含通过该规则的数据包数量,总字节数及相应的网络接口。
–line-number显示规则的序列号,这个参数在删除或修改规则时会用到。
添加
[root@test ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- 192.168.1.1 0.0.0.0/0
2 DROP all -- 192.168.1.2 0.0.0.0/0
3 DROP all -- 192.168.1.4 0.0.0.0/0
添加规则有两个参数:-A和-I。其中-A是添加到规则的末尾;-I可以插入到指定位置,没有指定位置的话默认插入到规则的首部。
添加一条规则到尾部:iptables -A INPUT -s 192.168.1.5 -j DROP
再插入一条规则到第三行,将行数直接写到规则链的后面:iptables -I INPUT 3 -s 192.168.1.3 -j DROP。
查看: iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- 192.168.1.1 0.0.0.0/0
2 DROP all -- 192.168.1.2 0.0.0.0/0
3 DROP all -- 192.168.1.3 0.0.0.0/0
4 DROP all -- 192.168.1.4 0.0.0.0/0
5 DROP all -- 192.168.1.5 0.0.0.0/0
可以看到192.168.1.3插入到第三行,而原来的第三行192.168.1.4变成了第四行。
删除
根据序号删除: iptables -D INPUT 2
修改
将第三条规则改为ACCEPT:iptables -R INPUT 3 -j ACCEPT
查看:
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- 192.168.1.1 0.0.0.0/0
2 DROP all -- 192.168.1.2 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
推荐阅读
(点击标题可跳转阅读)
Javascript条件逻辑设计重构
Promise知识点自测
你不知道的React Diff
你不知道的GIT神操作
程序中代码坏味道(上)
vue源码分析(1)- new Vue
一文读懂 React16.0-16.6 新特性(实践 思考)
30分钟学会 snabbdom 源码,实现精简的 Virtual DOM 库
觉得本文对你有帮助?请分享给更多人
关注「React中文社区」加星标,每天进步