Linux達人養成計劃(慕課網筆記)
阿新 • • 發佈:2018-12-06
一、Linux簡介 1、Linux分為核心版和發行版 2、Window是與Linux的區別 (1)Linux嚴格區分大小寫 (2)Linux中所有內容以檔案形式儲存,包括硬體 (3)Linux沒有副檔名概念 即Linux不靠副檔名區分檔案型別(靠許可權區分),但會有一些約定尋常的副檔名區分 壓縮包:“*.gz”、”*.bz2”、”*.tar.bz2”、”*.tgz”等 二進位制軟體包:”*.rpm” 網頁檔案:”*.html”、”*.php” 指令碼檔案:”*.sh” 配置檔案:”*.conf” (4)Windows下的程式不能直接在Linux中安裝和執行 好處:病毒和木馬不能執行 壞處:要針對Linux單獨開發 3、字元介面的優勢 (1)字元介面佔用系統資源少 (2)字元介面較少了出錯、被攻擊的可能性 二、Linux安裝 1、虛擬機器的安裝(VMware) http://www.vmware.com 7(Windows7裝不了)、8 建議配置: CPU:主頻1GHz 記憶體:1GB以上 硬碟:8GB
2、虛擬機器使用
VMware_install_cleaner 刪除虛擬機器
3、系統分割槽只分區與格式化
(1)分割槽:將硬碟邏輯上分為幾個不同儲存空間儲存資料
(2)分割槽型別:(通用)
主分割槽:最多隻能有四個
擴充套件分割槽: 最多隻能有一個
主分割槽加擴充套件分割槽最多有四個
不能寫入資料,只能包含邏輯分割槽
邏輯分割槽
(3)格式化:只根據使用者選定的檔案系統(如FAT16(最大支援2GB分割槽)、FAT32(單個檔案大小不能超過4GB,支援分割槽大小能達到16GB)、NTFS、EXT2、EXT3、EXT4等) ,在磁碟的特定區域寫入特定資料,在分割槽中劃出一片用於存放檔案分配表、目錄表等用於檔案管理的磁碟空間。
首先將磁碟分為等大小的資料塊(4kb一個),在分割槽列表裡建立二維表格(ID號(I節點)、修改時間、許可權、檔案儲存位置)
4、分割槽之分割槽裝置檔名與掛載
分割槽,格式化,(起名Linux)、分配碟符
/:根目錄
dev:硬體裝置檔案
hd:硬碟
sd:SCSI或SATA或USB硬碟
cdrom或hdc:光碟機
fd:軟盤
lp:印表機(25針)
usb/lp:印表機(USB)
mouse:滑鼠
(1)裝置檔名:例——/dev/sda1:第一塊(a)SATA介面硬碟的第一個(1)分割槽
sda1中1的位置上1、2、3、4只能給主分割槽命名,即使主分割槽只有兩個,第一個邏輯分割槽也是5
(2)掛載點(Linux)=碟符(Windows)
掛載:給分割槽分配碟符的過程
必須分割槽:/(根分割槽)、swap分割槽(交換分割槽,記憶體2倍(記憶體4GB之內)、同記憶體相同(記憶體大於4GB)(虛擬記憶體))
推薦分割槽:/boot(啟動分割槽,200M)(系統啟動至少需要幾十MB)
掛載:把碟符和分割槽連線在一起的過程
掛載點:目錄
5、Linux安裝
中文外掛:zhcon
6、Xshell的安裝和使用
先設定地址
三、Linux常用命令1、命令基本格式
命令 【選項】 【引數】(個別命令不遵循)
當有多個選項是,可以寫在一起 -L和-a 可寫成-aL
簡化選項與完整選項 -a=--all
ls【選項】 【檔案或目錄】(操作物件) (不加選項,不加檔案也出現)
選項:
-a 顯示所有檔案,包括隱藏檔案
-l 顯示詳細資訊
-d 檢視目錄屬性
-h 人性化顯示檔案大小
-i 顯示inode(i節點)
許可權:(10位)
-rw-r--r--:-檔案型別(-檔案、d目錄、l軟連結檔案(快捷方式)、塊裝置檔案、字元裝置檔案、套接字檔案、管道檔案。只要求掌握前三個,後四個特殊)
除去第一位,後面每三位為一組,代表檔案的(u)所有者、(g)所屬組、(o)其他人三個身份。r讀 w寫 x執行
使用者組:相同身份,相同許可權的人
輸入ls -l出現:
許可權 .(ACL許可權) 引用計數 檔案所有者 所屬組 檔案大小(位元組(-l變為-lh會變為XX K) 最後一次修改時間 檔名
若不加引數則是對當前檔案進行操作
隱藏檔案:系統檔案若非必要不要操作,另一可能為病毒、木馬
2、檔案處理命令
建立目錄:mkdir mkdir -p【目錄名】 (-p為遞迴建立建(建立多個目錄))
切換目錄:cd
簡化操作:cd ~、cd 進入當前使用者的家目錄 cd - 進入上次目錄
cd .. 進入上一級目錄 cd . 進入當前目錄
相對路徑,絕對路徑
Tab鍵可補全目錄或命令
pwd:顯示當前所在位置
刪除目錄:-r 刪除檔案 -f 強制
rmdir【目錄名】(只能刪除空白目錄)
rm -rf【目錄名】強制刪除所選目錄
複製命令:cp
cp 【選項】 【原始檔或目錄】 【目標目錄】
選項:
-r 複製目錄
-p 連帶檔案屬性複製
-d 若原檔案是連結檔案,則複製連結
-a 相當於 -pdr(複製檔案和原檔案一模一樣)
mv 【原檔案或目錄】 【目標目錄】
也可以改名,當原檔案和目標檔案在同一個目錄
3、常用目錄的作用
/ 根目錄
/bin和/sbin 命令儲存目錄(普通使用者就可以讀取的命令)
/boot 啟動目錄,啟動相關檔案
/dev 裝置檔案儲存目錄
/etc 配置檔案儲存目錄
/home 普通使用者的家目錄
/lib 系統庫儲存目錄
/mnt 系統掛載目錄
/media 掛載目錄
/root 超級使用者的家目錄 /proc和sys 目錄不能直接操作,這兩個目錄儲存的是記憶體的過載點 /tmp 臨時目錄 /usr 系統軟體資源目錄 /usr/bin/ 系統命令(普通使用者) /usr/sbin/系統命令(超級使用者) /var 系統相關文件內容 4、連結命令:ln ln -s [原始檔][目標檔案] -s建立軟連線 硬連線特徵:1、擁有相同的i節點和儲存block塊,可看做是同一個檔案 2、可通過i節點識別 3、不能跨分割槽 4、不能針對目錄使用 (類似於同一個教室的前後門) 軟連線特徵: 1、類似Windows快捷方式 2、軟連線擁有自己的I節點和Block塊,但是資料塊中只儲存原檔案的檔名和I節點號,並沒有實際的檔案資料 3、lrwxrwxrwx l軟連線 (軟連線檔案許可權都為rxwrxwrxw) 4、修改任意檔案,另一個都改變 5、刪除原檔案,軟連線不能使用 做軟連線原檔案要寫絕對路徑,除非在同一路徑下 5、檔案搜尋命令 (1)locate 【檔案】 在後臺數據庫中按檔名搜尋,搜尋速度快 /var/lib/mlocate #locae命令所搜尋的後臺資料庫(資料庫每天更新一次) updatedb 強制更新資料庫 缺點:只能按照檔名來搜尋 /etc/updatedb.comf配置檔案(conf一般為配置副檔名) PRUNE_BIND_MOUNTS="yes" #開啟搜尋限制 PRUNEFS= #搜尋時,不搜尋的檔案系統 PRUNENAMES= #搜尋時,不搜尋的檔案型別 PRUNEPATHS= #搜尋時,不搜尋的路徑 (2)命令的搜尋命令whereis與which —— whereis 命令名 #搜尋命令所在路徑及幫助文件所在位置 -b:只查詢可執行檔案 -m:只查詢幫助檔案 ——which 檔名 搜尋命令的位置和別名,有的也不會顯示 cd:shell內建命令,不需要有獨立執行檔案 PATH環境變數:定義的是系統搜尋命令的路徑 【[email protected] ~】#echo $PATH /usr/lib/pt-3.3/bin: /ust/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 執行自己寫的指令碼必須加絕對路徑,否則要放在PATH環境變數中 (3)檔案搜尋命令find 格式:find【搜尋範圍】【搜尋條件】 #搜尋檔案 find / -name install.log #避免大範圍搜尋,會非常耗費系統資源 #find是在系統當中搜尋符合檔案的檔名。如果需要匹配,使用萬用字元匹配,萬用字元是完全匹配 萬用字元:*——匹配任意內容 【】——匹配任意一箇中括號內的字元 ?——匹配任意一個字元 find /root -iname install.log #不區分大小寫 find /root -ust root #按所有者搜尋 find /root -nouser #查詢沒有所有者的檔案
沒有所有者的目錄一般為垃圾檔案,但是如果檔案由核心產生,就沒有所有者(proc,sys中),外來檔案如U盤、光碟中的檔案也沒有所有者
find /var/log/ -mtime +10 #查詢10天前修改的檔案
-10:10天內修改檔案 10:10天當天修改的檔案
atime 檔案訪問時間 ctime 改變檔案屬性時間 mtime 修改檔案內容時間
find . -size 25k #查詢檔案大小為25k檔案
-25k 小於25KB的檔案 25k 等於25KB的檔案 +25k 大於25KB的檔案 (若是查詢兆位元組,必須用M,千位元組用k) size預設單位是資料塊
512位元組)
find . -inum 262422 #查詢i節點是262422的檔案
find /etc/ -size +20k -a -size -50k #查詢/etc/目錄下,大於20KB並且小於50KB的檔案
-a and 邏輯與 -o or 邏輯或
find /etc -size +20k -a -size -50k -exec ls -lh {} \; #查詢/etc/目錄下,大於20KB並且小於50KB的檔案,並顯示詳細資訊
#-exec/-ok命令{}\; 對搜尋結果執行操作 (4)字串搜尋命令grep grep 【選項】 字串 檔名 #在檔案中匹配符合田間的字串 選項: -i 忽略大小寫 -v 排除指定字元 (5)find命令與grep命令的區別 find:在系統當中搜尋符合條件的檔名,如果需要匹配,使用萬用字元匹配,萬用字元是完全匹配。 grep:在檔案當中搜尋符合條件的字串,如果需要匹配,使用正則表示式進行匹配,正則表示式是包含匹配(包含字元的檔案都能搜到) 若搜尋是檔名稱,使用萬用字元,若搜尋檔案中內容,用正則表示式匹配 6、幫助命令 (1)man (manual的縮寫) man 命令 #獲取指定命令的幫助 例:man ls #檢視ls的幫助 /選項:尋找該選項的幫助 man的級別: 1:檢視命令的幫助 2:檢視可被核心呼叫的函式幫助 3:檢視函式和函式庫的幫助 4:檢視特殊檔案的幫助(主要是/dev(硬體)目錄下的檔案) 5:檢視配置檔案的幫助 6:檢視遊戲的幫助 7:檢視其他雜項的幫助 8:檢視系統管理員可用命令的幫助 9:檢視和核心相關檔案的幫助 man -f 命令 相當於 whatis 命令 man -數字 開啟相應等級 man -k 命令 相當於 apropos 命令 只要包含關鍵字的有關檔案全部顯示 (2)其他幫助命令 選項幫助: 命令 --help #獲取命令選項的幫助 shell內部命令幫助和man差不多: help shell內部命令 #獲取shell內部命令的幫助 info命令 按 回車: 進入子幫助頁面(帶有*標記) 按 u: 進入上層頁面 按 p: 進入上一個幫助小節 按 n: 進入下一個幫助小節 按 q: 退出 7、壓縮與解壓縮命令 常用壓縮格式:.zip .gz .rar .bz2 .tar.gz .tar.bz2 (1).zip格式壓縮 zip 壓縮檔名(不一定要寫字尾名) 原始檔 #壓縮檔案 軟體包為紅色 zip -r 壓縮檔名 源目錄 #壓縮目錄 解壓縮:unzip 壓縮檔案 #解壓縮.zip檔案 (2).gz格式壓縮 gzip 原始檔 #壓縮為.gz格式的壓縮檔案,原始檔會消失 gzip -c 原始檔 > 壓縮檔案 #壓縮為.gz格式,原始檔保留 gzip -r 目錄 #壓縮目錄下所有的子檔案,但是不能壓縮目錄 解壓縮:gzip -d 壓縮檔案 #解壓縮檔案 gunzip 壓縮檔案 #解壓縮檔案 (3).bz2格式壓縮 bzip2 原始檔 #壓縮為.bz2格式,不保留原始檔 bzip2 -k 原始檔 #壓縮之後保留原始檔 不能壓縮目錄 解壓縮:bzip2 -d 壓縮檔案 #解壓縮,-k保留壓縮檔案 bunzip2 壓縮檔案 #解壓縮,-k保留壓縮檔案 (4)打包命令tar tar -cvf 打包檔名 原始檔 選項: -c: 打包 -v: 顯示過程 -f: 指定打包後的檔名 解打包命令: tar -xvf 打包檔名 選項:-x 解打包 .tar.gz格式是先打包為.tar格式,再壓縮為.gz格式 tar -zcvf 壓縮包名.tar.gz 原始檔 選項: -z:壓縮為.tar.gz格式 tar -zxvf 壓縮包名.tar.gz 選項: -x:解壓縮.tar.gz格式 tar -jcvf 壓縮包名.tar.bz2 原始檔 選項: -z:壓縮為.tar.bz2格式 tar -jxvf 壓縮包名.tar.bz2 選項: -x:解壓縮.tar.bz2格式 解壓縮目錄在之後加 -C 目錄 就能把壓縮包放到所寫目錄裡 壓縮多個目錄在壓縮包之前加絕對路徑 tar -ztvf 壓縮檔案 只檢視不解壓 8、關機和重啟命令 (1) shutdown命令
【[email protected] ~】#shutdown[選項]時間
選項: -c:取消前一個關機命令 -h:關機 -r:重啟
時間:now (加&表示將這條命令放在後臺執行,因為這條命令後電腦將不在有反應)
Ctrl+c:取消命令 儘量避免遠端關機(?)
(2)其他關機命令
[[email protected] ~]# halt
[[email protected] ~]# poweroff
[[email protected] ~]# init 0
但是不是太安全,不會在關機重啟是正確儲存檔案
(3)其他重啟命令
[[email protected] ~]# reboot
[[email protected] ~]# init 6 init:呼叫系統級別
(4)系統執行級別
0 關機
1 單使用者:Windows中安全模式,啟動最小程式,主要做系統修復
2 不完全多使用者,不含NFS服務:字元介面 NFS:檔案共享服務
3 完全多使用者:字元介面
4 未分配
5 圖形介面
6 重啟
[[email protected] ~]# cat/etc/inittab 修改系統預設執行級別 id:3(開機進入字元介面):initdefault
[[email protected] ~]# runlevel 查詢系統執行級別 蹦出來的是前一個是之前的級別,後一個是現在級別
(5)退出登入命令
[[email protected] ~]#logout
9、其他常用命令
(一)掛載命令
(1)查詢與自動掛載
[[email protected] ~]# mount 查詢系統中已經掛載的裝置
[[email protected] ~]# mount -a 依據配置檔案/etc/fstab的內容,自動掛載
(2)掛載命令的格式
[[email protected] ~]# mout [-t 檔案系統] [-o 特殊選項] 裝置檔名 掛載點
-t檔案系統:加入檔案系統型別來指定掛載的型別,ext3、4(標準檔案系統)、iso9660(光碟預設檔案系統)
-o特殊選項:可以指定掛載的額外選項
引數 說明
atime/noatime 更新訪問時間/不更新訪問時間。範文分割槽檔案時,是否更新檔案的訪問時間,預設為更新。
async/sync 非同步/同步。預設為非同步
auto/noauto 自動/手動,mount -a命令執行時,是否會自動安裝/etc/fstab檔案內容掛載,預設為自動
defaults 定義預設值,相當於rw,suid,dev,exec,auto,nouser,async這七個選項
exec/noexec 執行/不執行,設定是否允許在檔案系統中執行可執行檔案,預設是exec允許
remount 重新掛載已經過載的檔案系統,一般用於指定修改特殊許可權
rw/ro 讀寫/只讀,檔案系統掛載時,是否具有讀寫許可權,預設是rw
suid/nosuid 具有/不具有SUID許可權,設定檔案系統是否具有SUID和SGID許可權,預設是具有
user/nouser 允許/不允許普通使用者掛載,設定檔案系統是否允許普通使用者掛載,預設是不允許,只有root可以掛載分割槽
usrquota 寫入代表檔案系統支援使用者磁碟配額,預設不支援
grpquota 寫入代表檔案系統支援組磁碟配額,預設不支援
(3)掛載光碟
建立掛載點
掛在光碟 mount -t iso9660 /dev/sr0 /mnt/cdroom(光碟掛載點)
或mount /dev/sr0 /mnt/cdroom
(4)解除安裝命令
[[email protected] ~]# umount 設定檔名或掛載點
用完之後必須解除安裝
(5)掛載U盤
[[email protected] ~]# fdisk -l(檢視系統中已識別硬碟)
[[email protected] ~]# mount -t vfat /dec/(U盤所在分割槽)/mnt/usb/(掛載點)
注:Linux預設不支援NTFS檔案系統,所以不能直接掛載U盤
在系統中安裝ntfs-3g,但是隻讀模式。
(二)使用者登入檢視
(1)w 使用者名稱
USER:登入的使用者名稱
TTY:登入終端
FROM:從哪個IP地址登陸
[email protected]:登入時間
IDLE:使用者閒置時間
JCPU:指的是個該終端連線的所有程序佔用的時間。這個時間並不包括過去的後臺作業時間,但包括當前正在執行的後臺作業所佔用的時間
PCPU:是指當前程序所佔用的時間
WHAT:當前正在執行的命令
(2)who 使用者名稱
命令輸出:使用者名稱 登入終端 登入時間(登入來源IP地址)
(3)last
last命令預設是讀取/var/log/wtmp檔案資料
命令輸出:使用者名稱 登入終端 登入IP 登入時間 推出時間(線上時間)
/var/log/wtmp是二進位制檔案不能用vi開啟,為了防止人為修改
(4)lastlog
lastlog命令預設是讀取/var/log/lastlog檔案內容
命令輸出:使用者名稱 登入終端 登入IP 最後一次登入時間
四、Shell基礎
1、Shell概述
Shell是一個命令列直譯器,為使用者提供了一個向Linux核心傳送請求以便執行程式的介面系統程式,使用者可以用Shell開啟動、掛起、停止甚至是編寫一些程式。它還是一個功 能強大的程式語言,易編寫,易除錯,靈活性較強。Shell是解釋執行的指令碼語言,在Shell中可以直接呼叫Linux系統命令
2、Shell的分類
Bourne Shell:從1979起Unix就開始使用Bourne Shell,主檔名為sh
C Shell:主要在BSD班的Unix系統中使用,其語法和C語言相似而得名
Shell的兩種主要語法彼此不相容。Bourne主要包括sh、ksh、Bash、psh、zsh;C主要包括csh、tcsh
Bash相容sh、tcsh等
3、指令碼執行方式
(1)echo[選項][輸出內容]
輸出有空格時,須加雙引號
選項:-e 支援反斜線控制的字元轉換
\a 警告音
\b 退格鍵,即左刪除鍵
\n 換行符
\r 回車鍵
\t 製表符,即Tab鍵
\v 垂直製表符
\0nnn 按照八進位制ASCII碼錶輸出字元。其中0為數字零,nnn是三位八進位制數
\xhh 按照十六進位制ASCII碼錶輸出字元。其中hh是兩位十六進位制數
例:
echo -e “Hello\b world”(回車)
Hell world
echo -e “\x68\t\x65\t\x6c\n\x6c\t\x6f\t”(回車)
h e l
l o
輸出顏色:#30m=黑色 31m=紅色 32m=綠色 33m=黃色 34m=藍色 35m=洋紅 36m=青色 37m=白色
\e代表呼叫顏色
命令格式:echo -e “\e[1;(顏色序號)XXXXX\e[0m” [1表示開啟顏色,[0表示關閉顏色
(2)第一個指令碼
(3)指令碼執行
賦予執行許可權,直接執行
chmod 755 hello.sh
./hello.sh方向路徑 或絕對路徑
通過Bash呼叫執行指令碼
bash hello.sh
4、Bash的基本功能
(1)命令別名與快捷鍵
alias:檢視系統中所有的命令別名
alias 別名=‘原命令’ 設定命令別名 臨時生效,登出重啟後就會還原
(2)別名永久生效與刪除別名
vi ~/.bashrc 寫入環境變數配置檔案 環境變數配飾檔案:所有定義操作環境的檔案 重啟才會生效
source .bashrc 會立即生效 將檔案內容呼叫一遍
unalias 別名 刪除別名(臨時刪除)
(3)命令生效順序:
第一順位執行用絕對路徑或相對路徑執行的命令
第二順位執行別名
第三順位執行Bash的內部命令
第四順位執行按照$PATH環境變數定義的目錄查詢順序找到的第一個命令
PATH:用“:”分割的一些系統目錄
(4)常用快捷鍵
ctrl+c:強制終止當前命令
ctrl+l:清屏
ctrl+a:游標移動到命令列首
ctrl+e:游標移動到命令列尾
ctrl+u:從游標所在位置刪除到行首
ctrl+z:把命令放入後臺
ctrl+r:在歷史命令中搜索 出現(reverse-i-search)'vi':
(5)歷史命令
history[選項][歷史命令儲存檔案]
選項: -c 清空歷史命令 -w 把快取中的歷史命令寫入歷史命令儲存檔案~/.bash_history
歷史命令預設儲存1000條,可以在環境變數配置檔案/etc/profile中進行修改
HISTSIZE= (數字)
(6)史命令的呼叫
使用上、下箭頭呼叫以前的歷史命令
使用“!n”重複執行第n條命令
使用“!!”重複執行上一條命令
使用“!字串”重複執行最後一條一該字串開頭的命令
(7)令與檔案補全
命令與檔案補全,只要在輸入命令或檔案是,按“Tab”鍵就會自動進行補全
(8)輸出重定向
把資料寫進電腦叫輸入,電腦顯示出來叫輸出
<1>標準輸入輸出:
裝置 裝置檔名 型別 檔案描述符
鍵盤 /dev/stdin 標準輸入 0
顯示器 /dev/sdtout 標準輸出 1
顯示器 /dev/sdterr 標準錯誤輸出 2
<2>輸出重定向
正確輸出是輸出到顯示器,輸出重定向是指不在輸出到顯示器中,一般是輸出到檔案中
型別 符號 作用
標準輸出重定向 命令 > 檔案 以覆蓋的方式,把命令的正確輸出輸出到指定的檔案或裝置當中
命令 >> 檔案 以追加的方式,把命令的正確輸出輸出到指定的檔案或裝置當中
標準錯誤輸出重定向 命令 2> 檔案 以覆蓋的方式,把命令的錯誤輸出輸出到指定的檔案或裝置當中
命令 2>> 檔案 以追加的方式,把命令的錯誤輸出輸出到指定的裝置或檔案當中
正確輸出和錯誤 命令 > 檔案 2>&1 以覆蓋的方式,把正確輸出和錯誤輸出都儲存到同一個檔案當中
輸出同時儲存 命令 >> 檔案 2>&1 以追加的方式,把正確輸出和錯誤輸出都儲存到同一個檔案當中
命令 &>檔案 以覆蓋的方式,把正確輸出和錯誤輸出都儲存到同一個檔案當中
命令 &>>檔案 以追加的方式,把正確輸出和錯誤輸出都儲存到同一個檔案當中
命令 >>檔案1 2>>檔案2 把正確的輸出追加到檔案1中,把錯誤的輸出追加到檔案2中
<3>輸入重定向
[[email protected] ~]# wc [選項][檔名] (統計命令)
選項: -c統計位元組數 -w統計單詞數 -l統計行數
命令<檔案把檔案作為命令的輸 檔案<<識別符號 識別符號吧識別符號之間內容作為命令的輸入 <4>管道符 多命令執行符: ; 命令1;命令2 多個命令順序執行,命令之間沒有任何邏輯聯絡 && 命令1&&命令2 邏輯與 當命令1正確執行,則命令2才會執行,當命令1執行不正確,則命令2不會執行 || 命令1||命令2 邏輯或 當命令1執行不正確,則命令2才會執行,當命令1正確執行,則命令2不會執行 管道符: | 命令1 | 命令2 命令1的結果作為命令2的操作物件(此時命令2不用再寫操作物件) <5>萬用字元 ? 匹配一個任意字元 * 匹配0個或任意多個任意字元,即可以匹配任何內容 [] 匹配中括號中任意一個字元 ^ 邏輯非,即去除所寫的字元 <6>Bash中其它特殊符號 '' 若將變數放在單引號中,任何字元沒有特殊意義 "" 雙引號中只有“$”,“`(反引號)”,“\”有“呼叫變數的值”、“引用命令”和“轉義符”的特殊含義,其他符號沒有特殊意義 ``(反引號) aa=`ls` 表示先執行ls命令,然後將值賦給aa變數。也可用$(___)代替,兩種表示相同。