第4章 首次登陆和在线求助
一、要点总结
4.1 命令行
4.1.1 登录
- 一般来说,不建议直接使用root的身份登陆系统。因为系统管理员的权限太高了,而Linux下面很多的指令行为是“没有办法复原”的。所以,使用一般帐号进行日常使用,“手滑”的情况会比较不严重。等到有需要修改或者是创建系统相关的管理工作时,再切换身份成为root。
- 主机名的显示通常只取小数点前的字母。所以
study.centos.vbird
主机名在命令行界面只会显示study
。 - 登录后
~
代表的是“使用者的主文件夹”的意思,不同用户有不同的主文件夹。举例来说,root的主文件夹在/root,所以~
就代表/root的意思。而dmtsai的主文件夹在/home/dmtsai,所以如果你以dmtsai登陆时,他看到的~
就会等于/home/dmtsai了。 - 命令行模式登陆后所运行的程序被称为壳(Shell),Linux的壳程序就是bash。
4.1.2 执行命令
-
可以以如下形式执行命令
1
2command [-options] parameter1 parameter2 ...
# 指令 选项 参数(1) 参数(2)- 一行命令中第一个输入绝对是命令(command)或可执行文件(例如shell脚本)。
- 命令、选项、参数等这几个东西中间以空格来区分,不论空几格shell都视为一格。所以空格是很重要的特殊字符。
- 按下回车键后,该命令就立即执行。回车键代表着一行命令的开始启动。
- 命令太长的时候,可以使用反斜线(\)来转义回车键,使命令连续到下一行。
- 在Linux系统中,英文大小写字母是不一样的。举例来说,cd与CD并不同。
-
执行命令的两种主要情况
- 一种是该命令会直接显示结果,然后回到命令提示字符等待下一个命令的输入,如
date
、cal
; - 一种是进入到该命令的环境,直到结束该指令才回到命令提示字符的环境,如
bc
。
- 一种是该命令会直接显示结果,然后回到命令提示字符等待下一个命令的输入,如
-
三个案例命令
- 查询日期时间
date
- 查询日历
cal
- 计算器
bc
- 查询日期时间
4.1.3 四个快捷键
Tab
- [Tab]接在一串命令的第一个字段后面,则为【命令补全】。
- [Tab]接在一串指令的第二个字段后面,则为【文件补齐】。
- 若安装bash-completion软件,则在某些指令后面使用[tab]按键时,可以进行【选项/参数的补齐】功能。
[Ctrl]-C
- 中断目前程序。
[Ctrl]-D
- 代表“键盘输入结束(End Of File, EOF或End Of Input)”的意思。
- 也可以用来取代exit的输入。例如你想要直接离开命令行,可以直接按下[Ctrl]-D(相当于输入exit)。
[shift]+{[PageUP]|[Page Down]}按键
- 使用【Shift+Page Up】来往前翻页,使用【Shift+Page Down】来往后翻页。
4.1.4 注销
- 注销不是关机,只是将用户退出系统。
- 输入
exit
或按下[Ctrl]-D即可。
4.2 图形用户界面X Window
4.2.1 X Window和命令行的切换
- Linux默认的情况下会提供六个Terminal来让使用者登陆,分别命名为tty1tty6的操作接口环境,使用**[Ctrl]+[Alt]+[F1][F6]**组合键切换。
- 通常tty1是默认的图形界面模式。所以要切换到命令行可以按[Ctrl]+[Alt]+[F2]~[F6],而后可以按[Ctrl]+[Alt]+[F1]回到图形界面。
- 在CentOS 7环境下,当启动完成之后,默认系统只会提供给你一个tty而已,因此无论是命令行界面还是图形界面,都是会出现在tty1。tty2~tty6其实一开始是不存在的!但是当你要切换时(按下[ctrl]+[alt]+[F2]),系统才产生出额外的tty2。
- 所谓图形环境,实际上就是【命令行界面加上X Window软件】的组合。若在命令行环境中使用【startx】命令启动X Window,图形界面就会出现在当时那个tty上,但是有如下条件:
- 并没有其他的X Window被启用;
- 已经安装了X Window,并且X server是能够顺利启动的;
- 最好要有窗口管理器,例如GNOME、KDE或者是普通的TWM等。
4.2.2 文件显示和权限
-
只要文件名的开头是小数点,那么该文件名就不会在一般观察模式中被显示出来。
-
2的箭头指的是一般的目录,3的箭头指的是链接文件,4的箭头指的是禁止进入的目录。如果你的帐号没有权限进入该目录时,该目录就会出现一个【X】的符号。
4.2.3 重启X Window
- 直接注销,然后再重新登陆即可;
- 在X Window中直接按下【Ctrl+Alt+Backspace】。这个方法要生效,需要提前进行以下设置:
- 由【应用程序】的【工具】项目下的【优化工具】中,使用【打字】项目,并选择【杀死X服务器的按键序列】从【已禁用】改成【Ctrl+Alt+Backspace】的设置。
4.3 在线求助
4.3.1 知道命令但忘记参数使用--help
- 几乎Linux上的命令在开发时,开发者就将可以使用的命令语法与参数写入命令的
--help
选项打印中。
4.3.2 不知道命令或文件格式找man
或info
man page
-
在所有UNIX-like系统中都有。
-
man
是manual的缩写。只要执行man something
马上就会有清楚的说明出现,出现的这个页面叫man page
。- 当然,可以通过
man man
的方式查询它自己的用法。 - 如果想找到所有和something命令有关的说明文件,使用
-f
参数1
man -f something
- 如果想模糊搜索。只要说明文件里包含something字符串就把它列出来,使用
-k
参数1
man -k something
- 当然,可以通过
-
man something
结果后的数字表示了something的类型,如下表代号 代表内容 1 使用者在shell环境中可以操作的指令或可可执行文件 2 系统核心可调用的函数与工具等 3 一些常用的函数(function)与函数库(library),大部分为C的函数库(libc) 4 设备文件的说明,通常在/dev下的文件 5 配置文件或者是某些文件的格式 6 游戏(games) 7 惯例与协定等,例如Linux文件系统、网络协定、ASCII code等等的说明 8 系统管理员可用的管理指令 9 跟kernel有关的文件 -
也可以通过在
man
命令后加上数字来限定搜索something命令的文件说明范围,比如1
2man 1 something
man 7 something
-
-
man page
的操作方式按键 进行工作 空格键 向下翻一页 [Page Down] 向下翻一页 [Page Up] 向上翻一页 [Home] 去到第一页 [End] 去到最后一页 /string 向“下”搜寻 string 这个字串 ?string 向“上”搜寻 string 这个字串 n, N n 搜寻下一个(不论是 / 或 ?) , N “反向”搜寻 q 结束这次的 man page -
man page通常是放在
/usr/share/man
目录,然而,我们可以通过修改/etc/man_db.conf来修改man page的搜寻路径。 -
还有两个命令和
man
相关,是man
的简略写法1
2whatis [命令或是数据] # 相当于 man -f [命令或是数据]
apropos [命令或是数据] # 相当于 man -k [命令或是数据]-
要注意的是,这两个特殊命令要能使用,必须要有创建 whatis 数据库才行!这个数据库的创建需要以 root 的身份下达如下的命令:
1
mandb # 旧版的Linux这个命令是使用makewhatis。CentOS7开始使用 mandb 了。
-
info page
-
Linux额外提供了一种线上求助的方法
info
命令 -
与man page一口气输出一堆信息不同的是,info page是将文件数据拆成一个一个的段落,每个段落用自己的页面来撰写, 并且在各个页面中还有类似网页的“超链接”来跳到各不同的页面中,每个独立的页面也被称为一个节点(node)。
-
按键
按键 进行工作 空白键 向下翻一页 [Page Down] 向下翻一页 [Page Up] 向上翻一页 [tab] 在 node 之间移动,有 node 的地方,通常会以 * 显示。 [Enter] 当光标在 node 上面时,按下 Enter 可以进入该 node 。 b 移动光标到该 info 画面当中的第一个 node 处 e 移动光标到该 info 画面当中的最后一个 node 处 n 前往下一个 node 处 p 前往上一个 node 处 u 向上移动一层 s(/) 在 info page 当中进行搜寻 h, ? 显示求助菜单 q 结束这次的 info page -
CentOS 7将info page的文件放置到
/usr/share/info/
目录中。这样不以info page格式写成的说明文档(就是man page),虽然也能够使用info来显示,不过其结果就会跟man page相同。
4.3.3 软件的说明文档找/usr/share/doc目录
- 很多软件都有额外的文档告诉你原理说明、版权信息、安装须知、预计工作事项、未来工作规划等,这些说明文件一般放在/usr/share/doc目录。
4.4 正确的关机
4.4.1 必要性
Linux系统中由于是多用户多任务的环境,所以系统随时都有很多不同的用户所下达的任务在进行, 因此正确的开关机非常重要。不正常的关机可能会导致文件系统错乱,造成数据的毁损(因为来不及把数据写回到文件中)。这也是为什么通常Linux主机都会加挂一个UPS(不间断电源)的缘故。
4.4.2 正确的流程
- 观察系统使用状态。
- 使用
who
命令查看目前有谁在线。 - 使用
netstat -a
命令查看网络的联机状态。 - 使用
ps -aux
查看后台执行的程序。
- 使用
- 使用
shutdown
通知在线用户关机的时刻 - 先同步
sync
后正确使用关机命令shutdown
、reboot
、halt
和poweroff
- 虽然现在上述关机命令均在关机前进行了
sync
的调用,但是还是保险点好。 - 一般用户只有在主机前以物理终端(tty1~tty6)登录系统时可以执行关机命令。只有root用户可以通过远程管理工具(如ssh工具)执行关机命令。
- 虽然现在上述关机命令均在关机前进行了
4.4.3 关机相关的命令
数据同步写入磁盘:sync
- 在命令行输入sync,在内存中尚未被更新的数据就会被写入硬盘中。
- 一般用户使用sync所更新的硬盘数据就仅有自己的数据,而root可以更新整个系统中的数据。
常用的关机命令:shutdown
1 | shutdown [-krhc] [时间] [警告信息] |
其他替代命令:reboot
、halt
、poweroff
1 | reboot # 重新启动 |
使用管理工具systemctl
关机
- 上面谈到的
shutdown
、reboot
、halt
和poweroff
其实都是调用了systemctl
这个命令。
1 | systemctl [命令] |
二、习题解答(非官方,仅为个人练习记录)
-
简单查询一下,Physical console、Virtual console、Terminal的说明是什么?
Physical consoles是基于物理设备的终端,可以支持多个虚拟终端(Virtual console/terminal)。
-
请问如果我以命令行模式登录Linux主机时,我有几个终端接口可以使用?如何切换各个不同的终端接口?
6个终端接口,分别是tty1~tty6。使用
[Ctrl]+[Alt]+[F1]~[F6]
切换。 -
在Linux系统中,/VBird与/vbird是否为相同的文件?
否,Linux区分大小写。
-
我想要知道date如何使用,应该如何查询?
-
如果只是忘记options和参数,可以使用
--help
或-h
查询。1
date -h
-
如果想更具体地了解,可以在所有Unix-like环境下使用
man
以及在Linux下使用info
来查询。1
2man date
info date -
部分软件还可以在
/usr/share/doc
目录下寻找说明文件,但是date是没有的。
-
-
我想要在今天的1:30让系统自己关机,要怎么做?
1
shutdown -h 1:30
-
如果Linux的X Window突然发生问题而挂掉,但Linux本身还是好好的,那么我可以按下哪三个按键来让X Window重启?
如果事先设置【杀死X服务器的按键序列】为
[Ctrl]+[Alt]+[Backspace]
,按下这三个按键即可。 -
我想要知道2010年5月2日是星期几?该怎么做?
通过
cal
命令查看2010年5月的日历:1
2cal 5 2010
# 查到结果为Mon -
使用man date找出显示目前的日期与时间的参数,显示方式类似:2015/10/16-20:03。
1
2
3
4
5man date
# 得到date格式为 date [OPTION]... [+FORMAT]
# FORMAT里,%Y是year,%m是month,%d是day of month,%H是hour,%M是minute。
# 则可以如下打印要求内容:
date +%Y/%m/%d-%H:%M -
若以X Window为默认的登录方式,那请问如何进入Virtual console呢?
一般tty1是X Window,所以按下
[Ctrl]+[Alt]+[F2]~[F6]
切换到tty2~tty6即可。 -
简单说明在bash shell的环境下,[Tab]按键的用途?
- [Tab]接在一串命令的第一个字段后面,则为【命令补全】。
- [Tab]接在一串命令的第二个字段后面,则为【文件补全】。
- 若安装了Bash-completion软件,则在某些命令后面使用[Tab]按键时,可以进行【选项/参数的补齐】功能。
-
如何强制终端一个程序的进行?(利用按键,非利用kill命令)
同时按下
[Ctrl]+[C]
。 -
Linux提供相当多的在线查询,称为man page,请问,我如何知道系统上有多少关于passwd的说明?可以使用其他的程序来替代man的这个功能吗?
查看关于man的所有说明:
1
man -f passwd
可以使用
info
命令查询,也可以访问/usr/share/doc/passwd-0.79/
文件夹查看相关信息。 -
在man page显示的内容中,命令(或文件)后面会接一组数字,这个数字若为1,5,8,表示该查询的命令(或文件)意义是什么?
使用
man man
查询,得到如下结果:- 1 Executable programs or shell commands
- 5 File formats and conventions eg /etc/passwd
- 8 System administration commands (usually only for root)
-
man page显示的内容的文件是放置在哪些目录中?
使用
man man
查询得到:Each global manual page hierarchy such as/usr/share/man
or/usr/X11R6/man
may have any directory as its cat page hierarchy. -
请问
foo1 -foo2 foo3 foo4
这一串命令中各代表什么意义?foo1
是命令或可执行文件,foo2
是选项,foo3
和foo4
是参数。 -
当我输入man date时,在我的终端却出现一些乱码,请问可能的原因是什么?如何修正?
终端在默认情况下,无法支持以中文编码输出数据。这个时候就需要将支持语系改为英文,才能以英文显示出正确的信息。
1
2
3
4locale # 显示目前所支持的语系
# 修改语系成为英文语系:
LANG=en_US.utf8
export LC_ALL=en_US.utf8 -
我输入这个命令“ls -al /vbird”,系统回复我这个结果:“ls /vbird: No such file or directory”,请问发生了什么事?
没有
/vbird
这个文件夹。 -
我想知道目前系统有多少命令是以bz为开头的,可以怎么做?
命令行输入
bz
然后按[Tab]。 -
承上题,在出现的许多命令中,请问bzip2是干嘛用的?
命令行输入
1
2bzip2 -h
# 得到:bzip, a block-sorting file compressor. -
在终端里面登录后,看到的提示符$与#有何不同?平时操作应该使用哪一个?
$是一般用户的终端,#是root用户的终端。平时应该使用一般用户。
-
我使用dmtsai这个账号登录系统了,请问我能不能使用reboot来重启?若不能,请说明原因,若可以,请说明命令如何执行?
如果是在主机的物理终端上登录系统泽可以,直接命令行输入
reboot
即可。如果是远程管理工具登录则不可以,只有root用户可以远程关机。