Linux操作系统及常用命令详解

    Shell其实就是一种我们进行人机交互的接口,Shell也有很多种,分别是sh、bash、csh、ksh、zsh和tcsh,接口的形式有两种,分别是:              

        1,GUI(Graphic User Interface->图形用户界面/接口)

        在Windows操作系统中,图形界面是嵌入在内核中的,如果不启动图形界面就无法启动我们的计算机,而在我们的Linux操作系统中X(图形显示协议)-window只是外围软件(可有可无),Linux操作系统中有三个图形软件,分别是:Gnome、KDE和Xface。

        2,CLI(Command Line Interface->命令行接口)

·操作系统结构

    我们操作系统的最底层是我们的底层硬件,硬件上层就是我们的Kernel(内核),内核的上层可以有我们的应用程序,这种不通过库直接访问内核的方式叫做系统调用(system call),我们的内核上层也有封装好的库(library)和API(Application Program Interface->应用程序接口),库和API的上层就是我们的Shell,应用程序通过Shell和我们的封装好的库进行交互的方式叫做库调用,库的上层有一些可以直接进行库调用而不用通过Shell的应用程序,这些应用程序就类似我们的KDE和IDE(Integrated Develop Environment->集成开发环境),这些应用程序可以开机自启而不用通过Shell来启动,所以总的来说,操作系统的结构由上到下分别是:

    Shell->最关键的程序

    库

    内核->我们的内核文件在Windows操作系统中的后缀为.dll(dynamic link library->动态链接库),在我们的Linux系统中的后缀为.so(shared object->共享对象)或者是.dso(dynamic shared object->动态共享对象)

    硬件

·login(登录)

    登录机制中的用户名是为了用户识别,我们的计算机识别的是用户的ID(数字),我们Linux操作系统是多用户多任务操作系统,我们的Linux操作系统的登录认证(Athentication)机制是先进行资源授权(Authorization),因为每个用户可用资源的权限是不一样的,是通过审计(Audition)进行授权的,审计是通过日志进行的。

·命令

    1,prompt(命令提示符):

    ->#,表示为超级用户

    ->$,表示为普通用户

    2,magic number(魔数):shebang

    例如Shell脚本开头的#!/bin/bash即为魔数,表示命令或者脚本的执行入口。

    3,命令的格式:

      ...#/$ command options(选项,-跟短选项,--跟长选项,短选项可以合并) argumnts(参数,即作用对象),有些选项中包含参数

        ls(list)命令->列出,列表,用来列出指定路径下的文件或者是列表

·目录

    Linux中的目录不是Windows中的文件夹,Windows中的文件夹相当于是一个容器,而我们的Linux中的目录不是容器,它也是一种文件,一种路径映射文件,Linux系统的层次化管理机制称为文件系统(Filesystem),我们Linux系统的结构为倒树状结构:

    目录从根(/)目录起始,不可交叉的节点称为文件,可交叉节点称为目录,从"/"开始的路径称为绝对路径,当前位置的目录称为相对路径,我们的当前目录(current directory)也被称为工作目录(working directory),我们用户登录系统的时候就在工作目录中,FHS(Filesystem Hierarchy Standard->文件系统目录标准)中规定的默认(缺省)目录及目录中的文件都是不能改变的,我们的pwd(print working directory)命令,可以打印当前目录:

    Linux操作系统及常用命令

    Linux系统中用"/"表示目录和文件的分隔符,Windows系统中用"\",而且文件和目录还有颜色之间的区别,蓝色字体表示目录:

    Linux操作系统及常用命令

    绿色字体表示有执行权限的文件:

    Linux操作系统及常用命令

