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