文本模式下指令的下达

文本模式登入后所取得的程序被称为壳(Shell),这是因为这支程序负责最外面跟使用者(我们)沟通,所以才被戏称为壳程序!我们 Linux 的壳程序就是厉害的 bash 这一支!

一、开始下达指令

在这里插入图片描述
上述指令详细说明如下:

  1. 一行指令中第一个输入的部分绝对是『指令(command)』或『可执行文件案(例如批次脚本,script)』
  2. command 为指令的名称,例如变换工作目录的指令为 cd 等等;
  3. 中刮号[]并不存在于实际的指令中,而加入选项设定时,通常选项前会带 - 号,例如 -h;有时候会使用选项的完整全名,则选项前带有 – 符号,例如 --help;
  4. parameter1 parameter2… 为依附在选项后面的参数,或者是 command 的参数;
  5. 指令, 选项, 参数等这几个咚咚中间以空格来区分,不论空几格 shell 都视为一格。 所以空格是很重要的特殊字符!;
  6. 按下[Enter]按键后,该指令就立即执行。 [Enter]按键代表着一行指令的开始启动。
  7. 指令太长的时候,可以使用反斜杠 () 来跳脱[Enter]符号,使指令连续到下一行。注意!反斜杠后就立刻接特殊字符,才能跳脱!
  8. 其他:
    a. 在 Linux 系统中, 英文大小写字母是不一样的。举例来说, cd 与 CD 并不同。
    b. 以后详述。

注意到上面的说明当中,『 第一个被输入的数据绝对是指令或者是可执行的文件』! 这个是很重要的概念喔!还有,按下[Enter]键表示要开始执行此一命令的意思。

  • 我们来实际操作一下: 以 ls 这个『指令』列出『自己家目录(~)』下的『所有隐藏档与相关的文件属性』, 要达成上述的要求需要加入 -al 这样的选项,所以:
    在这里插入图片描述
    上面这三个指令的下达方式是一模一样的执行结果喔!为什么?请参考上面的说明吧!
  • 此外, 请特别留意,在 Linux 的环境中, 『大小写字母是不一样的东西!』 也就是说, 在 Linux 底下, VBird 与 vbird 这两个文件是『完全不一样的』 文件呢!所以, 你在下达指令的时候千万要注意到指令是大写还是小写。
  • 例如当输入底下这个指令的时候,看看有什么现象:
    在这里插入图片描述
    很好玩吧! 只是改变小写成为大写而已,该指令就变的不存在了! 因此,请千万记得这个状态呦!

二、语系的支援

另外,很多时候你会发现, 咦!怎么我输入指令之后显示的结果的是乱码? 这跟鸟哥说的不一样啊!呵呵!不要紧张~我们前面提到过, Linux 是可以支持多国语系的,若可能的话, 屏幕的讯息是会以该支持语系来输出的。但是,我们的终端机接口(terminal)在默认的情况下, 无法支持以中文编码输出数据的。这个时候,我们就得将支持语系改为英文,才能够以英文显示出正确的讯息。 那怎么做呢?你可以这样做:
在这里插入图片描述
在这里插入图片描述
注意一下,那个『 LANG=en_US.utf8』是连续输入的,等号两边并没有空格符喔! 这样一来,就能够在『这次的登入』察看英文讯息啰!为什么说是『这次的登入』呢? 因为,如果你注销 Linux 后,刚刚下达的指令就没有用啦!

三、基础指令的操作

1、显示日期的指令: date

如果在文字接口中想要知道目前 Linux 系统的时间,那么就直接在指令列模式输入 date 即可显示:
在这里插入图片描述
上面显示的是:星期五, 五月二十九日, 14:32 分, 01 秒,在 2015 年的 CST 时区!台湾在 CST 时区中啦!
好了,那么如果我想要让这个程序显示出『 2015/05/29』这样的日期显示方式呢? 那么就使用 date 的格式化输出功能吧!
在这里插入图片描述
那个『 +%Y%m%d』就是 date 指令的一些参数功能啦!很好玩吧!那你问我, 鸟哥怎么知道这些参数的啊?要背起来吗?当然不必啦!底下再告诉你怎么查这些参数啰!

  • 从上面的例子当中我们也可以知道,指令之后的选项除了前面带有减号『 -』之外,某些特殊情况下,选项或参数前面也会带有正号『 +』的情况!这部份可不要轻易的忘记了呢!

2、显示日历的指令: cal

