Linux学习-Linux 主机上的用户讯息传递
查詢使用者: w, who, last, lastlog
如果你想要知道目前已登入在系統上面的用戶呢?可以透過 w 或 who 來查詢喔!如下范例所示:
[root@study ~]# w
01:49:18 up 25 days, 3:34, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
dmtsai tty2 07Jul15 12days 0.03s 0.03s -bash
dmtsai pts/0 172.16.200.254 00:18 6.00s 0.31s 0.11s sshd: dmtsai [priv] # 第一行顯示目前的時間、開機 (up) 多久,幾個用戶在系統上平均負載等;
# 第二行只是各個項目的說明,
# 第三行以后,每行代表一個使用者。如上所示,dmtsai 登入并取得終端機名 tty2 之意。
[root@study ~]# who
dmtsai tty2 2015-07-07 23:07
dmtsai pts/0 2015-07-22 00:18 (192.168.1.100)
如果您想要知道每個賬號的最近登入的時間,則可以使用 lastlog 這個指令喔! lastlog 會去
讀取 /var/log/lastlog 文件,結果將數據輸出如下表:
[root@study ~]# lastlog
Username Port From Latest
root pts/0 Wed Jul 22 00:26:08 +0800 2015
bin **Never logged in**
....(中間省略)....
dmtsai pts/1 192.168.1.100 Wed Jul 22 01:08:07 +0800 2015
vbird1 pts/0 Wed Jul 22 01:32:17 +0800 2015
pro3 **Never logged in**
....(以下省略)....
使用者對談: write, mesg, wall
是否可以跟系統上面的用戶談天說地呢?當然可以啦!利用 write 這個指令即可。 write 可 以直接將訊息傳給接收者啰!舉例來說,我們的 Linux 目前有 vbird1 與 root 兩個人在在線, 我 的 root 要跟 vbird1 講話,可以這樣做:
[root@study ~]# write 使用者賬號 [用戶所在終端接口]
[root@study ~]# who
vbird1 tty3 2015-07-22 01:55 <==有看到 vbird1 在在線
root tty4 2015-07-22 01:56
[root@study ~]# write vbird1 pts/2
Hello, there:
Please don't do anything wrong... <==這兩行是 root 寫的信息!
# 結束時,請按下 [crtl]-d 來結束輸入。此時在 vbird1 的畫面中,會出現:
Message from root@study.centos.vbird on tty4 at 01:57 ... Hello, there:
Please don't do anything wrong...
EOF
立刻會有訊息響應給 vbird1 !不過......當時 vbird1 正在查資料,哇! 這些訊息會立刻打斷 vbird1 原本的工作喔!所以,如果 vbird1 這個人不想要接受任何訊息,直接下達這個動作:
[vbird1@study ~]$ mesg n
[vbird1@study ~]$ mesg
is n
這個 mesg 的功能對 root 傳送來的訊息沒有抵擋的能力!所以如果是 root 傳送訊息, vbird1 還是得要收下。 但是如果 root 的 mesg 是 n 的,那么 vbird1 寫給 root 的信息會變這樣:
[vbird1@study ~]$ write root
write: root has messages disabled
相對于 write 是僅針對一個使用者來傳『簡訊』,我們還可以『對所有系 統上面的用戶傳送簡訊 (廣播)』哩~ 如何下達?用 wall 即可
[root@study ~]# wall "I will shutdown my linux server..."
使用者郵件信箱: mail
寄出信件呢?就直接使用 mail 這個指令即可!這個指令的用法很簡單的,直接這樣下 達:『mail -s "郵件標題" username@localhost 』即可! 一般來說,如果是寄給本機上的使用者,基 本上,連『 @localhost 』都不用寫啦! 舉例來說,我以 root 寄信給 vbird1 ,信件標題是『 nice to meet you 』,則:
[root@study ~]# mail -s "nice to meet you" vbird1 Hello, D.M. Tsai
Nice to meet you in the network.
You are so nice. byebye!
. <==這里很重要喔,結束時,最后一行輸入小數點 . 即可!
EOT
[root@study ~]# <==出現提示字符,表示輸入完畢了!
如此一來,你就已經寄出一封信給 vbird1 這位使用者啰,而且,該信件標題為: nice to meet you, 信件內容就如同上面提到的。不過,你或許會覺得 mail 這個程序不好用~ 因為在信件編寫的過程 中,如果寫錯字而按下 Enter 進入次行,前一行的數據很難刪除ㄟ! 那怎么辦?沒關系啦!我們使 用數據流重導向啊!呵呵!利用那個小于的符號 ( < ) 就可以達到取代鍵盤輸入的要求了。也就是說, 你可以先用 vi 將信件內容編好, 然后再以 mail -s "nice to meet you" vbird1 < filename 來將文件內 容傳輸即可。
如果是要收信呢?呵呵!同樣的使用 mail 啊! 假設 我以 vbird1 的身份登入主機,然后輸入 mail 后,
[vbird1@study ~]$ mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/vbird1": 1 message 1 new
>N 1 root Wed Jul 22 02:09 20/671 "nice to meet you"
& <==這里可以輸入很多的指令,如果要查閱,輸入 ? 即可!
在 mail 當中的提示字符是 & 符號喔,別搞錯了~輸入 mail 之后,我可以看到我有一封信件, 這 封信件的前面那個 > 代表目前處理的信件,而在大于符號的右邊那個 N 代表該封信件尚未讀過, 如果我想要知道這個 mail 內部的指令有哪些,可以在 & 之后輸入『 ? 』,就可以看到如下的畫面:
& ?
mail commands
type <message list> type messages
next goto and type next message
from <message list> give head lines of messages
headers print out active message headers
delete <message list> delete messages
undelete <message list> undelete messages
save <message list> folder append messages to folder and mark as saved
copy <message list> folder append messages to folder without marking them
write <message list> file append message texts to file, save attachments
preserve <message list> keep incoming messages in mailbox even if saved
Reply <message list> reply to message senders
reply <message list> reply to message senders and all recipients
mail addresses mail to specific recipients
file folder change to another folder
quit quit and apply changes to folder
xit quit and discard changes made to folder
! shell escape
cd <directory> chdir to directory or home if none given
list list names of all available commands
指的是每封郵件的左邊那個數字啦!而幾個比較常見的指令是:
| 指令 | 意義 |
|---|---|
| h | 列出信件標頭;如果要查閱 40 封信件左右的信件標頭,可以輸入『 h 40 』 |
| d | 刪除后續接的信件號碼,刪除單封是『 d10 』,刪除 20~40 封則為『 d20-40 』。 不過,這個動作要生效 的話,必須要配合 q 這個指令才行(參考底下說明)! |
| s | 將信件儲存成文件。例如我要將第 5 封信件的內容存成 ~/mail.file:『s 5 ~/mail.file』 |
| x | 或者輸入 exit 都可以。這個是『不作任何動作離開 mail 程序』的意思。 不論你剛剛刪除了什么信件, 或者讀過什么,使用 exit 都會直接離開 mail,所以剛剛進行的刪除與閱讀工作都會無效。 如果您只是查 閱一下郵件而已的話,一般來說,建議使用這個離開啦!除非你真的要刪除某些信件。 |
| q | 相對于 exit 是不動作離開, q 則會實際進行你剛剛所執行的任何動作 (尤其是刪除!) |
總結
以上是生活随笔為你收集整理的Linux学习-Linux 主机上的用户讯息传递的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 東京登山紀實
- 下一篇: (五)比例积分控制器