·ls命令

    ls命令后面如果不加选项表示使用改名令的默认选项

    Linux操作系统及常用命令

    -l(=--long)选项->表示显示长格式,显示完整信息

    Linux操作系统及常用命令

    上图中的第一个字段的第一个字符表示的是该文件的类型,d表示目录文件,-表示普通文件(也可以用f=file表示),文件类型的后面9个字符代表的是文件的权限,第二个字段的数字表示该文件被硬链接的次数,第三个字段分别表示该文件的属主属组,第五个字段的数字表示的是文件的大小,默认单位为字节,最后一个字段代表的是文件的时间戳(timestamp->最近一次被修改的时间):

    timastamp

        我们Linux中的每个文件有三个时间戳:

        ->文件最近一次被访问的时间(atime),访问就是读的意思,acess

        ->文件最近一次被修改的时间(mtime),修改,modify

        ->文件最近一次被改变的时间(ctime),改变,change

    Linux中的文件的数据由两部分组成:

        ->文件中包含的数据,文件的内容,修改文件只能是修改文件的内容,故文件中包含的数据对应的是mtime

        ->文件的属性数据,也叫做文件的元数据(metadata),改变只能改变文件的元数据,故文件的元数据对应的是ctime


    -h(humanreadable)选项,表示的是单位换算

        将文件大小的默认单位字节转换为KB、MB以及GB

        Linux操作系统及常用命令

    -a选项,表示显示所有文件,将以"."开头的隐藏文件也全部显示出来

        Linux操作系统及常用命令

        上图中的目录"."表示当前目录,目录".."表示的是当前目录的上一层目录

    -A选项,和-a选项功能一样,唯一的区别是不显示目录"."和目录".."

        Linux操作系统及常用命令

    -d选项,表示显示目录自身属性

        Linux操作系统及常用命令

    -i选项,表示显示目录中文件的索引节点(inode),我们人类是依靠文件名识别文件的,而我们的计算机是依靠inode(index node)来识别我们文件系统中不同的文件的

    Linux操作系统及常用命令

    -r选项,表示逆序显示文件

        Linux操作系统及常用命令

    -R(Recursive)选项,表示的是递归显示文件(显示子目录,子子目录及其中的文件)

        Linux操作系统及常用命令

·cd命令

    cd(change directory),顾名思义这是一个切换工作目录的命令,该命令后面只可以跟目录名

    Linux操作系统及常用命令

    cd命令后面什么参数都不接的话,表示切换至家目录(home directory),家目录又叫做主目录,在bash中,以"~"表示我们的家目录

    Linux操作系统及常用命令

·Linux中的命令类型

    ->内置命令

        是我们的Shell内置的,也叫做内建命令,builtin

    ->外部命令

        我们的外部命令能否直接执行而不用列出具体路径是由我们bash中的环境变量PATH决定的

        Linux操作系统及常用命令

        由上图可知,我们的环境变量PATH里面是使用冒号分隔的一堆路径,我们使用的命令如果不在环境变量PATH所包含的路径中的话,那么在使用时必须得加上具体的路径

    我们可以使用type命令来显示我们的命令属于哪种类型:

        Linux操作系统及常用命令

·环境变量

    定义当前用户工作环境的变量称为环境变量,我们的变量指的是一段被命名了的内存空间,往这段内存空间中存放数据叫做给变量赋值,变量的声明过程其实就是申请内存空间的过程,printenv命令可以显示当前的环境变量:

        Linux操作系统及常用命令

·clear命令

    清屏命令

    Linux操作系统及常用命令

    Linux操作系统及常用命令

·hash命令

    该命令可以用于显示缓存,这是我们bash中的内置命令

    Linux操作系统及常用命令

    hash(哈希),是我们的命令数据库,当我们第一次执行某命令的时候,系统会在环境变量PATH中的路径中查找该命令,之后当我们再次执行相同命令的时候系统都是在hash缓存中查找,查找速度为O(1)->表示不管我们的文件列表有多长,我们查找文件的速度都不变,因为是在数据库中查找,上图中的hits表示命中次数,也就是我们命令的使用次数,所以这里我们就可以知道我们缓存(cache)的作用就是为了实现系统加速

·date命令

    这是一个系统时间管理命令,date命令显示的是系统时间,CST指的是时间格式

    Linux操作系统及常用命令

    date命令的使用方法:

    ->date +%D表示以月/日/年的格式来显示系统时间

        Linux操作系统及常用命令

        date +"Today is %D."还可以打印引号里的字符串

        Linux操作系统及常用命令

    ->date +%d表示只显示年月日中的日

        Linux操作系统及常用命令

    ->date +%n表示换行

        Linux操作系统及常用命令

    ->date +%T表示以小时:分钟:秒的格式来显示系统时间

        Linux操作系统及常用命令

         相当于使用date +%H:%M:%S

        Linux操作系统及常用命令

    ->date +%F表示以年-月-日的格式来显示系统时间

        Linux操作系统及常用命令

        相当于使用date +%Y-%m-%d

            Linux操作系统及常用命令

    ->date +%s表示的是计算机元年计时法,指的是从1970年1月1日的零点到此时此刻的秒数,UTC表示格林尼治时间

        

