文中 `-->` 为开头的为命令行的输出.

涉及到的命令有,date,clock,hwclock,cal,ls,cd,pwd,tty,whereis,which,stat,echo,shutdown,halt,reboot,poweroff,who,w,whoami


## date

date - print or set the system date and time

#SYNOPSIS
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
#OPTION
#-d DATESTR, --date=DATESTR 显示时间描述的字符串,而不是“现在”
 $ date -d "2015-05-04"
 --> Mon May  4 00:00:00 CST 2015
 $ date --date="2015-05-04"
 --> Mon May  4 00:00:00 CST 2015
 $ date -d "2 days ago"
 --> Wed Aug 19 21:09:18 CST 2015
#-s DATESTR, --set=DATESTR 设置时间描述的字符串
 $ date -s "2015-05-04"
 $ date --set="2015-05-04"
 $ date -s "2 days ago"
#-u, --utc, --universal 输出或者设置协调的通用时间
 $ date -u
 --> Fri Aug 21 13:09:38 UTC 2015
 $ date --utc
 $ date --universal
#FORMAT
# '%a' //简短的星期名
$ date '+%a' // Sun
# '%A' 星期的全称
$ date '+%A' // Sunday
# '%b' 月份的简称
$ date '+%b' // Jan
# '%B' 月份的全称
$ date '+%B' // January
# '%c' 显示时间和日期
$ date '+%c' // Thu 20 Aug 2015 11:43:39 PM CST
# '%C' 显示世纪,像%Y省略了后两位数字
$ date '+%C' // 20
# '%d' 每月的第几天(
$ date '+%d' // 20
# '%D' 显示日期,想'%m/%d/%y'
$ date '+%d' // 08/20/15
# '%e' 月份中的天数,用空格填充
$ date '+%e' // ' 5'
# '%F' 年月日,像%Y-%m-%d
$ date '+%F' // 2015-08-20
# '%g' 年份的后两位
$ date '+%g' // 15
# '%G' 使用基于周的年
$ date '+%G' // 2015
# '%h' 参考 %b
# '%H' 24小时制(0..23)
$ date '+%G' // 23
# '%I' 12小时制(1..12)
$ date '+%I' // 12
# '%j' 一年中的天数(001..366)
$ date '+%j' // 233
# '%k' 参考%H
# '%l' 参考%I
# '%m' 显示月份(01..12)
$ date '+%m' // 08
# '%M' 显示分钟数(00-59)
$ date '+%M' // 04
# '%n' 换行
# '%N' 纳秒(000000000..999999999)
$ date '+%N' // 236423051
# '%p' AM或PM
$ date '+p' // PM
# '%P' am或pm(小写)
$ date '+p' // pm
# '%r' 时间(含时分秒,小时以12小时AM/PM来表示)
$ date '+r' // 09:21:53 PM
# '%R' 24小时加上分解,想%H:%M
$ date '+R' // 21:23
# '%s' 从1970-01-01 00:00:00 UTC开始的秒数
$ date '+s' // 1440163456
# '%S' 显示秒数(0-60)
$ date '+S' // 31
# '%T' 时间 像 %H:%M:%S
$ date '+T' // 21:26:28
# '%u' 星期(1-7),1代表星期一
$ date '+u' // 5
# '%U' 一年中的周数(01-53)
$ date '+U' // 33
# '%w' 一周的星期几(0-6)0是星期日
$ date '+w' // 5
# '%x' 按本地日期格式显示
$ date '+x' // 08/23/2015
# '%X' 按本地时间格式显示
$ date '+X' // 12:03:05 AM
# '%y' 显示年份的后两位
$ date '+y' // 15
# '%Y' 四位数的年份
$ date '+Y' // 2015


## hwclock&clock

hwclock - query and set the hardware clock (RTC) 查询或设置硬件时间


