linux学习笔记之基础篇(四)

高级权限
suid
chmod u+s file
只能作用于文件(二进制可执行文件)
只能设置到user位
作用:任何用户在执行拥有suid权限的命令时,都以该命令拥有者的身份执行

sgid
chmod g+s dir/
只能作用于目录
只能设置到group位
作用: 任何用户在拥有sgid的目录下创建的文件都要继承该目录的组

sticky(粘贴位,冒险位)
chmod o+t dir/
只能作用于目录
只能添加到other位
作用:任何用户在拥有t权限目录下创建的文件都属于该用户自己,其他人无权删除

进程管理
静态查询

# 进程管理
## 静态查询

* ps -ef
  -e  time 进程占用cpu时间
  -f  ppid 父进程id 

* ps -ef  显示信息解释
UID- 与 USER 运行该流程的用户相同。
PID - 进程 ID 。在大多数情况下,当运行 ps 命令时,用户正在寻找的最重要信息是过程 PID 。了解 PID 可以消除故障过程。
PPID - 父进程的 ID 。
C- 与 %CPU 进程 cpu 利用率相同。
STIME- 与 START 命令启动时相同。
TTY - 进程控制终端的名称。
TIME - 进程的累计 CPU 时间,以分钟和秒显示。
CMD - 用于启动进程的命令的名称。

* ps aux 显示信息解释
• USER:该进程属于那个使用者账号的?
• PID :该进程的进程ID号。
• %CPU:该进程使用掉的 CPU 资源百分比;
• %MEM:该进程所占用的物理内存百分比;
• VSZ :该进程使用掉的虚拟内存量 (Kbytes)
• RSS :该进程占用的固定的内存量 (Kbytes)
• TTY :该进程是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
• STAT:该程序目前的状态,主要的状态有:
   *  R :该程序目前正在运作,或者是可被运作;
   * S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号(signal) 唤醒。
   * T :该程序目前正在侦测或者是停止了;
   * Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态

  • START:该进程被触发启动的时间;
  • TIME :该进程实际使用 CPU 运作的时间。
  • COMMAND:该程序的实际指令

动态查看进程
top 
显示解释
* 第一行:
```
10:01:23          — 当前系统时间
126 days, 14:29   — 系统已经运行了126天14小时29分钟(在这期间没有重启过)
2 users           — 当前有2个用户登录系统
load average: 1.15, 1.42, 1.44   — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于 CPU个数 的时候就表明系统在超负荷运转了。
```


* 第二行:
```
Tasks: 158 total,   1 running, 157 sleeping,   0 stopped,   0 zombie
Tasks — 任务(进程),系统现在共有158个进程,其中处于运行中的有1个,157个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
```

* 第三行:cpu状态
```
6.7% us — 用户空间占用CPU的百分比。
0.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
92.9% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比
在这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间,需要充充电了。
```
* 第四行:内存状态
```
8306544k total — 物理内存总量(8GB)
7775876k used — 使用中的内存总量(7.7GB)
530668k free — 空闲内存总量(530M)
79236k buffers — 缓存的内存量 (79M)
```
* 第五行:swap交换分区
```
2031608k total — 交换区总量(2GB)
2556k used — 使用的交换区总量(2.5M)
2029052k free — 空闲交换区总量(2GB)
4231276k cached — 缓冲的交换区总量(4GB)
```
  * **第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:530668+79236+4231276 = 4.7GB。
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。**

* 第六行是空行

* 第七行以下:各进程(任务)的状态监控
```
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
```


* 杀进程
```
kill 
常用信号
1  hup 挂起
2  int  中断
9  kill  强制结束
15 term  正常结束

pkill 进程名称      含有进程名的进程全部结束,没有提示
killall 进程名          含有进程名的进程全部结束
xkill  图形化结束进程
kill pid  杀死后台进程
```

* 前后台进程切换
```
ctrl+z 切换后台。后台挂起
jobs 查看后台进程
bg  编号  使进程后台运行
fg  编号  调用到前台
```

* 优先级的修改 (-20~19)
```
nice -n -20 xclock  -update -1   修改进程优先级
-n 跟优先级
重置优先级
现找进程号
renice -10 -p pid 
```


高级命令
grep 
-v 取反 即除了之外的都显示
rev  左右翻转
tac  上下行颠倒

wc  
-l   多少行
-w   多少单词
-c  多少字符
三个字符在vim里代表一个汉字

sort  按照第一个字符排序
-n    安整个数字排序
-r    反向排序
-u    去掉重复行

uniq  默认去掉连续重复行
-u    显示不连续重复的行
-d    显示连续重复的行
-c    统计重复次数

cut  
-d  分割符
-f  字段
-c  字符数
ex:cut -d: -f 1-3/1,3,5/1-3,6 /etc/passwd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值