JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

你的第一行命令行

一旦你明白那块黑屏只是一个给电脑下指令的地方,它就不可怕了——这就是入门方法。

命令行到底是什么

那个吓人的黑色窗口,只是一个让你给电脑逐行输入指令的地方。在那里聆听的程序叫做 外壳程序(shell):你输入一条命令,按下回车,它就去办事,然后打字回应你。可以把它想成你在给电脑发短信,而不是用鼠标点它。

外壳程序不能直接碰硬件。它把你真正的请求往下传给 内核(kernel)——操作系统最底层的核心,由它真正去打开文件、读写磁盘、运行程序。你对外壳程序说话,外壳程序再悄悄转告内核。

看懂提示符

在你输入任何东西之前,外壳程序会先显示一小行,叫做提示符(prompt)。它通常以一个美元符号 ` 你的第一行命令行 — JOVANA Education

你的第一行命令行

结尾。这个 ` 你的第一行命令行 — JOVANA Education

你的第一行命令行

只是外壳程序在说:"我准备好了——该你了。"你在它后面打字,而不是前面。

` 你的第一行命令行 — JOVANA Education

你的第一行命令行

前面的文字通常显示你当前所在的位置——也就是你的路径(path),比如 `~/projects`。那个波浪号 `~` 是你主目录的简写。所以每次提示符出现,它都在悄悄回答"我是谁、我在哪"。

四处走动:你的地图

你的文件存放在一层套一层的文件夹里,就像大楼里一间套一间的房间。三条命令就是你全部的地图。`pwd` 在问"我站在哪里?"`ls` 在问"这个房间里有什么?"而 `cd` 的意思是"走进那个房间。"说真的,你需要的差不多就这些。

$ pwd
/Users/you/projects
$ ls
notes.txt   website   photos
$ cd website
$ pwd
/Users/you/projects/website
先看看自己在哪,环顾四周,走进一个文件夹,再确认一次。

动手做事,以及那张隐形成绩单

要运行一条命令,你就输入它的名字然后按回车——就这么简单。`mkdir photos` 会新建一个叫 photos 的文件夹;`echo hello` 只是把 hello 这个词打印回给你看。外壳程序办完事、显示结果,再把提示符交还给你,好让你继续下一条。

这里有一点新手很少注意到:每条命令结束时都会悄悄交回一个退出码(exit code)0 代表成功;其他任何数字都意味着出了问题。你平时看不到它,但脚本和工具一直在读它,用来决定要不要继续往下走。

$ ls notes.txt
notes.txt
$ echo $?
0
$? 保存着上一条命令的退出码——0 确认它成功了。

进阶招式:管道、标志和脚本

管道(pipe)写作 `|`,它把两条命令接起来,让第一条的输出变成第二条的输入——就像把两根花园水管接到一起。`ls | wc -l` 先列出你的文件,再把这份清单直接送进一个计数器,于是你得到的是一个整洁的总数,而不是一大堵文件名的墙。

大多数命令还接受标志(flag)——以短横线开头的小开关,用来改变行为。`ls -l` 显示详细列表;`ls -a` 显示隐藏文件。通常你还能把它们叠在一起,比如 `ls -la`。标志就是一条命令悄悄胜任许多活儿的秘诀。

当你把一堆命令存进一个文件,你就做出了一个脚本。但在系统肯运行它之前,你得用文件权限(file permissions)把它标记为"可运行"——下面的 `+x` 字面意思就是"允许执行"。这就好比一份食谱:能读,和厨房被允许去做,是两回事。

$ chmod +x deploy.sh
$ ./deploy.sh
赋予执行权限,然后运行你自己的脚本。

连到另一台机器

有时候你想操控的电脑并不在你面前——它是远方某个数据中心里的一台服务器。SSH 就是那条安全的隧道,让你在那台远程机器上打开一个命令行,像坐在它面前一样打字。你用一行 `ssh [email protected]` 这样的命令连上去,从那一刻起,你的命令就在那边运行,而不是这边。

在任何机器上,无论本地还是远程,有些设置存放在环境变量(environment variables)里——这是外壳程序揣在兜里的带名字的值,比如 `HOME` 或 `PATH`。命令通过读取它们来知道东西在哪。你其实已经见过一个了:`$?` 就是一个保存着上一个退出码的特殊变量。

小结:一张活命速查表

现在你已经够用了:四处走动、查看东西、让电脑干活——全靠打字。把下面这几条命令记牢,找一个你不介意随便折腾的文件夹试一试,那块黑屏就会从吓人变成你最快的工具。

  1. pwd——我现在在哪?
  2. ls——这里有哪些文件?(加 -la 看全部)
  3. cd 文件夹——进去;cd .. 往上;cd ~ 回主目录。
  4. echo $?——上一条命令成功了吗?(0 = 成功)
  5. 命令1 | 命令2——把一条的输出用管道送给下一条。
  6. chmod +x 文件——让你的脚本可以运行。