w和who命令

  • w可以知道目前已经登录的用户信息,还能看到每个用户的进程任务。
$ w [选项] [用户名]

选项:

  • -h不显示信息的标题

  • -l详细显示信息

  • -s简洁显示信息(不显示登录时间、JCPU和PCPU时间)

例如:

[email protected]:~$ w
 17:38:52 up 2 days, 19:00,  1 user,  load average: 0.26, 0.28, 0.25
USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT
ubuntu   pts/0    192.168.2.1      17:38    4.00s  0.24s  0.02s w

在显示的信息中:

  • 第一行显示了系统时间、从启动到现在已经运行的时间、登录到系统的用户数和负载情况。
  • 第二行是用户信息的标题。
  • 第三行代表用户及其信息。

标题含义如下:

标题 含义
USER 登录的用户
TTY 登录的终端
FROM 用户登录的入口,远程登录的一般显示IP地址和主机名
LOGIN 用户登录的日期、时间
IDLE 某程序从上次在终端运行时到现在的时间
JCPU 终端连接的所有进程占用CPU运算的时间(不包括以前的后台运行时间,包括当前正在运行的后台运行时间)
PCPU 当前进程占用CPU运算的时间
WHAT 当前用户正在运行的程序名称和选项(也相当于命令)
  • who命令只显示当前登录的用户信息,并不能看到其他用户正在运行的命令。
$ who [选项] [file]
  • who命令是通过/var/run/utmp文件来获取用户信息,如果给予who命令一个file文件,那么就只读取命令中给予的文件。

常用的选项命令以及含义:

选项 含义
-a 显示所有信息
-b 显示系统最近启动时间
-l 显示所有可以登录的终端信息
-m 列出当前终端的信息(who -m等于who am i
-q 显示本地用户和用户数清单
-r 显示当前系统运行级别
-s 仅显示名称、线路等时间信息,选项为默认选项,等同于单独运行who
-u 显示当前每个用户的用户名、登录终端、登录时间、活动线路和进程标识

echo命令

这是一个打印命令,可以在命令行中显示各种各样的内容,对我来说相当于C语言里的printf("")命令。

官方的说法的将命令行的参数显示到标准输出中(屏幕)

$ echo [选项] [内容]

选项:

  • -e支持反斜线控制的字符转换
  • -n取消输出行末的换行(输出内容后不换行)

例如:

$ echo "hello world"
hello world
$
$ echo -n "hello world"
hello world$

-e选项的控制符以及含义:

控制字符 含义
\\ 输入反斜线\
\a 发出警告声
\b 退格键,相当于左删除键backspace
\c 取消行末换行,与-n选项相同
\e ESC
\f 换页符
\n 换行符
\r Enter
\t 制表符,Tab
\v 垂直制表符
\0nnn 按照八进制ASCII码表输出字符,0为数字零,nnn为3位八进制数
\xhh 按照十六进制ASCII码表输出字符,hh为两位十六进制数

例如:

$ echo -e "\\ \a"
\

输出反斜线之后系统发出一次警告声。

date命令

顾名思义,用来查看和修改时间的命令

$ date [选项] [时间]

选项-s用来修改当前时间,主要需要root权限才能修改。普通用户只能查看。

$ date
Sun Mar 21 18:44:28 CST 2021

修改当前日期:

$ sudo date -s yyyy-mm-dd

将日期修改为yyyy-mm-dd,如2021-03-21。如果只修改日期,那么时间会重新归零00:00:00

sudo为提权命令。

修改当前时间与日期:

$ sudo date -s "hh:mm:ss yyyy-mm-dd"

时间格式为hh:mm:ss,使用24小时计时法,如:13:45:04对应13点45分4秒。

passwd命令

用来设置密码的命令

$ passwd [选项] 用户名

普通用户只能修改自己的密码,root可以修改所有用户的密码。

如,通过root用户修改user的用户的密码:

[email protected]:~# passwd ubuntu
New password: 
Retype new password: 
passwd: password updated successfully

普通用户在没有root权限时只能修改自己的密码:

$ passwd

如果不携带选项和用户名,那么命令就默认修改当前用户的密码。

  • 注意,普通用户修改自己的密码需要输入自己原(旧)密码,而root用户修改不需要旧密码。