Linux
文章平均质量分 92
Linux是一种开源的类Unix操作系统,由Linus Torvalds于1991年发布,其核心是Linux内核。Linux支持多用户、多任务和多线程,具有稳定、安全和高性能的特点,广泛用于服务器、嵌入式设备、个人电脑和超级计算机。它支持多种文件系统、网络协议和硬件架构,拥有丰富的发行版。
日晨难再
研三在读的学生,数字IC方向,持续学习中
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux:早期操作系统的系统调用
本文将以Linux1.0为例说明早期操作系统的系统调用过程。原创 2025-06-22 17:13:57 · 1001 阅读 · 1 评论 -
Linux:各发行版及其包管理工具
Linux。原创 2025-01-02 21:18:56 · 1150 阅读 · 1 评论 -
Linux:测试命令test
Linuxtest命令是Linux中的一个内建的测试命令,它可以进行文件测试,数值比较和字符串比较,本文将给出相关的示例。test命令并不会像标准输出提供显示信息,而是通过返回状态提供测试结果。原创 2024-11-11 16:06:07 · 1201 阅读 · 0 评论 -
C语言&Python&Bash&Tcl:空白(空格、水平制表符、换行符)与转义字符
C语言中的空白(空格、水平制表符、换行符)被用于分隔Token,因此Token间可以有任意多个空白。原创 2024-11-11 14:38:21 · 2176 阅读 · 1 评论 -
Linux:八种重定向详解(万字长文警告)
本文将讨论Linux中的重定向相关问题,在阅读本文前,强烈建议先学习文件描述符的相关内容Linux:文件描述符详解。重定向分为两类:第一类是全局重定向,它对后续在Bash中创建的所有子进程都生效(因为文件描述符的继承);第二类是命令重定向,它只对单个命令生效。原创 2024-09-25 01:01:53 · 3255 阅读 · 0 评论 -
Linux:终端(terminal)与终端管理器(agetty)
Linux:终端(terminal)与终端管理器(agetty)原创 2024-09-22 20:31:32 · 2866 阅读 · 0 评论 -
Linux:login shell和non-login shell以及其配置文件
shell是Linux与外界交互的程序,登录shell有两种方式,login shell与non-login shell,它们的区别是读取的配置文件不同,本文将以Bash shell为例就此进行阐述,但这个概念适用于其他shell,如ch、csh、tcsh、zsh。原创 2024-09-22 02:38:13 · 2051 阅读 · 0 评论 -
Linux:路径末尾加/和不加/的区别
普通文件操作:路径末尾加/会导致错误,因为文件不能当作目录使用。目录操作:路径末尾加不加/通常效果一样。命令特例:像rsync和cp等命令对路径的/结尾有特殊的处理方式,可能影响复制行为。符号链接:加/结尾会将符号链接当作其指向的目录处理。t=O83A。原创 2024-09-21 16:22:41 · 1806 阅读 · 2 评论 -
Linux:虚拟文件系统/proc和self进程
Linux。原创 2024-09-21 01:16:21 · 2711 阅读 · 0 评论 -
Linux:文件描述符详解
Linux中的所有进程,都拥有自己的文件描述符(File Descriptor, FD),它是操作系统在管理进程和文件时的一种抽象概念。每个文件描述符由一个非负整数表示,用来标识进程已打开的文件、输入输出流、网络套接字等资源。一个进程可以打开的文件描述符是有上限的,可以通过ulimit命令查询,如例1所示。原创 2024-09-20 17:17:04 · 2054 阅读 · 0 评论 -
Linux:Bash中的命令介绍(简单命令、管道以及命令列表)
在Bash中,命令执行的方式可以分为简单命令、管道和命令列表组成。这些结构提供了强大的工具,允许用户组合命令并精确控制其执行方式。以下是对这些Bash命令形式的介绍。原创 2024-08-24 15:12:48 · 2451 阅读 · 0 评论 -
Linux:桌面系统中的文件后缀和类型
Linux中的文件后缀与Windows系统有些不同,因为其似乎没有很重要,一个文件是否可执行对后缀没有要求。但是,后缀依然可以用于表示文件类型,也可以据此选择不同类型文件的默认打开方式。原创 2024-06-07 14:51:56 · 2222 阅读 · 0 评论 -
Linux:subshell(子shell)和childprocess(子进程)
在进行这个话题之前,首先要了解Linux系统中一个进程是如何创建的,当一个命令被执行时,首先会在当前进程创建一个子进程,这个进程除了少数地方(例如进程PID和PPID),几乎和当前进程完全一样,使用的系统调用是fork()或者clone()。 在创建了子进程后,通常会调用exec()系列的系统函数在子进程中进行替换,从而运行一个新的程序,该程序能继承父进程中处于导出状态的变量(环境变量)和函数。且子进程中的变量赋值和其他设置不会影响父进程。原创 2024-05-31 14:49:42 · 1528 阅读 · 0 评论 -
Linux:查询类型的命令type
Linux中的type命令用于查询命令名称的类型解析结果,可以判断名称是别名、关键字、函数、内建命令还是可执行文件。该命令支持多种选项:-t显示类型,-p显示文件路径,-a显示所有匹配结果。type命令遵循特定搜索顺序:先检查别名,再依次检查关键字、函数、内建命令,最后在PATH中查找可执行文件。通过实验验证,type命令能清晰反映Bash解析命令的优先级顺序,对于排查命令冲突、验证命令类型等问题非常实用。原创 2024-04-01 17:47:17 · 2127 阅读 · 1 评论 -
Linux:执行命令的命令eval与Bash解析命令的方式
本文详细介绍了Linux中eval命令的作用机制和使用场景。eval命令通过将参数重新拼接为完整命令并重新执行Shell解析流程(包括命令拆分、别名替换、变量展开等步骤),能够处理普通变量替换无法解决的复杂命令执行问题。文章通过具体示例展示了eval在解决多命令执行、嵌套变量替换等方面的优势,同时也强调了其潜在安全风险——若参数来自不可信输入,可能执行意外命令。因此,建议谨慎使用eval,特别是在处理外部数据时。原创 2024-03-22 17:20:10 · 2730 阅读 · 1 评论 -
Linux:点命令source
Linux中的source命令用于在当前Shell环境中执行指定文件中的命令,而非创建子进程。与直接运行脚本不同,source命令会将脚本中的命令(如变量导出)直接应用于当前Shell环境。该命令支持参数传递,但不会改变当前Shell的位置参数。若文件不在当前目录,会优先搜索PATH路径(除非关闭sourcepath选项)。source命令返回脚本最后一个命令的退出状态,若文件未找到则返回false。典型应用场景包括即时加载.bashrc配置或确保脚本变量在当前Shell生效。原创 2024-03-20 23:49:33 · 1966 阅读 · 1 评论 -
Linux:设置别名命令alias
Linux中的alias命令用于为命令创建简短别名,提升操作效率。该命令语法为alias [-p] [name[=value]],其中-p选项可列出当前所有别名。别名替换发生在命令执行前,但不会递归展开,且仅对当前Shell有效。要永久保存别名需写入.bashrc等配置文件。在脚本中使用别名需通过shopt -s expand_aliases启用。可通过转义字符、引号或command命令临时禁用别名替换。原创 2024-03-14 16:14:57 · 1924 阅读 · 0 评论 -
Linux:导出环境变量命令export
本文介绍了Linux中export命令的用法,主要用于创建和导出环境变量。环境变量与普通变量的区别在于可以被Shell子进程继承。通过export命令可以将普通变量转为环境变量,使用-n选项可以取消导出。文章还演示了环境变量的继承效果,并说明临时修改的系统变量可能被覆盖。最后指出永久性环境变量需写入配置文件(如.bashrc)而非仅在命令行中export。全文通过具体示例展示了export命令在变量导出、函数导出等方面的实际应用。原创 2024-03-13 21:47:37 · 2376 阅读 · 0 评论 -
Linux:Bash中变量的定义与使用
本文介绍了Bash shell中变量的基本使用规则。主要内容包括:1)变量赋值时等号两边不能有空格;2)变量值包含空格时需用引号或转义符处理;3)双引号和单引号对变量解析的影响差异;4)变量扩展的两种形式$var和${var}的区别;5)转义符在引号中的特殊处理规则。通过具体示例展示了Bash变量赋值和引用时的常见错误场景及正确用法。原创 2024-01-25 17:55:35 · 1960 阅读 · 0 评论 -
Linux:用户切换命令su
Linux中的su命令详解:用户切换与环境变量控制 摘要: su是Linux系统中用于切换用户身份的重要命令,支持两种shell启动方式:login-shell和non-loginshell。默认以non-loginshell方式切换,仅改变部分环境变量;使用"-l"或"-"选项则以login-shell方式切换,会重置环境变量并加载配置文件。原创 2024-01-22 23:44:02 · 1082 阅读 · 0 评论 -
Linux:搜索命令which、whereis、loacte和find详解
本文介绍了Linux系统中四个常用的文件搜索命令:which、whereis、locate和find。which命令在$PATH环境变量指定的目录中搜索可执行文件;whereis在特定目录下快速搜索命令、帮助文档和源代码;locate通过数据库快速查找文件,支持模糊匹配;find功能最强大但速度较慢,支持多种条件和深度搜索。各命令适用于不同场景:which适合查找可执行命令,whereis适合快速定位相关文件,locate适合模糊搜索,find适合精确条件搜索。原创 2023-12-12 17:43:11 · 1184 阅读 · 0 评论 -
Linux:文本搜索命令grep
grep是Linux系统中用于文件内容搜索的常用命令,支持正则表达式匹配。其基本语法为grep [选项] 模式 [文件],可搜索指定文件或标准输入中匹配模式的行。grep提供多种选项控制匹配方式:-E/-F/-G分别对应扩展/固定/基本正则表达式;-i忽略大小写;-v反向匹配;-w匹配完整单词。输出控制选项包括:-c统计匹配行数;-l/-L输出包含/不包含匹配的文件名;-m限制匹配行数;-o仅输出匹配部分;-q静默模式。此外,egrep和fgrep是grep的变体,分别等同于grep -E和grep -F。原创 2023-09-24 15:22:08 · 689 阅读 · 0 评论 -
Linux:模式通配符 * 和globstar **(bash4新增)的使用
本文介绍了Linux bash中模式通配符的使用方法。重点解析了*通配符的特性:匹配0至多个字符,但隐藏文件需显式匹配;单独出现时必须匹配至少一个字符;不能跨路径匹配。同时介绍了bash4新增的**递归匹配功能,需通过shopt globstar启用,可以匹配路径分隔符/并支持0个目录匹配。文章通过示例说明了转义字符和引号的使用场景,以及通配符在不同位置时的匹配规则差异。这些技巧能有效提升命令行操作效率。原创 2023-07-19 14:02:47 · 902 阅读 · 0 评论 -
Linux:输入输出流、简单的重定向和管道的本质
本文介绍了Linux中的标准流文件与数据流重定向机制。标准输入(stdin)、输出(stdout)和错误(stderr)默认指向终端设备,通过/proc/self/fd可以查看这些文件描述符。重定向操作符(<, >, 2>)可以改变标准流的指向,系统会修改原有文件描述符而非新建。管道命令(|)则实现了命令间的数据传递,将一个命令的输出作为另一个命令的输入。文章通过sleep命令的实验验证了重定向和管道的实现原理,展示了Linux强大的流处理能力。原创 2023-07-08 12:37:49 · 1306 阅读 · 0 评论 -
Linux: 磁盘状态观察命令lsblk、blkid
本文介绍了Linux系统中查看磁盘分区和文件系统的两个常用命令:lsblk和blkid。lsblk用于列出所有块设备及其分区情况,支持多种输出格式和选项,可以显示设备名称、大小、挂载点等信息。blkid则主要用于查询设备的UUID、文件系统类型等参数,提供了更便捷的UUID查询功能,但需要root权限执行。文章详细说明了两个命令的语法、常用选项及示例输出,帮助用户快速了解系统存储设备情况。原创 2023-04-03 12:24:21 · 1862 阅读 · 0 评论 -
Linux:df、du容量查询命令
本文介绍了Linux系统中两个常用的磁盘管理命令:df和du。df命令用于显示文件系统的整体磁盘使用情况,支持多种参数如-h(人性化显示)、-T(显示文件系统类型)等,能快速读取超级区块信息。du命令则用于统计文件/目录的磁盘占用空间,默认以逻辑块为单位显示,常用参数包括-h(人性化显示)、-s(只显示总大小)和-b(显示实际字节数)。文章特别指出du与ls命令的区别,以及如何正确理解目录空间占用的统计方式,建议通过实践加深理解。这两个命令是Linux系统管理员进行磁盘空间管理的重要工具。原创 2023-03-15 16:02:45 · 1168 阅读 · 0 评论 -
Linux:chgrp、chown、chmod权限属性更改命令
本文介绍了Linux系统中三个关键权限管理命令:chgrp用于修改文件/目录所属组(需组已存在),仅支持文件所有者和root操作;chown用于修改文件所有者(需用户已存在),仅root可操作,支持同时修改所属组;chmod提供数字型(如744表示rwxr--r--)和符号型(如u+rwx)两种权限修改方式,支持递归操作。这些命令是Linux系统权限管理的核心工具,使用时需注意权限限制和参数格式。原创 2023-03-06 22:13:55 · 1229 阅读 · 0 评论
分享