Linux初體驗(三)

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所確定的時間,並由主板電池供電來維持運行。

常用參數

  1. +: 使用加號,自定義日期格式

  2. -u: --utc,以UTC形式顯示時間與日期

  3. %D: 輸出年/月/日的格式

  4. %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': 變量不會替換,單綽號表強引用

常用參數

  1. -n: 取消自動換行

  2. -e: 打印轉義字符

若字符串中出現以下字符,-e 選項不會將其當成一般的文字處理,而是以下面的方式進行特殊處理:

\a 發出警告聲
\b 退格鍵
\c 最後不加上換行符號;
\n 換行且光標移至行首;
\r 光標移至行首,但不換行;
\t 插入tab;
\\ 插入\ 字符;
\0nnn 插入nnn(八進制)所代表的ASCII字符
echo -e "\033[43;31mred color\033[0m"
\xHH 插入HH(十六進制)所代表的ASCII字符
  1. 命令擴展行:$( ) 或 ``

使用示例

取消自動換行

[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 這個命令來進行命令的別名設置,以提高我們的工作效率。

常用參數

  1. alias 或 alias -p

    :顯示所有的命令別名

  2. alias name='COMMAND'

    :別名定義格式

  3. alias name

    :顯示指定的別名設置

  4. 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傳輸等,一般我們會爲這樣的一個任務開啓一個遠程終端窗口。注意,期間不允許中斷連接,否則相關任務則前功盡棄。另外,成功發起一個會話請求的前提條件是:同一用戶登陸同一主機。

常用參數

  1. -S: sessionname,會話請求

  2. -ls: 顯示所有已經打開的screen.

  3. -x: Attach to a not detached screen session,登陸沒有分離的會話

  4. -r: sessionowner/[pid.tty.host],恢復某screen.

  5. 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實現會話共享!即雙方的界面操作對方都能看見!

wKiom1eTXPezlvtuAAEm4mYrycc046.png-wh_50

安裝VMware Tools

用途說明

實現物理機與虛擬機之間的無縫操作

所謂無縫操作,如可以實現物理機與虛擬機之間的文件可以直接來回複製、粘貼等。

步驟

  1. 在VMware中,點擊虛擬機,選擇安裝VMware Tools.

  2. 使用df命令,查看VMware Tools的位置

  3. 將VMwareTools-###.##.tar.gz複製到要安裝的目錄

  4. 進入自定義的安裝目錄,解壓.tar.gz包,cd vmware-tools-distrib目錄下

  5. 安裝.pl文件,./ vmware-install.pl d (加上d可默認安裝)

  6. 重啓系統,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 ~]#


wKiom1eaGafR3ZfwAABxDS3I9Iw396.gif

2016.7.23


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章