首頁 > 軟體

Linux之簡單命令列舉 echo,who,w,whami,last,lastlog

2020-06-16 17:22:02

一、echo命令

Linux的echo命令, 在shell程式設計中極為常用, 在終端下列印變數value的時候也是常常用到的, 因此有必要了解下echo的用法

echo命令的功能是在顯示器上顯示一段文字,一般起到一個提示的作用。

該命令的一般格式為: echo [ -n ] 字串

其中選項n表示輸出文字後不換行;字串能加引號,也能不加引號。用echo命令輸出加引號的字串時,將字串原樣輸出;用echo命令輸出不加引號的字串時,將字串中的各個單詞作為字串輸出,各字串之間用一個空格分割。

功能說明:顯示文字。

語   法:echo [-ne][字串] echo [--help][--version]

補充說明:echo會將輸入的字串送往標準輸出。輸出的字串間以空白字元隔開, 並在最後加上換行號。

參   數

-n 不要在最後自動換行
-e 若字串中出現以下字元,則特別加以處理,而不會將它當成一般文字輸出;
   a 發出警告聲;
   b 刪除前一個字元;
   c 最後不加上換行符號;
   f 換行但游標仍舊停留在原來的位置;
   n 換行且游標移至行首;
   r 游標移至行首,但不換行;
   t 插入tab;
   v 與f相同;
    插入字元;
   nnn 插入nnn(八進位制)所代表的ASCII字元;
–help 顯示幫助
–version 顯示版本資訊

echo -e說明:

shell指令碼中echo顯示內容帶顏色顯示,echo顯示帶顏色,需要使用引數-e

格式如下:

複製程式碼 程式碼如下:

echo -e "33[字背景顏色;文字顏色m字串33[0m"

例如:

複製程式碼 程式碼如下:

echo -e "33[41;36m something here 33[0m"

其中41的位置代表底色, 36的位置是代表字的顏色

註:   

1、字背景顏色和文字顏色之間是英文的""   

2、文字顏色後面有個m   

3、字串前後可以沒有空格,如果有的話,輸出也是同樣有空格,下面是相應的字和背景顏色,可以自己來嘗試找出不同顏色搭配 。

複製程式碼 程式碼如下:

