自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux命令行工具使用小貼士及技巧(二)

系統(tǒng) Linux 系統(tǒng)運(yùn)維
在本系列的第一部分中,我們通過(guò)討論 cd - 命令的用法,重點(diǎn)介紹了 Linux 中的命令行導(dǎo)航。還討論了一些其他相關(guān)要點(diǎn)/概念?,F(xiàn)在進(jìn)一步討論,在本文中,我們將討論如何使用 pushd 和 popd 命令在 Linux 命令行上獲得更快的導(dǎo)航體驗(yàn)。

Linux命令行工具使用小貼士及技巧

在本系列的***部分中,我們通過(guò)討論 cd - 命令的用法,重點(diǎn)介紹了 Linux 中的命令行導(dǎo)航。還討論了一些其他相關(guān)要點(diǎn)/概念。現(xiàn)在進(jìn)一步討論,在本文中,我們將討論如何使用 pushd 和 popd 命令在 Linux 命令行上獲得更快的導(dǎo)航體驗(yàn)。

在我們開(kāi)始之前,值得說(shuō)明的一點(diǎn)是,此后提到的所有指導(dǎo)和命令已經(jīng)在 Ubuntu 14.04 和 Bash shell(4.3.11)上測(cè)試過(guò)。

pushd 和 popd 命令基礎(chǔ)

為了更好地理解 pushd 和 popd 命令的作用,讓我們先討論堆棧的概念。想象你廚房案板上有一個(gè)空白區(qū)域,你想在上面放一套盤子。你會(huì)怎么做?很簡(jiǎn)單,一個(gè)接一個(gè)地放在上面。

所以在整個(gè)過(guò)程的***,案板上的***個(gè)盤子是盤子中的***一個(gè),你手中***一個(gè)盤子是盤子堆中的***個(gè)。現(xiàn)在當(dāng)你需要一個(gè)盤子時(shí),你選擇在堆的頂部的那個(gè)盤子并使用它,然后需要時(shí)選擇下一個(gè)。

pushd 和 popd 命令是類似的概念。在 Linux 系統(tǒng)上有一個(gè)目錄堆棧,你可以堆疊目錄路徑以供將來(lái)使用。你可以使用 dirs 命令來(lái)在任何時(shí)間點(diǎn)快速查看堆棧的內(nèi)容。

下面的例子顯示了在命令行終端啟動(dòng)后立即在我的系統(tǒng)上使用 dirs 命令的輸出:

  1. $ dirs 

 

輸出中的波浪號(hào)(~)表示目錄堆棧當(dāng)前僅包含用戶的主目錄。

繼續(xù)下去,使用 pushd 和 popd 命令來(lái)執(zhí)行存儲(chǔ)目錄路徑并刪除它的操作。使用 pushd 非常容易 - 只需將要存儲(chǔ)在目錄堆棧中的路徑作為此命令的參數(shù)傳遞。這里有一個(gè)例子:

  1. pushd /home/himanshu/Downloads/ 

上述命令的作用是,將當(dāng)前工作目錄更改為你作為參數(shù)傳遞的目錄,并且還將路徑添加到目錄堆棧中。為了方便用戶,pushd 命令在其輸出中產(chǎn)生目錄堆棧的內(nèi)容。因此,當(dāng)運(yùn)行上面的命令時(shí),產(chǎn)生了以下輸出:

  1. ~/Downloads ~ 

輸出顯示現(xiàn)在堆棧中有兩個(gè)目錄路徑:一個(gè)是用戶的主目錄,還有用戶的下載目錄。它們的保存順序是:主目錄位于底部,新添加的 Downloads 目錄位于其上。

要驗(yàn)證 pushd 的輸出是正確的,你還可以使用 dirs 命令:

  1. $ dirs 
  2. ~/Downloads ~ 

 

因此你可以看到 dirs 命令同樣產(chǎn)生相同的輸出。

讓我們?cè)偈褂孟?pushd 命令:

  1. $ pushd /usr/lib/; pushd /home/himanshu/Desktop/ 
  2. /usr/lib ~/Downloads ~ 
  3. ~/Desktop /usr/lib ~/Downloads ~ 

 

所以目錄堆?,F(xiàn)在包含總共四個(gè)目錄路徑,其中主目錄(~)在底部,并且用戶的桌面目錄在頂部。

一定要記住的是堆棧的頭是你當(dāng)前的目錄。這意味著現(xiàn)在我們當(dāng)前的工作目錄是 ~/Desktop。

現(xiàn)在,假設(shè)你想回到 /usr/lib 目錄,所以你所要做的就是執(zhí)行 popd 命令:

  1. $ popd 
  2. /usr/lib ~/Downloads ~ 

 

popd 命令不僅會(huì)將當(dāng)前目錄切換到 /usr/lib,它還會(huì)從目錄堆棧中刪除 ~/Desktop,這一點(diǎn)可以從命令輸出中看出。這樣,popd 命令將允許你以相反的順序?yàn)g覽這些目錄。

一些高級(jí)用法

