Linux 入门

LinuxBeginner
立即练习

简介

终端是一种通过文本与 Linux 交互的方式。你在提示符后输入命令,按下 Enter,Linux 就会显示输出或对系统进行相应更改。刚开始时,提示符可能看起来有些陌生,但每次交互都遵循同样的简单模式。

在本实验中,你将运行一些安全命令,用于打印文本、显示日期、查看日历、计算数字以及生成文字艺术。你还会将一些结果保存到 /home/labex/project/first-commands 下,从而区分临时显示在终端中的输出和存储在文件中的信息。

运行第一个命令

提示: 如果你是 LabEx 新用户,建议先从 Linux 学习路径开始学习。

在本步骤中,你将学习如何识别终端提示符、运行命令并读取命令输出。

闪烁的光标会出现在提示符之后。提示符表示 shell 已准备好接收命令;你不需要输入提示符本身。首先进入本实验准备好的工作目录:

cd /home/labex/project/first-commands

在终端标签页的闪烁光标处输入命令

cd 表示「change directory」,即切换目录。目录是 Linux 对文件夹的称呼。后续实验会详细介绍目录;现在,这条命令可以让你保存的所有结果都集中在一个固定位置。

运行 pwd,它表示「print working directory」,即显示当前工作目录:

pwd

输出应当是你刚刚进入的目录:

/home/labex/project/first-commands

现在使用 echo,让 shell 打印一段文本:

echo "Hello, Linux"

你应该会看到:

Hello, Linux

引号会将这些单词组合成一个文本值。接下来,将这句问候语保存到文件中。> 符号称为输出重定向:shell 会创建其右侧指定的文件,并将命令的常规输出发送到该文件,而不是显示在屏幕上。如果文件已经存在,> 会覆盖其中原有的内容,因此在处理重要数据时,使用前务必确认目标文件是否正确:

echo "Hello, Linux" > greeting.txt

这条命令不会在屏幕上显示任何内容,因为输出已经写入 greeting.txt

使用 cat 读取保存的文件:

cat greeting.txt

再次看到 Hello, Linux,说明这段文本已经存在于 greeting.txt 中,而不仅仅是显示在终端屏幕上。

查看日期和日历

在本步骤中,你将让 Linux 提供时间信息,并了解命令输出可能会随环境变化。

不带任何选项运行 date

date

Linux 会显示当前星期几、日期、时间、时区和年份。具体值每秒都会变化,因此你的输出可能与其他地方看到的示例不同。

命令通常支持用于改变输出内容的选项。以 + 开头的 date 格式可以让你选择需要显示的字段。%F 表示 ISO 日期格式 YYYY-MM-DD

date +%F

保存今天的 ISO 日期。和上一步一样,> 会将输出重定向到文件;如果文件已存在,也会覆盖其中的内容:

date +%F > today.txt

cal 命令会以日历形式显示当前月份:

cal

月份和星期的排列方式取决于当前日期和区域设置。将这份输出也保存下来:

cal > calendar.txt

> 符号会将输出发送到文件,而不是显示在屏幕上。显示保存的日历,确认它已经成功写入:

cat calendar.txt

之后你会系统学习重定向。现在只需记住,终端输出既可以立即查看,也可以保存下来供日后使用。

使用 Expr 进行计算

在本步骤中,你将使用 expr 进行整数运算,并观察为什么 shell 命令中的空格很重要。

shell 会根据空格将命令行拆分成多个单词。expr 要求第一个数字、运算符和第二个数字分别作为独立参数传入。计算两个数字的和:

expr 5 + 3

结果为:

8

尝试进行减法和除法:

expr 20 - 7
expr 24 / 6

乘法需要额外注意一点。shell 会将 * 视为文件名通配符,因此需要使用反斜杠对它进行转义,才能将字面意义上的乘法运算符传递给 expr

expr 6 \* 7

将乘法结果保存到文件中。这里使用了你之前练习过的相同输出重定向方式,因此终端不会显示结果,而是将 42 写入 calculation.txt

expr 6 \* 7 > calculation.txt

显示该文件:

cat calculation.txt

你应该会看到 42。先从简单的练习开始,可以让你专注于命令的组成结构:命令名称、以空格分隔的参数,以及可选的输出目标。

将文本转换为 ASCII 艺术字

在本步骤中,你将使用命令选项改变 figlet 的文本格式。

figlet 会使用普通的终端字符生成放大的字母。先用一个简短的单词运行它:

figlet "LabEx"

输出会跨越多行。这种效果称为 ASCII 艺术字,因为它使用的是文本字符,而不是图像像素。

许多 Linux 选项以 - 开头。对于 figlet-f 用于选择字体,slant 是字体名称。试试看:

figlet -f slant "Linux"

将第一种设计保存到文件中:

figlet "LabEx" > labex-art.txt

查看保存的艺术字开头部分:

head labex-art.txt

head 默认显示前十行。你应该会看到与终端中相同的多行设计。

清理杂乱的终端

在本步骤中,你将清除旧的输出,并区分清理屏幕与删除文件这两个不同的操作。

运行多条命令后,终端屏幕可能会变得十分拥挤。运行:

clear

clear 会将旧的终端输出移出当前视图,但不会删除命令、文件或目录。大多数终端还支持使用 Ctrl+L 快捷键完成同样的视觉清理。

列出工作目录,确认之前的文件仍然存在:

ls

你应该仍然可以看到 greeting.txttoday.txtcalendar.txtcalculations.txtlabex-art.txt

清理屏幕后,创建一个最终标记文件:

echo "Terminal ready" > terminal-ready.txt

显示该标记,检查文件内容:

cat terminal-ready.txt

这条最后的命令再次说明了一个重要概念:清理显示内容只会改变你当前看到的画面,文件仍然会保存在磁盘上。

总结

你已经了解了终端的基本交互模式:输入命令、按下 Enter,然后理解命令结果。你练习了 pwdechodatecalexprfigletclear,使用了简单的命令选项,并将输出保存到了文件中。现在,你已经可以在学习更广泛的文件操作之前,先通过一个小型终端挑战来应用这些基础知识。