linux命令行变大,Linux命令行下'!'的8大神奇的用法!
哈,終于收假回來了,各位親是不是等不及了?這次的文章原創于別的大牛,這里在自己的環境來演示一下這八個神奇的用法,在Linux 系統中,'!' 符號或者操作符通常被用做邏輯否定的操作符,同時也通過一些調整和改動命令來從歷史記錄中找出你需要的命令行。
1.從history里使用命令號來運行命令
你或許從沒意識到過可以從命令行歷史記錄(之前執行過的命令)里執行一條命令。它的方法是首先輸入 'history' 命令得到命令的序號。 這時你可以通過命令 history 的輸出中的命令序號來執行一條命令。這里為了方便看得比較清晰,我把歷史記錄的條數設置為5條,如下:
!history號
這里我使用!加上之前執行過的命令序號267就可以很快地執行這個cd的命令了!
2.執行指定的之前執行過的命令
和上一個功能其實是一樣的,只不過這個是不用執行過的命令的序號,而是使用數字,從本次往后面數,比如我想執行上一次的命令,就執行!-1等等,如下:
!history數字
3.向一條新命令傳遞舊命令的參數避免重復輸入
首先我使用了ls $GOPATH/src這個命令下面有什么東西,然后這時我又想更具體點,所以我使用 ls -al命令去查看,這時我們就不用再輸入上面的命令了,直接使用!$代替掉就行了,如下:
!history替代變量
!$符號可以將上一條命令的參數傳遞給下一條命令參數
4.處理兩個以上的參數
例如我在/home/yunzhongmuge目錄創建了一個 1.txt 文件
# touch /yunzhongmuge/1.txt
然后使用CP命令把它復制到/home/yunzhongmuge/test目錄
# cp /home/yunzhongmuge/1.txt /home/yunzhongmuge/test
這樣我們就向CP命令傳遞了兩個參數。
第一個是 /home/yunzhongmuge/1.txt
第二個是/home/yunzhongmuge/test
為了區分它們,我們 使用 echo 來打印每個參數。
# echo '1st Argument is: !^'
# echo '2st Argument is: !cp:2'
如下圖:
!^
可以注意到第一個參數可以使用 '!^' 來表示,剩下的參數就可以使用 '命令名:參數序號'這種方式來表示,比如 '!cp:2'。
再舉個例子,如果你執行的某個命令為 'xyz',命令 后面有5個參數而你想調用第四個參數,就可以使用 '!xyz:4' 來調用它。
當然,你可以使用 '!* ' 來表示所有參數。
5.使用關鍵詞來執行之前的命令
可以通過執行關鍵詞來執行之前的命令。可以按照下面的命令來理解:
# ls /home >/dev/null
# ls -l /home/yunzhongmuge/test >/dev/null
# ls -la /home/golang >/dev/null
# ls -lA /home/yunzhongmuge >/dev/null
上面是相同的ls命令對應了不同參數和文件夾。此外我們將每一個標準輸出都傳遞到了 '/dev/null' 因為我們并不希望處理程序的標準輸出。現在我們可以調用命令的關鍵詞來實現它們。
# !ls
# !ls -l
# !ls -la
# !ls -lA
如下圖:
!ls
6. 超級實用的!! 操作符
很多時候我們使用的都不是root這個用戶的,所以在使用其他一般的用戶是要安裝一個東西或者其他的情況需要使用root權限的時候,這時我們使用這個命令就可以不用重新跳到root用戶下執行然后再跳回來。比如我想在paas這個用戶下面安裝docker的時候,系統提示沒有root權限,這時是使用!!這個操作符然后輸入密碼就可以安裝了,非常方便,如下圖:
!!
7.通過!(文件名) 的方式來避免命令對某個文件的影響。
我們有時候想把一個目錄下面除了其中一個文件(或者同類型一類文件)其他的都想刪除掉,這時候通過!來實現就變得非常簡單了,如下圖:
!()
這里需要注意的地方,當我們使用!()這個命令時,如果系統提示:bash: !: event not found這個錯誤這時可以依照下面的方法進行設置即可。
# shopt -u extglob; set +H
# shopt -s extglob; set +H
如下圖:
!event not found
8.檢查某個目錄是否存在
這個功能在shell腳本用得非常多,大概有三種情況,一種是判斷這個目錄是否存在,并將結果打印出來;第二種判斷目錄是否存在,不存在就直接退出腳本。第三種就是判斷目錄是否存在,不存在就新建。其他情景可以根據自己的實際情況來改造。這里作為演示就判斷一下目錄是否存在,并打印一下是否存在。如下圖:
! -d
好了,該分享到此結束,good luck!
May you share freely, never taking more than you give.
親,關注、評論、收藏、轉發一下唄!謝謝!
總結
以上是生活随笔為你收集整理的linux命令行变大,Linux命令行下'!'的8大神奇的用法!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux打开图形化命令,在Linux命
- 下一篇: 创历史新高!奥迪集团2022财报出炉:净