Linux必懂知识大总结(补)

关机

1. 数据同步写入磁盘 sync

为了加快对磁盘上文件的读写速度,位于内存中的文件数据不会立即同步到磁盘上,因此关机之前需要先进行 sync 同步操作。

2. shutdown

# /sbin/shutdown [-krhc] [时间] [警告讯息]

-k : 不会关机,只是发送警告讯息,通知所有在线的用户

-r : 将系统的服务停掉后就重新启动

-h : 将系统的服务停掉后就立即关机

-c : 取消已经在进行的 shutdown 指令内容

3. 其它关机指令

reboot、halt、poweroff。

运行等级

0:关机模式 1:单用户模式(可用于破解root密码) 2:无网络支持的多用户模式 3:有网络支持的多用户模式(文本模式,工作中最常用的模式) 4:保留,未使用 5:有网络支持的 X-windows 支持多用户模式(桌面) 6:重新引导系统,即重启

BIOS

BIOS 是开机的时候计算机执行的第一个程序,这个程序知道可以开机的磁盘,并读取磁盘第一个扇区的 MBR,由 MBR 执行其中的开机管理程序,这个开机管理程序的会加载操作系统的核心文件。

 

MBR 中的开机管理程序提供以下功能:选单、载入核心文件以及转交其它开机管理程序。转交这个功能可以用来实现了多重引导,只需要将另一个操作系统的开机管理程序安装其它分区的启动扇区上,在启动 MBR 中的开机管理程序时,就可以选择启动当前的操作系统或者转交给其它开机管理程序从而启动另一个操作系统。

 

指令搜索顺序

1.    以绝对或相对路径来执行指令,例如 /bin/ls 或者 ./ls ;

2.    由别名找到该指令来执行;

3.    由 Bash 内建的指令来执行;

4.    按 $PATH 变量指定的搜索路径的顺序找到第一个指令来执行。

数据流重定向

重定向有5种方式,分别是: 输出重定向、输入重定向、错误重定向、追加重定向以及同时实现输出和错误的重定向。

 

重定向就是使用文件代替标准输入、标准输出和标准错误输出。

 

标准输入 (stdin)      :代码为 0 ,使用 < 或 << ;

标准输出 (stdout)    :代码为 1 ,使用 > 或 >> ;

标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;

其中,有一个箭头的表示以覆盖的方式重定向,而有两个箭头的表示以追加的方式重定向。

 

可以将不需要的标准输出以及标准错误输出重定向到 /dev/null ,相当于扔进垃圾箱。

 

如果需要将标准输出以及标准错误输出同时重定向到一个文件,需要将某个输出转换为另一个输出,例如 2>&1 表示将标准错误输出转换为标准输出。

 

$ find /home -name .bashrc > list 2>&1

静态链接库和动态链接库的区别

静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件;动态链接就是把调用的函数所在文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行的时候再从DLL中寻找相应函数代码,因此需要相应DLL文件的支持。

 

静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。动态库就是在需要调用其中的函数时,根据函数映射表找到该函数然后调入堆栈执行。如果在当前工程中有多处对dll文件中同一个函数的调用,那么执行时,这个函数只会留下一份拷贝。但是如果有多处对lib文件中同一个函数的调用,那么执行时,该函数将在当前程序的执行空间里留下多份拷贝,而且是一处调用就产生一份拷贝。

 

孤儿进程和僵死进程

孤儿进程

一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被 init 进程(进程号为 1)所收养,并由 init 进程对它们完成状态收集工作。由于孤儿进程会被 init 进程收养,所以孤儿进程不会对系统造成危害

 

僵尸进程

一个子进程的进程描述符在子进程退出时不会释放,只有当父进程通过 wait 或 waitpid 获取了子进程信息后才会释放。如果子进程退出,而父进程并没有调用 wait 或 waitpid,那么子进程的进程描述符仍然保存在系统中,这种进程称之为僵死进程。

 

僵死进程通过 ps 命令显示出来的状态为 Z。

 

系统所能使用的进程号是有限的,如果大量的产生僵死进程,将因为没有可用的进程号而导致系统不能产生新的进程。

 

要消灭系统中大量的僵死进程,只需要将其父进程杀死,此时所有的僵死进程就会变成孤儿进程,从而被 init 所收养,这样 init 就会释放所有的僵死进程所占有的资源,从而结束僵死进程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(十八)深入浅出TCPIP之HTTP和HTTPS

专栏其他文章: 理论篇: (一)深入浅出TCPIP之理解TCP报文格式和交互流程 (二)深入浅出TCPIP之再识TCP,理解TCP三次握手(上) (三)深入浅出TCPIP之再识TCP,理解TCP四次挥手(上) (四)深入浅出TCPIP之TCP三次握手和四次挥手(下)的抓包分析 (五)深入浅出TCPIP之TCP流…

leetcode118. 杨辉三角

给定一个非负整数 numRows&#xff0c;生成杨辉三角的前 numRows 行。 在杨辉三角中&#xff0c;每个数是它左上方和右上方的数的和。 示例: 输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 思路&#xff1a;没什么可说的&#xff0c;依次…

抖音快手小视频推荐算法之--协同过滤算法剖析

有人说抖音摧毁了中国的年轻人,也有人说抖音改变了自己的生活形态,还有人说抖音让自己的生活过的更加有意义……一千个人眼中,有一千个哈姆雷特,各人有各个行使自己话语的权力,我们无从争辩。 对于做自媒体的同仁们来说抖音就是粉丝变现的另外一个渠道,那抖音具体的算法…

如何抓住QQ小游戏买量红利:休闲与内购小游戏买量优化方法分享

