首页 > 代码库 > Linux中的登录、登出、关机、重启命令

Linux中的登录、登出、关机、重启命令


1.1     login:用户登录系统                                                                                                                                

         功能描述:

         使用login命令可以允许用户登录系统,如果没有参数,登录时提示输入用户密码。如果该用户不是root,且/etc/nologin文件存在,则不允许登录,改文件的内容会被现实在终端上。(su –命令在执行的时候,就要创建一个login进程,用于切换用户)

         命令语法

         Login[参数] [用户名]                                           

 

选项列表1.1

参数

解释

-h

使用其他服务器传递远程主机名称来登录,这样他可以被放置在utmp和wtmp中

-p

登录不破坏环境

-f

用来跳过第二次登录身份验证

 

         例1.1用户登录

    [root @rhel ~]# login

 

 

 

1.2     logout:   退出登录shell                                                        

         功能描述:

         使用logout命令可以使当前操作用户退出登录shell,当是多层shell嵌套时,一层一层的退出,如果是图形界面下在终端中输入命令的话,不断执行logout到打开终端的初始状态就会提示已经没有登录的shell了 。它的作用原理就是在切换用户的时候会产生一个登录shell,直到这个用户退出的时候这个登录shell就会关闭,所以logout的作用就是退出登录的shell!

         命令语法

         logout                                           

 

         例1-2-1 root退出当前shell

    [user1@bogon~]$ su -

    Password:

    [root@bogon~]# logout

    [user1@bogon~]$

 

         例1-2-2 user2退出当前shell(这样是存在安全隐患的,user2不知不觉的就以user1的身份进入系统了,这很危险。所以用户不用时要及时退出登录!但是实际上这种情况很少!)

    [user1@bogon~]$ su - user2

    Password:

    Lastlogin: Sat Mar 25 23:40:46 EDT 2017 on pts/1

    [user2@bogon~]$ logout

    [user1@bogon~]$

 

 

1.3     exit:   退出shell                                                                   

         功能描述:

         使用exitt命令可以使当前登录的所有用户都退出shell,当是多层shell嵌套时,exit和logout一样是一层一层退出嵌套shell,如果是图形界面上打开终端的话,执行exit后就关闭了终端。意思就是说打开终端的时候,会调用一个shell来让当前登录的用户显示,这个shell不是登录shell,注意和logout的区别!

         命令语法

         exit[参数]                                           

 

         功能描述:

         使用logout命令可以使当前操作用户退出登录shell,当是多层shell嵌套时,一层一层的退出,当退出到最后一层时,再次logout就会提示已经没有登录的shell了 。他只是退出

Shell,并不退出登录!

         命令语法

         logout [参数]  [用户名]                                           

 

         例1-3-1 root退出当前shell

    [user1@localhost~]$ su -

    Password:

    Lastlogin: Sun Mar 26 22:46:12 EDT 2017 on pts/0

    [root@localhost~]# exit

    logout

    [user1@localhost~]$

 

         例1-3-2 图形界面下user1用户打开终端后,退出打开的终端shell后回到图形界面

    [user1@localhost~]$ exit

    [user1@bogon~]$

 

        

 

补充:shell、控制台、终端的区别                                                   

名称

解释

 

控制台

 

 

显示系统消息的终端就叫控制台,Linux默认所有虚拟终端都是控制台,都能显示系统消息。

 

终端

 

分为物理终端(键盘鼠标等)和虚拟终端(程序),下面说的终端都是指的虚拟终端。一般地,Linux发行版提供7个虚拟屏幕,1~6号是控制台终端,第7个上面跑X-Window。红旗Linux桌面4.0只提供了2个控制 台终端,第3个跑X-Window,如果需要更多控制台终端,可以修改“/etc/inittab”,找“# Run gettys in standard runlevels”一行,下面以数字和“#”开头的6行都是控制台终端说明。以“#”开头的行在大多数配置文件里表示注释,即该行不生效。把那几个 “#”去掉,重新启动后即可获得全部6个控制台终端。

 

Shell

 

Shell就是操作系统内核和用户之间的一个接口,它主要是接受用户的命令,解释用户的命令然后传给内核操作。比如在命令行中执行命令,就要产生shell来解释执行的命令!shell就类似于window下的dos,但是它比dos更强大,可以支持脚本程序!



