第1章 Linux命令行简介
1.1 Linux命令行概述
1.1.1 Linux命令行的作用与意义
众所周知,Linux是一个主要通过命令行来进行管理的操作系统,即通过键盘输入指令来管理系统的相关操作,包括但不限于编辑文件、启动停止服务等。这和初学者曾经使用的Windows系统使用鼠标点击的可视化管理大不相同。
使用鼠标可视化管理的优势是简单、容易上手,但缺点是不便于快速、批量、自动化管理系统,而且感觉系统很臃肿,这个时候Linux系统的命令行管理优势就凸显了。使用Linux命令行管理,不但可以批量、自动化管理,而且还可以实现智能化、可视化管理;当然,后者需要开发人员配合开发管理界面来完成。但是无论如何,Linux系统的优势基因还是快速、批量、自动化、智能化管理系统及处理业务。
1.1.2 Linux命令行介绍
安装Linux系统时,无论是使用文本模式(命令行)安装,还是使用图形模式安装,最终管理系统的任务都会落到命令行之上。
大多数互联网企业在安装系统时甚至不会安装图形管理软件包,而是直接使用文本模式安装,因此登录后直接面对的就是命令行的界面(如图1-1所示)。
图1-1 通过SSH客户端连接Linux系统后的命令行图
1.1.3 Linux命令行的开启及退出
在开启主机之后,Linux系统会经过一系列的引导和程序加载,最终会出现登录前的提示界面(如图1-2所示)。
图1-2 CentOS Linux系统登录界面
在图1-2中,将光标定位到“login:”字符串后面,输入超级用户管理员root之后,按回车键,弹出密码提示框后再输入密码,注意密码是不显示的。输入了正确的密码之后,再按回车键就可以登录到Linux系统中了(如图1-3和图1-4所示)。
图1-3 CentOS Linux系统登录前输入用户密码的界面
图1-4 CentOS Linux系统登录后的命令行界面
在命令行执行exit或logout命令可退出命令行(如图1-5所示),当然也可以使用快捷键Ctrl+d退出命令行,退出命令行之后,如果需要再次登录,则还是需要输入用户名和密码(除非使用SSH客户端已将用户名和密码保存起来)。
图1-5 CentOS Linux命令行退出命令操作的界面
1.1.4 Linux命令行提示符介绍
Linux命令行结尾的提示符有“#”和“$”两种不同的符号,代码如下所示:
[root@oldboy ~]# #<==这是超级管理员root用户对应的命令行。 [oldboy@oldboy ~]$ #<==这是普通用户oldboy对应的命令行。
其中,
1)#号,是使用超级用户root登录后的命令行结尾提示符,而$号是使用普通用户登录后的命令行结尾提示符。
2)超级用户具有管理系统的所有权限,普通用户的权限比较小,只能进行基本的系统信息查看等操作,无法更改系统配置和管理服务。
3)命令行提示符@前面的字符代表当前登录的用户(可用whoami查询),@后面的为主机名(可用hostname查询),~所在的位置是窗口当前用户所在的路径。示例代码如下:
[oldboy@oldboy ~]$ #<==@前的oldboy为当前用户,@后的oldboy为主机名,此处的~表示当前目录,即家目录。
4)Linux命令提示符由PS1环境变量控制。示例代码如下:
[root@oldboy ~]# set|grep PS1 #<==注意PS1是大写的。 PS1='[\u@\h \W]\$ ' #<==等号后特殊变量的讲解见表2-2。
这里的PS1='[\u@\h\W]\$',可以通过全局配置文件/etc/bashrc或/etc/profile进行按需配置和调整。
1.1.5 Linux命令行常用快捷键
这里需要特别说明一下的是,在企业工作中,管理Linux时一般不会直接采用键盘、显示器登录系统,而是会通过网络在远程进行管理,因此,需要通过远程连接工具连接到Linux系统中。目前最常用的Linux远程连接工具为:SecureCRT和Xshell客户端软件,因此,本节涉及的常用命令快捷键也是基于这两款客户端软件的,其他软件的快捷键使用情况与此基本类似。
表1-1展示的是提高Linux运维效率的30个命令行常用快捷键,在此列出以供大家参考。
表1-1 30个常用快捷键
注:上述快捷键适用于SecureCRT和Xshell客户端。其中带有符号“*”的为常用快捷键。