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

分享生產(chǎn)力Shell命令和命令行技巧

系統(tǒng) Linux
下面列出了我多年來(lái)學(xué)到的最喜歡和最常用的Shell命令和技巧。我相信你肯定知道其中的一些命令或技巧,那么就請(qǐng)?zhí)^(guò),但其他的命令可能會(huì)給你提高生產(chǎn)力。

 如果您想成為一名高效的開(kāi)發(fā)人員,那么無(wú)論您使用什么技術(shù),就離不開(kāi)使用命令行。

下面列出了我多年來(lái)學(xué)到的最喜歡和最常用的Shell命令和技巧。我相信你肯定知道其中的一些命令或技巧,那么就請(qǐng)?zhí)^(guò),但其他的命令可能會(huì)給你提高生產(chǎn)力。

免責(zé)聲明:我在Ubuntu 20.04上使用默認(rèn)的終端使用這些命令。只要您在類似Unix的操作系統(tǒng)上運(yùn)行類似bash的shell,這些命令也應(yīng)該適用于您。但是如果你在Windows上運(yùn)行Powershell,那么祝你好運(yùn)!

cd -

您可能知道可以使用cd切換到某個(gè)目錄。

但是您知道您可以使用破折號(hào)(-)作為參數(shù)返回上一個(gè)目錄嗎? 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ cd  
  2. linuxmi@linuxmi:~$ cd -  
  3. /home/linuxmi/www.linuxmi.com  
  4. linuxmi@linuxmi:~/www.linuxmi.com$ cd -  
  5. /home/linuxmi 

如下圖:

溫馨提示:破折號(hào)參數(shù)也適用于git checkout,所以你可以使用它在主分支和工作分支之間進(jìn)行快速切換。

Shell 歷史

這可能是本人最常用的一個(gè)shell技巧:(連續(xù))按向上箭頭以選擇我的shell歷史記錄中的最后一個(gè)命令。

您也可以按ctrl + r(依次)按LRU順序通過(guò)關(guān)鍵字反向搜索Shell歷史記錄。

或者直接鍵入history來(lái)查看終端中的整個(gè)shell歷史記錄。然后您可以寫入![number]以在歷史記錄中的位置編號(hào)處選擇命令。 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ history 

 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ !849 

你甚至可以使用負(fù)數(shù)作為索引來(lái)選擇倒數(shù)第n個(gè)命令,就像這樣: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ !-2 

 

!^ !$

前一個(gè)命令的第一個(gè) (!^) 和最后一個(gè) (!$) 參數(shù)也有快捷方式: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ echo linuxmi linux ubuntu java python  
  2. linuxmi linux ubuntu java python  
  3. linuxmi@linuxmi:~/www.linuxmi.com$ echo !^ !$  
  4. echo linuxmi python 
  5. linuxmi python  

如下圖:

!!

如果您只需要最后一條命令,則可以添加!! 在您當(dāng)前的命令中,它將替換為最后的命令并執(zhí)行: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ uname -r  
  2. 5.12.0-051200-generic  
  3. linuxmi@linuxmi:~/www.linuxmi.com$ !!  
  4. uname -r  
  5. 5.12.0-051200-generic  

如下圖:

!:[index]

或者,您可以通過(guò)在命令中包含!:[index]來(lái)選擇所需命令的一部分,然后插入前一個(gè)命令的索引[index]處的參數(shù)。 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ echo linuxmi linux ubuntu java python  
  2. linuxmi linux ubuntu java python  
  3. linuxmi@linuxmi:~/www.linuxmi.com$ echo !:1  
  4. echo linuxmi 
  5. linuxmi 

你甚至可以用[index]-[index]來(lái)選擇范圍: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ echo linuxmi linux ubuntu java python  
  2. linuxmi linux ubuntu java python  
  3. linuxmi@linuxmi:~/www.linuxmi.com$ echo !:2-3  
  4. echo linux ubuntu  
  5. linux ubuntu 

編輯當(dāng)前行

當(dāng)你剛從歷史記錄中選擇了需要稍作更改的命令時(shí),那么這個(gè)功能特別有用。

