本文最后更新于 5 年前,文中所描述的信息可能已发生改变。
w和who命令
w可以知道目前已经登录的用户信息,还能看到每个用户的进程任务。
shell
$ w [选项] [用户名]选项:
-h不显示信息的标题-l详细显示信息-s简洁显示信息(不显示登录时间、JCPU和PCPU时间)
例如:
shell
ubuntu@ubuntu:~$ w
17:38:52 up 2 days, 19:00, 1 user, load average: 0.26, 0.28, 0.25
USER TTY FROM LOGIN@ 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命令只显示当前登录的用户信息,并不能看到其他用户正在运行的命令。
shell
$ 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("")命令。
官方的说法的将命令行的参数显示到标准输出中(屏幕)
shell
$ echo [选项] [内容]选项:
-e支持反斜线控制的字符转换-n取消输出行末的换行(输出内容后不换行)
例如:
shell
$ echo "hello world"
hello world
$shell
$ echo -n "hello world"
hello world$-e选项的控制符以及含义:
| 控制字符 | 含义 |
|---|---|
| \\ | 输入反斜线 \ |
| \a | 发出警告声 |
| \b | 退格键,相当于左删除键<kbd>backspace</kbd> |
| \c | 取消行末换行,与 -n选项相同 |
| \e | <kbd>ESC</kbd>键 |
| \f | 换页符 |
| \n | 换行符 |
| \r | <kbd>Enter</kbd>键 |
| \t | 制表符,<kbd>Tab</kbd>键 |
| \v | 垂直制表符 |
| \0nnn | 按照八进制ASCII码表输出字符,0为数字零,nnn为3位八进制数 |
| \xhh | 按照十六进制ASCII码表输出字符,hh为两位十六进制数 |
例如:
shell
$ echo -e "\\ \a"
\输出反斜线之后系统发出一次警告声。
date命令
顾名思义,用来查看和修改时间的命令
shell
$ date [选项] [时间]选项 -s用来修改当前时间,主要需要root权限才能修改。普通用户只能查看。
shell
$ date
Sun Mar 21 18:44:28 CST 2021修改当前日期:
shell
$ sudo date -s yyyy-mm-dd将日期修改为 yyyy-mm-dd,如 2021-03-21。如果只修改日期,那么时间会重新归零 00:00:00。
sudo为提权命令。
修改当前时间与日期:
shell
$ sudo date -s "hh:mm:ss yyyy-mm-dd"时间格式为 hh:mm:ss,使用24小时计时法,如:13:45:04对应13点45分4秒。
passwd命令
用来设置密码的命令
shell
$ passwd [选项] 用户名普通用户只能修改自己的密码,root可以修改所有用户的密码。
如,通过root用户修改 user的用户的密码:
root@ubuntu:~# passwd ubuntu
New password:
Retype new password:
passwd: password updated successfully普通用户在没有root权限时只能修改自己的密码:
shell
$ passwd如果不携带选项和用户名,那么命令就默认修改当前用户的密码。
- 注意,普通用户修改自己的密码需要输入自己原(旧)密码,而root用户修改不需要旧密码。