## SYNOPSIS
hwclock [functions] [options]
## functions
## -r,--show 阅读硬件时钟和在标准输出打印时间。显示的时间总是在当地时间.
$ hwclock -r
--> Fri 21 Aug 2015 09:51:06 PM CST  -0.378045 seconds
$ hwclock --show
--> Fri 21 Aug 2015 09:51:55 PM CST  -0.329897 seconds
## --set 用给定的时间(--date 选项)设置硬件时间
$ hwclock --set --date='2015-08-21' // 修改后的时间
--> Fri 21 Aug 2015 12:00:09 AM CST  -1.036660 seconds
$ hwclock --set --date='-4 days' // 修改后的时间
--> Wed 19 Aug 2015 12:24:32 AM CST  -0.469782 seconds
## -s, --hctosys 将系统时钟调整为与目前的硬件时钟一致, htc override sys
$ hwclock -s
--> Wed Aug 19 00:28:23 CST 2015
$ hwclock --hctosys
--> Wed Aug 19 00:28:23 CST 2015
## -w, --systohc 将系统时钟写入硬件时钟 sys to hc
$ hwclock -w
--> Thu 20 Aug 2015 12:00:19 AM CST  -0.298877 seconds
$ hwclock --systohc
--> Fri 21 Aug 2015 10:03:10 PM CST  -1.235380 seconds
## --adjust hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中,
## 可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟.
## options
//待补充

## cal

cal - 显示日历

## SYNOPSIS
cal [-smjy13] [[[day] month] year]
## cal 如果没有指定参数,则显示当前月份.
$ cal
## -l 显示一个月的日历,这是默认的选项.
$ cal -l
## -3 显示上月/当月/下月的日历.
$ cal -3
## -s 显示星期日为一个星期的第一天.
$ cal -s
## -m 显示星期一为一个星期的第一天.
$ cal -m
## -j  显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
$ cal -j
## -y 显示当年的日历
$ cal -y



## ls

显示目录中的内容,默认显示当前目录,并安装字母顺序排列

