本文为《Linux命令行与shell脚本编程大全(第3版)》的学习笔记,从 http://www.wiley.com/go/linuxcommandline 可下载其代码

Linux 命令行

Linux 内核主要负责管理系统内存、应用程序、硬件设备和文件系统 Linux 将硬件设备当成设备文件,与设备的所有通信都通过设备节点完成。设备文件有三类:字符型设备、快设备文件和网络设备文件 Linux 内核采用虚拟文件系统作为每个文件系统交互的接口

供 Linux 系统使用的核心工具称为 coreutils 软件包,其主要由三部分组成:文本处理工具、文本操作工具和进程管理工具

只能对处于统一存储媒体的文件创建硬链接。

进程列表是一种命令分组,用括号进行命令分组会创建子 shell 执行对应命令,用花括号进行命令分组则不会创建子 shell 执行外部命令时,会衍生出一个子进程

环境变量名坚持使用大写字母,用户定义的局部变量坚持使用小写字母,能够避免重新定义系统环境变量可能带来的灾难

修改子 shell 中全局环境变量并不会影响父 shell 中该变量的值

登陆 shell 通常按照 .bash\_profile .bash\_login .profile 的顺序运行第一个被找到的文件,余下的则忽略

系统用户是系统上运行的各种服务进程访问资源用的特殊账户,所有运行在后台的服务都需要用一个系统用户账号登陆到 Linux 系统上

用户在 /etc/passwd 文件中指定某个组作为默认组时,用户账号不会作为该组成员再出现在 /etc/group 文件中

Linux 中有 3 种广泛使用的日志方法:数据模式、有序模式和回写模式 XFS 文件系统采用回写模式的日志,XFS 文件系统只能扩大不能缩小

命令替换会创建一个子 shell 来运行对应的命令,在命令行提示符下使用路径 ./ 运行命令也会创建子 shell

if-then 的高级特性:双括号,双方括号(支持模式匹配)