标签 技巧 下的文章

linux系统里有一些日志文件。观察这些日志文件是系统管理员的一个重要任务。你可以很方便地使用tail命令观察它们。但是如果你想要长时间监视这些文件,每几分钟使用tail检查那些日志文件是一件很乏味的事情。你可以写一个短小的无限循环的脚本来周期性地检查文件,但其实已经有一个程序可以为你处理这种重复的任务。

Linux watch 命令

Linux中的watch 命令提供了一种方式处理重复的任务。默认watch会每2秒重复执行命令。你一定也想到了,watch是一个很好的观察log文件的工具。下面是一个例子。

watch tail /var/log/syslog

想要停止命令的执行,只要使用标准的kill流程, [Ctrl]+C

使用Linux watch命令监测syslog 使用Linux watch命令监测syslog

你可以使用-n开关改变并指定时间间隔。要想每10秒检测日志文件,试试这个。

watch -n 10 tail /var/log/syslog

带有管道的watch命令

watch并不仅限于浏览日志文件。它可以用来重复你给它的任何命令。如果你要监测CPU的温度,你可以使用watch后跟上sensord命令来查看。

watch -n 1 sensors

我电脑上的输出看上去就像这样:

acpitz-virtual-0
Adapter: Virtual device
temp1:        +45.0°C  (crit = +100.0°C)

我想过滤一下这个输出来只显示温度而不显示其他的。

我可以使用这个命令来查看

sensors | grep temp | awk '{ print $2 }'

记住,watch命令会重复它后面的第一个命令。必须要注意命令后面跟上管道的情况。你可以将你的命令放在引号里面来管理。

watch -n1 "sensors | grep temp | awk '{ print $2 }'"

带管道的watch命令 带管道的watch命令

将watch作为时钟

就像你现在已经注意到的,watch执行后会在你的终端的右上角显示时间。我们可以通过传给watch一个空的命令参数来把它作为一个简单的时钟。 我们可以将一个空格包含在引号中来作为一个空的参数。

watch -n 1 " "

如你所见,这给予这个命令另外一个意义,手表(watch)。你可以把它作为你的腕表。

现在你知道如何使用Linux的watch命令。你要用它处理什么重复任务?


via: http://tuxtweaks.com/2013/12/linux-watch-command/

译者:geekpi 校对:Mr小眼儿

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Ubuntu 13.10 中配备了GNOME 3.8桌面。 尽管它相比Unity是一个可靠稳定以及有特色的替代品,但这个版本还是过时了。

GNOME桌面的最新版本在2013年9月发布,随之而来的是一系列改进的功能、应用程序和可用性的调整。从对高分辨率屏幕的支持到客户端应用窗口上的美化,GNOME 3.10无疑是一个引人注目的升级版本。

好消息是:假设你正在运行Ubuntu 13.10,拥有不错的网络操作和命令行水平,那么你无需继续使用一个过时版本的GNOME。

在Ubuntu 13.10 上如何升级到GNOME 3.10

为了那些爱略过前言直奔主题的读者,我还要重申两点:

要使用本方法安装GNOME 3.10,需运行 Ubuntu 13.10版本。

GNOME 3.10还未在 Ubuntu 13.10上测试,所以升级风险自负。

首先,让我们添加GNOME 3 的PPA到Ubuntu的软件资源中。这个操作可以使用图形界面完成,但使用命令更容易一些。

打开一个新的终端窗口,键入下列命令,在需要时输入你的用户密码:

sudo add-apt-repository ppa:gnome3-team/gnome3-next && sudo apt-get update

添加完PPA并更新包列表后,我们就可以继续,开始安装GNOME 3.10了。运行下列命令,当弹出提示时再次输入你的用户密码:

sudo apt-get update && sudo apt-get install gnome-shell ubuntu-gnome-desktop

获取并安装所有必要的包和组件会花一点时间,所以请耐心一点。

在安装过程中,在终端将会弹出一个提示,要求你选择一种显示管理器,默认使用的是“登录窗口”。

这个决定完全取决于你;UBuntu的Unity Greeter和GNOME的显示管理器都能让你很轻松地在桌面会话之间切换(如果你想保持在Unity界面或者另一个桌面将很方便),但仅仅只有GDM提供给GNOME特定的功能,譬如锁屏通知。

当你确定选择后,使用上下键选择,然后敲击‘确认/返回’键以确认。安装便会继续进行。

增加额外的功能

