Shell中必須掌握的基礎應用

2021-10-08 08:27:20 字數 3045 閱讀 6861

本案例要求熟悉linux shell環境的特點,主要練習以下操作:

切換使用者的shell環境

練習命令歷史、命令別名

重定向標準輸入/輸出/錯誤輸出

管道操作實踐

步驟一:切換使用者的shell環境

什麼是shell?

shell是在linux核心與使用者之間的直譯器程式,通常指的是bash,負責向核心翻譯及傳達使用者/程式指令。

shell的使用方式:

1.互動執行指令:人工干預,執行效率底。

2.非互動執行指令:安靜地在後台執行,執行效率高,方便寫指令碼。

若需要臨時使用另一種shell環境,可以直接執行對應的shell直譯器程式,比如只要執行ksh可以切換到ksh命令列環境。

1.	[root@dyy ~]# yum -y install ksh              //若缺少ksh請先安裝ksh包

2. .. ..

3. [root@dyy ~]# cat /etc/shells

4. /bin/sh

5. /bin/bash

6. /sbin/nologin

7. /bin/tcsh

8. /bin/csh

9. /bin/ksh //確認當前系統已識別ksh

10.

11. [root@dyy ~]# ksh //進入ksh環境

12. [root@sdyy]~# exit //返回到切換前的bash環境

若希望修改使用者的登入shell,管理員可以直接通過usermod(或useradd)命令設定。比如,以下操作可將使用者zhangsan的登入shell改為/bin/ksh:

1.	[root@dyy ~]# usermod -s /bin/ksh zhangsan              //執行修改操作

2. [root@dyy ~]# grep 'zhangsan' /etc/passwd

3. zhangsan:x:516:516::/home/zhangsan:/bin/ksh //修改後

步驟二:快捷鍵與tab鍵補齊,常見快捷鍵如表-1所示

[步驟三:練習命令歷史

1)檢查歷史命令的容量。

預設記錄1000條,通過全域性變數histsize設定,對所有使用者有效:

1.	[root@dyy ~]# grep histsize /etc/profile

2. 3. histsize=1000

檢視已為當前使用者記錄的歷史命令條數:

1.	[root@dyy ~]# history | wc -l

2. 1000

2)檢視歷史命令列表。

列出最近執行的10條歷史命令:

1.	[root@dyy ~]# history | tail

2. 1028 grep 'zhangsan' /etc/passwd

3. 1029 cat /etc/redhat-release

4. 1030 usermod -s /bin/tcsh zhangsan

5. 1031 grep 'zhangsan' /etc/passwd

6. 1032 su - zhangsan

7. 1033 echo 1234567 | passwd --stdin zhangsan

8. 1034 su - zhangsan

9. 1035 grep histsize /etc/profile

10. 1036 history | wc -l

11. 1037 history | tail

3)呼叫指定的歷史命令。

重新執行歷史命令列表中的第1028條操作:

1.	[root@dyy ~]# !1028

2. grep 'zhangsan' /etc/passwd

3. zhangsan:x:516:516::/home/zhangsan:/bin/bash

4)清空歷史的命令

1.	[root@dyy ~]# history -c                      //清空自己的歷史命令

2. [root@dyy ~]# > ~/.bash_history //清空記錄檔案

3. [root@dyy ~]# history //再次檢查歷史命令列表

4. 42 > ~/.bash_history

5. 43 history

步驟四:管道操作實踐

借助於管道符「|」,可以將一條命令的標準輸出交給另一條命令處理,在一條命令行內可依次使用多個管道。

1)統計/etc/目錄下資料的數量。

1.	[root@dyy ~]# ls -l /etc | wc -l

2. 254

2)列出yum庫里名稱中含cluster的軟體包。

1.	[root@dyy ~]# yum list | grep cluster

2. cluster-cim.x86_64 0.12.1-7.el5 rhel5-cluster

3. cluster-snmp.x86_64 0.12.1-7.el5 rhel5-cluster

4. … …

必須掌握的排序

大神總結的很好。學而時習之,善於總結。非常恨那些把演算法排序之類的搞得異常麻煩的人,盡可能簡單一點,簡單了,容易理解了,才好記,上了戰場,才用得著.人家的不好用,只好自己總結,重寫原理與過程.口訣 冒泡 n 1,n i 1,比的是j與j 1 插入 n 1,i 1,比的是i 1與j 選擇 n,n,開始...

設計師必須掌握的美術基礎

三大基本關係 首先我們要了解的是在美術裡最重要的三個主要關係,他們是 結構關係 素描關係 色彩關係。這三個關係簡單來說就是,結構關係是物體的透視關係 也就是近大遠小的空間關係 和物體的基本結構 可以把乙個複雜的物體拆解成基本的圓形 三角形 正方形 長方形等簡單容易描繪的結構 等,結構關係是我們如何理...

軟體測試基礎面試你必須掌握的

1 什麼是軟體測試?軟體測試的目的與原則?定義 在規定的條件下對程式進行操作,以發現程式錯誤 衡量軟體質量,並對其是否能滿足設計要求進行評估的過程。目的 在於發現錯誤 發現程式中存在的 或業務邏輯錯誤 檢驗產品是否符合使用者的需求 提高使用者體驗。原則 如二八原則 測試應盡早啟動 介入。2 什麼是軟...