- 首页
- 作品
- 命令行的艺术
- 2. 基础
2. 基础
- 学习 Bash 的基础知识。具体地,在命令行中输入
man bash
并至少全文浏览一遍; 它理解起来很简单并且不冗长。其他的 shell 可能很好用,但 Bash 的功能已经足够强大并且到几乎总是可用的( 如果你只 学习 zsh,fish 或其他的 shell 的话,在你自己的设备上会显得很方便,但过度依赖这些功能会给您带来不便,例如当你需要在服务器上工作时)。
- 熟悉至少一个基于文本的编辑器。通常而言 VIM (
vi
) 会是你最好的选择,毕竟在终端中编辑文本时 VIM 是最好用的工具(甚至大部分情况下 VIM 要比 Emacs、大型 IDE 或是炫酷的编辑器更好用)。
- 学会如何使用
man
命令去阅读文档。学会使用 apropos
去查找文档。知道有些命令并不对应可执行文件,而是在 Bash 内置好的,此时可以使用 help
和 help -d
命令获取帮助信息。你可以用 type 命令
来判断这个命令到底是可执行文件、shell 内置命令还是别名。
- 学会使用
>
和 <
来重定向输出和输入,学会使用 |
来重定向管道。明白 >
会覆盖了输出文件而 >>
是在文件末添加。了解标准输出 stdout 和标准错误 stderr。
- 学会使用通配符
*
(或许再算上 ?
和 [
...]
) 和引用以及引用中 '
和 "
的区别(后文中有一些具体的例子)。
- 熟悉 Bash 中的任务管理工具:
&
,ctrl-z ,ctrl-c ,jobs
,fg
,bg
,kill
等。
- 学会使用
ssh
进行远程命令行登录,最好知道如何使用 ssh-agent
,ssh-add
等命令来实现基础的无密码认证登录。
- 学会基本的文件管理工具:
ls
和 ls -l
(了解 ls -l
中每一列代表的意义),less
,head
,tail
和 tail -f
(甚至 less +F
),ln
和 ln -s
(了解硬链接与软链接的区别),chown
,chmod
,du
(硬盘使用情况概述:du -hs *
)。 关于文件系统的管理,学习 df
,mount
,fdisk
,mkfs
,lsblk
。知道 inode 是什么(与 ls -i
和 df -i
等命令相关)。
- 学习基本的网络管理工具:
ip
或 ifconfig
,dig
。
- 学习并使用一种版本控制管理系统,例如
git
。
- 熟悉正则表达式,学会使用
grep
/egrep
,它们的参数中 -i
,-o
,-v
,-A
,-B
和 -C
这些是很常用并值得认真学习的。
- 学会使用
apt-get
,yum
,dnf
或 pacman
(具体使用哪个取决于你使用的 Linux 发行版)来查找和安装软件包。并确保你的环境中有 pip
来安装基于 Python 的命令行工具 (接下来提到的部分程序使用 pip
来安装会很方便)。