最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Bash Shell的操作環(huán)境詳解

 更新時(shí)間:2026年01月27日 09:24:53   作者:Lang_xi_  
文章主要內(nèi)容介紹了Linux系統(tǒng)中bash環(huán)境的配置和設(shè)置,包括路徑與指令搜尋順序、bash的進(jìn)站與歡迎信息、bash的環(huán)境配置文件、終端機(jī)的環(huán)境設(shè)定以及通配符與特殊符號(hào)的使用

是否記得我們登入主機(jī)的時(shí)候,屏幕上頭會(huì)有一些說明文字,告知我們的 Linux 版本啊什么的, 還有,登入的時(shí)候我們還可以給予用戶一些訊息或者歡迎文字呢。此外, 我們習(xí)慣的環(huán)境變量、命令別名等等的,是否可以登入就主動(dòng)的幫我設(shè)定好? 這些都是需要注意的。另外,這些設(shè)定值又可以分為系統(tǒng)整體設(shè)定值與各人喜好設(shè)定值, 僅是一些文件放置的地點(diǎn)不同啦!這我們后面也會(huì)來談一談的!

1、路徑與指令搜尋順序

現(xiàn)在我們知道系統(tǒng)里面其實(shí)有不少的 ls 指令,或者是包括內(nèi)建的 echo 指令, 那么來想一想,如果一個(gè)指令 (例如 ls) 被下達(dá)時(shí), 到底是哪一個(gè) ls 被拿來運(yùn)作?很有趣吧!基本 上,指令運(yùn)作的順序可以這樣看:

  • 以相對(duì)/絕對(duì)路徑執(zhí)行指令,例如『 /bin/ls 』或『 ./ls 』;
  • alias 找到該指令來執(zhí)行;
  • bash 內(nèi)建的 (builtin) 指令來執(zhí)行;
  •  透過 $PATH 這個(gè)變量的順序搜尋到的第一個(gè)指令來執(zhí)行。

舉例來說,你可以下達(dá) /bin/ls 及單純的 ls 看看,會(huì)發(fā)現(xiàn)使用 ls 有顏色但是 /bin/ls 則沒有顏色。因?yàn)?/bin/ls 是直接取用該指令來下達(dá),而 ls 會(huì)因?yàn)椤?alias ls='ls --color=auto' 』這個(gè)命令別名而先使用!

如果想要了解指令搜尋的順序,其實(shí)透過 type -a ls 也可以查詢的到啦!上述的順序最好先了解喔!