GNOME 3.10还有一些不错的新特性和应用-包括GNOME天气,音乐盒及地图 以及其它各种各样的改变。因为并不是所有的特性都足够稳定以致于可以被包含在我们之前添加的GNOME 3 PPA中,所以如果你想使用它们,就需要利用到两个额外的GNOME PPA。

现在,你需要意识到很重要的是,在这些仓库里的一些包据说有稳定性问题。这些问题大多是小问题,譬如应用程序崩溃和损坏。但还是有潜在的可能,导致像使GNOME完全崩溃这样的重大问题。

除开这个警告不说,在终端里打开一个新的选项卡,输入下列命令:

sudo add-apt-repository ppa:gnome3-team/gnome3-staging
sudo add-apt-repository ppa:gnome3-team/gnome3
sudo apt-get update && sudo apt-get dist-upgrade

为了添加一些之前提到的很酷的应用,运行这个命令:

sudo apt-get install gnome-weather gnome-music gnome-maps cheese gnome-documents

这样之后,就搞定了!

你可能会想先注销然后重新登录(记得选择“GNOME”会话)以确保改动都已经正确生效了。

细小的差别

如果你在不卸载Unity的情况下安装GNOME 3.10,那么有一些注意事项。

首先,你会发现在系统设置里“Online Accounts”有两个入口。其中,有钥匙图标的是Unity版的,另一个有插孔符号的是GNOME版的。

一些应用程序可能会要求你往Unity中添加账户(Shotwell, Gwibber, Empathy),有一些可能是要求往GNOME中添加(Evolution, Documents, Contacts)。

“通知”和“搜索”入口是GNOME专有的,它们让你挑选哪些应用程序和资源能够显示通知或出现在活动区。

卸载GNOME 3.10

假如你已经尝试了GNOME 3.10,但不喜欢它。这时该怎么办?

使用一个叫做“PPA Purge”的命令行工具,移除GNOME 3.10 是一个相当简单的过程。这个工具可以在Ubuntu软件中心里找到,是目前为止自动移除或降级从PPA安装的包的最容易的方法。

为了使用这个工具,我们需要返回终端然后键入下面命令,要留意任何出现在降级过程中的提示。

sudo ppa-purge ppa:gnome3-team/gnome3-next

如果你也添加了其它可选的PPA,你也需要清除它们:

sudo ppa-purge ppa:gnome3-team/gnome3-staging
sudo ppa-purge ppa:gnome3-team/gnome3

完成后,你就剩下了原来的 GNOME 3.8 桌面。如果你不再想保留GNOME Shell了,你可以执行下列命令去卸载它:

sudo apt-get remove gnome-shell ubuntu-gnome-desktop

最后,手动移除任何在降级之后可能残留的应用程序(譬如,Epiphany and GNOME Documents),然后重启。


via: http://www.omgubuntu.co.uk/2013/12/upgrade-gnome-3-10-ubuntu-13-10

译者:KAyGuoWhu 校对:jasminepeng

本文由 LCTT 原创翻译,Linux中国 荣誉推出

通用串行总线USB)被设计成为连接计算机外设的标准,如键盘、鼠标、打印机、数码相机、便携式媒体播放器、磁盘和网络适配器等等 - 来源:Wikipedia

它已经成为了一个工业标准,现在很难看到一个没有USB口的计算机了。USB闪存的使用使得它更加流行。在Linux上,我们可以使用lsusb来列出USB设备和它的属性。

什么是lsusb

在它的手册上,lsusb定义成:

显示系统中以及连接到系统的USB总线信息的工具。

如何运行lsusb? 要运行lsusb,你可以直接在控制台输入lsusb。

$ lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 17ef:4811 Lenovo Integrated Webcam [R5U877]
Bus 008 Device 002: ID 0a5c:217f Broadcom Corp. Bluetooth Controller

lsusb会显示驱动和内部连接到你系统的设备。

下面介绍如何理解输出。我抓取了上面输出的最后一行:

Bus 008 Device 002 : ID 0a5c:217f Broadcom Corp. Bluetooth Controller
  • Bus 008 : 指明设备连接到哪(哪条总线)
  • Device 002 : 表明这是连接到总线上的第二台设备
  • ID : 设备的ID
  • Broadcom Corp. Bluetooth Controller :生产商名字和设备名

我们同样可以看到在我们的系统中同时使用了USB2.0 root hub驱动和USB 1.1 root hub驱动。

dmesg命令同样可以看到。下面是一个例子。

$ dmesg |grep -i usb

[ 0.353138] usbcore: registered new interface driver usbfs
[ 0.353150] usbcore: registered new interface driver hub
[ 0.353182] usbcore: registered new device driver usb
[ 0.730026] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
[ 0.730116] ehci_hcd 0000:00:1a.7: new USB bus registered, assigned bus number 1
[ 0.748019] ehci_hcd 0000:00:1a.7: USB 2.0 started, EHCI 1.00
[ 0.748169] hub 1-0:1.0: USB hub found
[ 0.748336] ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 2
[ 0.768019] ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00
[ 0.768147] hub 2-0:1.0: USB hub found
[ 0.768236] ohci_hcd: USB 1.1 ‘Open’ Host Controller (OHCI) Driver
[ 0.768251] uhci_hcd: USB Universal Host Controller Interface driver 

如何列出USB详细信息

使用-v选项来开启。下面是一个例子。

$ lsusb -v

Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1

找出连接了多少USB设备

使用下面的命令

$ find /dev/bus

接着你会看到像下面的输出:

/dev/bus
/dev/bus/usb
/dev/bus/usb/008
/dev/bus/usb/008/002
/dev/bus/usb/008/001
/dev/bus/usb/007
/dev/bus/usb/007/001
/dev/bus/usb/006
/dev/bus/usb/006/001
/dev/bus/usb/005
/dev/bus/usb/005/001
/dev/bus/usb/004
/dev/bus/usb/004/001
/dev/bus/usb/003
/dev/bus/usb/003/001
/dev/bus/usb/002
/dev/bus/usb/002/004
/dev/bus/usb/002/003
/dev/bus/usb/002/001
/dev/bus/usb/001
/dev/bus/usb/001/001

使用lsusb 命令 的-D 选项,你可以打印特定设备的详细信息。下面是一个博通蓝牙设备的示例。

$ lsusb -D /dev/bus/usb/008/002

Device: ID 0a5c:217f Broadcom Corp. Bluetooth Controller
Couldn’t open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x0a5c Broadcom Corp.
idProduct 0x217f Bluetooth Controller
bcdDevice 3.60
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 216
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0×0010 1x 16 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1 

找出大容量存储设备

既然 lsusb -v给我们很详细的信息,那么你或许会错过一些信息。我们可以使用grep命令指定特定的信息。

大容量存储设备会有一个供应商名和ID。我们可以用它作为一个起点。

$ lsusb -v |grep -Ei ‘(idVendor|Mass\ Storage)’

idVendor 0×1005 Apacer Technology, Inc.
bInterfaceClass 8 Mass Storage

你可以看到,我们系统上有一个来自Apacer Technology, Inc的USB大容量存储设备。

以树层级结构输出USB设备

使用 -t选项满足这个要求

$ lsusb -t

/: Bus 08.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 07.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 06.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 05.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root\_hub, Driver=ehci_hcd/6p, 480M
|__ Port 1: Dev 4, If 0, Class=stor., Driver=usb-storage, 480M
|__ Port 6: Dev 3, If 0, Class=’bInterfaceClass 0x0e not yet handled’, Driver=uvcvideo, 480M
|__ Port 6: Dev 3, If 1, Class=’bInterfaceClass 0x0e not yet handled’, Driver=uvcvideo, 480M
/: Bus 01.Port 1: Dev 1, Class=root\_hub, Driver=ehci_hcd/6p, 480M

数字12M和480M指USB类型的传输速率

  • 12M 意味着 USB 1.0 / 1.1的速率是 12Mbit/s
  • 480M 意味着 USB 2.0的速率是 480Mbit/s

如果你找到5.0G,那意味这你有USB 3.0类型接口。它有5.0Gbit/s的传输速率。Linux从/var/lib/usbutils/usb.ids识别USB设备的详细信息。或者你可以访问Linux-USB.org获取最新的USB ID列表。

这些就是lsusb命令的基础。你可以用lsusb命令对你的系统上的USB设备做一个诊断。一般来说,你可以通过lsusb的手册探索命令的更多详细细节。只要输入man lsab来打开它的手册。


via: http://linoxide.com/linux-command/linux-lsusb-command-print-usb/

译者:geekpi 校对:Mr小眼儿

本文由 LCTT 原创翻译,Linux中国 荣誉推出

几个星期前,我们展示了如何在Microsoft Windows中移动Dropbox文件夹到一个移动硬盘。该教程获得一致好评。对于使用Ubuntu操作系统的用户来说同样适用。