## SYNOPSIS
ls [OPTION]... [FILE]...
## -a, --all 列出目录下的所有文件,包括以 . 开头的隐含文件
$ ls -a
--> .  ..  .esd-0  .ICE-unix
## -A, --almost-all 列出目录下的所有文件,但不包括(.当前目录)(..父目录)
$ ls -a
--> .esd-a .ICE-unix
## --author 与-l参数一起使用,显示作者.
$ ls -l --author
--> drwx------. 2 gdm  gdm  gdm   4096 Aug 21 21:06 orbit-gdm
## -b, --escape 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。
$ ls -b
## --block-size=SIZE =1K,以 k 字节的形式表示文件的大小。
$ ls --block-size=1M
--> dr-xr-xr-x.   2 root root 36(k) Aug 21 05:41 bin
## -B, --ignore-backups 忽略以~结尾的备份目录
$ ls
--> bak~  lcyan.root.history-timestamp  orbit-gdm
$ ls -B
--> lcyan.root.history-timestamp  orbit-gdm
## -c 配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间)配合
## -c -l:显示 ctime 但根据名称排序否则:根据 ctime 排序
$ ls -lt -c
$ ls -l -c
## –color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是'never'、'always'或'auto'其中之一
$ ls --color=auto
## -d, --directory显示指定的目录,不要解除引用的符号连接.
$ ls -d /tmp
--> /tmp
$ ls --directory /tmp
--> /tmp
## -f 对结果不排序, 激活 -aU, 禁止 -ls --color
$ ls -f
## -F, --classify 在每个文件后面加上指示符号
$ ls -F
--> bak~/  lcyan.root.history-timestamp  orbit-gdm/
## --file-type 同-F,除了不添加' *'
## --format=WORD
## --full-time 参考-l
$ ls --full-time
--> drwx------. 2 gdm  gdm   4096 2015-08-21 21:06:13.856371827 +0800 orbit-gdm
## -g参考-l, 不常用.
## -h, --human-readable 人类可读的.配合-l使用
$ ls -lh
## --si 用1000作为换算单位,而不是1024
$ ls --si
--> drwxr-xr-x. 2 root root 4.1k Aug 21 23:26 bak~
## -H, --dereference-command-line 使用命令列中的符号链接指示的真正目的地
$ ls -H
--> traceroute6 -> traceroute 显示为 traceroute
## --hide=PATTERN 不列出匹配到正则表达式的文件
$ ls -l --hide=*.log
--> 不显示后缀为.log的文件
## -i,--inode 显示文件的inode号
$ ls -i
--> 266215 drwx------. 2 gdm  gdm   4096 Aug 22 07:44 orbit-gdm
$ ls --inode
--> 266215 drwx------. 2 gdm  gdm   4096 Aug 22 07:44 orbit-gdm
## -I, --ignore=PATTERN 参考 --hide
## -k 参考 --block-size=1K
$ ls -lk
--> drwx------. 2 gdm  gdm   4[此处单位为K] Aug 22 07:44 orbit-gdm
## -l 显示为长列表格式
$ ls -l
--> drwx------. 2 gdm  gdm   4096 Aug 22 07:44 orbit-gdm
## -L, --dereference 符号链接显示为链接的引用,而不是链接本身
$ ls -l
--> lrwxrwxrwx. 1 root root     9 Aug 22 08:11 echo -> /bin/echo
$ ls -lL
--> -rwxr-xr-x. 1 root root 28176 Oct 15  2014 echo
## -m 用逗号填充列表的分隔符
$ ls -m
--> pulse-vS2MflCGjzHN, virtual-root.GJeaJi, yum.log
## -n, --numeric-uid-gid 像-l, 但显示的数字是用户和组的ID.
$ ls -n
--> drwx------. 2 42 42  4096 Aug 22 07:44 orbit-gdm (多了一个组ID)
## -N, --literal 显示原生的名字,不会对控制字符做特殊处理
$ ls -N
--> pulse-vS2MflCGjzHN  virtual-root.GJeaJi  yum.log
## -o 类似于 -l, 但不显示组的信息.
$ ls -l
--> drwx------. 2 gdm  gdm   4096 Aug 22 07:44 orbit-gdm
$ ls -o
--> drwx------. 2 gdm   4096 Aug 22 07:44 orbit-gdm
## -p, --indicator-style=slash, 制定分隔符,默认文件夹后面是/
$ ls --indicator-style=none
## -q, --hide-control-chars 用?代替非图形字符
## -Q, --quote-name 条目名称加上双引号
$ ls -Q
--> "bak~"  "echo"  "hackt"  "lcyan.root.history-timestamp"
## -r, --reverse 反序,当原列表是排序的情况下
## -R, --recursive 递归显示文件子目录
## -s, --size 以块大小为单位列出所有文件的大小
$ ls -si
--> 4 drwx------. 2 gdm  gdm   4096 Aug 22 07:44 orbit-gdm (前2位)
## -S 按文件大小排序
$ ls -lS
--> -rw-r--r--. 1 root root 39384 Aug 22 08:33 lcyan.root.history-timestamp
--> drwxr-xr-x. 2 root root  4096 Aug 21 23:26 bak~
--> drwx------. 2 gdm  gdm   4096 Aug 22 07:44 orbit-gdm
## --sort=WORD 用指定的规则排,none -U, extension -X, size -S, time -t, version -v
$ls -l --sort=extension
--> -rw-r--r--. 1 root root 0 Aug 22 08:37 b.dmg
--> -rw-------. 1 root root 0 Aug 20 07:51 yum.log
--> -rw-r--r--. 1 root root 0 Aug 22 08:36 read.md
--> -rw-r--r--. 1 root root 0 Aug 22 08:36 a.tgz
$ls -l --sort=time
--> -rw-r--r--. 1 root root 0 Aug 22 08:37 b.dmg
--> -rw-r--r--. 1 root root 0 Aug 22 08:36 a.tgz
--> -rw-r--r--. 1 root root 0 Aug 22 08:36 read.md
--> -rw-------. 1 root root 0 Aug 20 07:51 yum.log
## --time=WORD 配合 -l with  -l,  show  time  as WORD instead of modification time:
## atime -u, access -u, use -u, ctime -c, or status -c; use specified
## time as sort key if --sort=time
$ ls -l --sort=time --time=ctime
--> -rw-r--r--. 1 root root 0 Aug 22 08:38 read.md
--> -rw-------. 1 root root 0 Aug 22 08:38 yum.log
--> -rw-r--r--. 1 root root 0 Aug 22 08:38 a.tgz
--> -rw-r--r--. 1 root root 0 Aug 22 08:38 b.dmg
## -t 按修改时间倒序
$ ls -tl --full-time
--> -rw-r--r--. 1 root root 0 2015-08-22 08:37:32.922959000 +0800 b.dmg
--> -rw-r--r--. 1 root root 0 2015-08-22 08:36:59.016959045 +0800 a.tgz
--> -rw-r--r--. 1 root root 0 2015-08-22 08:36:17.796955491 +0800 read.md
--> -rw-------. 1 root root 0 2015-08-20 07:51:23.161999794 +0800 yum.log
## -u  配合 -lt:显示访问时间而且依访问时间排序
##     配合 -l:显示访问时间但根据名称排序
##     否则:根据访问时间排序
$ ls -ut
--> -rw-r--r--. 1 root root 0 Aug 22 08:37 b.dmg
--> -rw-r--r--. 1 root root 0 Aug 22 08:36 a.tgz
--> -rw-r--r--. 1 root root 0 Aug 22 08:36 read.md
--> -rw-------. 1 root root 0 Aug 20 07:51 yum.log
$ ls -lu
--> -rw-r--r--. 1 root root 0 Aug 22 08:36 a.tgz
--> -rw-r--r--. 1 root root 0 Aug 22 08:37 b.dmg
--> -rw-r--r--. 1 root root 0 Aug 22 08:36 read.md
--> -rw-------. 1 root root 0 Aug 20 07:51 yum.log
## -U 不进行排序;依文件系统原有的次序列出项目
$ ls -lU
## -v 根据版本进行排序
$
## -X 根据扩展名排
$
## 还有一些关于selinux的选项,不常用