[dmtsai@study ~]$ alias echo='echo -n'
[dmtsai@study ~]$ type -a echo
echo is aliased to `echo -n'
echo is a shell builtin
echo is /usr/bin/echo

注意:指令通常指的是二進(jìn)制的可執(zhí)行文件,系統(tǒng)在安裝時(shí)就已經(jīng)編譯好的文件;shell腳本是一種文本文件,依賴shell解釋器來執(zhí)行。

2、bash的進(jìn)站(開機(jī))與歡迎信息:/etc/issue,/etc/motd

(1)/etc/issue

issue有冒出之意--可理解為開機(jī)冒出來的訊息

bash 也有進(jìn)站畫面與歡迎訊息喔?真假?真的啊! 還記得在終端機(jī)接口 (tty1 ~ tty6) 登入 的時(shí)候,會(huì)有幾行提示的字符串嗎?那就是進(jìn)站畫面?。∧莻€(gè)字符串寫在哪里?。亢呛?!在 /etc/issue 里面啊!

先來看看:

[root@localhost ~]# cat /etc/issue
\S
Kernel \r on an \m

就如同 $PS1 這變量一樣,issue 這個(gè)文件的內(nèi)容也是可以使用反斜杠作為變量取用喔!你可以 man issue 配合 man agetty 得到底下的結(jié)果:

 

vi /etc/issue
\S (terminal: \l)
Date: \d \t
Kernel \r on an \m
Welcome!

要注意的是,除了 /etc/issue 之外還有個(gè) /etc/issue.net 呢!這是啥?這個(gè)是提供給 telnet 這個(gè)遠(yuǎn) 程登錄程序用的。

當(dāng)我們使用 telnet 連接到主機(jī)時(shí),主機(jī)的登入畫面就會(huì)顯示 /etc/issue.net 而不是 /etc/issue 呢!

(2)/etc/motd

多嘴幾句:motd是message of the day的縮寫

etc是et cetera即等等的意思。“et” 在拉丁語中是 “和、與” 的意思,“cetera” 是 “其余的、其他的” 意思,合起來就是 “和其他的”。

至于如果您想要讓使用者登入后取得一些訊息,例如您想要讓大家都知道的訊息, 那么可以將訊息 加入 /etc/motd 里面去!例如:當(dāng)?shù)侨牒螅嬖V登入者, 系統(tǒng)將會(huì)在某個(gè)固定時(shí)間進(jìn)行維護(hù)工作, 可以這樣做 (一定要用 root 的身份才能修改喔!)

[root@study ~]# vim /etc/motd
Hello everyone,
Our server will be maintained at 2015/07/10 0:00 ~ 24:00.
Please don't login server at that time. ^_^
那么當(dāng)你的使用者(包括所有的一般賬號(hào)與 root)登入主機(jī)后,就會(huì)顯示這樣的訊息出來:

Last login: Wed Jul 8 23:22:25 2015 from 127.0.0.1
Hello everyone,
Our server will be maintained at 2015/07/10 0:00 ~ 24:00.
Please don't login server at that time. ^_^


###我的阿里云的例子
[root@ptivitic ~]# vi /etc/motd

Welcome to Alibaba Cloud Elastic Compute Service !

Welcome to Langxi's ptivitic home

3、bash的環(huán)境配置文件

我們什么動(dòng)作都沒有進(jìn)行,但是一進(jìn)入 bash 就取得一堆有用的變量了,這是因?yàn)?strong>系統(tǒng)有一些環(huán)境配置文件的存在,讓 bash 在啟動(dòng)時(shí)直接讀取這些配置文件,以規(guī)劃好 bash的操作環(huán)境!

而這些配置文件又可以分為全體系統(tǒng)的配置文件以及用戶個(gè)人偏好配置文件。要注意的是, 前面談到的命令別名啦、自定義的變量,在你注銷 bash 后就會(huì)失效,所以你想要保留你的設(shè)定, 就得要將這些設(shè)定寫入配置文件才行

(1)login與non-login shell

在介紹bash的配置文件前,先知道login與non-login,重點(diǎn)在于有沒有登入(login)- 用戶密碼

  • login shell:取得 bash 時(shí)需要完整的登入流程的,就稱為 login shell。舉例來說,你要由 tty1 ~ tty6 登入, 需要輸入用戶的賬號(hào)與密碼,此時(shí)取得的 bash 就稱為『 login shell 』啰;
  • non-login shell:取得 bash 接口的方法不需要重復(fù)登入的舉動(dòng),舉例來說,你在原本的 bash 環(huán)境下再次下達(dá) bash 這個(gè)指令,同樣的也沒有輸入賬號(hào)密碼, 那第二個(gè) bash (子程序) 也是 non-login shell 。
  • login Shell:它會(huì)讀取一系列的系統(tǒng)配置文件,比如/etc/profile和用戶主目錄下的~/.bash_profile等文件來初始化環(huán)境。
  • /etc/profile:這是系統(tǒng)整體的設(shè)定,你最好不要修改這個(gè)文件;
  • ~/.bash_profile 或 ~/.bash_login 或 ~/.profile:屬于使用者個(gè)人設(shè)定,你要改自己的數(shù)據(jù),就寫入這里!
  • non - login Shell:它不會(huì)像登錄 shell 那樣讀取所有的登錄相關(guān)配置文件,而是只讀取一些部分配置文件,如~/.bashrc。

(2)/etc/profile(login shell才會(huì)讀取)

這個(gè)配置文件可以利用使用者的標(biāo)識(shí)符 (UID) 來決定很多重要的變量數(shù)據(jù), 這也是每個(gè)使用者登入取得 bash 時(shí)一定會(huì)讀取的配置文件! 所以如果你想要幫所有使用者設(shè)定整體環(huán)境,那就是改這里啰!

這個(gè)文件設(shè)定的變量主要有:

  • PATH:會(huì)依據(jù) UID 決定 PATH 變量要不要含有 sbin 的系統(tǒng)指令目錄;
  • MAIL:依據(jù)賬號(hào)設(shè)定好使用者的 mailbox /var/spool/mail/賬號(hào)名;
  • USER:根據(jù)用戶的賬號(hào)設(shè)定此一變量內(nèi)容;
  • HOSTNAME:依據(jù)主機(jī)的 hostname 指令決定此一變量內(nèi)容;
  • HISTSIZE:歷史命令記錄筆數(shù)。CentOS 7.x 設(shè)定為 1000 ;
  • umask:包括 root 默認(rèn)為 022 而一般用戶為 002 等!

 /etc/profile 可不止會(huì)做這些事而已,他還會(huì)去呼叫外部的設(shè)定數(shù)據(jù)喔!在 CentOS 7.x 默認(rèn)的情況下,底下這些數(shù)據(jù)會(huì)依序的被呼叫進(jìn)來:

  • /etc/profile.d/*.sh:只要在 /etc/profile.d/ 這個(gè)目錄內(nèi)且擴(kuò)展名為 .sh ,另外,使用者能夠具有 r 的權(quán)限, 那么該文件就會(huì)被 /etc/profile 呼叫進(jìn)來。在 CentOS 7.x 中,這個(gè)目錄底下的文件規(guī)范了 bash 操作接口的顏色、 語系、ll ls 指令的命令別名、vi 的命令別名、which 的命令別名等等。如果你需要幫所有使用者設(shè)定一些共享的命令別名時(shí), 可以在這個(gè)目錄底下自行建立擴(kuò)展名為 .sh 的文件,并將所需要的數(shù)據(jù)寫入即可喔!
  • /etc/locale.conf:這個(gè)文件是由 /etc/profile.d/lang.sh 呼叫進(jìn)來的!這也是我們決定 bash 預(yù)設(shè)使用何種語系的重要配置文件! 文件里最重要的就是 LANG/LC_ALL 這些個(gè)變量的設(shè)定。
  • /usr/share/bash-completion/completions/*: [tab] 的妙用吧。除了命令補(bǔ)齊、檔名補(bǔ)齊之外,還可以進(jìn)行指令的選項(xiàng)/參數(shù)補(bǔ)齊功能!那就是從這個(gè)目錄里面找到相對(duì)應(yīng)的指令來處理的! 其實(shí)這個(gè)目錄底下的內(nèi)容是由/etc/profile.d/bash_completion.sh 這個(gè)文件載入的。

bash login shell 情況下所讀取的整體環(huán)境配置文件其實(shí)只有 /etc/profile,但是 /etc/profile 還會(huì)呼叫出其他的配置文件。

(3) ~./bash_profile(login shell才會(huì)讀取)

bash 在讀完了整體環(huán)境設(shè)定的 /etc/profile 并藉此呼叫其他配置文件后,接下來則是會(huì)讀取使用者的個(gè)人配置文件。

在 login shell bash 環(huán)境中,所讀取的個(gè)人偏好配置文件其實(shí)主要有三個(gè),依序分別是:

  • 1. ~/.bash_profile
  • 2. ~/.bash_login
  • 3. ~/.profile

其實(shí) bash login shell 設(shè)定只會(huì)讀取上面三個(gè)文件的其中一個(gè), 而讀取的順序則是依照上面的順 序。

也就是說,如果 ~/.bash_profile 存在,那么其他兩個(gè)文件不論有無存在,都不會(huì)被讀取。

[root@ptivitic ~]# cat .bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc                   ###這里是判斷是否存在,如果存在就進(jìn)行讀取
fi

### bash 配置文件的讀入方式比較有趣,主要是透過一個(gè)指令『 source 』來讀取的!
### 也就是說 ~/.bash_profile 其實(shí)會(huì)再呼叫 ~/.bashrc 的設(shè)定內(nèi)容


# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH

這個(gè)文件內(nèi)有設(shè)定 PATH 這個(gè)變量。由于PATH /etc/profile 當(dāng)中已經(jīng)設(shè)定過,所以在這里就以累加的方式增加用戶家目錄下的 ~/bin/ 為額外的執(zhí)行文件放置目錄。

這也就是說,你可以將自己建立的執(zhí)行檔放置到你自己家目錄下的 ~/bin/ 錄啦! 那就可以直接執(zhí)行該執(zhí)行檔而不需要使用絕對(duì)/相對(duì)路徑來執(zhí)行該文件。

整個(gè) login shell 的讀取流程:

 

實(shí)線的的方向是主線流程,虛線的方向則是被呼叫的配置文件!從上面我們也可以清楚的知道,在 CentOS 的 login shell 環(huán)境下,最終被讀取的配置文件是『 ~/.bashrc 』這個(gè)文件喔!所以,你當(dāng)然可以將自己的偏好設(shè)定寫入該文件即可。 底下我們還要討論一下 source ~/.bashrc 喔!

(4)source:讀入環(huán)境配置文件的指令

利用 source 或小數(shù)點(diǎn) (.) 都可以將配置文件的內(nèi)容讀進(jìn)來目前的 shell 環(huán)境中

舉例來說,我修改 了 ~/.bashrc ,那么不需要注銷,立即以 source ~/.bashrc 就可以將剛剛最新設(shè)定的內(nèi)容讀進(jìn)來目前的環(huán)境中。

[dmtsai@study ~]$ source 配置文件檔名

范例:將家目錄的 ~/.bashrc 的設(shè)定讀入目前的 bash 環(huán)境中
[dmtsai@study ~]$ source ~/.bashrc <==底下這兩個(gè)指令是一樣的!
[dmtsai@study ~]$ . ~/.bashrc

(5)~/.bashrc(non-login shell 會(huì)讀取)

當(dāng)你取得 non-login shell 時(shí),該 bash 配置文件僅會(huì)讀取 ~/.bashrc 而已啦!那么預(yù)設(shè)的 ~/.bashrc 內(nèi)容是如何?--rc=run - commands

[root@ptivitic ~]# cat ~/.bashrc 
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi
alias php81='php81 -c /www/server/php/81/etc/php-cli.ini'

root ~/.bashrc 中其實(shí)已經(jīng)規(guī)范了較為保險(xiǎn)的命令別名了。 此外,咱們的 CentOS 7.x 還會(huì)主動(dòng)的呼叫 /etc/bashrc 這個(gè)文件喔!為什么需要呼叫 /etc/bashrc 呢? 因?yàn)?/etc/bashrc 幫我們的 bash 定義出底下的數(shù)據(jù):

  • 依據(jù)不同的 UID 規(guī)范出 umask 的值;
  • 依據(jù)不同的 UID 規(guī)范出提示字符 (就是 PS1 變量);
  • 呼叫 /etc/profile.d/*.sh 的設(shè)定

要注意的是,這個(gè) /etc/bashrc CentOS 特有(其實(shí)是 Red Hat 系統(tǒng)特有的),其他不同的 distributions 可能會(huì)放置在不同的檔名就是了。

由于這個(gè) ~/.bashrc 會(huì)呼叫 /etc/bashrc 及 /etc/profile.d/*.sh , 所以,萬一你沒有 ~/.bashrc (可能自己不小心將他刪除了),那么你會(huì)發(fā)現(xiàn)你的bash 提示字符可能會(huì)變成這個(gè)樣子:

-bash-4.2$

不要太擔(dān)心啦!這是正常的,因?yàn)槟?strong>并沒有呼叫 /etc/bashrc 來規(guī)范 PS1 變量啦!而且這樣的情況也不會(huì)影響你的 bash 使用。

如果你想要將命令提示字符捉回來,那么可以復(fù)制 /etc/skel/.bashrc 到你的家目錄,再修訂一下你所想要的內(nèi)容, 并使用 source 去呼叫 ~/.bashrc ,那你的命令提示字符就會(huì)回來啦!

(6)bash的其他相關(guān)配置文件

  • /etc/man_db.conf:這文件的內(nèi)容『規(guī)范了使用 man 的時(shí)候, man page 的路徑到哪里去尋找!』所以說的簡單一點(diǎn),這個(gè)文件規(guī)定了下達(dá) man 的時(shí)候,該去哪里查看數(shù)據(jù)的路徑設(shè)定!
  • ~/.bash_history:預(yù)設(shè)的情況下,我們的歷史命令就記錄在這里!而這個(gè)文件能夠記錄幾筆數(shù)據(jù),則與 HISTFILESIZE 這個(gè)變量有關(guān)啊。每次登入 bash 后,bash 會(huì)先讀取這個(gè)文件,將所有的歷史指令讀入內(nèi)存, 因此,當(dāng)我們登入 bash 后就可以查知上次使用過哪些指令啰。
  •  ~/.bash_logout:這個(gè)文件則記錄了『當(dāng)我注銷 bash 后,系統(tǒng)再幫我做完什么動(dòng)作后才離開』的意思。 你可以去讀取一下這個(gè)文件的內(nèi)容,預(yù)設(shè)的情況下,注銷時(shí), bash 只是幫我們清掉屏幕的訊息而已。 不過,你也可以將一些備份或者是其他你認(rèn)為重要的工作寫在這個(gè)文件中 (例如清空暫存盤), 那么當(dāng)你離開 Linux 的時(shí)候,就可以解決一些煩人的事情啰!

4、終端機(jī)的環(huán)境設(shè)定:stty、set

舉例來說,我們可以利用退格鍵(backspace,就是那個(gè)←符號(hào)的按鍵) 來刪除命令行上的字符, 也可以使用 [ctrl]+c 來強(qiáng)制終止一個(gè)指令的運(yùn)行,當(dāng)輸入錯(cuò)誤時(shí),就會(huì)有聲音跑出來警告。這是怎么辦到的呢? 很簡單??!因?yàn)榈侨虢K端機(jī)的時(shí)候,會(huì)自動(dòng)的取得一些終端機(jī)的輸入環(huán)境的設(shè)定。

 可以利用stty(setting teletypewriter)幫助設(shè)定終端機(jī)的輸入按鍵代表的意義:

[root@localhost ~]# stty -a

speed 38400 baud; rows 36; columns 81; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
...

如果出現(xiàn) ^ 表示 [Ctrl] 那個(gè)按鍵的意思。舉例來說, intr = ^C 表示利用 [ctrl] +c 來達(dá)成的。

幾個(gè)重要的代表意義是:

  • intr : 送出一個(gè) interrupt (中斷) 的訊號(hào)給目前正在 run 的程序 (就是終止啰!);^C
  • quit : 送出一個(gè) quit 的訊號(hào)給目前正在 run 的程序;^\
  • erase : 向后刪除字符,^?
  • kill : 刪除在目前指令列上的所有文字;^U
  • eof : End of file 的意思,代表『結(jié)束輸入』。^D
  • start : 在某個(gè)程序停止后,重新啟動(dòng)他的 output。^Q
  • stop : 停止目前屏幕的輸出;^S
  • susp : 送出一個(gè) terminal stop 的訊號(hào)給正在 run 的程序。^Z

刪除字符就是 erase 的設(shè)定值啦! 如果你想要用 [ctrl]+h 來進(jìn)行字符的刪除,那么可以下達(dá):

stty erase ^h # 這個(gè)設(shè)定看看就好,不必真的實(shí)做!不然還要改回來!
  • 經(jīng)常在 Windows/Linux 之間切換,在 windows 底下,很多軟件默認(rèn)的儲(chǔ)存快捷按鈕是 [crtl]+s ,所以習(xí)慣按這個(gè)按鈕來處理。
  • 不過,在 Linux 底下使用 vim 時(shí),卻也經(jīng)常不小心就按下 [crtl]+s !問題來了,按下這個(gè)組合鈕之后,整個(gè) vim 就不能動(dòng)了 (整個(gè)畫面死鎖)! 請(qǐng)問該如何處置?
  • 答:參考一下 stty -a 的輸出中,有個(gè) stop 的項(xiàng)目就是按下 [crtl]+s 的!那么恢復(fù)成 start 就是 [crtl]+q ?。∫虼?,嘗試按下 [crtl]+q 應(yīng)該就可以讓整個(gè)畫面重新恢復(fù)正???/li>

除了 stty 之外,其實(shí)我們的 bash 還有自己的一些終端機(jī)設(shè)定值呢!那就是利用 set 來設(shè)定的! 我 們之前提到一些變量時(shí),可以利用 set 來顯示,除此之外,其實(shí) set 還可以幫我們?cè)O(shè)定整個(gè)指令輸 出/輸入的環(huán)境。 例如記錄歷史命令、顯示錯(cuò)誤內(nèi)容等等。

[dmtsai@study ~]$ set [-uvCHhmBx]
選項(xiàng)與參數(shù):
-u :預(yù)設(shè)不啟用。若啟用后,當(dāng)使用未設(shè)定變量時(shí),會(huì)顯示錯(cuò)誤訊息;
-v :預(yù)設(shè)不啟用。若啟用后,在訊息被輸出前,會(huì)先顯示訊息的原始內(nèi)容;
-x :預(yù)設(shè)不啟用。若啟用后,在指令被執(zhí)行前,會(huì)顯示指令內(nèi)容(前面有 ++ 符號(hào))
-h :預(yù)設(shè)啟用。與歷史命令有關(guān);
-H :預(yù)設(shè)啟用。與歷史命令有關(guān);
-m :預(yù)設(shè)啟用。與工作管理有關(guān);
-B :預(yù)設(shè)啟用。與刮號(hào) [] 的作用有關(guān);
-C :預(yù)設(shè)不啟用。若使用 > 等,則若文件存在時(shí),該文件不會(huì)被覆蓋。
范例一:顯示目前所有的 set 設(shè)定值
[dmtsai@study ~]$ echo $-
himBH
# 那個(gè) $- 變量內(nèi)容就是 set 的所有設(shè)定啦! bash 預(yù)設(shè)是 himBH 喔!
范例二:設(shè)定 "若使用未定義變量時(shí),則顯示錯(cuò)誤訊息"
[dmtsai@study ~]$ set -u
[dmtsai@study ~]$ echo $vbirding
-bash: vbirding: unbound variable
# 預(yù)設(shè)情況下,未設(shè)定/未宣告 的變量都會(huì)是『空的』,不過,若設(shè)定 -u 參數(shù),
# 那么當(dāng)使用未設(shè)定的變量時(shí),就會(huì)有問題啦!很多的 shell 都預(yù)設(shè)啟用 -u 參數(shù)。
# 若要取消這個(gè)參數(shù),輸入 set +u 即可!

另外,其實(shí)我們還有其他的按鍵設(shè)定功能。就是在 /etc/inputrc 這個(gè)文件里面設(shè)定。 還有例如 /etc/DIR_COLORS* /usr/share/terminfo/* 等,也都是與終端機(jī)有關(guān)的環(huán)境配置文件案。

bash 默認(rèn)的組合鍵匯整如下:

5、通配符與特殊符號(hào)

在 bash 的操作環(huán)境中還有一個(gè)非常有用的功能,那就是通配符 (wildcard) ! 我們利用 bash 處理數(shù)據(jù)就更方便了!底下我們列出一些常用的通配符喔:

符號(hào) 意義
*代表0~無窮多個(gè)任意字符

?

[]

[-]

代表一定有一個(gè)任意字符

例如 [abcd] 代表『一定有一個(gè)字符, 可能是 a, b, c, d 這四個(gè)任何一個(gè)』 若有減號(hào)在中括號(hào)內(nèi)時(shí),代表『在編碼順序內(nèi)的所有字符』。例如 [0-9] 代表 0 9 之間的所有數(shù)字, 因?yàn)閿?shù)字的語系編碼是連續(xù)的!
[^]表示『反向選擇』,例如 [^abc] 代表 一定有一個(gè)字符,只要是非 a, b, c 的其他字符就接受的意思。
[dmtsai@study ~]$ LANG=C <==由于與編碼有關(guān),先設(shè)定語系一下
范例一:找出 /etc/ 底下以 cron 為開頭的檔名
[dmtsai@study ~]$ ll -d /etc/cron* <==加上 -d 是為了僅顯示目錄而已
范例二:找出 /etc/ 底下文件名『剛好是五個(gè)字母』的文件名
[dmtsai@study ~]$ ll -d /etc/????? <==由于 ? 一定有一個(gè),所以五個(gè) ? 就對(duì)了
范例三:找出 /etc/ 底下文件名含有數(shù)字的文件名
[dmtsai@study ~]$ ll -d /etc/*[0-9]* <==記得中括號(hào)左右兩邊均需 *
范例四:找出 /etc/ 底下,檔名開頭非為小寫字母的文件名:
[dmtsai@study ~]$ ll -d /etc/[^a-z]* <==注意中括號(hào)左邊沒有 *
范例五:將范例四找到的文件復(fù)制到 /tmp/upper 中
[dmtsai@study ~]$ mkdir /tmp/upper; cp -a /etc/[^a-z]* /tmp/upper

除了通配符之外,bash 環(huán)境中的特殊符號(hào)有哪些呢?底下我們先匯整一下:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

闻喜县| 黄平县| 朔州市| 镇远县| 沙坪坝区| 庆安县| 大埔县| 茶陵县| 钦州市| 资中县| 都匀市| 都江堰市| 安康市| 剑阁县| 南城县| 牡丹江市| 泾源县| 海丰县| 五原县| 阿荣旗| 腾冲县| 温州市| 交城县| 河源市| 衡水市| 堆龙德庆县| 舟山市| 焦作市| 香格里拉县| 海伦市| 黄石市| 扎赉特旗| 泸州市| 新巴尔虎左旗| 德庆县| 晋中市| 淄博市| 台北市| 长春市| 荥经县| 大城县|