Linux知识笔记 - Linux基础指令学习

Posted 萌总研发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux知识笔记 - Linux基础指令学习相关的知识,希望对你有一定的参考价值。

        上述的表格内容可以使用『man 7 man』来更详细的取得说明。透过这张表格的说明, 未来你如果使用man page在查看某些数据时,就会知道该指令/档案所代表的基本意思是什么了。 举例来说,如果你下达了『man null』时,会出现的第一行是:『NULL(4)』,对照一下上面的数字意义, 原来null这个竟然是一个『装置档案』!很容易了解了吧!

        再来,man page的内容也分成好几个部分来加以介绍该指令呢!就是上头man date那个表格内, 以NAME作为开始介绍,最后还有个SEE ALSO来作为结束。基本上,man page大致分成底下这几个部分:

Linux知识笔记 - Linux基础指令学习

        有时候除了这些外,还可能会看到Authors与Copyright等,不过也有很多时候仅有NAME与DESCRIPTION等部分。 通常鸟哥在查询某个数据时是这样来查阅的:
        1. 先查看NAME的项目,约略看一下这个资料的意思;
        2. 再详看一下DESCRIPTION,这个部分会提到很多相关的资料与使用时机,从这个地方可以学到很多小细节;
        3. 而如果这个指令其实很熟悉了(例如上面的date),那么主要就是查询关于OPTIONS的部分了! 可以知道每个选项的意义,这样就可以下达比较消息的指令内容了!
        4. 最后,跟这个资料有关的还有哪些东西可以使用的?举例来说,上面的SEE ALSO就告知我们还可以利用『info coreutils date』来进一步查阅数据;
        5. 某些说明内容还会列举有关的档案(FILES 部分)来提供我们参考!这些都是很有帮助的!
        大致上了解了man page的内容后,那举在man page当中我还可以利用哪些按键来帮忙查阅呢?首先, 如果要向下翻页的话,可以按下键盘的空格键,也可以使用[Page Up]与[Page Down]来翻页呢!同时,如果你知道某些关键词的话, 那举可以在任何时候输入『/word』,来主动搜寻关键词!例如在上面的搜寻当中,我输入了『/date』会变成怎样?

        看到了吗,当你按下『/』之后,光标就会移动到屏幕的最下面一行, 并等待你输入搜寻的字符串了。此时,输入date后,man page就会开始搜寻跟date有关的字符串, 幵且移动到该区域呢!很方便吧!最后,如果要离开man page时,直接按下『 q 』就能够离开了。 我们将一些在man page常用的按键给他整理整理:

        要注意!上面的按键是在man page的画面当中才能使用的! 比较有趣的是那个搜寻!我们可以往下或者是往上搜寻某个字符串,例如要在man page内搜寻vbird这个字符串, 可以输入 /vbird 或者是 ?vbird ,只不过一个是往下而一个是往上来搜寻的。而要 重复搜寻 某个字符串时,可以使用 n 或者是 N 来执行即可!
        既然有man page,自然就是因为有一些文件数据,所以才能够以man page读出来!那么这些man page的数据放在哪里呢?不同的distribution通常可能有点差异性,不过,通常是放在/usr/share/man这个目录里头,然而,我们可以通过修改他的man page搜寻路径来改善这个目录的问题!修改/etc/man.config (有的版本为man.conf或manpath.conf)也可以!

        事实上,还有两个指令与man page有关呢!而这两个指令是man的简略写法,就是这两个:

            [root@www ~]$ whatis [指令或者是数据] <==相当于 man -f [指令或者是数据]

            [root@www ~]$ apropos [指令或者是数据] <==相当与 man -k [指令或者是数据]

        而要注意的是,这两个特殊指令要能使用,必须要有建立 whatis 数据库才行!这个数据库的建立需要以 root 的身份下达如下的指令:

            [root@www ~]# makewhatis