## cd

改变shell的工作目录

## SYNOPSIS
cd: cd [-L|-P] [dir]
## cd 改变当前工作目录到DIR,如果不指定DIR,则默认的DIR是shell变量$HOME的值
$ cd
--> /root
$ echo $HOME
--> /root
## -L 强制进去符号链接目录
$ ls -ld /proc/self
--> lrwxrwxrwx 1 root root 64 Aug 22 08:57 self -> 3521
$ cd -L self
--> /proc/self
## -P 使用物理目录结构,而不是符号目录
$ ls -ld /proc/self
--> lrwxrwxrwx 1 root root 64 Aug 22 08:57 self -> 3521
$ cd -P self
-->  /proc/3521
## cd的默认行为是 cd -L

## pwd

pwd是一个内建命令,打印当前工作目录的名字

## SYNOPSIS
pwd [-LP]
## -L 打印shell变量$PWD的值,如果它的值是当前工作目录
$ pwd -L
--> /etc/ssh
$ echo $PWD
--> /etc/ssh
## -P 参考cd的-P选项
## pwd的默认行为是 pwd -L

## tty

打印连接到标准输入的终端的文件名

## SYNOPSIS
tty [OPTION]...
##
$ tty
--> /dev/pts/1
## -s, --silent, --quiet 什么也不返还,值返回一个退出状态
$ tty -s

## whereis

定位一个命令的二进制文件,源码,手册的位置

## SYNOPSIS
whereis [-bmsu] [-BMS directory...  -f] filename...
## -b 仅搜索二进制文件的位置
$ whereis -b ls
--> ls: /bin/ls
## -m 仅搜索手册章节文件的位置
$ whereis -m ls
--> ls: /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz
## -m 仅搜索源码文件的位置
$ whereis -s ls
--> ls:
## -u 索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
$
## -B 指定搜索可执行文件的路径。
$
## -M 指定搜索帮助文件的路径。
$
## -S 指定搜索源代码文件的路径
$
## 在使用了-B , -M , -S  任意一个参数时,必须加上 -f  参数, 然后指定要搜索的文件名.
$ whereis -B /bin -f ls gcc
## which


显示shell命令的全路径,注意只能找到PATH路径下的命令

## SYNOPSIS
which [options] [--] programname [...]
## --all, -a 打印所有匹配的可执行文件的路径在PATH,而不是仅仅是第一.
$ which -a tty
--> /usr/bin/tty
## --read-alias, -i
$
## --skip-alias 跳过别名
$ which --skip-alias ls
--> /bin/ls

## stat

显示文件或文件系统的状态

