附录 A:命令行速成教程
该附录是一个命令行的超级速成教程,它主要是为了让你在一两天内快速上手命令行,而不是教你一些高级的 Shell 用法。
介绍:别说话,开始用 Shell
该附录是一个命令行的速成教程,命令行可以让你的计算机执行任务。作为一个速成教程,它不会像我其他的书一样教得很详细。它只是为了让你能够像一个真正的程序员一样使用你的电脑。当你学完这个附录,你将能够掌握每个使用 Shell 的人每天进行的最基本的一些操作。你还会明白目录和其他一些概念的基础知识。
我唯一要给你的建议就是:什么也别说了,开始用 Shell 吧。如果你对命令行感到恐惧,唯一克服的方法就是去学习和攻克它。编程语言就是用更高级的方式去控制你的计算机,而命令行就是编程语言的雏形。一旦你掌握了命令行,你就能够更轻松地学习编程语言。
55.1.1 如何使用附录
使用附录最好的方式如下:
- 准备一个本子和一根笔。
- 从附录最开始做好每一个练习。
- 当你遇到任何不懂的地方时,把它记在你的本子上。留一些空白以便之后补充答案。
- 当你完成一个练习,回头来看你的本子,并重新审视你的问题。试着通过上网搜索或者请教别人来回答这些问题。(如果实在搞不懂欢迎去微信公众号“学习癌”相应章节下面查看大家讨论或者在后台留言,你会很快得到答案。)
- 每个练习都按这样的步骤来,写下你的问题,然后回头去找答案,当你做完这些,你会比你想象的更了解命令行的使用。
55.1.2 你需要记东西
在命令行的学习中我会要求你记东西,这是掌握知识最快的方法。我知道对某些人来说记东西非常痛苦,但是你得克服它,让自己记住。记忆是学习知识的不二法门,你必须要克服这种恐惧。
以下是记忆方法:
- 告诉自己你可以做到,别试着找捷径,坐下来认真去记。
- 把你要记的东西写在一些索引卡片上,然后一半一半分成两堆。
- 每天花 15-30 分钟时间去记忆这些卡片,试着回忆每一张上面的内容。把没记清楚的放一块儿重点记忆,直到烂熟于心。然后再全部过一遍,检查自己有没有全部记住。
- 在你晚上睡觉之前,把你之前没记住的卡片拿出来复习 5 分钟再睡。
还有其他一些技巧,比如你可以把你要学的东西写在一张纸上,然后贴到你经常能看到的墙上,当你看到墙的时候就顺便复习一遍。
如果你每天都坚持这样做,你应该能记住我让你记的大多数内容。一旦你这样做了,基本上其他任何东西都会变得更简单和更直觉(intuitive),这也是记忆的目的。它不仅是为了教会你抽象的概念,更是为了让你不用想就知道,这也是你去学习更难的知识所必需的基础。
附录练习 1 环境配置
在该附录中,你将需要做以下三件事情:
- 用你的 Shell (命令行、Terminal、Powershell)做一些操作。
- 学习你做的这些操作。
- 自己去做更多的操作。
在最开始的这个练习中,你需要打开你的 Terminal,并让它正常运行,以便去做接下来的练习。
55.2.1 跟我做
macOS
用 MacOS 的童鞋可以这样做:
- 按住 Command 键+空格。
- 右上角会出现搜索框。
- 输入 terminal。
- 点击 Terminal 以打开,它看起来像个黑盒子。
- 把 Terminal 放在 Dock(右键点击下面的 Terminal 图标,在“选项”中勾选“在Dock中保留”)
现在你已经打开了 Terminal,并把它放在了 Dock 以便快速访问。
Linux
我假设如果你使用 Linux 你已经知道如何找到并打开 Terminal 了。
Windows
在 Windows 系统下我们要用 Powershell。有些人习惯用一个叫 cmd.exe
的程序来工作,但是它没有 Poweshell 好用。如果你用的是 Windows 7 以及以上的版本,可以这样做:
- 点击开始
- 在“搜索程序和文件”中输入 Powershell(Windows 10 可以直接在左下角搜索框输入)
- 点击回车
如果你用的不是 Windows 7 或者以上版本,你真的该考虑升级了。如果你不想或者没办法升级,可以去微软官网下载适合你系统版本的 Powershell。因为我没用过 XP,所以不知道整个过程是不是一样,但愿如此吧。
55.2.2 你学到的
你学到了如何打开 Terminal,以进行附录中后面的练习。
55.2.3 附加练习
这一节有一个庞大的附加练习,其他节都没有这么多。记忆这些内容能让你的大脑准备好去学习后面的东西,相信我,这会让你后面的学习更加轻松和顺畅。
Linux/macOS
把以下命令符列表写在卡片上,名字在左,含义在右,随着附录的学习每天复习。
命令符 | 含义 |
---|---|
pwd | 打印工作目录 |
hostname | 计算机网络运营商名称 |
mkdir | 创建目录 |
cd | 切换目录 |
ls | 列示目录 |
rmdir | 移除目录 |
pushd | 前往新目录地址 |
popd | 返回原目录地址 |
cp | 复制文件或目录 |
mv | 移动文件或目录 |
less | 在文件中翻页 |
cat | 打印整个文件 |
xargs | 执行参数值 |
find | 查找文件 |
grep | 在文件中查找内容 |
man | 打开帮助手册 |
apropos | 查找合适的帮助内容 |
env | 查看环境 |
echo | 打印参数值 |
export | 输出/设置新环境变量 |
exit | 退出 shell |
sudo | 危险! 获得 root 权限 慎用! |
Windows
如果你用的是 Windows,以下是你的命令符列表:
命令符 | 含义 |
---|---|
pwd | 打印工作目录 |
hostname | 计算机网络运营商名称 |
mkdir | 创建目录 |
cd | 切换目录 |
ls | 列示目录 |
rmdir | 移除目录 |
pushd | 前往新目录地址 |
popd | 返回原目录地址 |
cp | 复制文件或目录 |
robocopy | 超强复制 |
mv | 移动文件或目录 |
more | 在文件中翻页 |
type | 打印整个文件 |
forfiles | 在多个文件执行命令 |
dir -r | 查找文件 |
select-string | 在文件中查找内容 |
help | 打开帮助手册 |
helpctr | 查找合适的帮助内容 |
env | 查看环境 |
echo | 打印参数值 |
set | 输出/设置新环境变量 |
exit | 退出 shell |
runas | 危险! 获得 root 权限 慎用! |
练习练习练习,记忆记忆记忆,直到你能够对这些命令符脱口而出,而且记忆必须是双向的,你得能够看着命令符说出它的作用,也得知道要执行某个操作需要哪个命令符。通过这种方式,你可以逐步构建起自己的计算机语言词汇,但是也不要花费太多时间,如果你感到厌倦了就往下进行,在学习中强化记忆。