1.4     nologin:不予许用户登录                                                       

         功能描述:

         使用nologin命令可以限制用户通过shell的登录系统。如果/etc/nologin文件存在,显示其内容给用户,而不是默认的消息。如果尝试以这类用户登录,就在log里添加记录,然后在终端输出This account is currentlynot available信息。一般设置这样的帐号是给启动服务的账号所用的,这只是让服务启动起来,但是不能登录系统。

         命令语法

         nologin                                           

 

         使用的地方在启动服务时居多,这就得说说虚拟用户了。

         虚拟用户:就是进程,这些用户是虚拟的不可以登录:(以nologin结尾的)

 

    例1-4-1 查看/etc/passwd文件中以nologin结尾的虚拟用户(就是服务)

    [root@localhost/]# grep "nologin$" /etc/passwd

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    adm:x:3:4:adm:/var/adm:/sbin/nologin

    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

 

    从上例看出有很多的虚拟用户,bin、daemon、adm等,他们都是以nologin结束的,表示的都是不可以通过shell登录的用户,只是作为服务启动的发起者!接下来启动Apache服务,首先是root用户权限,接着为了安全起见,下面的服务都用虚拟用户Apache来启动

 

         例1-4-2 启动Apache服务

    [root@localhost/]# systemctl start httpd

    [root@localhost/]# ps -ef | grep http

    root      24872     1  1 12:36 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND

    apache    24877 24872  0 12:36 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND

    apache    24878 24872  0 12:36 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND

    apache    24879 24872  0 12:36 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND

    apache    24880 24872  0 12:36 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND

    apache    24882 24872  0 12:36 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND

    root      24887  3466  0 12:36 pts/0    00:00:00 grep --color=auto http

 

        

 

1.5     sulogin:单用户登录                                                              

         功能描述:

         使用sulogin命令可以进行单用户(root)登录,在启动时shell将不会读取/etc/profile文件或$HOME/.profile文件,这和init 1 的作用是相似的

         命令语法

         sulogin [options] [tty]                                          

        

         选项列表1.5

参数

解释

-e

如果默认的方法获得root密码失败,手动检查/ etc / passwd和/etc/shadow获取密码。如果他们被损坏或不存在,sulogin开始一个不要求一个密码的root shell

-p

单用户shell调用一个破折号来代表参数中的第一个参数

-t

指定的最大的时间等待用户输入。默认情况下,sulogin永远等待。

 

    例1-5-1查看user1是否可以使用sulogin

    [user1@localhost~]$ sulogin

    sulogin:only root can run this program.

 

 

 

        

 

1.6     poweroff:关闭系统                                                              

         功能描述:

         使用poweroff命令可以关闭Linux系统,关闭记录会被写入/var/log/wtmp(一个二进制文件,记录每个用户的登录次数和持续时间等信息)日志文件中

         命令语法

         poweroff  [option]

        

         选项列表1.5

参数

解释

-p

如果默认的方法获得root密码失败,手动检查/ etc / passwd和/etc/shadow获取密码。如果他们被损坏或不存在,sulogin开始一个不要求一个密码的root shell

-f

强制关机,不调用shutdown,就和直接按电源键关机一样!

-w

并不关闭系统,只是将关机日志写入/var/log/wtmp文件中

-d

关闭系统,但是不将关机日志写入/var/log/wtmp文件中

 

    例1-6-1 查看/var/log/wtmp文件内容(last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录)

    [root@localhost~]# last

    user1    pts/0       :0               Mon Mar 2707:26   still logged in  

    user1    pts/0       :0               Mon Mar 27 00:19- 00:20  (00:00)   

    user1    pts/0       :0               Sun Mar 26 22:47- 00:19  (01:31)   

    user1    pts/0       :0               Sun Mar 26 22:16- 22:46  (00:29)   

    user1    pts/0       :0               Sun Mar 26 00:16- 22:16  (22:00)   

    user1    pts/0       :0               Sat Mar 25 23:49 - 00:15  (00:25)   

    root     pts/1        192.168.1.104    Sat Mar 25 23:42 - 07:28 (1+07:46)  

             …… 

 

 

 

 