那如果我想要列出目前这个月份的月历呢?呵呵!直接给他下达 cal 即可!
在这里插入图片描述
除了本月的日历之外,连同今日所在日期处都会有反白的显示呢!真有趣!
cal (calendar)这个指令可以做的事情还很多,例如你可以显示整年的月历情况:
在这里插入图片描述
基本上 cal 这个指令可以接的语法为:
在这里插入图片描述
所以,如果我想要知道 2015 年 10 月的月历,可以直接下达:
在这里插入图片描述
那请问今年有没有 13 月啊?来测试一下这个指令的正确性吧!下达下列指令看看:
在这里插入图片描述
cal 竟然会告诉我们『错误的月份,请使用 1-12』这样的信息呢!所以, 未来你可以很轻易的就以cal 来取得日历上面的日期啰!简直就是万年历啦! _

  • 另外,由这个 cal 指令的练习我们也可以知道, 某些指令有特殊的参数存在, 若输入错误的参数,则该指令会有错误讯息的提示,透过这个提示我们可以藉以了解指令下达错误之处。 这个练习的结果请牢记在心中喔!

3、简单好用的计算器:bc

如果在文本模式当中,突然想要作一些简单的加减乘除,偏偏手边又没有计算器!这个时候要笔算吗?不需要啦!我们的 Linux 有提供一支计算程序,那就是 bc 喔。你在指令列输入 bc 后,屏幕会显示出版本信息, 之后就进入到等待指示的阶段。如下所示:
在这里插入图片描述
在这里插入图片描述
事实上,我们是『 进入到 bc 这个软件的工作环境当中』了! 就好像我们在 Windows 里面使用『小算盘』一样!所以,我们底下尝试输入的数据, 都是在 bc 程序当中在进行运算的动作。所以啰, 你输入的数据当然就得要符合 bc 的要求才行! 在基本的 bc 计算器操作之前,先告知几个使用的运算符好了:+ 加法、- 减法、* 乘法、/ 除法、^ 指数、% 余数

好!让我们来使用 bc 计算一些咚咚吧!
在这里插入图片描述
在上表当中,粗体字表示输入的数据,而在每个粗体字的底下就是输出的结果。 咦!每个计算都还算正确,怎么 10/100 会变成 0 呢?这是因为 bc 预设仅输出整数,如果要输出小数点下位数,那么就必须要执行 scale=number ,那个 number 就是小数点位数,例如:
在这里插入图片描述
在这里插入图片描述

注意啊!要离开 bc 回到命令提示字符时,务必要输入『 quit』来离开 bc 的软件环境喔! 好了!就是这样子啦!简单的很吧!以后你可以轻轻松松的进行加减乘除啦!

4、小结

从上面的练习我们大概可以知道在指令列模式里面下达指令时,会有两种主要的情况:

  1. 一种是该指令会直接显示结果然后回到命令提示字符等待下一个指令的输入;
  2. 一种是进入到该指令的环境,直到结束该指令才回到命令提示字符的环境。

四、重要的几个热键

在继续后面章节的学习之前,这里很需要跟大家再来报告一件事,那就是我们的文本模式里头具有很多的功能组合键, 这些按键可以辅助我们进行指令的编写与程序的中断呢!这几个按键请大家务必要记住的!很重要喔!

1、[Tab]按键

[Tab]按键就是在键盘的大写灯切换按键([Caps Lock])上面的那个按键!在各种 Unix-Like的 Shell当中,这个[Tab]按键算是 Linux 的 Bash shell 最棒的功能之一了!他具有『命令补全』与『 文件补齐』的功能喔! 重点是,可以避免我们打错指令或文件名呢!很棒吧!但是[Tab]按键在不同的地方输入,会有不一样的结果喔!

我们举下面的例子来说明。上一小节我们不是提到 cal 这个指令吗?如果我在指令列输入 ca 再按两次 [tab] 按键, 会出现什么讯息?
在这里插入图片描述
发现什么事?所有以 ca 为开头的指令都被显示出来啦!很不错吧!

那如果你输入『 ls -al ~/.bash』再加两个[tab]会出现什么?
在这里插入图片描述
咦!在该目录下面所有以 .bash 为开头的文件名都会被显示出来了呢!

注意看上面两个例子喔, 我们按[tab]按键的地方如果是在 command(第一个输入的数据)后面时,他就代表着 『命令补全』,如果是接在第二个字以后的,就会变成『 文件补齐』的功能了!但是在某些特殊的指令底下, 文件补齐的功能可能会变成『参数/选项补齐』喔!

我们同样使用 date 这个指令来查一下:
在这里插入图片描述
总结一下:

  1. [Tab] 接在一串指令的第一个字的后面,则为『命令补全』;
  2. [Tab] 接在一串指令的第二个字以后时,则为『 文件补齐』!
  3. 若安装 bash-completion 软件,则在某些指令后面使用 [tab] 按键时,可以进行『选项/参数的补齐』功能!