echo -e “33[31m 紅色字 33[0m” 
echo -e “33[34m 黃色字 33[0m” 
echo -e “33[41;33m 紅底黃字 33[0m” 
echo -e “33[41;37m 紅底白字 33[0m” 
字顏色:30—–37

複製程式碼 程式碼如下:

  echo -e “33[30m 黑色字 33[0m” 
  echo -e “33[31m 紅色字 33[0m” 
  echo -e “33[32m 綠色字 33[0m” 
  echo -e “33[33m 黃色字 33[0m” 
  echo -e “33[34m 藍色字 33[0m” 
  echo -e “33[35m 紫色字 33[0m” 
  echo -e “33[36m 天藍字 33[0m” 
  echo -e “33[37m 白色字 33[0m”

字背景顏色範圍:40—–47

複製程式碼 程式碼如下:

  echo -e “33[40;37m 黑底白字 33[0m” 
  echo -e “33[41;37m 紅底白字 33[0m” 
  echo -e “33[42;37m 綠底白字 33[0m” 
  echo -e “33[43;37m 黃底白字 33[0m” 
  echo -e “33[44;37m 藍底白字 33[0m” 
  echo -e “33[45;37m 紫底白字 33[0m” 
  echo -e “33[46;37m 天藍底白字 33[0m” 
  echo -e “33[47;30m 白底黑字 33[0m”

最後面控制選項說明 複製程式碼 程式碼如下:

  33[0m 關閉所有屬性 
  33[1m 設定高亮度 
  33[4m 下劃線 
  33[5m 閃爍 
  33[7m 反顯 
  33[8m 消隱 
  33[30m — 33[37m 設定前景色 
  33[40m — 33[47m 設定背景色 
  33[nA 游標上移n行 
  33[nB 游標下移n行 
  33[nC 游標右移n行 
  33[nD 游標左移n行 
  33[y;xH設定游標位置 
  33[2J 清屏 
  33[K 清除從游標到行尾的內容 
  33[s 儲存游標位置 
  33[u 恢復游標位置 
  33[?25l 隱藏游標 
  33[?25h 顯示游標

二、使用者登入相關命令who,w,whami,last,lastlog

who:顯示系統當前所有登入對談

[root@bash ~]# who
root     tty1         2016-12-27 21:23
root     pts/0        2016-12-28 19:23 (192.168.1.116)
root     tty2         2016-12-28 07:43

w:系統當前所有的登入對談以及所做操作

[root@bash ~]# w
 20:22:25 up 15:55,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      Tue21   15:27m  0.09s  0.09s -bash
root     pts/0    192.168.1.116    19:23    1.00s  0.12s  0.01s w
root     tty2                      07:43   19:29   0.02s  0.02s -bash

whoami:顯示當前系統登入使用者

[root@bash ~]# whoami
root

last: show listing of last logged in users

[root@bash ~]# last
root     pts/0        192.168.1.116    Wed Dec 28 19:23   still logged in   
root     tty2                          Wed Dec 28 07:43   still logged in   
root     pts/0        192.168.1.116    Wed Dec 28 06:32 - 19:23  (12:50)    
root     pts/1        192.168.1.116    Wed Dec 28 02:12 - 05:24  (03:12)    
root     pts/1        192.168.1.116    Wed Dec 28 02:11 - 02:12  (00:00)    
root     pts/1        192.168.1.116    Wed Dec 28 01:19 - 02:11  (00:51)    
root     pts/1        192.168.1.116    Wed Dec 28 01:18 - 01:19  (00:01

[root@bash ~]# last -n2     #顯示行數為2行
root     pts/0        192.168.1.116    Wed Dec 28 19:23   still logged in   
root     tty2                          Wed Dec 28 07:43   still logged 

[root@bash ~]# last -20 #從後倒數顯示
root     pts/0        192.168.1.116    Wed Dec 28 19:23   still logged in   
root     tty2                          Wed Dec 28 07:43   still logged in   
root     pts/0        192.168.1.116    Wed Dec 28 06:32 - 19:23  (12:50)    
root     pts/1        192.168.1.116    Wed Dec 28 02:12 - 05:24  (03:12)    
root     pts/1        192.168.1.116    Wed Dec 28 02:11 - 02:12  (00:00)
...

lastlog:reports the most recent login of all users or of a given user

  -b, --before DAYS             print only lastlog records older than DAYS
  -h, --help                    display this help message and exit
  -R, --root CHROOT_DIR         directory to chroot into
  -t, --time DAYS               print only lastlog records more recent than DAYS
  -u, --user LOGIN              print lastlog record of the specified LOGIN

[root@bash ~]# lastlog  #顯示所有使用者記錄
Username         Port     From             Latest
root             pts/0    192.168.1.116    Wed Dec 28 19:23:08 +0800 2016
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
lp                                         **Never logged in**
sync                                       **Never logged in**
...

[root@bash ~]# lastlog -u root   #顯示root使用者登入記錄
Username         Port     From             Latest
root             pts/0    192.168.1.116    Wed Dec 28 19:23:08 +0800 2016

註:

lastlog 只是讀出 /var/log/lastlog 內的資訊

last 預設讀出 /var/log/wtmp 這個檔案,但是我們可以透過 -f 讀取不同的登入檔案信

範例:last -f /PATH/TO/LOG_NAME/

三、關機重新啟動相關命令shutdown,reboot,halt,poweroff

halt和poweroff兩者都是關機命令

powerooff #正常關機

poweroff -f  #強制關機,相當於切斷電源

reboot #正常重新啟動

reboot -f #強制重新啟動

reboot -p #切斷電源

shutdown:關機

shutdown [OPTIONS...] [TIME] [WALL...]

-r:reboot 重新啟動

-h:halt 關機

-c:取消關機

TIME:
    now:立刻
    +m:相對時間表示法,從命令提交開始多久後,例如+3 分鐘
    hh:mm:絕對時間表示法,具體時間

四、別名命令alias

功能說明:設定指令的別名。

語  法:alias[別名]=[指令名稱]

參  數 :若不加任何引數,則列出目前所有的別名設定。

舉 例 :

[root@bash ~]# alias
             alias egrep='egrep --color=auto'
             alias fgrep='fgrep --color=auto'
             alias grep='grep --color=auto'
             alias l='ls -CF'
             alias la='ls -A'
             alias ll='ls -alF'
             alias ls='ls --color=auto'

說 明:使用者可利用alias,自定指令的別名。若僅輸入alias,則可列出目前所有的別名設定。 alias的效力僅及於該次登入的操作。若要每次登入是即自動設好別名,可在/etc/profile或自己的~/.bashrc中設定指令的別名。

還有,如果你想給每一位使用者都生效的別名,請把alias la='ls -al' 一行加在/etc/bashrc最後面,bashrc是環境變數的組態檔 /etc/bashrc和~/.bashrc 區別就在於一個是設定給全系統一個是設定給單使用者使用。

利用alias可以把很長的命令變成任意我們喜歡的簡短的。

如果想永久生效,就把這條寫入到 /etc/bashrc裡面。

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-02/140322.htm


IT145.com E-mail:sddin#qq.com