跳到主要内容

10、Linux 教程:用户通信、登录、限制

用户通信、登录、限制

写write和广播wall

write命令:可以给用户发信息,后加用户名,按回车提示输入要发送的消息,按ctrl+d保存结束。必须是两者都处于登录状态信息才会成功发送,接受者会立即中断工作接受消息。在信息的编辑状态用ctrl+退格键才能删除已经输入的消息。

mesg命令有两种,执行mesg n命令后,可以拒绝接受除了root外所有信息,执行mesg y后复原。

wall(write all)给所有用户发信息。wall后直接加要发的信息就可以发送出去,此时包括发送者在内的所有人都会收到信息,还会显示发消息的用户名和发消息的时间。

 

邮件mail

mail可以完成用户之间的通信,且无需双方同时在线,mail命令可以给用户发邮件,其后加用户名,回车就可以输入内容。建立一个标题为hello的邮件,发送给vbird用户:

mail -s "hello" vbird
输入内容
.

最后一行要以小数点结束。

查看邮件也用mail,执行后可以看到有未读邮件,输入未读邮件的标号再回车就能查看对应邮件。

登录记录查询last、lastlog

last可以查看计算机登录、重启的历史记录:

 

lastlog会查看每个用户最后一次登录的时间。-u加用户的uid就能查看对应用户最后一次登录的信息。

关机、退出登录及系统运行级别

shutdown关机或重启,-h代表关机,-r代表重启,选项后还可以加时间,如果是now就代表立即,还可以加20:30表示定时执行任务。-c可以取消前一个关机命令,单纯执行shutdown后系统会在一分钟后关机。shutdown还可以显示一些提示信息:

 

 

 

init后的数字代表运行级别:

 

init 0代表关机命令,但是它不会保存正在运行的服务,并不安全。init 6代表重启。

可以执行runlevel命令查看当前运行等级,运行结果有两个数,一个代表之前的运行级别,一个代表目前的级别。

单用户意味着root登录系统以最小资源运行,不加载附加程序,被用来做修复,类似于windows中的安全模式。计算机的系统运行级别默认是3,这个设置在配置文件/etc/inittab中。runlevel可以查询当前运行级别。在CentOS7中已经没有运行级别的概念,但是还是可以通过init命令来关机或者重启。

关机和重启本质上都是在调用systemctl指令,它管理系统所有的服务:

systemctl reboot代表重启,systemctl poweroff代表关机。

logout退出登录命令。为保证安全做完操作一定要退出登录。

踢出用户

pkill命令和killall类似:pkill [选项] [信号] 进程名,选项有-t后加终端号,可以按照终端号踢出用户。首先执行w命令查看正在登录用户的终端号:

 

然后执行命令:pkill -t -9 pts/1

限制用户资源ulimit

当登入用户很多,每个用户开启的文件也很多时,此时容易发生内存不够用的情况,这时就需要限制每个用户可用的资源。

限制用户仅能建立10MB以下的文件:ulimit -f 10240

查看当前限制数据:ulimit -a,其中filesize是用户可以建立单一文件的大小、openfiles是用户可同时开启的文件数量,还有很多其他限制。

服务器登录状态查询who、w、uptime

who可以查看有谁登录,执行who后:

 

发现root用户正在登录,且登录了2次,一次是本地登录(在虚拟机中),tty表示本地登录,pts表示远程登录,数字代表终端号,表示不同终端,还可以看到登录时间、登录主机的IP地址。

w和who类似,结果比who更详细:

 

第一行依次是当前系统时间、系统连续运行时间、登录人数、近1分钟、5分钟、15分钟系统负载情况。第二行依次是登录用户,登录方式,IP地址、登录时间、该命令占用的CPU时间、累计占用的CPU时间、上一个执行了什么命令。

uptime执行结果和w首行一样。