·clock/hwclock命令

    该命令用来管理硬件时间

    Linux操作系统及常用命令

    我们计算机的主板上有纽扣电池,主板上有一个晶体震汤器,故我们的计算机在我们关机断电的时候还可以继续记录时间,这个时间就叫做硬件时间(rtc->real time clock:实时时钟),我们的系统时间是通过软件模拟的rtc,故我们可以利用硬件时间来手动同步我们的系统时间:

    hwclock -w->表示将硬件时间同步为系统时间

        Linux操作系统及常用命令

    hwclock -s->表示将系统时间同步为硬件时间

        Linux操作系统及常用命令

    hwclock -r->表示的是显示硬件时间

        Linux操作系统及常用命令

    Windows系统上是通过NTP(Network Time Protocol)协议来进行时间同步的

·获得命令的使用帮助

    help命令

    ->内部命令的使用帮助

        格式:help COMMAND

            Linux操作系统及常用命令

    ->外部命令的使用帮助

        格式:COMMAND --help,这种用法只能显示出命令的简要帮助信息,而且针对大多数的外部命令

            Linux操作系统及常用命令

    命令手册(manual)

        格式:man COMMAND,man命令无法查看内部命令的使用帮助

            Linux操作系统及常用命令

            由上图知,man命令是分章节的:

                第一章节查看的是用户命令的帮助,是针对所有用户的命令,即/bin、/usr/bin及/usr/local/bin下的命令

                第二章节查看的是系统调用的帮助

                第三章节查看的是C语言库函数的使用帮助

                第四章节查看的是特殊文件和设备文件(设备访问的入口)的使用帮助

                第五章节查看的是文件格式(文件格式用来解释配置文件的语法)的使用帮助

                第六章节查看的是游戏相关的使用帮助

                第七章节查看的是杂项(Miscellaneous)的使用帮助

                第八章节查看的是系统管理工具(只有管理员才可以使用即/sbin、/usr/sbin以及/usr/local/sbin)的使用帮助

        我们可以使用whatis命令来查看命令的章节,使用格式:whatis COMMAND:

            Linux操作系统及常用命令

        从而可以根据章节来精准的查看命令的使用帮助

    man手册中的条目分别都指的是:

        Linux操作系统及常用命令

        NAME->指的是命令名称及功能简要说明

        SYOPSIS->用法说明,包括可用选项

        DESCRIPTION->命令功能的详尽说明,可能包括每一个选项的意义

        OPTIONS->说明没一个选项的意义

        FILES->与此命令相关的配置文件

        EXAMPLES->命令使用示例

        SEEALSO->另外参照

     man手册使用方法:

        翻屏

            空格键->表示向后翻一屏

            b->表示向前翻一屏

            回车键->表示向后翻一行

            k->表示向前翻一行

        查找

            ->/KEYWORD,小写n表示向后查找,大写N表示向前查找

            ->?KEYWORD,小写n表示向后查找,大写N表示向前查找

        退出

            q,表示退出man手册

·在线文档

    ->info

        info相当于是对man手册的补充,使用格式info COMMAND:

            Linux操作系统及常用命令

            Linux操作系统及常用命令

        PageUp表示向前翻屏,PageDown表示向后翻屏,Tab键表示切换超级链接

    ->doc(documentation,文档)

        在我们的/usr/share/doc有一个文档

        FAQ(Frequently Answer and Question,表示的是常见问题解答)

·cal命令

    Linux操作系统及常用命令

    日历

·echo命令

    默认换行输出

        Linux操作系统及常用命令

    -n选项表示不换行输出

        Linux操作系统及常用命令

·printf命令

    默认不换行输出

        Linux操作系统及常用命令

    使用换行符可以使之换行输出

        Linux操作系统及常用命令

        

    

                 

                

        

        

转载于:https://blog.51cto.com/zhubo/1842564

相关文章: