基础
学习 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
来安装会很方便)。