現(xiàn)在我們已經(jīng)討論了 pushd 和 popd 命令的基礎(chǔ)知識(shí),讓我們繼續(xù)討論與這些命令相關(guān)的一些其它細(xì)節(jié)。首先,這些命令還允許你操作目錄堆棧。例如,假設(shè)你的目錄堆棧看起來(lái)像這樣:

  1. $ dirs 
  2. ~/Desktop /usr/lib ~ ~/Downloads 

 

現(xiàn)在,我們的要求是改變堆棧中目錄路徑的順序,最上面的元素(~/Desktop)放到底部,剩下的每個(gè)都向上移動(dòng)一個(gè)位置。這可以使用以下命令實(shí)現(xiàn):

  1. pushd +1 

上面的命令對(duì)目錄堆棧做的結(jié)果:

  1. $ dirs 
  2. /usr/lib ~ ~/Downloads ~/Desktop 

 

因此,我們看到目錄堆棧中的元素順序已經(jīng)改變,并且現(xiàn)在和我們想要的一樣。當(dāng)然,你可以讓目錄堆棧元素移動(dòng)任何次數(shù)。例如,以下命令會(huì)將它們向上移動(dòng)兩次:

  1. $ pushd +2 
  2. ~/Downloads ~/Desktop /usr/lib ~ 

 

你也可以使用負(fù)的索引值:

  1. $ pushd -1 
  2. /usr/lib ~ ~/Downloads ~/Desktop 

 

相似地,你可以在 popd 命令中使用此技術(shù)來(lái)從目錄堆棧刪除任何條目,而不用離開(kāi)當(dāng)前工作目錄。例如,如果要使用 popd 從頂部(目前是 ~/Downloads)刪除第三個(gè)條目,你可以運(yùn)行以下命令:

  1. popd +2 

記住堆棧索引的初始值是 0,因此我們使用 2 來(lái)訪問(wèn)第三個(gè)條目。

因此目錄堆?,F(xiàn)在包含:

  1. $ dirs 
  2.  
  3. /usr/lib ~ ~/Desktop 

 

確認(rèn)條目已經(jīng)被移除了。

如果由于某些原因,你發(fā)現(xiàn)你很難記住元素在目錄堆棧中的位置以及它們的索引,你則可以對(duì)在 dirs 命令中使用 -v 選項(xiàng)。這里有一個(gè)例子:

  1. $ dirs -v 
  2. 0 /usr/lib 
  3. 1 ~ 
  4. 2 ~/Desktop 

 

你可能已經(jīng)猜到了,左邊的數(shù)字是索引,接下來(lái)跟的是這個(gè)索引對(duì)應(yīng)的目錄路徑。

注意: 在 dir 中使用 -c 選項(xiàng)清除目錄堆棧。

現(xiàn)在讓我們簡(jiǎn)要地討論一下 popd 和 pushd 命令的實(shí)際用法。雖然它們***眼看起來(lái)可能有點(diǎn)復(fù)雜,但是這些命令在編寫 shell 腳本時(shí)會(huì)派上用場(chǎng) - 你不需要記住你從哪里來(lái);只要執(zhí)行一下 popd,你就能回到你來(lái)的目錄。

經(jīng)驗(yàn)豐富的腳本編寫者通常以以下方式使用這些命令:

  1. popd >/dev/null 2>&1 

上述命令確保 popd 保持靜默(不產(chǎn)生任何輸出)。同樣,你也可以靜默 pushd。

pushd 和 popd 命令也被 Linux 服務(wù)器管理員使用,他們通常在幾個(gè)相同的目錄之間移動(dòng)。 在這里介紹了一些其他有用的使用場(chǎng)景。

總結(jié)

我同意 pushd 和 popd 的概念不是很直接。但是,它需要的只是一點(diǎn)練習(xí) - 是的,你需要多實(shí)踐。花一些時(shí)間在這些命令上,你就會(huì)開(kāi)始喜歡它們,特別是當(dāng)它們提供了方便時(shí)。 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2017-04-12 13:29:08

Linux命令行工具

2017-03-27 14:40:01

Linux命令行工具技巧

2017-04-10 13:26:00

Linux命令技巧

2021-07-08 08:56:30

Linux命令刪除用戶

2018-03-14 14:27:00

2009-08-11 09:26:06

2009-12-23 14:14:09

Linux高級(jí)命令行

2017-09-05 08:57:02

Linux命令行技巧

2010-07-15 12:45:30

Perl命令行

2010-07-20 14:27:46

Perl命令行

2023-03-08 15:38:56

Linux命令dict

2017-03-13 08:50:35

科技新聞早報(bào)

2014-01-24 09:09:32

Linux命令行網(wǎng)速

2010-06-01 19:14:53

SVN命令行

2022-06-12 15:32:27

bashLinux

2019-08-27 10:32:01

Linux操作系統(tǒng)Windows

2020-12-10 16:16:08

工具代碼開(kāi)發(fā)

2020-12-11 06:44:16

命令行工具開(kāi)發(fā)

2015-05-25 10:40:22

Linux命令行技巧

2021-08-25 10:55:43

Linux命令工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)