## SYNOPSIS
stat [OPTION]... FILE...
## -L, --dereference 如果是链接文件,则获取原文件信息
$ stat echo File:
--> `echo` -> `/bin/echo`
-->   Size: 9         Blocks: 0          IO Block: 4096   symbolic link
--> Device: fd00h/64768dInode: 266232      Links: 1
--> Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
--> Access: 2015-08-22 08:11:08.364959865 +0800
--> Modify: 2015-08-22 08:11:05.354951390 +0800
--> Change: 2015-08-22 08:11:05.354951390 +0800
$ stat -L echo
-->   File: `echo`
-->   Size: 28176     Blocks: 56         IO Block: 4096   regular file
--> Device: fd00h/64768dInode: 393280      Links: 1
--> Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
--> Access: 2015-08-21 05:41:48.000000000 +0800
--> Modify: 2014-10-15 12:51:07.000000000 +0800
--> Change: 2015-08-21 05:41:48.910998268 +0800
## -Z, --context 打印selinux安全上下文 不常用
$
## -f, --file-system 显示文件所在的文件系统的状态
$ stat --file-system echo
  File: "echo"
    ID: 967e9fcacf39b33a Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 12371645   Free: 11518437   Available: 10888319
Inodes: Total: 3153920    Free: 3055295
## -c  --format=FORMAT 自定义输出格式,结尾有换行
$
## --printf=FORMAT 自定义输出格式,结尾无换行符,需手动添加
$
## -t, --terse  以简洁的形式打印输出信息(在没有改变输出格式的情况下)
$ stat -t echo
--> echo 9 0 a1ff 0 0 fd00 266232 1 0 0 1440202268 1440202265 1440202265 4096
@@ FORMAT
## %a 八进制格式的文件访问权限
$ stat -c '%a' echo
--> 777
## %A 可读形式访问权限
$ stat -c '%A' echo
--> lrwxrwxrwx
## ...
$

## echo

echo是一个内建命令,将参数显示到标准输出

## SYNOPSIS
echo: echo [-neE] [arg ...]
@@Options:
## -n 输出文字后不换行
$ echo -n 'this is my new life.'
--> this is my new life.(此处没有换行)[root@lcyan tmp]#
## -e 允许对转义字符的解析
$ echo -e '\t this my \n new life.'
-->   this my
-->  new life.
## -E 显式地抑制反斜杠转义的解释
$ echo -e '\t this my \n new life.'
-->  \t this my \n new life.
@@ backslash-escaped characters
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入 \ 字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;

## shutdown

shutdown是一个管理员命令,该命令可以安全关闭或者重新启动系统。在最后五分钟时间内,新的登录被阻止。

## SYNOPSIS
shutdown [OPTION]...  TIME [MESSAGE]
@@ Options
## -r 关闭系统然后重新启动,类似于Windows平台restart
$ shutdown -r
## -h 关闭电源
$ shutdown -h
## -c 中断关机:当执行"shutdown -h 12:00"指令时,只要按+键就可以中断关机的指令
$ shutdown -c
--> shutdown: Shutdown cancelled
--> [1]+  Done                    shutdown -h 15:33
## -k 只有发出警告信息,并禁止登录,实际上不关闭系统。
$  shutdown -k "14:22" 'I will be closed.'

## halt

halt是一个管理员命令,其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核

## SYNOPSIS
reboot [OPTION]...
halt [OPTION]...
poweroff [OPTION]...
@@OPTIONS
## -f, --force 没有调用shutdown而强制关机或重启。
$
## -p, --poweroff 该选项为缺省选项。就是关机时调用poweroff。
$
## -w, --wtmp-only 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。
$
## --verbose 重新启动系统时输出稍微更详细的消息,对于调试问题停机是有用的。
$

## reboot

reboot,重启系统,参数参见halt


## poweroff

poweroff,重启系统,参数参见halt


## who

who,显示目前登入系统的用户信息。

