在使用计算机时,用户需要以操作系统能够理解的方式发出指令。然而,用户通常并不直接与操作系统内核进行沟通,而是通过一个称为 Shell 的中间层完成指令的传递和解释。 在 Linux 系统中,Shell 充当了用户与操作系统之间的“翻译官”,将人类可读的命令转换为系统可以执行的操作。我们通常说的“命令行”,实际上主要指的就是与 Shell 互动的这个过程。

几乎所有的 Linux 系统都内置了一个强大的 Shell 程序,它的名字叫 bash。bash 是 "Bourne Again SHell" 的缩写,这个名字很有趣,它致敬了最早的 Unix Shell——由 Steve Bourne 编写的 sh,同时寓意着自己是一个功能更强大的"重生版"。
如果你使用的是 Windows 系统,不用担心!你可以通过以下几种方式来学习 Shell:
推荐 Windows 用户先安装 WSL,这样就能获得完整的 Linux 体验。
在图形界面的电脑上,我们不能直接和 Shell 对话,还需要一个叫做“终端模拟器”(Terminal Emulator)的工具,它就像一扇通往 Shell 世界的“任意门”。
你可以在你的系统菜单里找一找,通常它的名字就叫“终端”(Terminal)。不同的桌面环境可能会有不同的终端程序,比如 KDE 下的 Konsole,或是 GNOME 的 Gnome-terminal。 虽然名字各异,但它们的功能都一样:为我们打开一个窗口,让我们能和 Shell 交流。
现在,让我们打开终端,开启和 Shell 的第一次对话吧!启动终端后,你会看到类似这样的提示符:
|[me@linuxbox ~]$
这个闪烁光标的地方,就是 Shell 提示符。它表示 Shell 已经准备就绪,正在等待你下达命令。提示符的样式可能略有不同,但通常会包含你的用户名@主机名,后面跟着当前所在的目录(我们稍后会学到),最后是一个美元符号 $。
请特别留意提示符的最后一个字符。如果是美元符号 $,说明你正以普通用户的身份操作。但如果它是一个井号 #,那可要当心了!这代表你拥有“超级用户”(root)权限,你的任何一个操作都可能对系统产生深远影响,就像拥有了至高无上的权力。
我们可以随便输入点什么,看看会发生什么。比如输入一串乱码:
|[me@linuxbox ~]$ abcdefg
Shell 显然不明白你想做什么,于是它会友好地提示你“找不到这个命令”,然后再次显示提示符,给你一个新的机会。
|bash: abcdefg: command not found [me@linuxbox ~]$
试试按一下键盘上的“向上”方向键,你会惊奇地发现,刚才输入的“abcdefg”又回来了。这就是 Shell 的“记忆功能”,它会记录你输入过的命令。默认情况下,大多数 Linux 系统会记住最近的 500 个命令。你可以通过“向下”方向键来翻阅较新的命令。
当你调出一条历史命令后,试试用“向左”和“向右”方向键。你可以把光标移动到命令的任意位置,方便地进行修改和编辑,而不需要把整条命令重新输入一遍。
虽然我们主要用键盘和 Shell 交流,但鼠标也能派上用场。在终端里,你可以用鼠标左键拖拽选中一段文本,这段文本会自动被复制到一个临时的剪贴板里。然后,只需按下鼠标中键,就能把它粘贴到光标所在的位置。这个技巧非常方便,不妨试一试。
体验了基本操作,我们来尝试几个真正有用的命令。
想知道现在几点了吗?输入 date 命令:
|[me@linuxbox ~]$ date Thu Oct 25 13:51:54 EDT 2007
它会立即显示当前的日期和时间。
想查看本月的日历?试试 cal 命令:
|[me@linuxbox ~]$ cal October 2007 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
关心你的硬盘还剩多少空间?df 命令可以告诉你:
|[me@linuxbox ~]$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 15115452 5012392 9949716 34% / /dev/sda5 59631908 26545424 30008432 47% /home
想看看电脑的内存(RAM)使用情况?free 命令可以满足你:
|[me@linuxbox ~]$ free total used free shared buffers cached Mem: 513712 503976 9736 0 5312 122916 -/+ buffers/cache: 375748 137964 Swap: 1052248 104712 947536
当你完成了所有工作,想要结束这次对话时,有两种方式可以退出。你可以直接关闭终端窗口,或者在提示符后输入 exit 命令,然后按下回车。
|[me@linuxbox ~]$ exit
即使你不打开任何终端窗口,你的 Linux 系统其实也在后台悄悄地运行着好几个“终端会话”。它们被称为“虚拟终端”或“虚拟控制台”。
在大多数系统上,你可以通过快捷键 Ctrl + Alt + F1 到 F6 来访问它们。每个虚拟终端都会显示一个登录界面,让你输入用户名和密码。
要从一个虚拟终端切换到另一个,只需按住 Alt 键并配合 F1 到 F6 键。想回到你熟悉的图形桌面?按下 Alt + F7 就行了。
通过这次初体验,我们认识了 Shell 这个强大的“翻译官”,学会了如何通过终端与它交流,并掌握了一些简单的命令和操作技巧。 是不是没有想象中那么可怕?现在让我们正式开始Linux的学习之旅。