linux面经

持续更新中

1.删除其他进程打开的文件

每个文件都有 2 个 link 计数器 —— i_count 和 i_nlink。i_count 的意义是当前使用者的数量,i_nlink 的意义是介质连接的数量;或者可以理解为 i_count 是内存引用计数器,i_nlink 是硬盘引用计数器。再换句话说,当文件被某个进程引用时,i_count 就会增加;当创建文件的硬连接的时候,i_nlink 就会增加。

对于 rm 而言,就是减少 i_nlink。这里就出现一个问题,如果一个文件正在被某个进程调用,而用户却执行 rm 操作把文件删除了,会出现什么结果呢?

当用户执行 rm 操作后,ls 或者其他文件管理命令不再能够找到这个文件,但是进程却依然在继续正常执行,依然能够从文件中正确的读取内容。这是因为,rm 操作只是将 i_nlink 置为 0 了;由于文件被进程引用的缘故,i_count 不为 0,所以系统没有真正删除这个文件。i_nlink 是文件删除的充分条件,而 i_count 才是文件删除的必要条件。

2.查看目录下的文件数量

ls -l |grep ^- |wc -l 

^匹配行首 $匹配行尾  wc -l 统计数量

3.基本命令

mkdir创建文件夹

mkdir -p   a/b/c递归创建。

mv 移动 或者重命名。

find -name"*.conf" 查找当前目录以.conf结尾的文件。

find . -type f -name "*.conf" -exec cp {} /tmp/ \ 找到当前目录 文件类型为文本 文件名字以“*.conf" 结尾的文件 执行命令复制到/tmp下。 {}是查找到的东西最后以\结尾表明结束

find /var/log -type f -mtime+20| xargs rm -f  查找文件时间超过二十天的并删除

cp -r 递归复制目录

cat -n 显示行号

wc -l 多少行 -w 多少个单词 -c 多少个字

sort -n 按数学形式排序 -r 倒序排序   cat access.log |awk '{print $1}'|sort -n|uniq -c |wc -l 统计有多少个ip访问   cat access.log |awk '{print $1}'|sort -n|uniq -c |sort -n 看出最大的  unqi -c 是将相同的合并。

grep -n 显示行号 -l  显示包含的文件名  grep "root" -l * 查找包含"root”的所有文件名

cut -d : -f1 /ect/passward 将/ect/passward 以:进行分割 输出第一列(f1)

tail -f 动态滑滚  tail -n 显示末尾多少行  head -n显示头多少行

 

vim:(只记我不会的)

d$删除光标到末尾  y$复制光标到末尾。

:/root 查找文件中的root 

查看下一个匹配,按下n(小写n)

跳转到上一个匹配,按下N(大写N

:%s/root/lhb/g 将root全部替换为lhb

:%s/root/lhb/gc部分 替换

 

系统管理命令:

groupadd -g 100  test   创建GID为100的test组

groupdel test 删除GID为100的组

chown root:lhb a 把a文件的用户和组改为root 和Lhb

chown -R 把目录及目录下的所有更改

usradd  -u 设置UID -g 设置GID(必须存在) -s 定义shell

w 查看当前登录的账号

 

top命令

从上到下分别为

1.系统启动时间 15:42:51  运行了37分钟 有一个用户   平均负载:1分钟以来 5分钟以来 15分钟以来(可以用uptime替代)

2.总共有 273个任务  1个在运行 272个在睡眠 0个停止 0个僵尸进程

3.cpu的使用率 

  • us, user: 运行(未调整优先级的) 用户进程的CPU时间
  • sy,system: 运行内核进程的CPU时间
  • ni,niced:运行已调整优先级的用户进程的CPU时间
  • wa,IO wait: 用于等待IO完成的CPU时间
  • hi:处理硬件中断的CPU时间
  • si: 处理软件中断的CPU时间
  • id :空闲cpu占比

4.MIB mem 物理内存使用率    buff/cache用作内核缓存的内存量(就是对磁盘的缓存)

5 MIB Swap 交换  当内存不足时候磁盘作为虚拟内存(可用free替代)

6:

  • PR 进程优先级
  • NI 进程 nice值
  • VIRT 进程虚拟内存所占总量
  • RES 进程所用的未被换出的物理内存大小
  • SHR 共享内存大小(共享库)
  • %CPU   cpu占比
  • %MEM 使用的物理内存占比
  • TIME+  进程使用的cpu时间总计

PS命令

ps命令显示进程的状态主要有几个参数

ps -a 显示现行终端机下的所有程序,包括其他用户的程序

ps -A 显示所有程序。

ps -u 以用户为主的格式来显示程序状况。

ps -x  显示所有程序,不以终端机来区分。

一般用ps -aux |grep xxx 

ps -ef |grep xxx  不查看cpu状态

STAT:进程的状态
R:runingable可运行状态:此时进程正在运行或者正在运行队列中等待准备运行
S:sleep 可中断的等待状态:处于可中断的等待状态的进程可以被某一信号中断(阻塞可被信号打断)
D:不可中断的等待状态:处于不可中断的等待状态的进程不受信号的打扰,将一直等待事件的发生或等待某种系统资源(阻塞不可被信号打断)
T:暂停状态:处于暂停状态的进程被暂停运行(应该是信号被stop)
Z: 僵死状态:(等待回收,或者被杀死)
STAT常用附加标志有
<:高优先级进程
N:低优先级进程
L:有些页面被锁在内存中
s:主进程(回话的先导进程)
l:多线程进程
+:前台线程

ps -aux |grep Z 查看僵尸进程

ps是一个静态的命令 查看当前的系统状态是静态显示的 top 命令是一个动态刷新的过程当系统繁忙的时候建议使用ps



kill -9  进程Id 强制杀死进程

kill -l 查看信号列表

df-h 查看磁盘大小

 

netstat:

-t 查看tcp选项

-u 显示UDP协议的连接情况

-l 显示有在 Listen (监听) 的服务状态

-n 以网络IP地址代替名称,显示网络连接情形(好像是域名转ip)

-a 显示所有socket,包括正在监听的

-p 显示建立相关连接的程序名和PID

 

查看端口的命令:

netstat -nap | grep port     a 显示所有socket   p  显示进程pid  然后再进行grep

lsof  -i:port  

 

重定向:
| 管道将 前面的输出当作后面的输入

> 将输出输入到文件中(覆盖)

>>追加到文件中

>filename (清空文件)

 

linux命令都是操作文件

/etc/login.defs存放用户登录相关信息

 

awk学习

awk '{if(NR>=20 && NR<=30) print $1}' test.txt  

awk '{print $1 ,$2}' test.txt 打印出test.txt的前两列

awk '{print  NR "\t" NF"\t" $1 ,$2}' test.txt  打印出test.txt的行号 列的个数  和前两列

awk 'NR==7 {print}' test.text 行号为7时才打印

awk  '{split($3,date,"-");if(date[2]=="01"){name[$1]+=$5}}END{for i in name{print i "\t" name[i]}'  test.txt     把第三列以"-" 进行分割 并将分割后以date命名

https://www.cnblogs.com/ginvip/p/6352157.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值