1.7     shutdown:关机或重启系统                                                   

         功能描述:

         使用shutdown命令可以安全的关闭或重启Linux系统。在关机前使用此命令,系统会给在线的每个用户发送即将关机的提示,并且login进程会被冻结,不再允许新的用户登录。根据参数来进行相应的定时关机或重启操作。

 

         命令语法

         sulogin [options] [tty]                                          

        

         选项列表1.7

参数

解释

-k

不关机,只是发送警告信息给所有用户,用于维护系统时候

-r

重启系统

-h

关闭系统

-c

取消运行的shutdown命令

 

    例1-7-1 立即关闭系统

    [root@localhost~]# shutdown -h now

 

    例1-7-2 立即关闭系统并发出警告

    [root@localhost~]# shutdown -h now  “system willshutdown now”

 

    例1-7-3 定时28分钟后关闭系统

    [root@localhost~]# shutdown -h +28

    Shutdownscheduled for Mon 2017-03-27 09:09:14 EDT, use ‘shutdown -c‘ to cancel.

    [root@localhost~]# shutdown -c

    Broadcastmessage from root@localhost.localdomain (Mon 2017-03-27 08:41:23 EDT):

    Thesystem shutdown has been cancelled at Mon 2017-03-27 08:42:23 EDT!

    [root@localhost~]#

 

    例1-7-4 定时在20:44关闭系统

    [root@localhost~]# shutdown -h 20:50

    Shutdownscheduled for Mon 2017-03-27 20:50:00 EDT, use ‘shutdown -c‘ to cancel.

 

 

        

1.8     halt:关闭系统                                                                       

         功能描述:

         使用halt命令可以关闭Linux系统,关闭记录会被写入/var/log/wtmp(一个二进制文件,记录每个用户的登录次数和持续时间等信息)日志文件中

         命令语法

         halt  [option]

        

         选项列表1.5

参数

解释

-i

关掉系统前关闭所有的网络接口

-f

强制关机,不调用shutdown,就和直接按电源键关机一样!

-w

并不关闭系统,只是将关机日志写入/var/log/wtmp文件中

-d

关闭系统,但是不将关机日志写入/var/log/wtmp文件中

 

 1.9     reboot:重启系统                                                                 

      功能描述:

         使用reboot命令可以重启Linux系统,关闭记录会被写入/var/log/wtmp(一个二进制文件,记录每个用户的登录次数和持续时间等信息)日志文件中

         命令语法

         reboot  [option]

        

         选项列表1.5

参数

解释

-i

关掉系统前关闭所有的网络接口

-f

强制关机,不调用shutdown,就和直接按电源键关机一样!

-w

并不关闭系统,只是将关机日志写入/var/log/wtmp文件中

-d

关闭系统,但是不将关机日志写入/var/log/wtmp文件中

 

 

 

补充:poweoff、shutdown、halt、int0区别                               

          shutdown实际上是调用init 0,init 0会cleanup一些工作然后调用halt或者poweroff。其实主要区别是halt和poweroff,做没有acpi的系统上(Windows2000之前的系统),halt只是关闭了系统,电源还在工作,你得手动取按电源键才能彻底关机,而poweroff会发送一个关闭电源的信号给acpi。在现在的系统上这几个命令除了个别参数不一样外,作用都是一样的了,都是/bin/systemctl文件的链接文件,见下例

    例 补充-1

    [root@localhost~]# ll /sbin/ | grep "systemctl$"

    lrwxrwxrwx.1 root root          16 Mar 11 04:41 halt-> ../bin/systemctl

    lrwxrwxrwx.1 root root          16 Mar 11 04:41 poweroff ->../bin/systemctl

    lrwxrwxrwx.1 root root          16 Mar 11 04:41reboot -> ../bin/systemctl

    lrwxrwxrwx.1 root root          16 Mar 11 04:41runlevel -> ../bin/systemctl

    lrwxrwxrwx.1 root root          16 Mar 11 04:41 shutdown-> ../bin/systemctl

    lrwxrwxrwx.1 root root          16 Mar 11 04:41telinit -> ../bin/systemctl

 

参考文献:

[1]    於岳.    Linux命令应用大词典.    北京:         人民邮电出版社,2015.



 


本文出自 “11929788” 博客,请务必保留此出处http://11939788.blog.51cto.com/11929788/1910924

Linux中的登录、登出、关机、重启命令