这个简短的教程将告诉你如何在Ubuntu下轻松地将Dropbox文件夹移动到另一个位置。

我写这些教程的原因是,几个月前我收到了一台全新的只有128GB SSD硬盘的惠普EliteBook笔记本电脑。我爱这台快速且性能良好的电脑。

它的缺点是,本地存储太小,无法处理我所有的东西。除了我的本地应用程序和数据,我在我的Dropbox也有几个GB大小的文件。

所以,当我同步我的Dropbox帐号并下载它的所有内容,我的HP EliteBook,完全消耗掉整个本地磁盘。

唯一的解决办法是,不使用本地存储磁盘直接将Dropbox文件夹移动到一个外部的移动硬盘上中。

如果你发现自己也有类似的问题,无论是使用Windows还是Ubuntu,请按照下列步骤,以腾出本地磁盘上的空间。在Ubuntu中开始移动Dropbox文件夹,首先插入外部存储器。(译注:本例并非真实的外部移动硬盘,而是在vbox测试环境中测试。)

插入磁盘后,进入Unity Dash 并搜索Disks。打开它并选择你希望适用的外部驱动器,点击 Tools –> Format

下一步,格式化驱动器的文件系统为NTFS格式。

格式化之后,选择 Tools –> Mount Options

然后指定相应的选项,如下图所示:安装点(准备将Dropbox的文件夹放到这里),文件系统类型,以及下面的图片中的其他选项。保存它时,你就大功告成了。

在此之后,退出Dropbox的服务并在默认位置(/home/用户名/Dropbox)删除当前的Dropbox文件夹(译注:在Dropbox完全移动好之前,我不建议你如本文一样删除原来的文件夹,而是将文件夹改名,要不万一出错呢?)。当您再次启动Dropbox的服务时,它会提醒你缺少的文件夹。点击重新链接按钮以指定新的位置(就是你的移动硬盘上的新位置)。

当提示选择安装类型,选择‘Advanced’并指定位置安装Dropbox文件夹。

设置完毕后,重新启动,如果Dropbox的不会提示你缺少文件夹,那么就成功了。

教程就是这样!

如果没有安装NTFS-3G,运行这个命令来安装它。

sudo apt-get install ntfs-3g

via: http://www.liberiangeek.net/2013/12/move-dropboxs-folder-to-an-external-drive-in-ubuntu/

译者:乌龙茶 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

系统管理员必须维护他们服务器的健康运行。其中一个重要的部分就是内存。当服务器内存使用率过高时,它会降低服务器的性能。Linux有一个称为 free 的工具,来监控内存使用率。

free 命令是什么

free 命令是一个显示系统中空闲和已用内存大小的工具。free 命令的输出和 top 命令相似。大多数Linux发行版已经含有 free 命令。

如何运行 free

想要运行,只需在控制台输入free 即可。不带选项运行会显示一个以KB为单位的默认输出。

$ free

free默认视图

从上面的截图我们看到:

内存 (以KB计)

  • Total(全部) : 1026740
  • Used(已用) : 843396
  • Free(可用) : 183344
  • Shared(共享) : 0
  • Buffers(块设备缓存区) : 52704
  • Cached(文件缓存) : 376384

译注:关于Buffers和Cached的区别,来自 http://www.taobaotesting.com/blogs/qa?bid=2265 的一段解释如下:

buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.

cached是用来给文件做缓冲。

那就是说:buffers是用来存储,目录里面有什么内容,权限等等。而cached直接用来记忆我们打开的文件

Swap (以KB计)

  • Total(全部) : 1045500
  • Used(已用) : 3376
  • Free(可用) : 1042124

当你看见 buffer/cache 的空闲空间低或者 swap 的空闲空间低,说明内存需要升级了。这意味这内存利用率很高。请注意 shared(共享)内存列应该被忽略 ,因为它已经被废弃了。

以其它单元显示内存信息

如我们先前提到的,默认 free 会以 KB 为单位显示信息。free 同样提供给我们 b (B), -k (KB), -m (MB), -g (GB) and –tera (TB)这些单位。要显示我们想要的单位,只要选择一个并在 free 后面跟上。下面一个是以 MB 为单位的输出样例。

$ free -m

free命令以MB为单位

这个技巧同样适用于-b, -k, -g 以及 –tera 选项。

以适于人类可读方式显示内存信息

