Linux中的几个命令

来源:互联网 发布:sony摄像机数据恢复 编辑:程序博客网 时间:2024/06/06 03:29

Linux中的几个命令详解

    一,whoami

        功能:用来显示当前登录到系统的用户是谁

        wKioL1eZV5nRG1svAAAIVnYDVyQ158.png

    

    二,who

        功能:显示当前登录到系统上的用户是谁以及它所登录的终端

        ->who命令显示三个字段:

            第一个字段:表示用户名称

            第二个字段:表示的是用户从哪个终端登录进来的

            第三个字段:表示用户的登录时间

        wKioL1eZWLax3oqOAAAVykl4Zx4448.png

        

        终端的概念:

        终端是一个物理设备,用户在登录系统的时候一定会关联至某个物理硬件设备,这个物理硬件设备就叫做终端。

        对我们的Linux操作系统而言终端类型有以下几种:

        ->console(控制台):直接连接到物理主机上的物理设备,比如键盘,显示器,鼠标等等,控制台不是终端,它只是能够直接连接到物理设备上的显示界面,因为此时还没有用户登录,还没有用户的相关概念。

        ->pty(物理终端:physical termianl):终端指的是用户可以登录的,可以验证用户身份的物理设备,所以终端是软件和硬件的结合体,因为能够使用户登录系统的,可以验证用户身份的只有软件或者是进程,当我们的系统刚刚启动的时候,我们的显示器上就可以显示出来很多信息,此时这些信息是属于某个用户的,没有用户就无法关联至某个终端,此时的这个终端叫做物理控制台,此时的终端叫做物理终端,附加在VGA(显卡)卡上,在显示器上显示出来,物理终端指的是我们的设备已经被识别出来,但此前仍然和用户没有关联,通常情况下,控制台指的就是物理终端,物理终端指的就是控制台,大多数情况下二者不予区分。

        

        ->tty#(虚拟控制台,#表示第#个虚拟控制台):

            虚拟控制台通常指的是附加在某个物理终端上的,并结合软件的方式模拟或虚拟出来的控制台,故称为虚拟控制台或模拟控制台,而且通常是在本地,大多数情况下被称为虚拟终端,附加在VGA卡上,在显示器上显示出来。

            下图所示就是虚拟终端:

            wKiom1eZZHaR6vv2AAAIEWAK9T8110.png

            

        

        ->ttyS#(串行终端,不附加在显卡上)

        

        ->pts/#(伪终端):

            在为文件系统上生成的伪终端。

            下图所示就是伪终端:

            wKioL1eZXJ7Sx76rAAH2YGyS_78676.png


        who命令的一些常用选项:

        ->-r:显示当前的运行级别

            wKiom1eZZNTiusUUAAAOw6s9iaI513.png

        ->-H:可以分别显示三个字段的名称

            wKiom1eZZUrBxVxoAAAg50i-z4Q855.png

        

        练习:用命令实现

            查看hadoop是否登录到系统上来

            wKiom1eZZfSS4_vjAAAOoHe0VfU895.png

        练习:写一个脚本,要求

            每隔5秒钟,就来查看hadoop用户是否登录了系统,如果登录了,就显示其已经登录,并退出脚本。

        脚本内容:

        wKiom1eZarLC1GoHAAAzY_3SgGQ047.png

        脚本执行结果:

        wKiom1eZasjijVPOAAAoN__6zvg008.png

        

    三,w命令

        功能:显示当前登录到系统上的用户,并显示这些用户正在做什么事情。

            比who命令显示的信息更详细。

        wKioL1eZa63SlTrnAABKr6z0ELM119.png

    

    四,last命令

        功能:显示当前系统上的登录日志,显示都有谁曾经登录过系统,还有重启系统的历史。

        ->last其实是用来显示/var/log/wtmp文件内容的命令,这个文件的内容包括了用户的登录历史及系统的重启历史。

        wKioL1eZbSSgRoJtAACGaHGvqog197.png

        ->last显示的是系统自安装之初到现在所有的信息,而我们可以利用last -n #选项来显示最近#次的信息。

        wKioL1eZbWeBGLxVAAAwl_tW7tQ062.png

        

    四,lastb(bad)命令

        功能:显示系统自安装支出起到现在,所又用户的错误登录尝试。

        lastb命令其实是用来显示/var/log/btmp这个文件内容的命令,这个文件记录的内容就是,系统自安装之初起所有用户的错误登录尝试。

        wKioL1eZb8Gi7aoKAAAUUyzSRx4306.png

        ->lastb -n #:用来显示最近#次的错误登录尝试。

        wKioL1eZb-fjfVKmAAAVjFTIpPg661.png

        

    五,lastlog命令

        功能:显示每一个用户最近一次的登录信息,不管用户有没有登录过系统,它都会显示。

        wKioL1eZcH6AHMtrAABbh_5P-Q4399.png

        ->lastlog -u username:显示某用户最近一次的登录信息。

        wKioL1eZcOeBYcP3AAAVIwPlhHo304.png


    六,basename命令

        功能:直接取得路径基名(文件名)

        wKiom1eZdZWCG-FpAAANlJeUf6Q818.png

        特殊变量->$0

            执行脚本时的脚本路径及名称

           

    七,mail命令

        ->mail命令用于打开自己的邮箱系统,在我们装完操作系统之后,默认的绝大多数情况下,系统默认的安装都会安装邮件服务,因为我们当前的操作系统上都会有很多的自动任务需要处理,这些自动任务的功能是监控你系统上资源的使用状况,比如说你的硬盘是不是快满了等等,如果你的硬盘快满了的话,系统就会自动向你的管理员或者是用户发一封邮件,告诉你你的硬盘快满了,所以说系统内部的通信或者是警告信息都是通过邮件来发送的,所以当前系统上的每一个用户都是可以收发邮件的,而且都会有自己的邮箱,收邮件的命令就是mail(也可以用来发送邮件),但是只能在本机上不同的用户之间进行邮件的发送。

          在我们利用mail命令进入邮箱系统之后,上面显示的N(New)表示新邮件,底下的数字1表示第一封邮件,依次类推,后面接下来的信息分别显示的是邮件的发送者 发送时间 邮件主题。

          wKioL1eZeFvRx8PiAABPLAcQAQE237.png

        要想查看某个邮件的内容,可以直接输入邮件的数字编号:

        wKiom1eZeMzSJe6JAAB3qIU8xxE091.png

        

        ->mail命令用来查看邮件,但是如果邮件全部查看完成,新邮件就没有了,以前的邮件会被保存在对应用户家目录下的一个叫做mbox的文件里面。

        ->mail命令也可以用来发送邮件

        用法格式:mail username

            mail -s "..."可以用来指定发送邮件的主题:mail -s "..." username

        练习:将/etc/fatab文件的内容发送给hadoop用户。

        wKiom1eZfDLDhxSsAAC5UQIT1MU133.png

        练习:使用输入重定向,将/etc/fstab文件的内容发送给redhat用户

        wKiom1eZfOSjAkZTAAC2vQ2hdUc959.png


    八,hostname命令

        功能:显示当前主机的主机名(实时显示)

        也可以利用echo $HOSTNAME实现显示主机名的功能。只不过不是实时显示

        ->$HOSTNAME为Linux操作系统上的一个环境变量,用于保存当前主机的主机名,保存的是当前登录系统用户的主机名。

        

        可以利用hostname命令更改主机名:

            格式->hostname 主机名


        练习:用命令实现

        1,如果当前主机的主机名不是www.magedu.com,就把它改成www.magedu.com

            wKioL1eZoGTg_shaAAAXZ0LXPwc285.png 

        2,如果当前主机的主机名是localhost,就把它改为www.magedu.com

            wKioL1eZoPuQ1N3jAAAa8wloeAE253.png  

        3,如果当前主机的主机名为空或者为(none)或者为localhost,就把它改为www.magedu.com

            wKiom1eZojLCP2TSAAAl2D8H6yE185.png            上图中的-z指的是字符测试中的一个选项,功能是测试一个字符串是否为空


    九,生成随机数

        $RANDOM是我们系统上的一个环境变量,里面保存着0-32768之间的随机数。

        ->是由软件模拟生成的一个我们系统上的随机数生成器,只能用作测试使用,而不能用作软件加密使用。

    

        我们Linux系统上有两类随机数生成器

        它们是两个设备,只不过是由软件模拟产生的

        在说随机数生成器之前,让我们先来说一说我们系统上的随机数是如何产生的

        ->我们的系统在维护上有一个熵池,随时保留当前系统上的随机数,随机数其实就是我们手指敲击键盘的时间间隔,对服务器而言,由于服务没有连接键盘,它会把某些硬件的中断请求的时间间隔当做随机数存储在熵池中,当我们需要用到随机数的时候,系统会自动到熵池中去取,随机数是直接被取走了,而不是复制的,所以随机数不会有重复,而且熵池也有可能被取空,此时我们可以通过频繁的敲击键盘来继续产生随机数供我们使用。

    

        接下来我们再来说说我们系统上的两类随机数产生器->

        1,/dev/random

        2,/dev/urandom

        random和urandom默认都在熵池中取随机数,如果熵池被取空,random会自动阻塞,等待你填充随机数,但是urandom会通过软件模拟的方式再次生成随机数,从而不会阻塞用户的进程,所以说urandom更好用,但是random更安全。

        

        练习:写一个脚本,要求

        利用RANDOM生成10个随机数,并找出其中的最大值和最小值。

        脚本内容:

        wKiom1eZqQbBUrpHAABnTGkmxdA993.png

        我们脚本内容的8行之所以要这么做的原因是$RANDOM中生成的随机数最小为0,所以不可能有比0还小的数出现,这样做的目的是提前给MIN一个值,否则,我们无法得到最小值,MIN永远都会是0,echo -n的意思是不换行输出。

        脚本执行结果:

        wKioL1eZqRTSw3RMAAAmm9wvPnE879.png


        

            

    

        


        

            


本文出自 “菜鸟的技术文档” 博客,请务必保留此出处http://zhubo.blog.51cto.com/11395641/1831214

0 0