4.7 本章习题

( 要看答案请将鼠标移动到“答:”下面的空白处,按下左键圈选空白处即可察看)


情境仿真题一:我们在纯命令行,例如tty2里面看到的欢迎画面,就是在那个login:之前的画面(CentOS Linux 7 ...)是怎么来的?

  • 目标:了解到终端机接口的欢迎讯息是怎么来的?
  • 前提:欢迎讯息的内容,是记录到/etc/issue当中的
  • 需求:利用man找到该文件当中的变量内容

情境仿真题一的解决步骤:

  1. 欢迎画面是在/etc/issue文件中,你可以使用“nano /etc/issue”看看该文件的内容(注意,不要修改这个文件内容,看完就离开),这个文件的内容有点像下面这样:
```
\S
Kernel \r on an \m

```
  1. 与tty3比较之下,发现到核心版本使用的是 \r 而硬件等级则是 \m 来取代,这两者代表的意义为何? 由于这个文件的文件名是issue,所以我们使用“man issue”来查阅这个文件的格式;

  2. 通过上一步的查询我们会知道反斜线(\)后面接的字符是与agetty(8)及mingetty(8)有关,故进行“man agetty”这个指令的查询。

  3. 由于反斜线(\)的英文为“escape”因此在上个步骤的man环境中,你可以使用“/escape”来搜寻各反斜线后面所接字符所代表的意义为何。

  4. 请自行找出:如果我想要在/etc/issue文件内表示“时间(localtime)”与“tty号码(如tty1, tty2的号码)”的话, 应该要找到那个字符来表示(通过反斜线的功能)?(答案为:\t 与 \l)


简答题部分:

  • 简单的查询一下,Physical console / Virtual console / Terminal 的说明为何?console 有“控制台”的意思在里面,因此你可以这样看的:

    • 实体控制台:实体的屏幕、键盘、鼠标等界面,让你可以使用该配备来操作系统的环境,就称为实体控制台 (Physical console)
    • 虚拟控制台:由系统衍生出的虚拟控制台,你可以通过该虚拟控制台搭配你自己系统的实体配备,来操作远端系统的环境。每个虚拟控制台都是独立运行的。
    • 终端机:你可以用该界面来取得一个可以控制系统的 shell 环境。

    由这些定义来看,一般来说,我们取得可以与系统互动的环境,大致上都称为 terminal 就是了。

  • 请问如果我以文字模式登陆Linux主机时,我有几个终端机接口可以使用?如何切换各个不同的终端机接口?共有六个, tty1 ~ tty6 ,切换的方式为 Crtl + Alt + [F1]~[F6]
  • 在Linux系统中,/VBird与/vbird是否为相同的文件?两者为不同的文件,因为 Linux 系统中,大小写字母代表意义不一样!
  • 我想要知道 date 如何使用,应该如何查询?最简单的方式就是使用 man date 或 info date 来查看,如果该套件有完整说明的话,那么应该也可以在 /usr/share/doc 里面找到说明文档!
  • 我想要在今天的 1:30 让系统自己关机,要怎么做?shutdown -h 1:30
  • 如果我 Linux 的 X Window 突然发生问题而挂掉,但 Linux 本身还是好好的,那么我可以按下哪三个按键来让 X window 重新启动?[crtl]+[alt]+[backspace]
  • 我想要知道 2010 年 5 月 2 日是星期几?该怎么做?最简单的方式直接使用 cal 5 2010 即可找出 2010 年 5 月份的月历。
  • 使用 man date 然后找出显示目前的日期与时间的参数,成为类似:2015/10/16-20:03date +%Y/%m/%d-%H:%M
  • 若以 X-Window 为默认的登陆方式,那请问如何进入 Virtual console 呢?可以按下 [Ctrl] + [Alt] + [F2] ~ [F6] 进入 Virtual console ( 共六个 ); 而按下 [Ctrl] + [Alt] + [F1] 可回到 X-Window 的 desktop 中!
  • 简单说明在 bash shell 的环境下, [tab] 按键的用途?[Tab] 按键可做为命令补齐或文件补齐的功能,与所接的指令位置有关。 接在一串指令的第一个单字后面,则为命令补齐,否则则为文件补齐! 目前尚有选项/参数补齐的功能。
  • 如何强制中断一个程序的进行?(利用按键,非利用 kill 指令)可以利用 [Ctrl] + c 来中断!
  • Linux 提供相当多的线上查询,称为 man page,请问,我如何知道系统上有多少关于 passwd 的说明?又,可以使用其他的程序来取代 man 的这个功能吗?可以利用 man -f passwd 来查询,另外,如果有提供 info 的文件数据时 (在 /usr/share/info/ 目录中) ,则能够利用 info passwd 来查询之!
  • 在 man 的时候, man page 显示的内容中,指令(或文件)后面会接一组数字,这个数字若为 1, 5, 8 ,表示该查询的指令(或文件)意义为何?代表意义为 1) 一般使用者可以使用的指令或可可执行文件案 5)一些配置文件的文件内容格式 8)系统管理员能够使用的管理指令。
  • man page 显示的内容的文件是放置在哪些目录中?放置在 /usr/share/man/ 与 /usr/local/man 等默认目录中。
  • 请问这一串指令“ foo1 -foo2 foo3 foo4 ”中,各代表什么意义?foo1 一定是指令, -foo2 则是 foo1 这个指令的选择项目参数, foo3 与 foo4 则不一定, 可能是 foo1 的参数设置值,也可能是额外加入的 parameters。
  • 当我输入 man date 时,在我的终端机却出现一些乱码,请问可能的原因为何?如何修正?如果没有其他错误的发生,那么发生乱码可能是因为语系的问题所致。 可以利用 export LANG=en_US.utf8 或者是 export LC_ALL=en_US.utf8 等设置来修订这个问题。
  • 我输入这个指令“ls -al /vbird”,系统回复我这个结果:“ls: /vbird: No such file or directory” 请问发生了什么事?”不要紧张,很简单的英文,因为系统根本没有 /vbird 这个文件的存在啊! ^_^
  • 我想知道目前系统有多少指令是以 bz 为开头的,可以怎么作?直接输入 bz[tab][tab] 就可以知道了!
  • 承上题,在出现的许多指令中,请问 bzip2 是干嘛用的?在使用 man bzip2 之后,可以发现到,其实 bzip2 是用来作为压缩与解压缩文件用的!
  • 在终端机里面登陆后,看到的提示字符 $ 与 # 有何不同?平时操作应该使用哪一个?# 代表以 root 的身份登陆系统,而 $ 则代表一般身份使用者。依据提示字符的不同, 我们可以约略判断登陆者身份。一般来说,建议日常操作使用一般身份使用者登陆,亦即是 $ !
  • 我使用dmtsai这个帐号登陆系统了,请问我能不能使用reboot来重新开机? 若不能,请说明原因,若可以,请说明指令如何下达?理论上reboot仅能让root执行。不过,如果dmtsai是在主机前面以图形接口登陆时,则dmtsai还是可以通过图形接口功能来关机。