这阵子在学习 Linux 下的 Shell 相关内容。
很早就有使用 Linux 的经验,然而很浅,前阵子决定重新返回到这个平台后,就决定好好折腾一番。这里的记录,是站在一个普通用户的角度、而不是 System Admistrator 的角度,因而不会涉及太多 Linux Server 或者服务、网络相关的内容。
参考来源 linuxcommand.org 中 Learning The Shell 免费电子文档。然而并不拘泥于此,所有这里记录的命令,都参考了 man 手册,对选项做了一定的筛选。筛选的机制是我个人的喜好和臆测,并没有经过权威的、哪怕是 practical 的统计,因而不要轻信,任何时候都以系统上安装程序的 man 手册、以及具体任务的需求为准。命令介绍的格式大致如下(以 ps 命令为例)。这个格式并不是最好的,比如没有按照类似 man 手册上的方式,给出类似 Synopsis 的参考等等。然而这个格式可能也显得更简洁,毕竟初衷就是和 man 配合起来查阅嘛。
下面对各个章节(按照上述 Learning The Shell 中的章节顺序展开)做介绍。
- Why bother?
为什么要学习 Shell? - What is a shell?
什么是 Shell?这里都是基于 Bash - Bourne Again SHell 展开讨论。 - Navigation
阐述最基本的 Hierarchical Directories Structure 文件树结构。 - Looking Around
主要覆盖三个命令。ls less file 命令。 - A Guided Tour
对于 Linux 的 Filesystem Hierarchy 做了较为详细的讲解。 - Manipulating Files
通配符,以及 cp mv rm mkdir 命令。 - I/O Redirection
输入输出重定向,管道,过滤器(覆盖 sort uniq grep head tail sed tr)命令。
需要注意,这里对于 grep 的说明中,同时附带了 pcregrep 的说明。这是采用了 PCRE 的 grep 版本,类似 GNU Extended RE 表达式或者 GNU grep 开启 -P 选项后的正则搜索式。
sed 命令仅仅覆盖了 s 替换命令,由于 sed 的 -r 选项即可采用 GNU 扩展正则式(Extended Regular Expression),故而也还蛮强大的。 - Permissions
权限设置。包括基本的 rwx 模式,以及 setuid 和 setgid 两种特殊的权限设置机制。
覆盖 chmod chown chgrp 三个命令。由于 chown 当前已经具备同 chgrp 重叠的功能,故而后者只是引用了前者的参考链接。 - Job Control
覆盖 ps pgrep pkill 以及 jobs fg bg 命令。
由于 ps 命令内容太多,因此只是依照 man 手册上的例子,做了介绍,并给出了 man 手册的基本导读。 - 额外的命令
譬如基本的 tar 压缩,du 查看文件对 disk usage 的占用情况,wc 做统计,dirname basename readlink 等关注文件类型的命令。
其中有些命令没有关注到,譬如 find 命令。这是一个遗憾,不过后续会补上。
这些内容是通过 Zim Wiki 的 Personal Wiki 记录的,其可以集成 wiki 本地版本控制,我在考虑如果这部分内容后续积累较多了,可以在 Google Code 上开一个「学习文档」类型的项目。目前估计是没这必要了。
- EOF -