linux知识点 - 程序终止

本文介绍了进程终止的两种基本方式:正常情况与异常情况,并详细解释了每种情况下进程终止的具体方法。此外,还对比了exit与_exit两个函数的区别,帮助读者深入理解进程退出的内部机制。

1 , 进程终止的方式

分为两种情况,正常情况和异常情况。
正常情况
- 从main返回
- 调用exit
- 调用_exit或_Exit
- 最后一个线程从起启动例程中返回。
- 最后一个线程调用pthread_exit
异常情况
- 调用abort
- 接到一个信号并终止
- 最后一个线程对其取消请求作出响应

2 ,exit和_exit的区别
exit和_exit函数都是用来终止进程的。exit先执行一些清理操作(包括调用各种终止处理程序,关闭所有标准I/0等)。而_exit直接进入内核

<think>嗯,用户想了解Linux相关的知识点总结,特别是为了面试准备的。首先我得回忆一下系统里的引用内容,看看有哪些相关部分可以用的。引用里提到常用命令、文件系统概念、进程管理这些点,还有包管理的命令。用户可能希望一个结构化的总结,覆盖重要概念和常用操作。 首先,我需要整理常用操作和概念,比如快捷键和求助命令。引用1提到了Tab补全、Ctrl+C中断这些,还有--help和man手册的使用。这部分应该放在前面,作为基础。 然后是文件系统相关的知识点,比如inode和block,数据恢复,软硬链接。引用1里提到这些,需要详细解释每个概念,尤其是它们的区别和应用场景。比如硬链接和软链接的不同之处。 接下来是进程管理,包括僵尸进程和孤儿进程,以及SIGCHLD信号。这部分可能比较复杂,需要用简单易懂的语言解释这些进程的状态和如何处理。引用1提到这些是重点,必须涵盖。 包管理部分,引用3给出了apt命令的例子,Debian/Ubuntu系统下的操作。需要说明更新、安装、卸载软件包的命令,可能还要提到其他包管理器如yum,但引用里没有,所以可能不需要扩展。 还需要考虑其他知识点,比如LILO和BASH,引用2提到这些,但用户的问题可能更关注基础。不过BASH作为常用shell,应该简要介绍。 然后要确保每个部分都有引用标注,比如[^1]、[^3]等,自然放在句末。避免使用太多技术术语,保持清晰易懂,符合面试准备的需求。 用户可能没有明确说出的深层需求是高效复习,所以需要突出重点,结构分明,方便记忆。可能需要生成相关问题来帮助巩固知识,比如关于命令使用、概念区别、问题排查等。 最后检查是否符合格式要求:行内公式用$...$,但这里可能不需要数学公式。独立公式用$$...$$,但Linux知识点可能不涉及太多数学。确保LaTeX正确,不过当前内容可能用不上。使用中文回答,结构清晰,分点列出,引用正确。</think>### Linux 知识点总结 #### 一、常用操作与概念 1. **快捷键** - `Tab`:命令和文件名补全 - `Ctrl + C`:中断正在运行的程序[^1] - `Ctrl + D`:结束键盘输入(EOF) 2. **求助命令** - `命令 --help`:查看命令的简要帮助信息 - `man 命令`:查看详细手册(Manual Page) 3. **常用命令示例** - `cat`:查看文件内容 - `grep`:文本搜索(如 `grep "error" log.txt`) - `cut`:按列提取文本(如 `cut -d ',' -f 1 data.csv`) --- #### 二、文件系统相关 1. **inode 与 block** - **inode**:存储文件的元信息(如权限、大小、时间戳等),但不包含文件名。 - **block**:文件的实际存储单元,大小通常为 4KB。 2. **数据恢复** - 删除文件后,若未被覆盖,可通过 `extundelete` 等工具尝试恢复。 3. **硬链接与软链接** - **硬链接**:直接指向文件的 inode,与原文件共享数据,不能跨文件系统。 - **软链接**:类似快捷方式,存储目标文件的路径,可跨文件系统。 --- #### 三、进程管理 1. **僵尸进程与孤儿进程** - **僵尸进程**:子进程终止后未被父进程回收,仍占用进程表项。 - **孤儿进程**:父进程终止后,子进程被 init 进程(PID=1)接管[^1]。 2. **信号** - `SIGCHLD`:子进程终止或停止时发送给父进程的信号。 --- #### 四、包管理(Debian/Ubuntu) - `apt update`:更新软件包列表[^3]。 - `apt install <package>`:安装软件包[^3]。 - `apt remove <package>`:卸载软件包(保留配置文件)[^3]。 --- #### 五、其他重要概念 - **LILO**:Linux 的早期引导加载程序,用于加载内核到内存[^2]。 - **BASH**:Linux 默认的命令行解释器(Shell),支持脚本编程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值