隐藏权限 : 防止root用户误操作删除,
查看隐藏权限 : lsattr
设置隐藏权限 : chattr
chattr +a : 可以追加内容,不能编辑不能删除
chattr +i : 不能编辑不能删除文件
chattr +A :文件访问时间固定下来
stat : 查看文件的详细信息
进程管理 :
进程 : 一个正在运行的程序,主进程,子进程
线程 : 一个进程有一个或者多个线程组成
区别 : 一个进程奔溃不会影响其他的进程
一个线程崩溃会使整个进程崩溃
进程之间资源独立
线程之间资源共享
进程启动慢,结束慢
线程启动快,结束块
协程(异步) : 节省资源
cpu中断 : 一个cpu核处理完第一个任务,去处理第二个任务中间的时间
并行 : 同一时间内能处理多少的事情
并发 : 单位时间内处理的任务数量
静态查看系统进程 :
ps aux 或者 ps -ef
查看进程(1):
ps aux
ps :process nsapashot
a: 只能查看系统里面运行的所有终端进程
u: 显示进程拥有者
x: 显示系统内所有进程
f:显示进程之间的父子关系
[root@linux-server ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
============================================================================
USER: #运行进程的用户
PID : #进程ID
%CPU: #CPU占用率
%MEM: #内存占用率
VSZ : 进程占用的虚拟内存大小。
RSS : 占用的物理内存大小
STAT: #进程状态 ---了解
? : 表示没有占用终端
R : 运行
S : 可中断睡眠 Sleep
D : 不可中断睡眠
T : 停止的进程
Z : 僵尸进程
X : 死掉的进程
START: #进程的启动时间
TIME : #进程占用CPU的总时间
COMMAND : #进程文件,进程名
进程状态:
进程状态--了解
Sl: 以线程的方式运行
Ss: s进程的领导者,父进程
R+: +表示是前台的进程组
S<: <优先级较高的进程
SN: N优先级较低的进程
--------------------------------------------
查看tty的方法:
[root@linux-server ~]# tty
? 表示这个进程开启的时候没有占用终端
查看进程(2):
ps -ef
-e: 显示所有进程
-l: 长格式显示
-f: 完整格式
UID : 用户ID
PID : 进程ID
PPID : 父进程ID
C : CPU占用率
STIME : 开始时间
TTY : 开始此进程的TTY----终端设备
TIME : 此进程运行的总时间
CMD : 命令名
端口:
查看端口:
yum -y install lsof
lsof -i:80(查具体某个端口(查看某个文件被什么进程所占用))
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 64249 root 4u IPv6 1373628 0t0 TCP *:http (LISTEN)
FD:文件描述符,应用程序通过文件描述符识别该文件。
DEVICE:指定磁盘的名称
SIZE:文件的大小
查看被监听的端口 :
(1)ss -tlnp :
n(以数字形式返回端口)
t(TCP连接)
u(UDP连接)(快速但不安全)
l(只要服务器启动的端口都会返回不管启动没)
p(可以显示服务名)
(2)netstat -lntp (netstat -tlnp:需要安装一个net-tools包)
yum -y install net-tools
-a : 显示全部的进程
-u : 显示udp
-n : 以数字的形式显示协议名称
-t : tcp
-p : 显示进程的名称和pid
-l : 只显示正在被监听的端口
------------------------------------------------------------------
参数解释:
recv-Q:网络接收队列。表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,
recv()如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务
denial-of-service 攻击。
send-Q:网路发送队列。对方没有收到的数据或者说没有Ack的,还是本地缓冲区.
如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。
Foreign Address:与本机端口通信的外部请求
(3)w
USER : –登录用户名.
TTY : –登录用户使用的终端名.
FROM : –登录用户来源的主机名或IP地址.
LOGIN@ : –用户登录时间.
WHAT : –用户当前的进程及选项/参数
常见端口号 :
http :80 https : 443 mysql : 3306 redis: 6379
tomcat : 8080 nginx | httpd : 80 | 443 sshd : 22
php-fpm : 9000 mongo : 27017 mail : 25(不加密) | 465(加密)
动态进程:
top : 动态查看系统进程
h|?: 帮助
>: 往下翻页
<: 往上翻页
M: 按内存排序
P: 按cpu排序
q: 退出
z: 彩色显示
W: 保存
=====================================
PR 优先级
VIRT 进程使用的虚拟内存总量,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。
SHR 共享内存大小,单位kb
shift + P : 按照cpu使用率排序
shift +M :按照内存排序
us: 用户态进程占用cpu
ni: nice值
id: cpu空闲率
wa: cpu等待,等待输入/输出的进程占用的 CPU 百分比。如果使用率过高,表示硬盘该换了
hi:硬中断,请求插队
si:软中断
st:停止(被其他的虚拟机偷走的cpu)
进程优先级 nice:
nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。
修改进程优先级:
renic -n -10 pid
进程控制:
按pid杀死进程:
kill pkill(杀死所有进程)
语法: kill 信号 PID
kill -l #查看所有信号
-1 HUP 重新加载进程或者重新加载配置文件,PID不变
-9 KILL 强制杀死
-15 TERM 正常杀死(这个信号可以默认不写)
-18 CONT 激活进程
-19 STOP 挂起进程
进程状态解释--了解:
+:表示运行在前台的进程
S+:休眠状态
T+:暂停,挂起状态
s:父进程ini
拓展常用命令:
1.查看当前CPU负载 : uptime
2.查看内存使用 : free -m
3.linux启动过程
①加电,②加载bios设置,③加载grub,④加载内核系统到内存当中,
⑤加载配置文件,⑥加载内核模块,⑦完成相应的初始化工作和启动相应的服务,
⑧启动系统进程,⑨出现登录界面,⑩机启动完成
4.查看系统的版本和内核
cat /etc/redhat-release #查看版本
uname -a #看查正在运行的内核版本
uname -r #查看内核版本ini
5.跳板机(堡垒机)的作用
1 身份验证
2 屏幕录制,防止员工对服务器做有害的操作
3 批量操作 一次性操作2-200台机器
6.安装过操作系统吗?怎么安装?
1.小批量设备,使用U盘安装
(调整bios参数从U盘启动)
2.大批量设备搭建PXE装机系统,从网络批量安装
(调整网络启动项,从网络启动)