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