正确的关机方法:

        Linux下不能跟windows平台下一样,随便按住电源几秒,机器就自动关机,因为在 Windows (非 NT 主机系统) 系统中,由于是单人假多任务的情况,所以即使你的计算机关机, 对于别人应该不会有影响才对!不过,在 Linux 底下,由于每个程序 (或者说是服务) 都是在背景下执行的,因此,在你看不的屏幕背后其实可能有相当多人同时在你的主机上面工作, 例如浏览网页、传送信件以 FTP 传送档案等等,如果你直接按下电源开关来关机时, 则其他人的数据可能就此中断!

        此外,最大的问题是,若不正常关机,则可能造成文件系统的毁损 (因为来不及将数据回写到档案中,所以有些服务的档案会有问题!)。所以正常情况下,要关机时需要注意底下几件事:
            1、观察系统的使用状态: 如果要看目前有谁在在线,可以下达『who』这个指令,而如果要看网络的联机状态,可以下达 『 netstat -a 』这个指令,而要看背景执行的程序可以执行『 ps -aux 』这个指令。使用这些指令可以让你稍微了解主机目前的使用状态!当然,就可以让你判断是否可以关机了 ;
            2、通知在线使用者关机的时刻: 要关机前总得给在线的使用者一些时间来结束他们的工作,所以,这个时候你可以使用 shutdown 的特别指令来达到此一功能;
            3、正确的关机指令使用: 例如 shutdown 与 reboot 两个指令!

        所以底下我们就来谈一谈几个与关机/重新启动相关的指令!
            1、将数据同步写入硬盘中的指令: sync;
            2、惯用的关机指令: shutdown;
            3、重新启动,关机: reboot, halt, poweroff;

        数据同步写入磁盘: sync

            所有的数据都得要被读入内存后才能够被CPU所处理,但是数据又常常需要由内存写回硬盘当中(例如储存的动作)。 由于硬盘的速度太慢(相对于内存来说),如果常常让数据在内存与硬盘中来回写入/读出,系统的效能就不会太好。

            因此在Linux系统中,为了加快数据的读取速度,所以在默认的情况中, 某些已经加载内存中的数据将不会直接被写回硬盘,而是先暂存在内存当中,如此一来, 如果一个数据被你重复的改写,那么由于他尚未被写入硬盘中,因此可以直接由内存当中读取出来!

            不过,如此一来也造成些许的困扰,那就是万一你的系统因为某些特殊情况造成不正常关机 (例如停电或者是不小心踢到power)时,由于数据尚未被写入硬盘当中!所以就会造成数据的更新不正常! 那要怎么办呢?这个时候就需要sync这个指令来进行数据的写入! 直接在文字接口下输入sync,那么在内存中尚未被更新的数据,就会被写入硬盘中!所以,这个指令在系统关机或重新启动之前, 很重要!最好多执行几次!

            虽然目前的 shutdown/reboot/halt 等等指令均已经在关机前进行了 sync 这个工具的调用,不过,建议还是要多做几次。

            [root@www ~]# sync

        惯用的关机挃令: shutdown

            由于Linux的关机是很重要的工作,因此除了你是在主机前面以tty7图形接口来登入系统时, 不论用什么身份都能够关机之外,若你是使用进程管理工具(如使用ssh服务来从其他计算机登入主机), 那关机就只有root有权力! 那么就来关机试试看吧!我们较常使用的是shutdown这个指令,而这个指令会通知系统内的各个程序 (processes),并且将通知系统中的run-level内的一些服务来关闭。shutdown可以达成如下的工作:
            1、可以自由选择关机模式:是要关机、重新启动或进入单人操作模式均可;
            2、可以设定关机时间: 可以设定成现在立刻关机, 也可以设定某一个特定的时间才关机。
            3、可以自定义关机讯息:在关机之前,可以将自己设定的讯息传送给在线 user 。
            4、可以仅发出警告讯息:有时有可能你要进行一些测试,而不想让其他的使用者干扰, 或者是明白的告诉使用者某段时间要注意一下!这个时候可以使用 shutdown 来提醒使用者,但不是真的要关机啦!
            5、可以选择是否要 fsck 检查文件系统 。
        那么shutdown的语法是如何呢?聪明的读者大概已经开始找『男人』了!没错,随时随地的 man 一下!好了,简单的语法规则为:

            [root@www ~]# /sbin/shutdown [-t 秒] [-arkhncfF] 时间 [警告讯息]

            选项与参数:

                -t sec : -t 后面加秒数,即『过几秒后关机』的意思

                -k : 不要真的关机,只是发送警告讯息出去!

                -r : 在将系统的服务停掉之后就重新启动(常用)

                -h : 将系统的服务停掉后,立刻关机。 (常用)

                -n :不经过 init 程序,直接以 shutdown 的功能来关机

                -f : 关机并开机之后,强制略过 fsck 的磁盘检查

                -F : 系统重新启动之后,强制进行 fsck 的磁盘检查

                -c : 取消已经在进行的 shutdown 指令内容。

                时间 : 这是一定要加入的参数!指定系统关机的时间!

            范例:

                [root@www ~]# /sbin/shutdown -h 10 'I will shutdown after 10 mins'

                # 告诉大家,这部机器会在十分钟后关机!并且会显示在目前登入者的屏幕前方!

                此外,需要注意的是,时间参数请务必加入指令中,否则shutdown会自动跳到 run-level 1 (就是单人维护的登入情况)

                [root@www ~]# shutdown -h now

                    立刻关机,其中 now 相当于时间为 0 的状态

                [root@www ~]# shutdown -h 20:25

                    系统在今天的 20:25 分会关机,若在21:25才下达此指令,则隔天才关机

                [root@www ~]# shutdown -h +10

                    系统再过十分钟后自动关机

                [root@www ~]# shutdown -r now

                    系统立刻重新启动

                [root@www ~]# shutdown -r +30 'The system will reboot'

                    再过三十分钟系统会重新启动,并显示后面的讯息给所有在在线的使用者

                [root@www ~]# shutdown -k now 'This system will reboot'

                    仅发出警告信件的参数!系统并不会关机!

        重新启动,关机: reboot, halt, poweroff

            还有三个指令可以进行重新启动与关机的任务,那就是reboot, halt, poweroff。 其实这三个指令呼叫的函式库都差不多,所以当你使用『man reboot』时,会同时出现三个指令的用法给你看。 其实通常只记shutdown与reboot这两个指令就可以!不过使用poweroff这个指令比较简单!

                [root@www ~]# sync; sync; sync; reboot

            既然这些指令都能够关机或重新启动,那他有没有什么差异呢?基本上,在预设的情况下, 这几个指令都会完成一样的工作!(因为halt会先呼叫shutdown,而shutdown最后会呼叫halt!)。 不过,shutdown可以依据目前已启动的服务来逐次关闭各服务后才关机;至于halt即能够在不理会目前系统状况下, 进行硬件关机的特殊功能!你可以在你的主机上面使用root进行底下两个指令来关机,比较看看差异在哪里喔!

                [root@www ~]# shutdown -h now

                [root@www ~]# poweroff -f

        切换执行等级: init

           之前谈到的是系统运作的模式,分为纯文本(run level 3)及图形接口模式(run level 5)。除了这两种模式外,有没有其他模式呢?其实Linux共有七种执行等级, 七种等级的意义我们在后面会再谈到。本文你只要知道底下四种执行等级就好了:
            1、run level 0:关机
            2、run level 3:纯文本模式
            3、run level 5:含有图形接口模式
            4、run level 6:重新启动
        那如何切换各模式呢?可以使用init这个指令来处理!也就是说,如果你想要关机的话, 除了上述的shutdown -h now以及poweroff之外,你也可以使用如下的指令来关机:

            [root@www ~]# init 0

以上是关于Linux知识笔记 - Linux基础指令学习的主要内容,如果未能解决你的问题,请参考以下文章

Linux | Linux常用指令学习笔记 #yyds干货盘点#

linux基础知识学习笔记

学习笔记-Linux系统基础知识2

Linux学习基础知识总结1

学习笔记-《Linux基础知识之挂载详解(mount,umount及开机自动挂载)》

Linux学习笔记第8章 Linux shell基础知识