《硬核linux攻略》读书笔记更新中

简介: 《硬核linux攻略》读书笔记更新中

linux具有不同的三种接口:系统调用接口、库函数接口、应用程序接口。

用户启动shell窗口下进行工作。

shell里先运行输入的命令行中的第一个字符串,搜索这个程序名,找到了就运行同时挂起shell,直至运行完毕。shell是普通的用户程序,功能是读取用户的输入和显示计算的输出。

控制命令操作或指定可选值的参数称为标志,用-表示。

对于

head -20 file  #打印文件的前 20 行
head 20 file    #输出文件名为 20 的文件的前 10 行,然后输出文件名为 file 文件的前 10 行。

shell支持魔法字符

*匹配一个或者多个可能的字符、?匹配任意一个字符(leetcode有一道例题的)

shell 启动时,就会获取 标准输入、标准输出、标准错误文件进行访问的能力。

管道:由管道符号连接的命令集合。


常见命令

cp 是将文件进行复制,复制完成后会有两个文件 a 和 b;

mv 相当于是文件的移动,移动完成后就不再有 a 文件;

cat 命令可以把多个文件内容进行连接;

使用 rm 可以删除文件;

使用 chmod 可以允许所有者改变访问权限;

文件目录的的创建和删除可以使用 mkdir 和 rmdir 命令;

使用 ls 可以查看目录文件,ls 可以显示很多属性,比如大小、用户、创建日期等;

sort 决定文件的显示顺序

grep 从标准输入或者一个或多个输入文件中提取特定模式的行;

sort 将输入进行排序并输出到标准输出;

head 提取输入的前几行;

tail 提取输入的后面几行;

除此之外的过滤器还有 cut 和 paste,允许对文本行的剪切和复制;

od 将输入转换为 ASCII ;

tr 实现字符大小写转换;

pr 为格式化打印输出。


linux的内核结构其主要作用就是I/O交互、内存管理和控制CPU访问。

99e948baa8ee46a48366f1074237dc7d.png

进程

fork系统调用会创建一个源进程的拷贝。fork创建出来的称为子进程,父进程与子进程相互独立。但是对于共享文件,会同时可见。

04d07d8ada8e42b4a2e6a3fac9747889.png

通信机制有6种

1.信号

不同信号的用处

其中,

SIGKILL 信号发送到进程以使其马上进行终止。 与 SIGTERM 和 SIGINT 相比,这个信号无法捕获和忽略执行,并且进程在接收到此信号后无法执行任何清理操作,下面是一些例外情况

僵尸进程无法杀死,因为僵尸进程已经死了,它在等待父进程对其进行捕获。

处于阻塞状态的进程只有再次唤醒后才会被 kill 掉

init 进程是 Linux 的初始化进程,这个进程会忽略任何信号。

SIGKILL 通常是作为最后杀死进程的信号、它通常作用于 SIGTERM 没有响应时发送给进程。


进程可以选择忽略发送过来的信号,但是有两个是不能忽略的:SIGSTOP 和 SIGKILL 信号。SIGSTOP 信号会通知当前正在运行的进程执行关闭操作,SIGKILL 信号会通知当前进程应该被杀死。除此之外,进程可以选择它想要处理的信号,进程也可以选择阻止信号,如果不阻止,可以选择自行处理,也可以选择进行内核处理。如果选择交给内核进行处理,那么就执行默认处理。

2.管道

举例:

sort <f | head

它会创建两个进程,一个是 sort,一个是 head,sort,会在这两个应用程序之间建立一个管道使得 sort 进程的标准输出作为 head 程序的标准输入。sort 进程产生的输出就不用写到文件中了,如果管道满了系统会停止 sort 以等待 head 读出数据


3.共享内存

在使用共享内存前,需要经过一系列的调用流程,流程如下


创建共享内存段或者使用已创建的共享内存段(shmget())

将进程附加到已经创建的内存段中(shmat())

从已连接的共享内存段分离进程(shmdt())

对共享内存段执行控制操作(shmctl())

4.FIFO队列

命名管道,会更加安全,不会丢失。

5.消息队列

6.套接字Socket

计网里面的TCP UDP协议。


常见的系统调用

fefca468c3e844a2b37a8930c73b4c9d.png

用于执行驻留在活动进程中的文件的系统调用是?exec

存储未初始化的全局变量和未初始化的 static 变量的是(bss段 )



相关文章
|
6月前
|
缓存 IDE Linux
《Linux是怎么样工作的》读书笔记(二)
《Linux是怎么样工作的》读书笔记
71 0
《Linux是怎么样工作的》读书笔记(二)
|
6月前
|
存储 缓存 固态存储
《Linux是怎么样工作的》读书笔记(一)
《Linux是怎么样工作的》读书笔记
131 0
《Linux是怎么样工作的》读书笔记(一)
|
Shell Linux Perl
《Linux Shell脚本攻略》读书笔记
《Linux Shell脚本攻略》读书笔记
216 0
|
存储 Shell Linux
《Linux命令行与shell脚本编程大全》读书笔记————第一章 初识Linux shell
本章内容 1、什么是Linux 2、Linux内核的组成   1、1 什么是Linux Linux课划分为以下四部分 a)Linux内核 b)GNU工具 c)图形化桌面环境 d)应用软件   1.1.1 深入探究Linux内核 内核主要负责以下四种功能 a)系统内存管理 b)软件程序管理 c)硬件设备管理 d)文件系统管理   1、系统内存管理 内核不仅管理服务器上的可用内存,还可以创建和管理虚拟内存(即实际上不存在的内存)。
1285 0
|
Linux 机器学习/深度学习 安全
|
关系型数据库 Linux
《Linux就该这么学》读书笔记
cat /proc/cpuinfo lsmod 安装VNC服务 重置root密码: image.png RPM操作: image.png 日期: image.
1290 0
《Linux内核设计与实现》读书笔记 - 目录 (完结)
《Linux内核设计与实现》读书笔记 - 目录 (完结) 读完这本书回过头才发现, 第一篇笔记居然是 2012年8月发的, 将近一年半的时间才看完这本书(汗!!!).
|
存储 安全 编译器
[笔记]读书笔记 C++设计新思维《一》基于策略的类设计(下)
[笔记]读书笔记 C++设计新思维《一》基于策略的类设计(下)