Linux初體驗(三)
Shell
date
echo
alias
screen
安裝VMware Tools
Shell
用途說明
人機交互接口
Shell是Linux系統的用戶界面,是用戶操作Linux系統的一個直接工具,亦即人機交互接口,其既爲用戶提供了一個命令界面,也爲用戶命令提供解釋執行的能力,故而Shell也稱爲Linux的命令解釋器(command interpreter)。
在Shell中可執行的命令分爲兩類,內置命令與外部命令,所謂內置命令,即shell自帶的命令,可通過enable命令啓用或禁用;所謂外部命令,即系統某路徑下對應的可執行程序文件;此路徑可通過 which 和 whereis 進行查詢。另外,type 命令可區分內置命令與外部命令。
當執行一個外部命令後,它會緩存到內存中,可用 hash 命令進行查看,hash -d 可清除指定的命令緩存,hash -r 則表示清除所有緩存。
date
用途說明
顯示與修改時間
時間是一個永恆的話題,而 date 命令就是顯示日期與時間的。在Linux系統中,時間分爲系統時鐘與硬件時鐘,所謂系統時鐘,就是由Linux內核通過CPU的工作頻率而確定的;所謂硬件時鐘,就是在主板上的BIOS所確定的時間,並由主板電池供電來維持運行。
常用參數
+: 使用加號,自定義日期格式
-u: --utc,以UTC形式顯示時間與日期
%D: 輸出年/月/日的格式
%F: 輸出年-月-日的格式
使用示例
查看系統時鐘
[root@centos7 ~]# date Fri Jul 22 22:56:48 CST 2016
查看硬件時鐘
[root@centos7 ~]# clock Fri 22 Jul 2016 11:01:24 PM CST -0.557614 seconds
或者使用~]# hwclock 也行!
值得注意的是,系統時鐘與硬件時鐘有時會不一致,此時我們需要以準確的一個爲標準而調整另一個。比如我們將系統時間設置爲2008-08-0808:00,以硬件時間爲標準調整系統時間:
[root@centos7 ~]# date 080808082008 Fri Aug 8 08:08:00 CST 2008 [root@centos7 ~]# hwclock Fri 22 Jul 2016 11:11:54 PM CST -0.369548 seconds [root@centos7 ~]# clock -s [root@centos7 ~]# date Fri Jul 22 23:12:15 CST 2016 [root@centos7 ~]#
當然,如何是要以系統時間爲基準而調整硬件時間,則使用clock -w.
查看昨天的時間
[root@centos7 ~]# date -d yesterday Thu Jul 21 23:22:14 CST 2016
查看全日期
[root@centos7 ~]# date +%Y-%m-%d 2016-07-22 [root@centos7 ~]# date +%F 2016-07-22 [root@centos7 ~]# [root@centos7 ~]# date +%m/%d/%Y 07/22/2016 [root@centos7 ~]# date +%D 07/22/16
查看這一年過了多少天
[root@centos7 ~]# date +%j 204
查看格林威治時間
[root@centos7 ~]# date -u Fri Jul 22 15:28:10 UTC 2016
查看1970-01-01-00-00至今經過多少秒
[root@centos7 ~]# date +%s 1469201497
爲啥要查這個時間,呵呵,1970年乃Unix誕生之日!既然說到時間,再看看cal吧!
查看日曆
[root@centos7 ~]# cal July 2016 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [root@centos7 ~]# cal 2 2020 February 2020 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 [root@centos7 ~]# #再看一個有意思的事! [root@centos7 ~]# cal 9 1752 September 1752 Su Mo Tu We Th Fr Sa 1 2 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [root@centos7 ~]# #哇,時間怎麼會“飛躍”呢?!
echo
用途說明
echo命令的主要作用爲打印文本信息與確定環境變量的值
echo會將輸入的字符串送往標準輸出,而輸出的字符串默認會加上換行號。
echo "$VAR_NAME": 變量會替換,雙引號表弱引用
echo '$VAR_NAME': 變量不會替換,單綽號表強引用
常用參數
-n: 取消自動換行
-e: 打印轉義字符
若字符串中出現以下字符,-e 選項不會將其當成一般的文字處理,而是以下面的方式進行特殊處理:
\a 發出警告聲 \b 退格鍵 \c 最後不加上換行符號; \n 換行且光標移至行首; \r 光標移至行首,但不換行; \t 插入tab; \\ 插入\ 字符; \0nnn 插入nnn(八進制)所代表的ASCII字符 echo -e "\033[43;31mred color\033[0m" \xHH 插入HH(十六進制)所代表的ASCII字符
命令擴展行:$( ) 或 ``
使用示例
取消自動換行
[root@centos7 ~]# echo liansirliansir [root@centos7 ~]# echo -n liansirliansir[root@centos7 ~]#
對輸出信息進行轉義
[root@centos7 ~]# echo -e "\a" #一塊清脆的蜂鳴聲從耳旁閃過 [root@centos7 ~]# echo -e "liansir\c" liansir[root@centos7 ~]# [root@centos7 ~]# echo -e "lian\rsir" sirn [root@centos7 ~]# echo -e "lian\tsir" lian sir [root@centos7 ~]# echo -e "lian\\sir" lian\sir [root@centos7 ~]# echo -e "lian\0110sir" lianHsir [root@centos7 ~]# echo -e "\033[43;31mred color\033[0m" red color #red color顯示爲黃底紅字! [root@centos7 ~]# echo -e "lian\xACsir"liansir
使用擴展行
把一個命令的輸出打印給另一個命令的參數:$() 或 ``
[root@centos7 ~]# hostname centos7.liansir [root@centos7 ~]# echo "This system's name is $(hostname)" This system's name is centos7.liansir [root@centos7 ~]# echo " i am `whoami` " i am root
括號擴展
打印重複字符串的簡要形式:{}
[root@centos7 ~]# echo file{1,3,5} file1 file3 file5 [root@centos7 ~]# rm -f file{1,3,5}
查看環境變量的值
[root@centos7 ~]# echo $USER root [root@centos7 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@centos7 ~]#
alias
用途說明
設置命令別名
在linux系統中,如果命令太長,也不符合用戶習慣,那麼,我們可以用 alias 這個命令來進行命令的別名設置,以提高我們的工作效率。
常用參數
alias 或 alias -p
:顯示所有的命令別名
alias name='COMMAND'
:別名定義格式
alias name
:顯示指定的別名設置
unalias name
:取消指定的別名設置
使用示例
顯示當前的別名設置
[root@centos7 ~]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i'alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' [root@centos7 ~]# type alias alias is a shell builtin
設置與取消別名
[root@centos7 ~]# alias clr='clear' [root@centos7 ~]# unalias clr
由此可見,不管是內置命令還是外部命令,都是可以設置別名的,而在命令的執行中,內置命令的執行級別是高於外部命令的,那別名又處在什麼等級呢?別名的執行等級是高於內置命令的。思考:如何證明呢?
screen
用途說明
遠程會話管理
系統管理員有時需要SSH或telnet到Linux服務器,進行一些較耗時的常規操作,如系統備份、ftp傳輸等,一般我們會爲這樣的一個任務開啓一個遠程終端窗口。注意,期間不允許中斷連接,否則相關任務則前功盡棄。另外,成功發起一個會話請求的前提條件是:同一用戶登陸同一主機。
常用參數
-S: sessionname,會話請求
-ls: 顯示所有已經打開的screen.
-x: Attach to a not detached screen session,登陸沒有分離的會話
-r: sessionowner/[pid.tty.host],恢復某screen.
Ctrl+a,d: 剝離當前screen.
使用示例
用戶A發起會話請求
[root@centos7 ~]# screen -S sirhelp [root@centos7 ~]#
用戶B查看會話請求
[root@centos7 ~]# screen -ls There are screens on: 12172.sirhelp (Attached) 12121.sirhelp (Attached) 12083.sirhelp (Attached) 3335.help (Detached) 4 Sockets in /var/run/screen/S-root. [root@centos7 ~]#
用戶B登陸會話請求
[root@centos7 ~]# screen -x 12172 [root@centos7 ~]#
此時,用戶A與用戶B實現會話共享!即雙方的界面操作對方都能看見!
安裝VMware Tools
用途說明
實現物理機與虛擬機之間的無縫操作
所謂無縫操作,如可以實現物理機與虛擬機之間的文件可以直接來回複製、粘貼等。
步驟
在VMware中,點擊虛擬機,選擇安裝VMware Tools.
使用df命令,查看VMware Tools的位置
將VMwareTools-###.##.tar.gz複製到要安裝的目錄
進入自定義的安裝目錄,解壓.tar.gz包,cd vmware-tools-distrib目錄下
安裝.pl文件,./ vmware-install.pl d (加上d可默認安裝)
重啓系統,reboot或init 3 然後 init 5
[root@centos6 ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 100660656 4589248 90951408 5% / tmpfs 953648 224 953424 1% /dev/shm /dev/sda1 194241 39141 144860 22% /boot /dev/sda3 20027260 333816 18669444 2% /testdir /dev/sr0 72414 72414 0 100% /media/VMware Tools [root@centos6 ~]# cd /media/VMware\ Tools/ [root@centos6 VMware Tools]# lsmanifest.txt VMwareTools-10.0.6-3595377.tar.gz vmware-tools-upgrader-64 run_upgrader.sh vmware-tools-upgrader-32 [root@centos6 VMware Tools]# cp VMwareTools-10.0.6-3595377.tar.gz /testdir [root@centos6 testdir]# tar xvf VMwareTools-10.0.6-3595377.tar.gz [root@centos6 testdir]# cd vmware-tools-distrib/ [root@centos6 vmware-tools-distrib]# ls bin doc FILES installer vgauth vmware-install.real.pl caf etc INSTALL lib vmware-install.pl [root@centos6 vmware-tools-distrib]# ./vmware-install.pl d
當出現以下Enjoy時,表明你已安裝成功,重啓系統,發現centos 6的界面變大了!
Enjoy, --the VMware teamFound VMware Tools CDROM mounted at /media/VMware Tools. Ejecting device /dev/sr0 ...
小練習
利用date命令顯示前10與後20天的年月日
[root@centos7 ~]# date -d "-10 day" +%Y-%m-%d 2016-07-13 [root@centos7 ~]# date -d "+20 day" +%Y-%m-%d 2016-08-12
利用echo命令顯示一個閃爍帶下劃線五彩的倒三角
[root@centos7 ~]# echo -e "\033[1;31;5;4m*******\n\e[0m \033[2;32;5;4m*****\n\e [0m \033[3;33;5;4m***\n\e[0m \033[4;34;5;4m*\e[0m" ******* ***** *** * [root@centos7 ~]#
2016.7.23