2019年5月&#xff0c;Qzone小游戏、玩一玩整合升级为全新QQ小游戏平台&#xff0c;其以开放的社交生态和关系链&#xff0c;为开发者带来了巨大的流量红利。 为了帮助更多开发者适应和了解新市场。本文将介绍QQ小游戏投放规模现状以及各项扶持政策&#xff0c;并解读轻度小游…

(一)容器从入门到深入-容器和镜像

一、容器与镜像 什么是容器&#xff1f; 在介绍容器的具体概念之前&#xff0c;先简单回顾一下操作系统是如何管理进程的。 首先&#xff0c;当我们登录到操作系统之后&#xff0c;可以通过 ps 等操作看到各式各样的进程&#xff0c;这些进程包括系统自带的服务和用户的应用…

leetcode461. 汉明距离

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y&#xff0c;计算它们之间的汉明距离。 注意&#xff1a; 0 ≤ x, y < 231. 示例: 输入: x 1, y 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 上面的箭…

(二)容器从入门到深入-初识Kubernetes

Kubernetes 是什么 Kubernetes 脱胎于 Google 的 Borg 系统&#xff0c;是一个功能强大的容器编排系统。Kubernetes 及其整个生态系统&#xff08;工具、模块、插件等&#xff09;均使用 Go 语言编写&#xff0c;从而构成一套面向 API、可高速运行的程序集合&#xff0c;这些程…

记一次海外大型SLG游戏服务器进程被OOM的修复经历

事情经过 最近刚接手一个多次获得海外GooglePlay推荐的SLG的游戏项目,服务器是java的netty框架写的,客户端是cocos lua。 好吧既然服务器进程运行在jvm之上,吃内存倒是挺厉害的,我一个16G内存的服务器被吃的满满的,这个时候为了解决内存不足,我开启了4G的虚拟内存,方法…

leetcode50. Pow(x, n)

实现 pow(x, n) &#xff0c;即计算 x 的 n 次幂函数。 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 输出: 9.26100 示例 3: 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 1/22 1/4 0.25 说明: -100.0 < x < 100.0 n 是 32 位有符号整数…

GCC在C语言中内嵌汇编 asm __volatile__

在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作。 1、简单的内嵌汇编 例: …

MYSQL增量备份和全量备份脚本

首先配置下mysql增量备份: server-id = 1 log_bin = /var/log/mysql/mysql-bin.log binlog-ignore-db = sys, mysql, information_schema, performance_schema #设置日志格式 binlog_format = mixed #设置日志路径,注意路经需要mysql用户…

MYSQL增量备份和全量备份脚本分享

mysql的全量备份与增量备份全量备份&#xff1a;可以使用mysqldump直接备份整个库或者是备份其中某一个库或者一个库中的某个表。增量备份&#xff1a;增量备份是针对于数据库的bin-log日志进行备份的&#xff0c;需要开始数据库的bin-log日志。增量备份是在全量的基础上进行操…

leetcode48. 旋转图像

给定一个 n n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明&#xff1a; 你必须在原地旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转…

(一)nodejs循序渐进-nodejs环境安装(基础篇)

目录 Node Node的优点 Node.js 安装配置 使用nvm管理不同版本的 node 与 npm nvm 与 n 的区别 卸载全局安装的 node/npm Windows 安装 Linux 安装 安装多版本 node/npm 在不同版本间切换 列出已安装实例 在多环境中&#xff0c;npm该如何使用呢&#xff1f; 其他命…

leetcode49. 字母异位词分组

给定一个字符串数组&#xff0c;将字母异位词组合在一起。字母异位词指字母相同&#xff0c;但排列不同的字符串。 示例: 输入: ["eat", "tea", "tan", "ate", "nat", "bat"], 输出: [ ["ate",&quo…

(二)nodejs循序渐进-nodejs基本类型和循环条件语法篇(基础篇)

目录 入门之helloworld 进阶之helloworld http服务器 步骤一、引入 required 模块 步骤二、创建服务器 基本语法篇 变量声明 基础类型 if else 循环语句 for for ... in while do和do while 运算符 加减乘除 , , !, ! typeof null&#xff0c;undefine…

(三)nodejs循序渐进-值传递和引用传递,深拷贝和浅拷贝(基础篇)

值传递和引用传递 值类型变量&#xff1a; 存在内存的堆中&#xff0c;比如:a1引用类型变量 &#xff1a; 1.指针存在于栈中&#xff0c;2.引用类型的具体内容存在于堆中 ex:let a{b:1} a的指针指向 堆中的地址0xffac0ec 正如我在 第二章 说的&#xff0c; numberstringbo…

(四)nodejs循序渐进-函数,类和对象(基础篇)

上一篇文章讲到了基本数据类型和运算符&#xff0c;相信大家都能做简单的运算&#xff0c;本篇文章将讲述函数&#xff0c;类&#xff0c;对象。 函数 在nodejs中&#xff0c;一个函数可以作为另一个函数的参数。我们可以先定义一个函数&#xff0c;然后传递&#xff0c;也可…

leetcode38. 外观数列

「外观数列」是一个整数序列&#xff0c;从数字 1 开始&#xff0c;序列中的每一项都是对前一项的描述。前五项如下&#xff1a; 1. 1 2. 11 3. 21 4. 1211 5. 111221 1 被读作 "one 1" ("一个一") , 即 11。 11 被读作 "two …

(五)nodejs循序渐进-回调函数和异常处理(基础篇)

上篇文章我们讲完了类和对象&#xff0c;接下来我们将要说回调函数. 我在第一篇说到nodejs的一个优势是异步IO&#xff0c;实际上异步IO直接体现就是使用回调函数&#xff0c;当然不是用了回调函数&#xff0c;他就一定是异步IO的&#xff0c;因为inodejs是一个单线程函数&…