## SYNOPSIS
who [OPTION]... [ FILE | ARG1 ARG2 ]
## -a, --all same as -b -d --login -p -r -t -T -u
$ who a
-->            system boot  2015-08-22 08:57
-->            run-level 5  2015-08-22 08:57
--> LOGIN      tty3         2015-08-22 08:58              2160 id=3
--> LOGIN      tty2         2015-08-22 08:58              2158 id=2
--> LOGIN      tty4         2015-08-22 08:58              2166 id=4
--> LOGIN      tty5         2015-08-22 08:58              2168 id=5
--> LOGIN      tty6         2015-08-22 08:58              2170 id=6
--> root     + pts/0        2015-08-22 08:59 00:05        2363 (192.168.1.104)
--> root     + pts/1        2015-08-22 08:59   .          2403 (192.168.1.104)
-->            pts/2        2015-08-22 12:51              6135 id=ts/2  term=0 exit=0
-->            pts/3        2015-08-22 12:51              6175 id=ts/3  term=0 exit=0
## -b, --boot 上次系统启动时间
$ who -b
-->           system boot  2015-08-08 22:06
## -d --deal 打印死亡进程
$ who -d
-->           pts/1        2015-08-21 12:57              3545 id=ts/1  term=0 exit=0
## -H, --heading 打印列标题
$ who -H
-->  NAME     LINE         TIME             COMMENT
-->  root     pts/0        2015-08-22 08:59 (192.168.1.104)
-->  root     pts/1        2015-08-22 08:59 (192.168.1.104)
-->  root     pts/2        2015-08-22 13:19 (192.168.1.104)
## -l --login 打印系统登陆进程
$ who -lH
-->  NAME     LINE         TIME             IDLE          PID COMMENT
-->  LOGIN    tty3         2015-08-22 08:58              2160 id=3
-->  LOGIN    tty2         2015-08-22 08:58              2158 id=2
-->  LOGIN    tty4         2015-08-22 08:58              2166 id=4
-->  LOGIN    tty5         2015-08-22 08:58              2168 id=5
-->  LOGIN    tty6         2015-08-22 08:58              2170 id=6
## --lookup 试图通过规范化的DNS主机名
$ who --lookup
-->  root     pts/0        2015-08-22 07:53 (114.241.25.195)
## -m 只与标准输入相关的主机名和用户
$
-->  root     pts/0        2015-08-22 07:53 (114.241.25.195)
## -p, --process 打印由init启动,活动进程
$ who -p
## -q, --count 统计登陆的个数
$ who -q
-->  root root root
-->  # users=3
## -r, --runlevel 打印当前的运行级别
$ who -r
-->  run-level 3  2015-08-08 22:06
## -s, --short 打印简短的格式(默认的选项)
$ who -s
-->  root     pts/0        2015-08-22 07:53 (114.241.25.195)
##-t, --time 打印最后一次时间的变化
$ who -t
## -T, -w, --mesg
$
## -u, --users
## --message
## --writable

## w

w,显示目前谁登陆到系统以及它们在做什么。


w命令的显示项目按以下顺序排列:当前时间,系统启动到现在的时间,登录用户的数目,系统在最 近1秒、5秒和15分钟的平均负载。然后是每个用户的各项数据,项目显示顺序如下:登录帐号、终端名称、远 程主机名、登录时间、空闲时间、JCPU、PCPU、当前正在运行进程的命令行。

## SYNOPSIS
w - [husfiV] [user]
## -h 不显示标题
$ w -h
-->  root     pts/0    114.241.25.195   13:42    0.00s  0.18s  0.00s w -h
## -u 当列出当前进程和CPU时间时忽略用户名。这主要是用于执行su命令后的情况
$ w -u
-->   13:46:00 up 52 days, 49 min,  1 user,  load average: 0.00, 0.00, 0.00
-->  USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
-->  root     pts/0    114.241.25.195   13:42    0.00s  0.19s  0.00s w -u
## -f 切换显示FROM项,也就是远程主机名项。默认值是不显示远程主机名,
## 当然系统管理员可以对源文件 ##作一些修改使得显示该项成为默认值。
$ w -f
-->   13:47:53 up 52 days, 51 min,  1 user,  load average: 0.00, 0.00, 0.00
-->  USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
-->  root     pts/0     13:42    0.00s  0.21s  0.00s w -f
## -i显示IP地址代替主机名(如果可能)
$ w -i
-->   13:51:27 up  4:53,  3 users,  load average: 0.02, 0.01, 0.00
-->  USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
-->  root     pts/0    192.168.1.104    08:59   13:07   0.65s  0.00s man w
-->  root     pts/1    192.168.1.104    08:59    0.00s  1.67s  0.00s w -i
-->  root     pts/2    192.168.1.104    13:19   15:08   0.14s  0.14s -bash

## whoami

whoami,打印与当前的有效用户ID相关联的用户名。

## SYNOPSIS
$ whoami
--> root