《硬核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访问。
进程
fork系统调用会创建一个源进程的拷贝。fork创建出来的称为子进程,父进程与子进程相互独立。但是对于共享文件,会同时可见。
通信机制有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协议。
常见的系统调用
用于执行驻留在活动进程中的文件的系统调用是?exec
存储未初始化的全局变量和未初始化的 static 变量的是(bss段 )
Linux 内核结构
《硬核linux攻略》读书笔记更新中相关推荐
- 【硬核游戏攻略】2.matlab中调用Java实现《大家来找茬》快速求解器
大家来找茬是个原理比较简单的游戏,通过比较并标记两幅图片中的不同(指的是相同相对位置上的不同 图片绝对位置通常一张在左一张在右–别笑)来过关. 求解起来比较简单,只需要对应位置RGB值相减(如果是负数 ...
- Linux Shell脚本攻略 读书笔记
内容目录: 嗨,Echo一下 给终端来点颜色 shell的控制结构 算术比较 目录操作 网站下载 tar 归档工具 rsync 备份系统快照 ftp自动传输 磁盘管理 故障排查 使用syslog记录日 ...
- linux cat 脚本,Linux Shell 脚本攻略 读书笔记 -- 201.cat的几种用法
cat可以读取.显示和拼接文件内容 1. 打印单个文件: root@debian:/home/chicol/scripts# cat file.txt This is a line inside fi ...
- 程序员跳槽全攻略——读书笔记
有同学说,我技术很好啊,又会机器学习又会编译原理,凭什么那些写Javascript的薪水比我高一倍? 谁让你在一家建站公司上班呢.对一家做网站的公司而言,机器学习和编译原理是不能为它带来收益的,而Ja ...
- 黑客丛林通关攻略参考(更新中)
黑客丛林之旅游戏链接地址:http://www.fj543.com/hack/ 1.提示语:在浏览器端用脚本进行身份验证是很容易被破解的. 查看源代码,密码在JS脚本中,典型的本地验证(在浏览器按F1 ...
- linux设备驱动读书笔记
linux设备驱动读书笔记 设备驱动简介 机制:提供什么能力 策略:如何使用这些能力 在编写驱动时, 程序员应当编写内核代码来存取硬件, 但是不能强加特别的策略给用户, 因为不同的用户有不同的需求. ...
- linux设备驱动读书笔记(转)
linux设备驱动读书笔记 设备驱动简介 机制:提供什么能力 策略:如何使用这些能力 在编写驱动时, 程序员应当编写内核代码来存取硬件, 但是不能强加特别的策略给用户, 因为不同的用户有不同的需求. ...
- 华南理工计算机考研王道论坛,复习详尽攻略:梦圆华工中探花
复习详尽攻略:梦圆华工中探花 自助者天助之,考研也是如此.你必须十分努力,才能看起来毫不费力.下面分享一位前辈的考研经验. 作者 91淘气小卒 次阅读 2017-01-16 [摘要]自助者天助之,考研 ...
- linux的网络命令整理 更新中
linux的网络命令整理 更新中 1.安装包: net-tools 主要命令: netstat , ifconfig , route , iptunnel iproute 主要命令: ss , ip ...
最新文章
- 【PC工具】智能抠图软件,绿色免安装抠图神奇抠图工具
- 天气预报中的风向到底有啥用?
- SAP JAM的dashboard
- html5 --- canvas绘制网格并画x、y轴
- 在Java中调用Python,java面试题,java初级笔试题
- Android底层控制系统设置的命令集合
- OpenGL ES之GLSurfaceView学习一:介绍
- 信息发布系统 Jquery+MVC架构开发(3) 解决方案创建
- mysql8从入门到精通电子书_MySQL 8从入门到精通(视频教学版)
- PopWindow使用实战
- IP-Link简单实验配置
- HTML5分级标题,HTML5与CSS3基础教程:创建分级标题_html/css_WEB-ITnose
- 华为社招技术二面,总结复盘
- mysql按年级班级排序_一个sql语句的问题,按照如何按照年纪班级科目显示名次...
- JavaWeb之上传与下载
- 5个增加设计趣味性的方法
- daytime协议的服务器和客户端程序,用Socket套接字实现DAYTIME协议的服务器和客户端程序-20210414073352.docx-原创力文档...
- 怎样记账家庭成员收支,搜索查看明细
- 【预研】关于互联网广告:半小时读懂互联网广告新生态
- C语言m++与++m
热门文章
- 我的世界服务器生存模式维护,生存模式 - Minecraft Wiki,最详细的官方我的世界百科...
- 幽灵按钮html透明度,CSS3之传说中的幽灵按钮详解
- 和氟西汀类似的备注_最近火了“氟西汀”情侣备注,原因让人眼红,撩妹和疼媳妇的差距...
- macos调试linux内核,Mac下 XX 及任意程序的内置浏览器调试的实现
- python快速绘制cad断面图
- vue中 .env .env.development .env.production 详细说明
- 极客头条常见问题解答 FAQ
- 深入浅出认识Hive
- mybatis中resultMap返回类型
- echarts力导向图节点连线动画_D3.js 力导向图的显示优化(二)- 自定义功能