您可以通過(guò)按ctrl + a將光標(biāo)移動(dòng)到行的開(kāi)頭,并通過(guò)按ctrl + e將光標(biāo)移動(dòng)到行的結(jié)尾(請(qǐng)記?。篹表示結(jié)尾,a表示字母的開(kāi)頭)。

此外還有:

ctrl + k 剪切光標(biāo)及其后邊的內(nèi)容;

ctrl + u 剪切光標(biāo)之前的內(nèi)容;

ctrl + y 在光標(biāo)處粘貼上兩個(gè)命令,粘貼方式和被剪切方式相同;

ctrl + c 結(jié)束正在運(yùn)行的程序或命令;

ctrl + d 結(jié)束當(dāng)前命令窗口;

ctrl + r 輸入關(guān)鍵字可彈出曾經(jīng)用過(guò)的命令;

ctrl + l 清屏;(和clear效果相同)

ctrl + x + e

如果你意識(shí)到你現(xiàn)在需要做一個(gè)更大的編輯或?qū)懸粋€(gè)非常長(zhǎng)的命令,可能帶有一些循環(huán)或一些復(fù)雜的解析邏輯,需要更多的編輯功能,你也可以切換到你的編輯器,請(qǐng)按ctrl + e + x

Vim(或Nano或VI等)就會(huì)馬上打開(kāi),并且您已經(jīng)在緩沖區(qū)中鍵入的命令已打開(kāi)。

如下圖:

使用一個(gè)命令處理多個(gè)文件

你以前應(yīng)該使用過(guò)cp或mv之類的命令來(lái)處理文件。

不過(guò)現(xiàn)在介紹的是{}參數(shù)擴(kuò)展。

通過(guò)使用{},您可以指示shell擴(kuò)展大括號(hào)中的每個(gè)值: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ mv linuxmi.{py,sh} linux 

這個(gè)命令將移動(dòng)linuxmi.py文件和linuxmi.java文件,而不用鍵入兩次linuxmi。

如下圖:

此外,你還可以使用如下的例子

以下命令將五個(gè)文件(linuxmi1.png,linuxmi2.png,linuxmi3.png 和 linuxmi4.png)復(fù)制到 linux/目錄: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ cp linuxmi{1..4}.png linuxmi/ 

從歷史記錄粘貼修改后的命令

您也可以在一個(gè)步驟中完成,而不是檢索最后一個(gè)命令,然后在兩個(gè)單獨(dú)的步驟中修改它。

^x^y就是用y代替x的命令: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ unaem -r  
  2. Command 'unaem' not found, did you mean:  
  3. command 'uname' from deb coreutils (8.30-3ubuntu2)  
  4. Try: sudo apt install <deb name>  
  5. linuxmi@linuxmi:~/www.linuxmi.com$ ^unaem^uname  
  6. uname -r  
  7. 5.12.0-051200-generic 

總結(jié)

看了本文,你是不是覺(jué)得有更多的命令可以幫助您提高生產(chǎn)效率,以后遇到精彩的命令與技巧時(shí),我會(huì)更新本文。你也可以把這篇文章收藏起來(lái),以便將來(lái)可以參考。 

 

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

2017-11-14 11:26:06

命令行技巧生產(chǎn)力

2010-02-05 14:59:31

C++命令行模式編譯設(shè)

2018-05-07 15:50:59

LinuxmoroNodeJS

2009-12-23 14:14:09

Linux高級(jí)命令行

2017-03-08 11:10:39

LinuxShell命令

2010-12-02 14:29:07

nmap

2023-02-13 08:34:26

Linux鍵盤快捷鍵

2021-10-08 09:06:42

LinuxLinux命令

2024-03-06 15:57:56

ShellLinux

2017-09-05 08:57:02

Linux命令行技巧

2013-09-27 09:56:25

2009-12-16 11:23:29

VS命令

2019-05-21 10:38:17

Linux命令行

2015-09-29 16:03:43

2009-11-18 13:46:11

PHP命令行

2009-12-25 16:04:06

shell命令行

2014-07-31 18:23:41

Process

2022-06-12 15:32:27

bashLinux

2013-09-10 10:34:49

PowerShell

2010-07-15 12:45:30

Perl命令行
點(diǎn)贊
收藏

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