free 同样提供了-h选项,这意味着适于人类可读(译注:系统上可能并不存在-h选项,已被-m取代)。那么这与其它的选项有什么不同呢,如-m(MB)选项? 可见的最大不同是-h选项会在数字后面加上适于人类可读的单位。让我们看一个例子。

$ free -h

人类可读的free

如我们一起看到的,在1,0数字后这里是G(GB)字母。当数字并没有达到GB时,free足够聪明来知道并在每个数字后面跟上合适的单位。后面的M - 数字929告诉我们它有929MB(译注: 原文为929 number tell us its 969 Megabytes,这里应该为输入错误)。

间隔显示 free

作为一个状态检查工具,最好的统计内存利用率的方法是使用延迟间隔。这么做的话,我们可以使用-s选项后面跟上我们想要间隔的N秒数。我们可以在后面合并几个选项来使输出满足我们的需求。假如我们想要每3秒统计一次内存利用率并且适于人类可读,那么就像这样做:

$ free -hs 3

间隔3s显示free

显示高低内存利用率

如果我们想要知道高低内存统计,我们可以使用-l选项。下面是一个例子。

$ free -l

Free 的 低-高 统计

显示 Linux 全部内存

如果我们需要每列的总计信息,我们可以在 free 命令后面跟上 -t 选项。这会在字底部额外加入一行显示。

$ free -t

free命令带总计内存

总结

除了vmstat以外,free 命令也是一个用于统计内存利用率的简单统计工具。用这个你可以快速查看你的 Linux 内存信息。free 命令使用 /proc/meminfo 作为基准来显示内存利用率信息。如往常一样,你可以在控制台下输入 man free 来获取更多关于 free 的信息。


via: http://linoxide.com/linux-command/linux-free-command/

译者:geekpi 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

作为一名系统管理员,我们需要弄清楚在一个特定的时间点都有谁活跃在系统上。必须严密监视我们的服务器。但是,我们当然不可能一天24小时都盯着系统。在linux系统中,我们可以使用who命令查看登录者信息。

什么是 who 命令

who命令能够打印 当前都有谁登录到系统中 的相关信息 。who命令只会显示真正登录到系统中的用户。它不会显示那些通过su命令切换用户的登录者。

如何使用who命令

在大多数linux发行版中,who命令都是默认安装上的。想使用该命令,只需在控制台敲命令就行了。不带选项的话,运行该命令产生默认输出。

$ who

如何理解输出:

  • 第一列显示用户名称
  • 第二列显示用户连接方式。Tty意味着用户直接连接到电脑上,而pts意味着远程登录。
  • 第三、四列分别显示日期和时间
  • 第五列显示用户登录IP地址。

使用带参数的who命令

Who命令有一些参数用于调整输出。以下是常用的例子。

显示上一次重新启动的时间和日期

使用 -b 选项

$ who -b

可以看到系统启动是在2013年12月21日,下午3:52。

显示初始化进程的当前运行级别

使用 -r 选项,who命令会打印出初始化进程的当前运行级别

$ who -r

输出显示2013年12月21日,下午3:52系统以 级别2 开始运行。

为每一列添加标题

使用 -H 选项为每一列添加标题

$ who -H

只打印当前运行终端的相关信息

可以使用-m选项。

$ who -m

对当前登录用户数量计数

如果系统同时有多人登录在线,-q 选项协助你完成计数功能。

$ who -q

附加空闲时间和PID信息

默认情况下,who命令不会打印空闲时间和PID信息。如果打算显示这些信息,使用-u选项。不要忘记使用 -H选项让显示的信息更加简单易读。

$ who -u -H

空闲时间 包含了最近最后一次活动以来消逝的时间. 所以,00:13 意思是 用户leni已经13分钟没执行过命令了. (.)符号 是指该终端过去的一分钟有过活动。在那期间,我们称之为 “current” 。PID 是用户shell程序的进程ID号。

显示登录进程

使用-l选项

$ who -l

第一列只显示系统登录守护进程的名字。上面截图中的数字 967, 971等是进程ID。

显示所有信息

使用-a选项会显示所有信息。例如:

$ who -a

总结

你会发现 who 命令跟 w 命令在某些方面有些相像。不要为此感到疑惑,为什么linux要实现这些在功能上相近的命令。你可以使用你觉得最适合你的或者适用于某种场合的命令。请查阅who命令手册了解更多详细信息。


via: http://linoxide.com/linux-command/linux-who-command/

译者:l3b2w1 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出