善用 [tab] 按键真的是个很好的习惯! 可以让你避免掉很多输入错误的机会!

  • Tips 在这一版的 CentOS 7.x 当中,由于多了一个名为 bash_completion 的软件,这个软件会主动的去侦测『各个指令可以下达的选项与参数』等行为, 因此,那个『 文件补齐』的功能可能会变成『选项、参数补齐』的功能,不一定会主动补齐档名了喔!这点得要特别留意。鸟哥第一次接触 CentOS 7 的时候, 曾经为了无法补齐档名而觉得奇怪!烦恼了老半天!

2、[Ctrl]-c 按键

如果你在 Linux 底下输入了错误的指令或参数,有的时候这个指令或程序会在系统底下『跑不停』这个时候怎么办?别担心, 如果你想让当前的程序『停掉』的话,可以输入: [Ctrl]与 c 按键(先按着[Ctrl]不放,且再按下 c 按键,是组合按键), 那就是中断目前程序的按键啦!举例来说,如果你输入了『 find/』这个指令时,系统会开始跑一些东西(先不要理会这个指令串的意义),此时你给他按下 [Ctrl]-c 组合按键,嘿嘿!是否立刻发现这个指令串被终止了!就是这样的意思啦!
在这里插入图片描述
不过你应该要注意的是,这个组合键是可以将正在运作中的指令中断的, 如果你正在运作比较重要的指令,可别急着使用这个组合按键喔! _

3、[Ctrl]-d 按键

那么[Ctrl]-d 是什么呢?就是[Ctrl]与 d 按键的组合啊!这个组合按键通常代表着: 『 键盘输入结束(EndOf File, EOF 或 End Of Input)』的意思! 另外,他也可以用来取代 exit 的输入呢!例如你想要直接离开文字接口,可以直接按下[Ctrl]-d 就能够直接离开了(相当于输入 exit 啊! )

4、[shift]+{[PageUP]|[Page Down]}按键

如果你在纯文本的画面中执行某些指令,这个指令的输出讯息相当长啊!所以导致前面的部份已经不在目前的屏幕画面中, 所以你想要回头去瞧一瞧输出的讯息,那怎办?其实,你可以使用[Shift]+[Page Up] 来往前翻页,也能够使用 [Shift]+[Page Down] 来往后翻页! 这两个组合键也是可以稍微记忆一下,在你要稍微往前翻画面时,相当有帮助!

  • Tips: 因为目前学生比较常用图形界面的终端机系统,所以当鸟哥谈到 [Shift]+[Page UP] 的功能时,他们很不能理解耶!说都有鼠标滚轮了, 要这组合钮干麻?唉~真是没见过世面的小朋友…

总之,在 Linux 底下,文字接口的功能是很强悍的!要多多的学习他,而要学习他的基础要诀就是…
多使用、多熟悉啦!

五、错误讯息的察看

万一我下达了错误的指令怎么办?不要紧呀!你可以藉由屏幕上面显示的错误讯息来了解你的问题点,那就很容易知道如何改善这个错误讯息啰!举个例子来说,假如想执行 date 却因为大小写打错成为DATE 时, 这个错误的讯息是这样显示的:
在这里插入图片描述
上面那个 bash:表示的是我们的 Shell 的名称, 本小节一开始就谈到过 Linux 的默认壳程序就是 bash啰! 那么上面的例子说明了 bash 有错误,什么错误呢? bash 告诉你:

  • DATE: command not found

字面上的意思是说『指令找不到』,那个指令呢?就是 DATE 这个指令啦! 所以说,系统上面可能并没有 DATE 这个指令啰!就是这么简单!通常出现『 command not found』的可能原因为:

  1. 这个指令不存在,因为该软件没有安装之故。解决方法就是安装该软件;
  2. 这个指令所在的目录目前的用户并没有将他加入指令搜寻路径中,请参考第十章 bash 的 PATH 说明;
  3. 很简单!因为你打错字!
    从 CentOS 7 开始, bash 竟然会尝试帮我们找解答耶!看一下上面输出的第二行『 Similar command is:‘date’』,他说,相似的指令是 date 喔! 没错啊!我们就是输入错误的大小写而已~这就已经帮我们找到答案了!看了输出,你也应该知道如何解决问题了吧?

介绍这几个指令让你玩一玩先,更详细的指令操作方法之后再进行介绍! 现在让我们来想一想,万一我在操作 date 这个指令的时候,手边又没有这本书,我要怎么知道要如何加那些奇怪的参数, 好让输出的结果符合我想要的输出格式呢?嘿嘿!到下一节鸟哥来告诉你怎么办吧!

猜你喜欢

转载自blog.csdn.net/qq_42815188/article/details/86634890