[Linux入門(mén)第十一天]Linux入門(mén)之bash基礎(chǔ)特性

回顧:

FHS、命令及bash命令歷史

FHS:

/bin, /sbin, /lib, /lib64, /etc

/home, /root

/boot

/media, /mnt

/proc, /sys

/tmp

/srv

/opt

/dev

/usr

Bin, sbin, lib, lib64, share, local, include, ...

/var

cache, lib, log, ....

命令: ?which whersis, ?who, w, alias, unalias

命令歷史: ?history

bash的基礎(chǔ)特性:

命令補(bǔ)全:

Shell程序在接收到用戶(hù)執(zhí)行命令的請(qǐng)求,分析完成之后, 最左側(cè)的字符串會(huì)被當(dāng)作命令:

命令查找機(jī)制:

查找內(nèi)部命令:

根據(jù)PATH環(huán)境變量中設(shè)定的目錄, 自左而右逐個(gè)搜索目錄下的文件名:

給定的打頭字符串如果能唯一標(biāo)識(shí)某命令程序文件,則直接補(bǔ)全:

不能唯一標(biāo)識(shí)某命令程序文件,再單擊tab鍵一次,會(huì)出現(xiàn)列表:

路徑補(bǔ)全:

在給定的起始路徑下,以對(duì)應(yīng)路徑下的打頭字符串逐一匹配起始路徑下的每個(gè)文件:

Tab:

如果能唯一標(biāo)識(shí),則直接補(bǔ)全:

否則,再一次tab,給出列表:

目錄管理類(lèi)命令:

mkdir, rmdir

mkdir - make directories

mkdir [option]...DIRECTORY...

-p:自動(dòng)按需創(chuàng)建父目錄:

-v: verbose,顯示詳細(xì)過(guò)程:

-m: MODE:直接給定權(quán)限:


注意:路徑基名方為命令的作用對(duì)象: 基于之前的路徑必須存在:

rmdir - remove empty directories

rmdir [OPTION]... DIRECTORY...

-p:刪除某目錄后, 如果其父目錄為空, 則一并刪除之:

-v:顯示過(guò)程:

問(wèn)題1:如何創(chuàng)建/tmp/x/y1, tmp/x/y2, /tmp.x/y1/a, /tmp/x/y1/b?

mkdir -pv /tmp/x/{y1/{a,b},y2}

mkdir:已創(chuàng)建目錄 "/tmp/x"

mkdir:已創(chuàng)建目錄 "/tmp/x/y1"

mkdir:已創(chuàng)建目錄 "/tmp/x/y1/a"

mkdir:已創(chuàng)建目錄 "/tmp/x/y1/b"

mkdir:已創(chuàng)建目錄 "/tmp/x/y2"


問(wèn)題2:如何創(chuàng)建a_c, a_d, b_c, b_d?

mkdir -pv {a,b}_{c,d}

mkdir:已創(chuàng)建目錄 "a_c"

mkdir:已創(chuàng)建目錄 "a_d"

mkdir:已創(chuàng)建目錄 "b_c"

mkdir:已創(chuàng)建目錄 "b_d"


問(wèn)題3:創(chuàng)建如下目錄結(jié)構(gòu):

/tmp/mysysroot/

──bin

├──etc

│?? └── sysconfig

│?? ????└── network-scripts

├──sbin

├──user

│?? ├── bin

│?? ├── lib

│?? ├── lib64

│?? ├── local

│?? │?? ├── bin

│?? │?? ├── etc

│?? │?? ├── lib

│?? │?? └── sbin

│?? └── sbin

└──var

├──cache

├──log

└──run


mkdir -pv /tmp/mysysroot/{bin,sbin,etc/sysconfig/network

-scripts,user/{bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var/{cache,log,run}}



bash的基礎(chǔ)特性之: 命令行展開(kāi)

~:自動(dòng)展開(kāi)為用戶(hù)的家目錄, 或指定的用戶(hù)的家目錄:

{}:可承載一個(gè)以逗號(hào)分隔的路徑列表, 并能夠?qū)⑵湔归_(kāi)為多個(gè)路徑:

例如: ?/tmp/{a,b}相當(dāng)于 /tmp/a /tmp/b

tree命令:

tree ?[option] [directory]

-L level:指定要顯示的層級(jí):

bash的基礎(chǔ)特性: ?命令的執(zhí)行狀態(tài)結(jié)果:

成功: 0

失敗: 1-255

命令執(zhí)行完成之后,其狀態(tài)返回值保存于bash的特殊變量$?中:

命令正常執(zhí)行時(shí),有的還回有命令返回值:

根據(jù)命令及其功能不同,結(jié)果各不相同:

引用命令的執(zhí)行結(jié)果:

$(COMMAND)

或`COMMAND`

bash的基礎(chǔ)特性: 引用

強(qiáng)引用:‘’

弱引用:“”

命令引用: ``

bash的基礎(chǔ)特性: 快捷鍵

Ctrl+a:跳轉(zhuǎn)至命令行首

Ctrl+e:跳轉(zhuǎn)至命令行尾

Ctrl+u:刪除行首至光標(biāo)所在處之間的所有字符:

Ctrl+k:刪除光標(biāo)所在處至行尾的所有字符:

Ctrl+l:清屏, 相當(dāng)于clear

文本查看命令: cat, tac, head, tail, more, less

分屏查看命令: more less

more命令:

more FILE

特點(diǎn):翻屏至文件尾部后自動(dòng)退出:

less命令:

less FILE

head命令:

查看文件的前n行:

head [option] FILE

-n #

-#

tail命令:

查看文件的后n行:

Tail [option] FILE

-n #

-#

-f:查看文件尾部?jī)?nèi)容結(jié)束后不退出, 跟隨顯示新增的行:

stat命令:

stat - display file or file system status

stat FILE...

文件:兩類(lèi)數(shù)據(jù)

元數(shù)據(jù): metadate

數(shù)據(jù): data

時(shí)間戳:

Access time: 2018-03-30 09:22:18.848259259 -0400

Modify time: 2018-03-30 09:20:42.788259296 -0400

Change time: 2018-03-30 09:20:42.788259296 -0400

touch命令:

touch - change file timestamps

touch [OPTION]... FILE...

-c:指定的文件路徑不存在時(shí)不予創(chuàng)建:

-a:僅修改access time:

-m:僅修改modify time:

-t: STAMP

[[CC]YY]MMDDhhmm[.ss]


??|a,f]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容