00. 目录
01. 命令概述
w - 显示已经登录的用户以及他们在做什么
w命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
02. 命令格式
w - [husfV] [user]
- 1
03. 常用选项
-h:不打印头信息;
-u:当显示当前进程和cpu时间时忽略用户名;
-s:使用短输出格式;
-f:显示用户从哪登录;
-V:显示版本信息。
- 1
- 2
- 3
- 4
- 5
04. 参考示例
4.1 显示已经登陆系统的用户列表,并显示用户正在执行的指令
[deng@itcast ~]$ w
21:54:58 up 2 days, 2:31, 4 users, load average: 0.00, 0.06, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
deng :0 :0 177月19 ?xdm? 3:46m 3.04s /usr/libexec/g
deng pts/0 :0 一19 6:10 0.42s 0.42s bash
deng pts/1 172.16.0.51 21:49 1:54 0.09s 0.00s less -s
deng pts/2 172.16.0.51 21:54 2.00s 0.05s 0.00s w
[deng@itcast ~]$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
输出解释:
w 显示系统中当前用户的 信息, 以及他们的进程. 第一行中依次显示当前时间, 系统的持续运行时间, 登录的用户数, 和最近 1, 5, 15分钟 的系统平均负载 (load average).
接下来 的条目显示每位用户的: 登录名, tty名, 远程主机, 登录时间,空闲时间, JCPU, PCPU, 以及他们当前进程的命令行.
JCPU 时间 指 某个 tty 上 所有 进程 用掉的 时间, 不包括 过去的
后台任务, 但是 包括 正在 运行 的 后台任务.
PCPU 时间 指 当前进程 用掉的 时间, 可以 在 “what” 域 看到 当前进程.
4.2 不打印头信息
[deng@itcast ~]$ w -h
deng :0 :0 177月19 ?xdm? 3:46m 3.04s /usr/libexec/g
deng pts/0 :0 一19 11:12 0.42s 0.42s bash
deng pts/1 172.16.0.51 21:49 6:56 0.09s 0.00s less -s
deng pts/2 172.16.0.51 21:54 0.00s 0.06s 0.00s w -h
[deng@itcast ~]$
- 1
- 2
- 3
- 4
- 5
- 6
4.3 使用短输出格式
[deng@itcast ~]$ w -s
22:01:16 up 2 days, 2:37, 4 users, load average: 0.02, 0.03, 0.05
USER TTY FROM IDLE WHAT
deng :0 :0 ?xdm? /usr/libexec/gnome-session-binary
deng pts/0 :0 12:28 bash
deng pts/1 172.16.0.51 8:12 less -s
deng pts/2 172.16.0.51 4.00s w -s
[deng@itcast ~]$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
4.4 显示用户从哪登录
[deng@itcast ~]$ w -f
22:01:46 up 2 days, 2:37, 4 users, load average: 0.01, 0.03, 0.05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
deng :0 177月19 ?xdm? 3:46m 3.04s /usr/libexec/gnome-session-bin
deng pts/0 一19 12:58 0.42s 0.42s bash
deng pts/1 21:49 8:42 0.09s 0.00s less -s
deng pts/2 21:54 2.00s 0.06s 0.00s w -f
[deng@itcast ~]$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
4.5 当显示当前进程和cpu时间时忽略用户名,主要用于执行su命令后的情况
[deng@itcast ~]$ w -u root
22:06:31 up 2 days, 2:42, 4 users, load average: 0.00, 0.02, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
[deng@itcast ~]$
- 1
- 2
- 3
- 4
05. 附录
事件(Event
)是一种任务间通信的机制,可用于任务间的同步。多任务环境下,任务之间往往需要同步操作,一个等待即是一个同步。事件可以提供一对多、多对多的同步操作。本文通过分析鸿蒙轻内核事件模块的源码,深入掌握事件的使用。本文中所涉及的源码,以OpenHarmony LiteOS-M
内核为例,均可以在开源站点https://gitee.com/openharmony/kernel_liteos_m 获取。
接下来,我们看下事件的结构体,事件初始化,事件常用操作的源代码。
1、事件结构体定义和常用宏定义
1.1 事件结构体定义
在文件kernel\include\los_event.h
定义的事件控制块结构体为EVENT_CB_S
,结构体源代码如下,结构体成员的解释见注释部分。
typedef struct tagEvent {
UINT32 uwEventID; /**< 事件ID,每一位标识一种事件类型 */
LOS_DL_LIST stEventList; /**< 读取事件的任务链表 */
} EVENT_CB_S, *PEVENT_CB_S;
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
评论记录:
回复评论: