Linux基礎 -02
3.4 虛擬機器快照技術
- 什麼是快照
3.5 虛擬機器克隆技術
- 什麼是克隆
4.Bash Shell快速入門
4.1 什麼是Bash Shell
bash shell是一個命令直譯器,主要負責使用者程式與核心進行互動操作的一種介面,將使用者輸入的命令翻譯給核心,由核心驅動硬體,最終將處理後的結果輸出至bash shell螢幕終端
我們如何開啟 Bash Shell 呢?
當我們使用遠端連線工具連線 linux 服務,系統則會給開啟一個預設的 shell ,我們可在這個介面執行命令、比如:獲取系統當前時間,建立一個使用者等等
4.2 Bash shell 能幹什麼
- 使用shell實現對linux系統的大部分管理 eg:
- 1.檔案管理
- 2.許可權管理
- 3.使用者管理
- 4.磁碟管理
- 5.網路管理
- 6.服務管理
- 7.服務管理
- 8.等等
4.3 如何使用bash shell
- 單條命令-->效率低-->適合少量的工作
- shell指令碼-->效率高-->適合重複性工作
- 例如:建立100個使用者,單純輸入命令需要執行100次,而用shell指令碼則輕鬆解決
[root@web ~]# cat useradd.sh
#!/usr/bin/bash
# 批量建立指令碼
for i in {1..100}
do
useradd alice-$i
echo "alice-$i" is create ok..
done
4.4 bash shell 提示符
當我們開啟或者登陸到一個終端的時候都會顯示一長串提示符[root@web ~]#
提示符一般包含當前登陸的使用者名稱,主機名,以及當前工作的路徑等
4.5 bash shell 基礎語法
bash shell命令列,為使用者提供命令輸入,然後將執行結果返回給使用者;
命令示例如下:
[root@web ~]# ls # 命令
[root@web ~]# ls -a # 命令+選項
[root@web ~]# ls -a /home/ # 命令+選項+引數
- 命令:整條shell命令的主體功能
- 選項:用於調節命令的具體功能
- 以 - 引導短格式選項(單個字元),例如 -a
- 以 -- 引導長格式選項(多個字元), 例如 --all
- 多個短格式選項可以寫在一起,eg: -al
- 引數:命令操作的物件,如檔案,目錄名等
- 注意:命令必須開頭,選項和引數位置可以發生變換
4.6 bash shell 的基本特性
4.6.1 補全功能tabs
-
1.命令補全:當忘記命令時,可以使用tabs進行補全;
-
2.目錄補全:當需要查詢檔案目錄層級比較多時,可以使用tabs快速補全,減少出錯;
-
#檢視ip時忘記具體了命令 [root@web ~]# ifcon #按下tab鍵會自動補全 [root@web ~]# ifconfig #按一下tab鍵沒有反應, 按兩下tab鍵列出所有if開頭的命令 [root@web ~]# if if ifconfig ifenslave ifrename ifcfg ifdown ifnames ifup #linux目錄較深,經常使用tab鍵進行補全, 如果路徑出錯是沒有辦法 補全 [root@web ~]# ls /etc/sysconfig/network-scripts/
4.6.2 常用快捷鍵ctrl
- 命令快捷鍵,可以幫助我們大大提升效率
- ctrl + a :游標跳轉至正在輸入的命令列的首部
- ctrl + e :游標跳轉至正在輸入的命令列的尾部
- ctrl + c :終止前臺執行的程式
- ctrl + d :在shell中,表示退出當前shell
- ctrl + z :將任務暫停,掛至後臺
- ctrl + l :清屏,和clear命令等效
- ctrl + k :刪除游標到行末的所有字元
- ctrl + u :刪除游標到行首的所有字元
- ctrl + r :搜尋歷史命令,利用關鍵字
4.6.3 歷史記錄 history
歷史記錄可用於追述系統之前執行過什麼命令,造成的故障;之前發生過什麼情況
1.使用雙 !! 可執行上一條執行過的命令
[root@web ~]# ls
file.txt
[root@web ~]# !!
ls
file.txt
-
輸入 !6 ,執行history命令歷史中第6行命令
-
使用 !cat ,呼叫history 命令歷史最近一次執行過的cat命令
[root@web ~]# cat /etc/sysconfig/network- scripts/ifcfg-eth0 [root@web ~]# !cat cat /etc/sysconfig/network-scripts/ifcfg-eth0
4.6.4 命令別名 alias
命令別名將使用者經常使用的複雜命令簡單化,可以用alias 別名 名稱='命令'建立屬於自己的命令別名,若要取消一個命令別名,則是用unalias別名名稱;
1.定義臨時別名,wk 為檢視 eth0 網絡卡別名
[root@web ~]# alias wk='ifconfig'
[root@web ~]# wk
2.如果定義命令本身,會執行什麼?
[root@web ~]# alias ifconfig='ifconfig eth0'
#絕對路徑執行, 呼叫命令本身
[root@web ~]# /sbin/ifconfig
#通過\轉義字元, 呼叫命令本身
[root@Web ~]# \ifconfig
3.取消別名
[root@web ~]# unalias ifconfig
4.永久生效,/etc/bashrc
[root@web ~]# echo "alias ifconfig='ifconfig eth0'"
>> /etc/bashrc
4.6.5 幫助手冊help
1.命令 --help 幫助
[root@web ~]# ls --help
用法: ls [選項]...[檔案]...
2.命令 man 手冊
# man ls #檢視ls命令的手冊
3.linux 命令大全 url 傳送門
https://www.runoob.com/linux/linux-command-manual.html
02.Linux檔案管理
1. 檔案管理概述
談到Linux檔案管理,首先我們需要了解的就是,我們要對檔案做些什麼事情?
其實無非就是對一個檔案進行,建立,輔助,移動,檢視,編輯,壓縮,查詢,刪除,等等
如:當我們想修改系統的主機名稱,是否應該知道檔案在哪,才能去做對應的修改?
1.1 系統目錄結構
幾乎所有的計算機作業系統都是使用目錄結構組織檔案.具體來說就是在一個目錄中存放子目錄和檔案,而在子目錄中又會進一步存放子目錄和檔案,以此類推形成一個樹狀的檔案結構,由於其結構很像一棵樹的分支,所以該結構又稱為"目錄樹"
windows:以多根的方式組織檔案 C:\ D:
Linux : 以單根的方式組織檔案 /
1.1.1 命令相關的目錄 /bin
- 存放命令相關的目錄
- /bin 普通使用者使用的命令 /bin/ls /bin/date
- /sbin 管理員使用的命令 /sbin/service
1.1.2 使用者家相關目錄/home
-
存放使用者相關資料的家目錄,比如 windows 不同的使用者登入系統顯示的桌面背景不一樣
- /home 普通使用者家目錄,預設/home/username
- /root 超級管理員root的家目錄,普通使用者無權操作
1.1.3 系統檔案目錄/usr
-
存放系統相關檔案的目錄
- /usr 相當於 C:\windows
- /usr/local 軟體安裝的目錄,相當於C:\Program
- /usr/bin/ 普通使用者使用的應用程式(重要)
- /usr/sbin/ 管理員使用的應用程式(重要)
- /usr/lib 庫檔案 Glibc 32bit
- /usr/lib64 庫檔案Glibc 64bit
1.1.4 系統啟動目錄/boot
-
存放系統啟動時核心與grub引導選單
- /boot 存放的系統啟動相關的檔案.如:kernel , grub(引導裝載程式)
1.1.5 配置檔案目錄/etc
- /etc 存放系統配置檔案目錄,後續所有服務的配置都在這個目錄中
- /etc/sysconfig/network-script/ifcfg- ,網路配置檔案
- /etc/hostname 系統主機名配置檔案
1.1.6 裝置相關目錄 /dev
-
/dev存放裝置檔案的目錄,比如硬碟,硬碟分割槽,光碟機,等等
- /dev/null 黑洞裝置,只進不出.類似於垃圾回收站
- /dev/random 生成隨機數的裝置
- /dev/zero 能源源不斷的產生資料,類似於提款機,
1.1.7 可變的目錄 /var
- /var 存放一些變化的檔案.比如/var/log/ 下的日誌檔案
- /var/tmp 程序產生的臨時檔案
- /tmp 系統臨時目錄(類似於公共廁所)
1.1.8 虛擬系統目錄/proc
- 虛擬的檔案系統(如對應的程序停止則/proc下對應目錄則會被刪除)
- /proc 反映當前系統正在執行程序的實時狀態,類似於汽車在執行中的儀表盤,能夠看到汽車的油耗,時速,轉向燈,故障等等
1.2 檔案路徑定位
在我們開始操作檔案之前,首先需要對檔案的路徑進行定位
1.2.1 為什麼要進行定位
- 你要在哪個目錄下建立檔案?
- 你要將檔案複製到什麼地方?
- 你要刪除的檔案在什麼地方?
1.2.2 如何對檔案進行定位
比如: /etc/hostname 整個檔案中包含檔名稱以及檔案所
在的位置,我們將這個叫做路徑,也就是說我們是通過路徑
對檔案進行定位。例:下圖所示的 message 所在的路徑是?
FQ1: /home/boy/file 和 /home/oldgirl/file 是否是同
一個檔案?
FQ2: /abc/test 和 abc/test 是一樣的嗎?
- 不一定:取決於你當前所在的位置;
1.2.3 絕對路勁與相對路勁
- 絕對路徑: 只要從/開始的路徑,比如 /home/alice/file
- 相對路徑: 相對於當前目錄來說,比如 a.txt ./a.txt
../bob/a.mp3 - . 和 .. 的是什麼意思
- 一個點代表當的是當前目錄;
- 兩個點代表的是當前目錄的上層目錄;
- 小結:所謂的(.)和(..)目錄實際上屬於相對路徑的一種表示
形式;
1.2.4 路徑切換命令 cd
例子:
# cd 絕對路徑 cd /etc/hostname
# cd 相對路徑 cd test/abc cd . cd ..
-------------------------------------
# cd #切換目錄,例: cd /etc
# cd - #切換回上一次所在的目錄
# cd ~ #切換回當前使用者的家目錄,注意:root和普通使用者
是否有所不同嗎?
# cd . #代表當前目錄,一般在拷貝、移動等情況下使用
cp /etc/hostname ./
# cd .. #切換回當前目錄的上級目錄
2.檔案管理命令
2.1 檔案操作命令
2.1.1 touch 檔案建立
# touch file #無則建立,有則修改
時間
# touch file2 file3
# touch /home/od/file4 file5
# touch file{a,b,c} #{}集合,等價
touch a b c
# touch file{1..10}
# touch file{a..z}
2.1.2 mkdir 目錄建立
# 選項:-v 顯示詳細資訊 -p 遞迴建立目錄
# mkdir dir1
# mkdir /home/ob/dir1 /home/ob/dir2
# mkdir -v /home/ob/{dir3,dir4}
# mkdir -pv /home/ob/dir5/dir6
# mkdir -pv /home/{ob/{diu,but},boy}
2.1.3 tree顯示目錄結構
# 選項: -L: 顯示目錄樹的層級
# tree /home/ob/ #顯示當前目錄下的結構
/home/ob/
├── but
├── dir1
├── dir2
├── dir3
├── dir4
├── dir5
│ └── dir6
└── diu
2.1.4 cp 檔案或目錄複製
#選項: -v:詳細顯示命令執行的操作 -r: 遞迴處理目錄與子
目錄 -p: 保留原始檔或目錄的屬性
# cp file /tmp/file_copy
# cp name /tmp/name #不修改名稱
# cp file /tmp/ #不修改名稱
# cp -p file /tmp/file_p #-p保持原檔案或目錄的屬
性
# cp -r /etc/ /tmp/ #複製目錄需要使用-r參
數, 遞迴複製
# cp -rv /etc/hosts /etc/hostname /tmp #拷貝多個
檔案至一個目錄
# cp -rv /etc/{hosts,hosts.bak}
# cp -rv /etc/hosts{,-org}
2.1.5 mv 檔案移動命令
# mv file file1 #原地移動算改名
# mv file1 /tmp/ #移動檔案至tmp目錄
# mv /tmp/file1 ./ #移動tmp目錄的檔案至當
前目錄
# mv dir/ /tmp/ #移動目錄至/tmp目錄下
# touch file{1..3}
# mv file1 file2 file3 /opt/ #移動多個檔案或至
同一個目錄
# mkdir dir{1..3}
# mv dir1/ dir2/ dir3/ /opt #移動多個目錄至同
一個目錄
2.1.6 rm 檔案或目錄刪除
#選項:-r: 遞迴 -f: 強制刪除 -v: 詳細過程
# rm file.txt #刪除檔案, 預設rm存在alias別
名,rm -i所以會提醒是否刪除檔案
# rm -f file.txt #刪除檔案, 不提醒
--------------------------------
# rm -r dir/ #遞迴刪除目錄,會提示
# rm -rf dir/ #強制刪除目錄,不提醒(慎用)
--------------------------------
#1.rm刪除示例
# mkdir /home/dir10
# touch /home/dir10/{file2,file3,.file4}
# rm -f /home/dir10/* //不包括隱藏檔案
# ls /home/dir10/ -a
. .. .file4
--------------------------------
#2.rm刪除示例2
# touch file{1..10}
# touch {1..10}.pdf
# rm -rf file*
# rm -rf *.pdf
2.2 檔案檢視類命令
2.2.1 cat命令
#------cat
# cp /etc/passwd ./pass
# cat pass #正常檢視檔案方式
# cat -n pass #-n顯示檔案有多少行
# cat -A pass #檢視檔案的特殊符號,比如檔案中存在tab
鍵
# tac pass #倒序檢視檔案
2.2.2 less / more 命令
#------less、more
# less /etc/services #使用游標上下翻動,空格進行
翻頁,q退出
# more /etc/services #使用回車上下翻動,空格進行
翻頁,q退出