操作系统学习笔记(一)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 在Linux中,使用`ps -aux | grep PID`来查看特定进程的状态,或者用`top`指令监控进程和内存。通过`cat 文件名 | grep 关键词`或`grep -i 关键词 文件名`搜索日志文件。`grep`是一个强大的文本搜索工具,支持多种参数,如`-i`忽略大小写,`-c`计数,`-f`从文件读取关键词。要临时更改主机名用`hostname 新主机名`,永久更改则用`hostnamectl set-hostname 新主机名`
  1. Linux里如何查看一个想知道的进程?

查看进程运行状态的指令:ps命令。“ps -aux | grep PID”,用来查看某PID进程状态

​ 解析

//ps使用示例 //显示当前所有进程 ps -A //与grep联用查找某进程 ps -aux | grep apache //查看进程运行状态、查看内存使用情况的指令均可使用top指令。 top

1
  1. Linux里如何查看带有关键字的日志文件?

    ​ cat 路径/文件名 | grep 关键词

返回test.log中包含http的所有行 cat test.log | grep "http"

1

​ grep -i 关键词 路径/文件名 (与方法一效果相同,不同写法而已)

返回test.log中包含http的所有行(-i忽略大小写) grep -i "http" ./test.log

1

3.说说你对grep命令的了解?

​ grep 命令。强大的文本搜索命令,grep(Global Regular Expression Print) 全局正则表达式搜索。

​ grep 的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。

​ 解析

  1. //参数 2. -A n --after-context显示匹配字符后n行 3. -B n --before-context显示匹配字符前n行 4. -C n --context 显示匹配字符前后n行 5. -c --count 计算符合样式的列数 6. -i 忽略大小写 7. -l 只列出文件内容符合指定的样式的文件名称 8. -f 从文件中读取关键词 9. -n 显示匹配内容的所在文件中行数 10. -R 递归查找文件夹 11. 12. //grep 的规则表达式: 13. ^ #锚定行的开始 如:'^grep'匹配所有以grep开头的行。 14. $ #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。 15. . #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。 16. #匹配零个或多个先前字符 如:'grep'匹配所有一个或多个空格后紧跟grep的行。 17. . #一起用代表任意字符。 18. [] #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。 19. [^] #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。 20. (..) #标记匹配字符,如'(love)',love被标记为1。 21. \< #锚定单词的开始,如:'\ #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。 23. x{m} #重复字符x,m次,如:'0{5}'匹配包含5个o的行。 24. x{m,} #重复字符x,至少m次,如:'o{5,}'匹配至少有5个o的行。 25. x{m,n}#重复字符x,至少m次,不多于n次,如:'o{5,10}'匹配5--10个o的行。 26. \w #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\wp'匹配以G后跟零个或多个文字或数字字符,然后是p。 27. \W #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。 28. \b #单词锁定符,如: '\bgrep\b'只匹配grep。 //实例: 1. //查找指定进程 2. ps -ef | grep svn 3. 4. //查找指定进程个数 5. ps -ef | grep svn -c 6. 7. //从文件中读取关键词 8. cat test1.txt | grep -f key.log 9. 10. //显示包含 ed 或者 at 字符的内容行 11. grep -E 'ed|at' test.txt

    1

4.Linux修改主机名的命令是什么?

​ 如果只需要临时更改主机名,可以使用hostname命令。

sudo hostname <new-hostname> # 例如: sudo hostname myDebian #myDebian为修改名
    1

​ 如果想永久改变主机名,可以使用hostnamectl命令

sudo hostnamectl set-hostname myDebian #myDebian为修改名
    1
  1. Linux开机自动执行命令如何实现?

    ​ 方法 #1 - 使用 cron 任务

    ​ 除了常用格式(分 / 时 / 日 / 月 / 周)外,cron 调度器还支持 @reboot 指令。这个指令后面的参数是脚本(启动时要执行的那个脚本)的绝对路径。

    ​ 然而,这种方法需要注意两点:

    ​ a) cron 守护进程必须处于运行状态(通常情况下都会运行),同时

    ​ b) 脚本或 crontab 文件必须包含需要的环境变量。

    ​ 方法 #2 - 使用 /etc/rc.d/rc.local

    ​ 这个方法对于 systemd-based 发行版 Linux 同样有效。不过,使用这个方法,需要授予 /etc/rc.d/rc.local 文件执行权限:

    chmod +x /etc/rc.d/rc.local

     1
    

    ​ 然后在这个文件底部添加脚本。

  2. Linux查看内存的命令是什么?

​ 查看内存使用情况的指令:free命令。“free -m”,命令查看内存使用情况。

​ 查看进程运行状态、查看内存使用情况的指令均可使用top指令。

​ 解析

​ free命令

​ Linux free命令用于显示内存状态。

​ free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。

​ 参数如下:

-b 以Byte为单位显示内存使用情况。 -k 以KB为单位显示内存使用情况。 -m 以MB为单位显示内存使用情况。 -h 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:         B = bytes         K = kilos         M = megas         G = gigas         T = teras -o 不显示缓冲区调节列。 -s<间隔秒数> 持续观察内存使用状况。 -t 显示内存总和列。 -V 显示版本信息。
    1

​ 实例:显示内存使用情况

# free //显示内存使用信息
total used free shared buffers cached
Mem: 254772 184568 70204 0 5692 89892
-/+ buffers/cache: 88984 165788
Swap: 524280 65116 459164
    1
    2
    3
    4
    5

