终于可以开始使用Linux这个有趣的系统了!由于Linux系统使用了非同步的磁盘/内存资料传输模式,同时又是个多人多工的环境,所以你不能随便的不正常关机,关机有一定的程序喔!错误的关机方法可能会造成磁盘资料的损毁呢!此外,Linux有多种不同的操作方式,图形界面与文字界面的操作有何不同?我们能否在文字界面取得大量的指令说明,而不需要硬背某些指令的选项与参数等等。这都是这一章要来介绍的呢!
4.1首次登录系统
登录系统有这么难吗?并不难啊!虽然说是这样说,然而很多人第一次登录Linux的感觉都是“接下来我要干啥”?如果是以图形界面登录的话,或许还有很多好玩的事物,但要是以命令行界面登录的话,面对着一片黑压压的屏幕,还真不晓得要干嘛呢!为了让大家更了解如何正确的使用Linux,正确的登录与离开系统还是需要说明的!
4.1.1首次登录CentOS7.x图形界面
开机就开机呀!怎么还有所谓的登录与离开呀?不是开机就能够用计算机了吗?开什么玩笑,在Linux系统中由于是多用户多任务的环境,所以系统随时都有很多不同的用户所下达的任务在进行,因此正确的开关机可是很重要的!不正常的关机可能会导致文件系统错乱,造成数据的毁损呢!这也是为什么通常我们的Linux主机都会加挂一个不断电系统啰!
如果在第三章一切都顺利的将CentOS 7.x完成安装并且重新启动后,应该就会出现如下的等待登陆的图形画面才对。画面中1号箭头显示目前的日期与时间,2号箭头则是辅助功能、语系、音量与关机钮,3号箭头就是我们可以使用帐号登陆的输入框,至于4号箭头则是在使用特别的帐号登陆时才会用到的按钮。
接下来让我们来了解一下这个登陆画面的相关功能吧!首先,在箭头1的地方,如果你动鼠标过去点一下,就会出现如下的窗口,主要在告诉你日期、日历与时间而已~如下图所示,鸟哥截取这张图的时间就是在2015/05/21早上喔!
然后看一下右上角的角落,你会发现有个小人形图示,那个是辅助登陆的无障碍画面处理!如果你的键盘暂时出了点问题,某些按键无法按,那就可以使用如下画面的“屏幕键盘”的项目,将它On一下~那未来有需要在登陆的时候有打字的需求时,屏幕就会出现类似手机要你打字的键盘画面啦!
有看到那个zh嘛?那个是语言的选择~点下去你会看到这部系统支持的语言数据有多少。至于那个类似喇叭的小图示,就是代表着音效的大小声控制~而最右边那个有点像是关机的小图示又是干麻的呢?没关系!别紧张!用力点下去看看~就会出现如下图示,其实就是准备要关机的一些功能按钮~暂停是进入休眠模式,重新启动就是重新启动啊,关闭电源当然就是关机啰!所以,你不需要登陆系统,也能够通过这个画面来“关机”喔!
接下来看到 图4.1.1的地方,图示中的箭头3,4指的地方就是可以登陆的帐号!一般来说,能够让你输入帐密的正常帐号,都会出现在这个画面当中,所以列表的情况可能会非常长!那有些特殊帐号,例如我们在第三章安装过程中,曾经有创建过两个帐号,一个是root一个是dmtsai,那个dmtsai可以列出来没问题,但是root因为身份比较特殊,所以就没有被列出来!因此,如果你想要使用root的身份来登陆,就得要点选箭头4的地方,然后分别输入账号密码即可!
如果是一般可登陆正常使用的帐号,如画面中的dmtsai的话,那你就直接点选该帐号,然后输入密码即可开始使用我们的系统了!使用dmtsai帐号来输入密码的画面示意如下:
在你输入正确的密码之后,按下“登陆”按钮,就可以进入Linux的图形画面中,并开始准备操作系统啰!
Tips
一般来说,我们不建议您直接使用root的身份登陆系统喔!请使用普通帐号登陆!等到有需要修改或者是创建系统相关的管理工作时,才切换身份成为root!为什么呢?因为系统管理员的权限太高了!而Linux下面很多的指令行为是“没有办法复原”的!所以,使用一般帐号时,“手滑”的灾情会比较不严重!
4.1.2 GNOME的操作与注销,应用程序,文件管理器,中文输入法,注销窗口,快速重启X
在每一个用户“第一次”以图形界面登陆系统时,系统都会询问使用者的操作环境,以依据使用者的国籍、语言与区域等制定与系统默认值不同的环境。如下所示,第一个问题就是询问你未来整体的环境要使用的语言为哪个语言与国家?当然我们台湾都选汉语台湾啊(安装的时候选择的默认值),如果有不同的选择,请自行挑选你想要的环境,然后按下“下一步”即可。
再来则是选择输入法,除非你有特殊需求,否则不需要修改设置值。若是需要有其他不同的输入法,请看下图左侧箭头指的“+”符号,按下它就可以开始选择其他的输入法了。一切顺利的话,请点选“下一步”。
上述的环境选择妥当之后,系统会出现一个确认的画面,然后就出现“入门信息”的类似网页的画面来给你瞧一瞧如何快速入门啰!如下所示。如果你有需要,请一个一个链接去点选查阅,如果已经知道这是啥东西,也可以如画面箭头处,直接关闭即可!
Tips
要注意喔!上述的画面其实是GNOME的帮助软件窗口,并不是浏览器窗口!第一次接触到这个画面的学生,直接在类似网址栏的框框中写入URL网址,结果当然是找不到数据…当学生问鸟哥时,鸟哥也被唬住了…以为是浏览器…
终于看到图形界面啦!真是很开心吧!如下图所示,整个GNOME的窗口大约分为三个部分:
上方工作列(control panel)
上半部左侧有“应用程序”与“位置”,右侧则有“输入法切换”、声音、网络、日期、帐号相关设置切换等,这个位置可以看成是工作列。 举例来说,你可以使用鼠标在2号箭头处(应用程序)点击一下,就会有更多的程序集出现!然后移动鼠标就能够使用各个软件了。至于5号箭头所指的地方,就是系统时间与声音调整。最右上角则是目前登陆的帐号身份,可以取得很多的设置信息的!
桌面
整个画面中央就是桌面啦!在桌面上默认有两个小按钮,例如箭头1所指的地方,常见的就是目前这个帐号的主文件夹,你可以使用鼠标连击两下就能够打开该功能。另一个则是垃圾桶(Trash)。如果你的安装光盘没有退出,那么该光盘以及其他可能的可移动USB设备,也可能显示在桌面上!例如图中的“CentOS7 x86_64”的光盘图示,就是你没有退出的光盘喔!
下方工作列
下方工作列的目的是将各工作显示在这里,可以方便使用者快速的在各个工作间切换喔!另外,我们还有多个可用的虚拟桌面(Virtual Desktop),就是画面中右下角那个1/4的东西!该数字代表的意思是,共有4个虚拟桌面,目前在第一个的意思。你可以点一下该处,就知道那是啥东西了!
Linux桌面的使用方法几乎跟Windows一模一样,你可以在桌面上按下右键就可以有额外的菜单出现;你也可以直接按下桌面上的“个人数据夹(home)”,就会出现类似Windows的“文件资源管理器”的文件/目录管理窗口,里面则出现你自己的主文件夹;下面我们就来谈谈几个在图形界面里面经常使用的功能与特色吧!
Tips
关于“个人数据夹”的内容,记得我们之前说过Linux是多用户多任务的操作系统吧?每个人都会有自己的“工作目录”,这个目录是使用者可以完全掌控的,所以就称为“使用者个人主文件夹”了。一般来说,主文件夹都在/home下面,以鸟哥这次的登陆为例,我的帐号是dmtsai,那么我的主文件夹就应该在/home/dmtsai/啰!
上方工具列:应用程序(Applications)
让我们点击一下“应用程序”那个按钮吧!看看下拉式菜单中有什么软件可用!如下图所示。
你要注意的是,这一版的CentOS在这个应用程序的设计上,阶层式变化间并没有颜色的区分,左侧也没有深色三角形的示意小图,因此如上图所示,如果你想要打开计算机软件,那得先在左边第一层先移动到“附属应用”之后,鼠标水平横向移动到右边,才可以点选计算器喔!鸟哥一开始在这里确实容易将鼠标垂直向乱移动,导致老是没办法移动到正确的按钮上!
基本上,这个“应用程序”按钮已经将大部分的软件功能分类了,你可以在里头找到你常用的软件来操作。例如想要使用Office的办公室软件,就到“办公”选项上,就可以看到许多软件存在了!此外,你还会看到最下面有个“活动总览”,那个并没有任何分类的子项目在内,那是啥东西?没关系,基本上练习机你怎么玩都没关系!所以,这时就给他点点看啊!会像下面的图示这样:
画面左侧1号箭头处,其实就是类似快速按钮的地方,可以让你快速的选择你所常用的软件。右侧2号箭头处,就是刚刚我们上面谈到的虚拟桌面啰!共有四个,而目前画面中显示的最是最上面那个一号桌面的意思。如果细看该区块,就会发现其实鸟哥在第三个虚拟桌面当中也有打开几个软件在操作呢!有没有发现啊?至于画面中的3号箭头处,就是目前这个活动中的虚拟桌面上,拥有的几个启动的软件啰!你可以点选任何你想要的软件,就可以开始操作该软件了!所以使用这个“活动总览”,比较可以让你在开好多窗口的环境下,快速的回到你所需要的软件功能中喔!
上方工具列:位置(就是文件资源管理器)
如果你想要知道系统上面还有哪些文件数据,以及你目前这个帐号的基本子目录,那就得要打开文件资源管理器啰(file manager)!打开文件资源管理器很简单,就是选择左上方那个“位置”的按钮项目即可。在这个项目中主要有几个子项可以直接打开目录的内容,主文件夹、下载、图片、影片等等,其实除了主文件夹之外,下面的子目录“就是主文件夹下的子目录”啦!所以你可以直接打开主文件夹即可!如下所示:
如上图所示,1号箭头处可以让你选择不同的目录或数据来源,2号箭头则以小图标的方式显示该物件可能是什么数据,3号箭头则可以将目前的小图标变成详细数据清单,4号箭头就是目前小图示的显示模式,5号箭头可以进行图示数据的放大、 缩小、排序方式、是否显示隐藏文件等重要功能!6号箭头则是其他额外的功能项目!好了,现在再让我们来操作一下这个软件吧!如果你想要观察每个文件名的详细数据,并且显示“隐藏文件”的话,那该如何处理呢?如下图所示的方式处理一下:
按照上面的三个步骤点选完毕后,你就会看到如4号箭头处指的,有一些额外的文件名跑出来了!而且,这些跑出来的文件名共同的特色就是“文件名前面开头是小数点.”没错!你答对了~只要文件名的开头是由小数点开始的,那么该文件名就不会在一般显示模式被显示出来!所以说,在Linux下面,隐藏文件并不是什么特殊的权限,单纯是因为文件名命名的处理方式来搞定的!这样理解否?
如果你想要观察系统有多少不同的文件系统呢?那就看一下文件资源管理器左侧“设备”的项目下,有几个项目就是有几个设备啰!现在让我们来观察一下“计算机”内有什么数据吧!请按下它!然后观察一下如下的图示:
如上图所示,点下1号箭头后,右边就出现一堆目录数据夹。注意看,2号箭头处指的是正常的一般目录,3号箭头则指的是有“链接文件”的数据,这个链接文件可以想像成Windows的“快捷方式”功能就是了~如果你的帐号没有权限进入该目录时,该目录就会出现一个X的符号,如同4号箭头处!很清楚吧!好!让我们来观察一下有没有/etc -> sysconfig ->network-scripts这个目录下的数据呢?
如果你可以依序双击每个正确的目录,就可以得到如上图示。画面中的1号箭头处,可以让你“回到上一个画面”中,不是回到上一层~而是“上一个画面”喔!这点要注意。至于2号区块处,你可以发现有不同颜色的显示,最右边的是目前所在目录,所以3号画面就显示该目录下的文件信息。你可以快速的点选2号区块处的任何一个目录,就可以快速的回到该层目录中去查看文件数据喔!
中文输入法与设置
如果你在安装的时候就选定中文,并且有处理过切换中/英文的快速键,那这个项目几乎可以不用理它了!但是如果你都使用默认值来安装时,可能会发生没办法使用惯用的“ctrl+shift”或“ctrl+space”来切换中文的问题!同时,也可能没办法找到你想要的中文输入法~那怎办?没关系,请使用 图4.1.9画面中右上角的帐号名称处点一下,然后选择“设置值”,或者从“应用程序”、“系统工具”、“设置值”也可以打开它!之后选择“地区和语言”项目,就可以得到如下画面。
在上面的画面中,你可以按下箭头所指的地方,就可以增加或减少输入法的项目了。但是,如果想要切换不同的语言呢?那请回到原本的设置画面,之后请选择“键盘”的项目,并按下“快捷键”,出现如下的画面,点选在画面中的左侧“输入”项目,并在“切换到下一个输入来源”点选一、两下,等到出现如3号箭头处出现“新快捷键”时,按下你所需要的组合键,例如鸟哥习惯按“crtl + space”,那就自己按下组合键,之后你就可以使用自己习惯的输入法切换快速键,来变更你所需要的输入法啰!
一些常见的练习
下面的例题请大家自行参考并且实践一下喔!题目很简单,所以鸟哥就不额外截图了!
1.由“设置值”的“显示器”项目中,确认一下目前的分辨率,并且尝试自己变更一下屏幕分辨率;
2.由“设置值”的“背景”项目中,修改一下桌面的背景图示;
3.由“设置值”的“电源”项目中,修改一下进入空白屏幕锁定的时间,将它改成“永不”的设置值;
4.由“应用程序”的“公用程序”项目下的“调校工具”中,使用“Shell”功能内的“动态工作区”项目,将原本的4个虚拟桌面, 更改成6个虚拟桌面看看;
5.由“应用程序”的“公用程序”项目下的“调校工具”中,使用“输入”项目,并选择“砍除X服务器的按键序列”从“已停用”改成“Control+Alt+退格键”的设置,
这可以让你按下三个按钮就能够重新启动X窗口管理员;
6.请将/etc/crontab这个文件“复制”到你的主文件夹中;
7.从“应用程序”的“附属应用”点选“gedit”编辑器,按下gedit的“打开”按钮,选择“主文件夹(就是你的帐号名称)”后,点选刚刚复制过来的crontab文件名。在画面中随意使用中文输入法输入几个字,然后储存离开看看!
8.从“应用程序”的“喜好”当中打开“终端机”,在终端机中输入“gsettings set org.gnome.desktop.interface enable-animations false”,这个动作会将GNOME默认的画面切换的动画功能关闭,在虚拟机的环境下,有助于画面切换的速度喔!
上述的练习中,第三个练习还挺重要的!因为在默认的状态中,你的图形界面会在5分钟后自动的被锁定!这是为了要避免你暂时离开座位,有人偷偷使用你的计算机的缘故。而要解开锁定,就得要输入你这个帐号的密码才行。这个功能最好是不要取消。但因为我们的系统是单纯的练习机,而且又是虚拟机,如果经常锁定屏幕,老是要解开很烦~那就使用上述的3号练习题,应该可以处理完毕!至于第8点对于初次接触Linux的朋友来说,会有点困难,如果你不知道如何下达指令,没关系~等到本章后面的小节读完,你就知道如何处理了!
注销GNOME、重新启动X窗口管理器或关机
如果你没有想要继续玩X Window了,那就注销吧!如果不想要继续操作系统了,那就关机吧!如何注销/关机呢?如下图所示,点选右上角你的帐号名称,然后在出现的画面中去选择即可。要记得的是,注销前最好将所有不需要的程序都关闭了再注销或关机啊!
不论是注销还是关闭电源(关机),都会有一个警告窗口来告知你60秒内没有任何动作的话,就会被登出了!如下图所示。当然,你也可以按下确定来进行动作。注销后,系统画面又会回到原本的等待登陆的画面中了!
请注意喔,注销并不是关机!只是让你的帐号离开系统而已喔!
重新启动X Window的快速按钮
一般来说,我们是可以手动来直接修改X Window的配置文件的,不过,修改完成之后的设置项目并不会立刻被载入,必须要重新启动X才行(特别注意,不是重新启动,而是重新启动X!)。那么如何重新启动X呢?最简单的方法就是:
直接注销,然后再重新登陆即可;
在X的画面中直接按下[Alt] + [Ctrl] +[Backspace]
第二个方法比较有趣,[backspace]是退格键,你按下三个按钮后X Window立刻会被重新启动。如果你的X Window因为不明原因导致有点问题时,也可以利用这个方法来重新启动X喔!不过,这个方法要生效,必须要先进行本节稍早之前的练习第五题才行呦!
4.1.3 X Window与命令行模式的切换,startx
我们前面一直谈到的是X Window的窗口管理器环境,那么在这里面有没有纯命令行的环境啊?因为听说服务器通常是纯命令行的啊!当然有啊!但是,要怎么切换XWindow与命令行模式呢?注意喔,通常我们也称命令行模式为终端界面, terminal或console喔!Linux默认的情况下会提供六个Terminal来让使用者登陆,切换的方式为使用:[Ctrl] + [Alt] + [F1]~[F6]的组合按钮。
那这六个终端界面如何命名呢?系统会将[F1]~[F6]命名为tty1~tty6的操作界面环境。也就是说,当你按下[crtl] + [Alt] + [F1]这三个组合按钮时(按着[ctrl]与[Alt]不放,再按下[F1]功能键),就会进入到tty1的terminal接口中了。同样的[F2]就是tty2啰!那么如何回到刚刚的X窗口界面呢?很简单啊!按下[Ctrl]+ [Alt] + [F1]就可以了!我们整理一下登陆的环境如下:
[Ctrl]+ [Alt] + [F2] ~ [F6]:命令行登陆tty2 ~ tty6终端机;
[Ctrl]+ [Alt] + [F1]:图形界面桌面。
由于系统默认的登陆界面不同,因此你想要进入X的终端机名称也可能会有些许差异。以CentOS7为例,由于我们这次安装的练习机,默认是启动图形界面的,因此这个X窗口将会出现在tty1界面中。如果你的Linux默认使用纯命令行,那么tty1~tty6就会被文字界面占用。
Tips
在CentOS 7环境下,当启动完成之后,默认系统只会提供给你一个tty而已,因此无论是文字界面还是图形界面,都是会出现在tty1喔!tty2~tty6其实一开始是不存在的!但是当你要切换时(按下[ctrl]+[alt]+[F2]),系统才产生出额外的tty2, tty3…
若你在纯文本环境中启动X窗口,那么图形界面就会出现在当时的那个tty上面。举例来说,你在tty3登陆系统,然后输入startx启动个人的图形界面,那么这个图形界面就会产生在tty3上面!这样说可以理解吗?
# 纯文字界面下(不能有X存在)启动窗口界面的做法
[dmtsai@study ~]$ startx
不过startx这个指令并非万灵丹,你要让startx生效至少需要下面这几件事情的配合:
并没有其他的X Window被启用;
你必须要已经安装了X Window system,并且X server是能够顺利启动的;
你最好要有窗口管理器,例如GNOME/KDE或者是基本的TWM等。
其实,所谓的窗口环境,就是:“文字界面加上X窗口软件”的组合!因此,文字界面是一定会存在的,只是窗口界面软件就看你要不要启动而已。所以,我们才有办法在纯文本环境下启动一个个人化的X窗口啊!因为这个startx是任何人都可以执行的喔!并不一定需要管理员身份的。所以,是否默认要使用图形界面,只要在后续管理服务的程序中,将“graphical.target”这个目标服务设置为默认,就能够默认使用图形界面啰!
Tips
从这一版CentOS 7开始,已经取消了使用多年的SystemV的服务管理方式,也就是说,从这一版开始,已经没有所谓的“运行级别(runlevel)”的概念了!新的管理方法使用的是systemd的模式,这个模式将很多的服务进行依赖性管理。以文字与图形界面为例,就是要不要加入图形软件的服务启动而已~对于熟悉之前CentOS 6.x版本的老家伙们,要重新摸一摸systemd这个方式喔!因为不再有/etc/inittab啰!注意注意!
4.1.4在终端界面登录Linux
刚刚你如果有按下[Ctrl] + [Alt] + [F2]就可以来到tty2的登陆画面,而如果你并没有启用图形窗口界面的话,那么默认就是会来到tty1这个环境中。这个纯文本环境的登陆的画面(鸟哥用dmtsai帐号登录)有点像这样:
CentOS Linux 7 (Core)
Kernel 3.10.0-229.el7.x86_64 on an x86_64
study login: dmtsai
Password: <==这里输入你的密码
Last login: Fri May 29 11:55:05 on tty1 <==上次登录的情况
[dmtsai@study ~]$ _ <==游标闪烁,等待你的指令输入
上面显示的内容是这样的:
1. CentOSLinux7(Core):
显示Linux distribution的名称(CentOS)与版本(7);
2. Kernel 3.10.0-229.el7.x86_64 on an x86_64:
显示Linux核心的版本为3.10.0-229.el7.x86_64,且目前这部主机的硬件等级为x86_64。
3. studylogin::
那个study是你的主机名称。我们在第三章安装时有填写主机名称为:study.centos.vbird,主机名称的显示通常只取第一个小数点前的字母,所以就成为study啦!至于login:则是一支可以让我们登陆的程序。你可以在login:后面输入你的帐号。以鸟哥为例,我输入的就是第三章创建的dmtsai那个帐号啦!当然啰,你也可以使用root这个帐号来登陆的。不过“root”这个帐号代表在Linux系统下无穷的权力,所以尽量不要使用root帐号来登陆啦!
4. Password::
这一行则在第三行的dmtai输入后才会出现,要你输入密码啰!请注意,在输入密码的时候,屏幕上面“不会显示任何的字样!”,所以不要以为你的键盘坏掉了!很多初学者一开始到这里都会拼命的问!啊我的键盘怎么不能用…
5. Last login: Fri May 29 11:55:05 on tty1:
当使用者登陆系统后,系统会列出上一次这个帐号登陆系统的时间与终端机名称!建议大家还是得要看看这个信息,是否真的是自己的登陆所致喔!
6. [dmtsai@study~]$_:
这一行则是正确登陆之后才显示的讯息,最左边的dmtsai显示的是“目前使用者的帐号”,而@之后接的study则是“主机名称”,至于最右边的~则指的是“目前所在的目录”,那个$则是我们常常讲的“提示符”啦!
Tips
那个“~”符号代表的是“使用者的主文件夹”的意思,它是个“变量”!这相关的意义我们会在后续的章节依序介绍到。举例来说,root的主文件夹在/root, 所以“~”就代表/root的意思。而dmtsai的主文件夹在/home/dmtsai,所以如果你以dmtsai登陆时,他看到的“~”就会等于/home/dmtsai喔!
至于提示字符方面,在Linux当中,默认root的提示字符为#,而一般身份使用者的提示字符为$。 还有,上面的第一、第二行的内容其实是来自于/etc/issue这个文件喔!
好了这样就是登陆主机了!很快乐吧!耶~
另外,再次强调,在Linux系统下最好常使用一般帐号来登陆即可,所以上例中鸟哥是以自己的帐号dmtsai来登陆的。因为系统管理员帐号(root)具有无穷大的权力,例如他可以删除任何一个文件或目录。因此若你以root身份登陆Linux系统, 一个不小心下错指令,这个时候可不是“欲哭无泪”就能够解决的了问题的~
因此,一个称职的网络/系统管理人员,通常都会具有两个帐号,平时以自己的一般帐号来使用Linux主机的任何资源,有需要动用到系统功能修改时,才会转换身份成为root呢!所以,鸟哥强烈建议你创建一个普通的帐号来供自己平时使用喔!更详细的帐号信息,我们会在后续的“第十三章帐号管理”再次提及!这里先有概念即可!
那么如何离开系统呢?其实应该说“退出Linux”才对!退出很简单,直接这样做:
[dmtsai@study ~]$ exit
就能够退出Linux了。但是请注意:“离开系统并不是关机”!基本上,Linux本身已经有相当多的工作在进行,你的登陆也仅是其中的一个“工作”而已,所以当你离开时,这次这个登陆的工作就停止了,但此时Linux其他的工作是还是继续在进行的!本章后面我们再来提如何正确的关机,这里先创建起这个概念即可!
4.2命令行模式下指令的下达
其实我们都是通过“程序”在跟系统作沟通的,本章上面提到的窗口管理器或文字模式都是一组或一个程序在负责我们所想要完成的任务。命令行模式登陆后所取得的程序被称为壳(Shell),这是因为这支程序负责最外面跟使用者(我们)沟通,所以才被戏称为壳程序!更多与操作系统及壳程序的相关性可以参考第零章、计算机概论内的说明。
我们Linux的壳程序就是厉害的bash这一个!关于更多的bash我们在第三篇再来介绍。现在让我们来练一练打字吧!
Tips
“练打字”真的是开玩笑的!各位观众朋友,千万不要只是“观众朋友”而已,您得要自己亲身体验,看看指令下达之后所输出的信息,并且理解一下“我敲这个指令的目的是想要完成什么任务?”,再看看输出的结果是否符合你的需求,这样才能学到东西!不是单纯的鸟哥写什么,你就打什么,那只是“练打字”不是“学Linux”喔!^_^
4.2.1开始下达指令,语言支持
其实整个指令下达的方式很简单,你只要记得几个重要的概念就可以了。举例来说,你可以这样下达指令的:
[dmtsai@study ~]$ command [-options] parameter1 parameter2 ...
指令 选项 参数1 参数2
上述指令详细说明如下:
0.一行指令中第一个输入的部分绝对是“指令(command)”或“可执行文件(例如脚本,script)”;
1. command为指令的名称,例如变换工作目录的指令为cd等等;
2.中括号[]并不存在于实际的指令中,而加入选项设置时,通常选项前会带-号,例如-h;有时候会使用选项的完整全名,则选项前带有--符号,例如-–help;
3. parameter1 parameter2..为依附在选项后面的参数,或者是command的参数;
4.指令,选项,参数等这几个东西中间以空格来区分,不论空几格shell都视为一格。所以空格是很重要的特殊字符!;
5.按下[Enter]按键后,该指令就立即执行。[Enter]按键代表着一行指令的开始启动;
6.指令太长的时候,可以使用反斜线(\)来转义[Enter]符号,使指令连续到下一行。注意!反斜线后就立刻接特殊字符,才能转义!
7.其他:
a.在Linux系统中,英文大小写字母是不一样的。举例来说,cd与CD并不同。
b.更多的介绍等到第十章bash时,再来详述。
注意到上面的说明当中,“第一个被输入的数据绝对是指令或者是可执行的文件”!这个是很重要的概念喔!还有,按下[Enter]键表示要开始执行此一命令的意思。我们来实际操作一下:以ls这个“指令”列出“自己主文件夹(~)”下的“所有隐藏文件与相关的文件属性”,要完成上述的要求需要加入-al这样的选项,所以:
[dmtsai@study ~]$ ls -al ~
[dmtsai@study ~]$ ls -al ~
[dmtsai@study ~]$ ls -a -l ~
上面这三个指令的下达方式是一模一样的执行结果喔!为什么?请参考上面的说明吧!关于更详细的命令行模式使用方式,我们会在第十章认识BASH再来强调喔!此外,请特别留意,在Linux的环境中,“大小写字母是不一样的东西”!也就是说,在Linux下面,VBird与vbird这两个文件是“完全不一样的”文件呢!所以,你在下达指令的时候千万要注意到指令是大写还是小写。例如当输入下面这个指令的时候,看看有什么现象:
[dmtsai@study ~]$ date <==结果显示日期和时间
[dmtsai@study ~]$ Date <==结果显示找不到命令
[dmtsai@study ~]$ DATE <==结果显示找不到命令
很好玩吧!只是改变小写成为大写而已,该指令就变的不存在了!因此,请千万记得这个状态呦!
语言的支持
另外,很多时候你会发现,咦!怎么我输入指令之后显示的结果的是乱码?这跟鸟哥说的不一样啊!呵呵!不要紧张~我们前面提到过,Linux是可以支持多国语言的,若可能的话,屏幕的信息是会以该支持语言来输出的。但是,我们的终端机接口(terminal)在默认的情况下,无法支持以中文编码输出数据的。这个时候,我们就得将支持语言改为英文,才能够以英文显示出正确的讯息。那怎么做呢?你可以这样做:
1.显示目前所支持的语系
[dmtsai@study ~]$ locale
LANG=zh_TW.utf8 #语言语系的输出
LC_CTYPE="zh_TW.utf8" #下面为许多信息输出所使用的特定语系
LC_NUMERIC=zh_TW.UTF-8
LC_TIME=zh_TW.UTF-8 #时间方面的语系资料
LC_COLLATE="zh_TW.utf8"
....中间省略....
LC_ALL= #全部资料同步更新的设置
#上面的意思是说,目前的语系(LANG)为zh_TW.UTF-8,亦即台湾繁体中文的国际码
[dmtsai@study ~]$ date
鈭? 5??29 14:24:36 CST 2015 #纯文字界面下,无法显示中文,所以前面是乱码
2.修改语系为英文语系
[dmtsai@study ~]$ LANG=en_US.utf8
[dmtsai@study ~]$ export LC_ALL=en_US.utf8
# LANG只与输出信息有关,若需要更改其他不同的信息,要同步更改LC_ALL才行!
[dmtsai@study ~]$ date
Fri May 29 14:26:45 CST 2015 #顺利显示英文格式的日期时间啊!
[dmtsai@study ~]$ locale
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
....中间省略....
LC_ALL=en_US.utf8
# 再次确认一下,结果出现,确实是en_US.utf8这个英文语系!
注意一下,那个“LANG=en_US.utf8”是连续输入的,等号两边并没有空白字符喔!这样一来,就能够在“这次的登录”察看英文信息啰!为什么说是“这次的登陆”呢?因为,如果你登出Linux后,刚刚下达的指令就没有用啦!^_^,这个我们会在第十章再好好聊一聊的!好啰,下面我们来练习一下一些简单的指令, 好让你可以了解指令下达方式的模式。
4.2.2基础指令的操作,date,cal,bc
下面我们立刻来操作几个简单的指令看看啰!同时请注意,我们已经使用了英文语系作为默认输出的语言喔!
显示日期与时间的指令:date
显示日历的指令:cal
简单好用的计算器:bc
1.显示日期的指令:date
如果在命令行中想要知道目前Linux系统的时间,那么就直接在命令行界面输入date即可显示:
[dmtsai@study ~]$ date
Fri May 29 14:32:01 CST 2015
上面显示的是:星期五,五月二十九日, 14:32分, 01秒,在2015年的CST时区!台湾在CST时区中啦!请赶快动手做做看呦!好了,那么如果我想要让这个程序显示出“2015/05/29”这样的日期显示方式呢?那么就使用date的格式化输出功能吧!
[dmtsai@study ~]$ date +%Y/%m/%d
2015/05/29
[dmtsai@study ~]$ date +%H:%M
14:33
那个“+%Y/%m/%d”就是date指令的一些参数功能啦!很好玩吧!那你问我,鸟哥怎么知道这些参数的啊?要背起来吗?当然不必啦!后面再告诉你怎么查这些参数啰!
从上面的例子当中我们也可以知道,指令之后的选项除了前面带有减号“-”之外,某些特殊情况下,选项或参数前面也会带有正号“+”的情况!这部份可不要轻易的忘记了呢!
2.显示日历的指令:cal
那如果我想要列出目前这个月份的月历呢?呵呵!直接下达cal即可!
[dmtsai@study ~]$ cal
May 2015
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 2930
31
除了本月的日历之外,连同今日所在日期处都会有反白的显示呢!真有趣!cal(calendar)这个指令可以做的事情还很多,例如你可以显示整年的月历情况:
[dmtsai@study ~]$ cal 2015
2015
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 1 2 3 4 5 6 7 1 2 3 4 5 6 7
4 5 6 7 8 9 10 8 9 10 11 12 13 14 8 9 10 11 12 13 14
11 12 13 14 15 16 17 15 16 17 18 19 20 21 15 16 17 18 19 20 21
18 19 20 21 22 23 24 22 23 24 25 26 27 28 22 23 24 25 26 27 28
25 26 27 28 29 30 31 29 30 31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 1 2 1 2 3 4 5 6
5 6 7 8 9 10 11 3 4 5 6 7 8 9 7 8 9 10 11 12 13
12 13 14 15 16 17 18 10 11 12 13 14 15 16 14 15 16 17 18 19 20
19 20 21 22 23 24 25 17 18 19 20 21 22 23 21 22 23 24 25 26 27
26 27 28 29 30 24 25 26 27 282930 28 29 30
31
....(以下省略)....
基本上cal这个指令可以接的语法为:
[dmtsai@study ~]$ cal [month] [year]
所以,如果我想要知道2015年10月的月历,可以直接下达:
[dmtsai@study ~]$ cal 10 2015
October 2015
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 31
那请问今年有没有13月啊?来测试一下这个指令的正确性吧!下达下列指令看看:
[dmtsai@study ~]$ cal 13 2015
cal: illegal month value: use 1-12
cal竟然会告诉我们“错误的月份,请使用1-12”这样的信息呢!所以,未来你可以很轻易的就以cal来取得日历上面的日期啰!简直就是万年历啦!^_^。另外,由这个cal指令的练习我们也可以知道,某些指令有特殊的参数存在,若输入错误的参数,则该指令会有错误讯息的提示,通过这个提示我们可以借以了解指令下达错误之处。这个练习的结果请牢记在心中喔!
3.简单好用的计算机:bc
如果在命令行模式当中,突然想要作一些简单的加减乘除,偏偏手边又没有计算器!这个时候要笔算吗?不需要啦!我们的Linux有提供一个计算程序,那就是bc喔。你在命令行输入bc后,屏幕会显示出版本信息,之后就进入到等待指示的阶段。如下所示:
[dmtsai@study ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
_ <==这个时候,提示符会停留在这里等待你的输入
事实上,我们是“进入到bc这个软件的工作环境当中”了!就好像我们在Windows里面使用“计算器”一样!所以,我们下面尝试输入的数据,都是在bc程序当中在进行运算的动作。所以啰,你输入的数据当然就得要符合bc的要求才行!在基本的bc计算器操作之前,先告知几个使用的运算子好了:
+加法
-减法
*乘法
/除法
^指数
%余数
好!让我们来使用bc计算一些东西吧!
[dmtsai@study ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+2+3+4 <==只有加法时
10
7-8+3
2
10*52
520
10%3 <==计算“余数”
1
10^2
100
10/100 <==这个最奇怪!不是应该是0.1吗?
0
quit <==离开bc这个计算器
在上表当中,粗体字表示输入的数据,而在每个粗体字的下面就是输出的结果。
咦!每个计算都还算正确,怎么10/100会变成0呢?这是因为bc默认仅输出整数,如果要输出小数点下位数,那么就必须要执行scale=number,那个number就是小数点位数,例如:
[dmtsai@study ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
scale=3 <==没错!就是这里!!
1/3
.333
340/2349
.144
quit
注意啊!要离开bc回到命令提示符时,务必要输入“quit”来离开bc的软件环境喔!好了!就是这样子啦!简单的很吧!以后你可以轻轻松松的进行加减乘除啦!
从上面的练习我们大概可以知道在命令行界面里面下达指令时,会有两种主要的情况:
一种是该指令会直接显示结果然后回到命令提示字符等待下一个指令的输入;
一种是进入到该指令的环境,直到结束该指令才回到命令提示字符的环境。
我们以一个简单的图示来说明:
如图4.2.1所示,上方指令下达后立即显示信息且立刻回到命令提示字符的环境。
如果有进入软件功能的环境(例如上面的bc软件),那么就得要使用该软件的结束指令(例如在bc环境中输入quit)才能够回到命令提示字符中!那你怎么知道你是否在命令提示字符的环境呢?很简单!你只要看到光标是在“[dmtsai@study~]$”这种提示字符后面,那就是等待输入指令的环境了。很容易判断吧!不过初学者还是很容易忘记啦!
4.2.3重要的几个热键[Tab],[ctrl]-c, [ctrl]-d, [shift]+[UP/DOWN]
在继续后面章节的学习之前,这里很需要跟大家再来报告一件事,那就是我们的文字模式里头具有很多的功能组合键,这些按键可以辅助我们进行指令的编写与程序的中断呢!这几个按键请大家务必要记住的!很重要喔!
[Tab]按键
[Tab]按键就是在键盘的大写锁定按键([CapsLock])上面的那个按键!在各种Unix-Like的Shell当中,这个[Tab]按键算是Linux的Bashshell最棒的功能之一了!它具有“命令补全”与“文件补齐”的功能喔!重点是,可以避免我们打错指令或文件名称呢!很棒吧!但是[Tab]按键在不同的地方输入,会有不一样的结果喔!我们举下面的例子来说明。上一小节我们不是提到cal这个指令吗?如果我在命令行输入ca再按两次[tab]按键,会出现什么讯息?
[dmtsai@study ~]$ ca[tab][tab] <==[tab]按键是紧接在a字母后面!
cacertdir_rehash cairo-sphinx cancel case
cache_check cal cancel.cups cat
cache_dump calibrate_ppa capsh catchsegv
cache_metadata_size caller captoinfo catman
#上面的[tab]指的是“按下那个tab键”,不是要你输入中括号内的tab啦!
发现什么事?所有以ca为开头的指令都被显示出来啦!很不错吧!那如果你输入“ls-al ~/.bash”再加两个[tab]会出现什么?
[dmtsai@study ~]$ ls -al ~/.bash[tab][tab]
.bash_history .bash_logout .bash_profile .bashrc
咦!在该目录下面所有以.bash为开头的文件名称都会被显示出来了呢!注意看上面两个例子喔,我们按[tab]按键的地方如果是在command(第一个输入的数据)后面时,他就代表着“命令补全”,如果是接在第二个字以后的,就会变成“文件补齐”的功能了!但是在某些特殊的指令下面,文件补齐的功能可能会变成“参数/选项补齐”喔!我们同样使用date这个指令来查一下:
[dmtsai@study ~]$ date --[tab][tab] <==[tab]按鍵是緊接在--後面!
--date --help --reference= --rfc-3339= --universal
--date= --iso-8601 --rfc-2822 --set= --version
#瞧!系统会列出来date这个指令可以使用的选项有哪些喔~包括未来会用到的—date等项目
总结一下:
[Tab]接在一串指令的第一个字的后面,则为“命令补全”;
[Tab]接在一串指令的第二个字以后时,则为“文件补齐”!
若安装bash-completion软件,则在某些指令后面使用[tab]按键时,可以进行“选项/参数的补齐”功能!
善用[tab]按键真的是个很好的习惯!可以让你避免掉很多输入错误的机会!
Tips
在这一版的CentOS 7.x当中,由于多了一个名为bash_completion的软件,这个软件会主动的去侦测“各个指令可以下达的选项与参数”等行为,因此,那个“文件补齐”的功能可能会变成“选项、参数补齐”的功能,不一定会主动补齐文件名了喔!这点得要特别留意。
鸟哥第一次接触CentOS 7的时候,曾经为了无法补齐文件名而觉得奇怪!烦恼了老半天说!
[Ctrl]-c按键
如果你在Linux下面输入了错误的指令或参数,有的时候这个指令或程序会在系统下面“跑不停”这个时候怎么办?别担心,如果你想让当前的程序“停掉”的话,可以输入:[Ctrl]与c按键(先按着[Ctrl]不放,且再按下c按键,是组合按键),那就是中断目前程序的按键啦!举例来说,如果你输入了“find/”这个指令时,系统会开始跑一些东西(先不要理会这个指令串的意义),此时你给他按下[Ctrl]-c组合按键,嘿嘿!是否立刻发现这个指令串被终止了!就是这样的意思啦!
[dmtsai@study ~]$ find /
....(一堆东西都省略)....
# 此时屏幕会很花,你看不到命令提示符的!直接按下[ctrl]-c即可!
[dmtsai@study ~]$ <==此时提示符就会回来了!find程序就被中断!
不过你应该要注意的是,这个组合键是可以将正在运行中的指令中断的,如果你正在运行比较重要的指令,可别急着使用这个组合按键喔!^_^
[Ctrl]-d按键
那么[Ctrl]-d是什么呢?就是[Ctrl]与d按键的组合啊!这个组合按键通常代表着:“键盘输入结束(End Of File, EOF或End Of Input)”的意思!另外,它也可以用来取代exit的输入呢!例如你想要直接离开命令行,可以直接按下[Ctrl]-d就能够直接离开了(相当于输入exit啊!)。
[shift]+{[PageUP]|[PageDown]}按键
如果你在纯文本的界面中执行某些指令,这个指令的输出讯息相当长啊!所以导致前面的部份已经不在目前的屏幕画面中,所以你想要回头去瞧一瞧输出的讯息,那怎办?其实,你可以使用[Shift]+[Page Up]来往前翻页,也能够使用 [Shift]+[PageDown]来往后翻页!这两个组合键也是可以稍微记忆一下,在你要稍微往前翻画面时,相当有帮助!
Tips
因为目前学生比较常用图形界面的终端机系统,所以当鸟哥谈到[Shift]+[Page UP]的功能时,他们很不能理解耶!说都有鼠标滚轮了,要这组合键干嘛?唉~真是没见过世面的小朋友…
总之,在Linux下面,命令行的功能是很强悍的!要多多的学习他,而要学习他的基础要诀就是…多使用、多熟悉啦!
4.2.4错误信息的查看
万一我下达了错误的指令怎么办?不要紧呀!你可以借由屏幕上面显示的错误信息来了解你的问题点,那就很容易知道如何改善这个错误信息啰!举个例子来说,假如想执行date却因为大小写打错成为DATE时,这个错误的讯息是这样显示的:
[dmtsai@study ~]$ DATE
bash: DATE: command not found... #这里显示错误的信息
Similar command is: 'date' #这里竟然给你一个可能的解决方案耶!
上面那个bash:表示的是我们的Shel的名称,本小节一开始就谈到过Linux的默认壳程序就是bash啰!那么上面的例子说明了bash有错误,什么错误呢?bash告诉你:
DATE: command not found
字面上的意思是说“指令找不到”,那个指令呢?就是DATE这个指令啦!所以说,系统上面可能并没有DATE这个指令啰!就是这么简单!通常出现“commandnot found”的可能原因为:
这个指令不存在,因为该软件没有安装之故。解决方法就是安装该软件;
这个指令所在的目录目前的用户并没有将他加入指令搜寻路径中,请参考第十章bash的PATH说明;
很简单!因为你打错字!
从CentOS 7开始,bash竟然会尝试帮我们找解答耶!看一下上面输出的第二行“Similar command is: 'date'”,它说,相似的指令是date喔!没错啊!我们就是输入错误的大小写而已~这就已经帮我们找到答案了!看了输出,你也应该知道如何解决问题了吧?
介绍这几个指令让你玩一玩先,更详细的指令操作方法我们会在第三篇的时候再进行介绍!现在让我们来想一想,万一我在操作date这个指令的时候,手边又没有这本书,我要怎么知道要如何加那些奇怪的参数,好让输出的结果符合我想要的输出格式呢?嘿嘿!到下一节鸟哥来告诉你怎么办吧!