​ top命令

​ top命令。显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等

​ img

​ 前五行是当前系统情况整体的统计信息区。

    ​ 第一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:

    ​ 00:12:54 — 当前系统时间

    ​ up ?days, 4:49 — 系统已经运行了?天4小时49分钟(在这期间系统没有重启过)

    ​ 21users — 当前有1个用户登录系统

    ​ load average: 0.06, 0.02, 0.00 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

    ​ 第二行,Tasks — 任务(进程),具体信息说明如下:

    ​ 系统现在共有256个进程,其中处于运行中的有1个,177个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

    ​ 第三行,cpu状态信息,具体属性说明如下:

    ​ 0.2%us — 用户空间占用CPU的百分比。

    ​ 0.2% sy — 内核空间占用CPU的百分比。

    ​ 0.0% ni — 改变过优先级的进程占用CPU的百分比

    ​ 99.5% id — 空闲CPU百分比

    ​ 0.0% wa — IO等待占用CPU的百分比

    ​ 0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比

    ​ 0.0% si — 软中断(Software Interrupts)占用CPU的百分比

    ​ 第四行,内存状态,具体信息如下:

    ​ 2017552 total — 物理内存总量

    ​ 720188 used — 使用中的内存总量

    ​ 197916 free — 空闲内存总量

    ​ 1099448 cached — 缓存的总量

    ​ 第五行,swap交换分区信息,具体信息说明如下:

    ​ 998396 total — 交换区总量

    ​ 989936 free — 空闲交换区总量

    ​ 8460 used — 使用的交换区总量

    ​ 1044136 cached — 缓冲的交换区总量
  1. free命令有哪些选项?

​ Linux free命令用于显示内存状态。

​ free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。

​ 参数如下:

-b  以Byte为单位显示内存使用情况。
-k  以KB为单位显示内存使用情况。
-m  以MB为单位显示内存使用情况。
-h  以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
B = bytes
K = kilos
M = megas
G = gigas
T = teras
-o  不显示缓冲区调节列。
-s<间隔秒数>  持续观察内存使用状况。
-t  显示内存总和列。
-V  显示版本信息。

1
2
3
4
5
6
7
8
9
10
11
12
13

​ 解析

​ 实例:显示内存使用情况

free //显示内存使用信息

total used free shared buffers cached
Mem: 254772 184568 70204 0 5692 89892
-/+ buffers/cache: 88984 165788
Swap: 524280 65116 459164

相关文章
|
存储 缓存 Linux
计算机操作系统学习笔记(2)——存储器结构
计算机操作系统学习笔记(2)——存储器结构
214 0
|
7月前
|
消息中间件
操作系统学习笔记(二)
进程切换比线程切换更消耗资源,因为进程切换需保存更多上下文,包括地址空间、寄存器、栈和文件描述符等,还要刷新TLB。线程切换仅需切换硬件上下文和内核栈,上下文更小,所以开销低。进程间通信有多种方式,如匿名管道(父子进程间)、命名管道(无亲缘关系进程)、信号、消息队列、共享内存和信号量等。这些通信方法各有特点,适用于不同场景。例如,匿名管道是半双工的,有名管道允许任何进程通过路径通信,信号用于进程间的简单通知,消息队列支持随机查询和按类型读取,共享内存允许多进程共享数据,而信号量则用于同步和控制对共享资源的访问。
45 0
|
缓存 Linux 应用服务中间件
计算机操作系统学习笔记(11)——零拷贝
计算机操作系统学习笔记(11)——零拷贝
94 0
|
消息中间件 Shell Linux
计算机操作系统学习笔记(7)——进程通信
计算机操作系统学习笔记(7)——进程通信
98 0
|
存储 缓存 Linux
计算机操作系统学习笔记(5)——内存管理
计算机操作系统学习笔记(5)——内存管理
115 0
|
7月前
|
Ubuntu Unix Linux
Linux 学习笔记一: 常见操作系统相关概念
Linux 学习笔记一: 常见操作系统相关概念
Linux 学习笔记一: 常见操作系统相关概念
不愧是华为内部的“操作系统学习笔记”,一篇说细节,一篇讲哲学
当然重要,身为程序员的我们,那更应该深刻理解和掌握操作系统,虽然我们日常 CURD 的工作中,即使不熟悉它们,也不妨碍我们写代码,但是当出现问题时,没有这些基础知识,你是无厘头的,根本没有思路下手,这时候和别人差距就显现出来了,可以说是程序员之间的分水岭。
|
编译器 调度 C语言
【学习笔记】小 O 带你掌握操作系统的心跳 - OneOS 内核启动
一、简介 内核启动介绍了整个系统从硬件上电如何一步步进入用户程序的过程。一般情况下,启动过程分为硬件上电,首先运行和体系架构相关的启动汇编文件,进行一些最基本硬件的初始化 (例如 CPU 配置,时钟,栈地址,RAM 等),为内核运行铺垫好环境,然后初始化内核各模块 (例如调度器,定时器等),接着创建系统任务 (例如空闲任务) 和用户任务,最后启动调度和运行用户程序。
168 0
计算机操作系统学习笔记(14)——复习要点笔记
计算机操作系统学习笔记(14)——复习要点笔记
87 0
|
NoSQL Linux 应用服务中间件
计算机操作系统学习笔记(13)——⾼性能⽹络模式:Reactor 和 Proactor
计算机操作系统学习笔记(13)——⾼性能⽹络模式:Reactor 和 Proactor
100 0