在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

linux中嘆號(!)的10個技巧分享

dyquk4xk2p3d ? 來源:入門小站 ? 2023-04-19 11:28 ? 次閱讀

'!'Linux 中的符號或運算符可用作邏輯否定運算符,也可通過調整從歷史記錄中獲取命令,或通過修改運行先前運行的命令。以下所有命令均已在 bash Shell 中明確檢查。雖然我沒有檢查過,但其中大部分不會在其他 shell 中運行。

按命令編號運行歷史記錄中的命令。

您可能不知道您可以從歷史命令(已經 / 較早執行的命令)運行命令這一事實。要開始,首先通過運行 “history” 命令找到命令編號。

$history

現在,在history的輸出中,僅按照它出現的編號運行來自history的命令。假設運行出現在'history' 命令輸出中編號為1551的命令。

$!1551

并且,它運行在編號1551中列出的命令。這種檢索已執行命令的方法非常有用,特別是在那些很長的命令的情況下。您只需要使用**!**來調用它。

將先前執行的命令作為倒數第二個命令、倒數第 7 個命令等運行。

你可以運行那些你之前運行過的命令,它們的運行順序是最后一個運行命令將表示為**-1**,倒數第二個為**-2**,倒數第七個為**-7**,......。

首先運行history命令以獲取上次執行命令的列表。有必要運行history命令,這樣您就可以確保沒有類似的命令rm command > file和其他命令,只是為了確保您不會意外運行任何危險的命令。然后檢查第六個最后一個命令,八個最后一個命令和第十個最后一個命令。

$history
$!-6
$!-8
$!-10

按數字運行上次執行的命令

將我們運行的最后一個命令的參數傳遞給新命令,無需重新輸入

我需要列出目錄 “/home/$USER/Binary/firefox” 的內容。

$ls/home/$USER/Binary/firefox

然后我意識到我應該觸發 “ls -l” 以查看哪個文件在那里可執行?所以我應該再次輸入整個命令!不,我不需要。我只需要將這個新命令的最后一個參數作為:

$ls-l!$

這里!$將攜帶在最后一個命令中傳遞給這個新命令的參數。

將上次執行命令的參數傳遞給新命令

如何使用 (!) 處理兩個或多個參數

假設我在桌面上創建了一個文本文件1.txt

$touch/home/avi/Desktop/1.txt

然后使用cp命令在任一側使用完整路徑將其復制到 “/home/avi/Downloads”。

$cp/home/avi/Desktop/1.txt/home/avi/downloads

現在我們已經使用cp命令傳遞了兩個參數。第一個是 “/home/avi/Desktop/1.txt”,第二個是 “/home/avi/Downloads”,讓我們以不同的方式處理它們,只需執行echo [arguments]以不同方式打印兩個參數。

$echo"1stArgumentis:!^"
$echo"2ndArgumentis:!cp:2"

注意第一個參數可以打印為“!^”,其余參數可以通過執行“![Name_of_Command]:[Number_of_argument]”.

在上面的例子中,第一個命令是 “cp”,第二個參數需要打印。因此“!cp:2”,如果任何命令說xyz使用 5 個參數運行并且您需要獲得第 4 個參數,您可以使用“!xyz:4”,并根據需要使用它。所有參數都可以通過 訪問“!*”。

處理兩個或更多參數

根據關鍵字執行最后一條命令我們可以根據關鍵字執行上次執行的命令。我們可以這樣理解:

$ls/home>/dev/null[Command1]
$ls-l/home/avi/Desktop>/dev/null[Command2]
$ls-la/home/avi/Downloads>/dev/null[Command3]
$ls-lA/usr/bin>/dev/null[Command4]

在這里,我們使用了相同的命令**(ls),但使用了不同的開關和不同的文件夾。此外,我們已將每個命令的輸出發送到 “/dev/null**”,因為我們不會處理命令的輸出,控制臺也保持干凈。

現在根據關鍵字執行上次運行命令。

$!ls[Command1]
$!ls-l[Command2]
$!ls-la[Command3]
$!ls-lA[Command4]

檢查輸出,您會驚訝地發現您只是通過ls關鍵字運行已執行的命令。

根據關鍵字運行命令

神奇的!!

您可以使用(!!).它將在當前命令中使用 alter/tweak 調用最后一個運行命令。給你看場景

最后一天我運行了一個單行腳本來獲取我的私有 IP,所以我運行,

$ipaddrshow|grepinet|grep-v'inet6'|grep-v'127.0.0.1'|awk'{print$2}'|cut-f1-d/

然后我突然發現我需要將上面腳本的輸出重定向到一個文件ip.txt,那我該怎么辦?我應該再次重新輸入整個命令并將輸出重定向到文件嗎?那么一個簡單的解決方案是使用UP導航鍵并添加'> ip.txt'將輸出重定向到文件。

$ipaddrshow|grepinet|grep-v'inet6'|grep-v'127.0.0.1'|awk'{print$2}'|cut-f1-d/>ip.txt

UP鍵可以快速找到歷史命令。現在考慮以下條件,下次我在單行腳本下運行時。

$ifconfig|grep"inetaddr:"|awk'{print$2}'|grep-v'127.0.0.1'|cut-f2-d:

一旦我運行腳本,bash 提示符就會返回一個錯誤消息“bash: ifconfig: command not found”,我不難猜測我以用戶身份運行此命令,而它應該以 root 身份運行。

那么有什么解決辦法呢?很難登錄到 root 然后再次鍵入整個命令!此外,上一個示例中的(向上導航鍵)在這里也沒有出現。所以?我們需要“!!”不帶引號調用,這將調用該用戶的最后一個命令。

$su-c!!root

這里su是切換用戶,也就是 root,-c以用戶身份運行特定的命令,最重要的部分!!將被命令替換,最后運行的命令將在這里替換。是的!您需要提供 root 密碼。

!!主要在以下場景中使用,

當我以普通用戶身份運行apt-get命令時,我通常會收到一個錯誤,說您無權執行。

$apt-getupgrade&&apt-getdist-upgrade

Opps 錯誤... 不要擔心執行以下命令以使其成功..

$su-c!!
$serviceapache2start
or
$/etc/init.d/apache2start
or
$systemctlstartapache2

OOPS 用戶無權執行此類任務,所以我運行..

$su-c'serviceapache2start'
or
$su-c'/etc/init.d/apache2start'
or
$su-c'systemctlstartapache2'

運行影響除 ![FILE_NAME] 之外的所有文件的命令

該!(邏輯 NOT)可以用來運行所有命令的文件 / 文件擴展名,除了后面'!'。

A.從目錄中刪除所有文件,但名稱為2.txt的文件除外。

$rm!(2.txt)

**B.**從文件夾中刪除所有文件類型,除了擴展名為 “pdf”的文件類型。

$$rm!(*.pdf)

檢查一個目錄(比如 / home/avi/Tecmint)是否存在?printf 如果所述目錄存在與否。

在這里,我們將使用'! -d'來驗證目錄是否存在,然后使用邏輯 AND 運算符(&&)來打印該目錄不存在,然后使用邏輯 OR 運算符(||)來打印目錄是否存在。

邏輯是,當輸出[ ! -d /home/rumenz ]為0 時,它將執行超出 Logical 的內容**,否則它將轉到 Logical OR(||)并執行超出 LogicalOR 的內容**。

$[!-d/home/rumenz]&&printf'
nosuch/home/rumenzdirectoryexist
'||printf'
/home/rumenzdirectoryexist
'

檢查目錄是否存在?如果沒有退出命令。與上述條件類似,但這里如果所需目錄不存在,它將退出命令。

$[!-d/home/rumenz]&&exit

如果它不存在,則在您的主目錄中創建一個目錄(比如 rumenz)。腳本語言中的一種通用實現,如果所需目錄不存在,它將創建一個。

[!-d/home/rumenz]&&mkdir/home/rumenz





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux系統
    +關注

    關注

    4

    文章

    596

    瀏覽量

    27526
  • Shell
    +關注

    關注

    1

    文章

    366

    瀏覽量

    23478

原文標題:linux中嘆號(!)的10個技巧

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Linuxgrep命令的12實際例子

    Linuxgrep命令的12實際例子
    發表于 02-08 09:38 ?756次閱讀

    選擇舊版安裝Windows 10時會出現2嘆號

    盡管如此,我的操作系統是最新的(10.0.17134 Build 17134)并安裝了最新的芯片組驅動程序(10.1.1.42),但帶有2嘆號;如果Windows 10處于uefi模式(相同
    發表于 10-26 14:55

    為什么AD10界面右下角總是出現一嘆號

    ad10應該是破解成功了,如圖:AD10界面右下角總是出現一嘆號:怎么解決呢??
    發表于 08-02 04:38

    單片機win10 USB下載驅動程序預安裝成功,可是點開端口,有黃色感嘆號

    win10系統,單片機USB驅動程序CH340預安裝成功,但是點開端口,有黃色感嘆號,關閉電腦強制簽名也是試過了,還是不行,請問有什么解決辦法么?
    發表于 10-15 22:22

    UDE-STK在設備管理器顯示黃色感嘆號

    UDE-STK 在設備管理器顯示黃色感嘆號,然后無法正常使用是什么情況?之前在其他電腦上用過是正常可以使用的,換了臺電腦重新安裝就顯示黃色感嘆號,無法用了怎么回事呢?在線急等,請各位大神指教!!!謝謝謝謝
    發表于 12-05 08:30

    win10通訊端口為什么有黃色感嘆號啊?

    win10通訊端口為什么有黃色感嘆號啊?
    發表于 09-28 06:52

    嘆號顯示器電路圖

    嘆號顯示器電路圖
    發表于 03-29 09:49 ?447次閱讀
    驚<b class='flag-5'>嘆號</b>顯示器電路圖

    揭開連接出現小嘆號不能上網問題的神秘面紗

    揭開連接出現小嘆號不能上網問題的神秘面紗 “怎么又不能上網了?”每次上不了網總出現一嘆號?為什么在家里上網出現這個小嘆號就能上
    發表于 02-23 13:59 ?828次閱讀

    介紹Linux 終端運行的 10 網絡監視工具

    保持對我們的網絡的管理,防止任何程序過度使用網絡、導致整個系統操作變慢,對管理員來說是至關重要的。有幾個網絡監視工具可以用于不同的操作系統。在這篇文章,我們將討論從 Linux 終端運行的
    的頭像 發表于 01-05 11:04 ?4614次閱讀
    介紹<b class='flag-5'>Linux</b> 終端<b class='flag-5'>中</b>運行的 <b class='flag-5'>10</b> <b class='flag-5'>個</b>網絡監視工具

    如何快速入門運維?了解Linux10命令鏈接操作符

    Linux命令鏈接的意思是,通過操作符的行為將幾個命令組合執行。Linux的鏈接命令,有些像你在shell寫短小的shell腳本,并直
    的頭像 發表于 10-03 19:33 ?3089次閱讀

    iPhone14 Pro嘆號孔可顯示為藥丸形

      據有關人士透露。蘋果iPhone 14 Pro型號的“感嘆號”沖孔可以設置為一完整的“藥丸”形狀,中間部分可以用作隱私指示器,在使用麥克風和攝像頭時提醒應用程序。
    的頭像 發表于 09-01 10:44 ?3306次閱讀

    Linux如何比較兩文件的差異?

    Linux 如何比較兩文件的差異?答案是使用 diff 命令。
    的頭像 發表于 01-17 17:30 ?5326次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>中</b>如何比較兩<b class='flag-5'>個</b>文件的差異?

    Linux如何比較兩文件的差異?

    Linux 如何比較兩文件的差異?答案是使用 diff 命令。
    的頭像 發表于 01-30 16:04 ?1.2w次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>中</b>如何比較兩<b class='flag-5'>個</b>文件的差異?

    Linux系統10常用的文本查看命令

    當你需要查看Linux系統的文本文件時,使用文本編輯器可能會比較繁瑣,特別是當你只需要查看文件的內容時。這時,你可以使用Linux命令行下的文本查看工具來快速準確地查看文件。下面介紹了10
    的頭像 發表于 06-24 11:44 ?1.1w次閱讀

    C語言中兩嘆號的作用是什么

    不知道你是否看過上面類似的代碼,兩嘆號出現在代碼,難道代碼也有思想,也需要表達情感嗎?
    的頭像 發表于 12-04 11:02 ?1660次閱讀
    C語言中兩<b class='flag-5'>個</b>感<b class='flag-5'>嘆號</b>的作用是什么
    主站蜘蛛池模板: 欧美一级黄色录相 | 四虎影院www | 欧美午夜在线视频 | 国产精品久久久亚洲第一牛牛 | 久久婷人人澡人人爽 | 国产成人综合网在线播放 | 一级特黄aaa大片免费看 | 丁香六月色婷婷 | 欧美一级特黄aaaaaa在线看首页 | 特黄特黄 | 在线观看886影院成人影院 | 亚洲一区二区福利视频 | h黄网站| 女人张开腿让男人桶免费最新 | 黄色午夜网站 | 免费黄色福利 | 国产午夜在线观看视频播放 | 夜夜爱夜夜做 | 日本亚洲欧美国产日韩ay高清 | 国产小视频在线看 | 久久青 | 一级毛片在播放免费 | 日本三级a| 欧美福利在线播放 | 欧美亚洲综合另类成人 | 日本高清中文字幕在线观穿线视频 | 国产女同 | 国产国产人免费人成成免视频 | 国产成人亚洲毛片 | 天天爽夜夜爽人人爽曰喷水 | 办公室桌震娇喘视频大全在线 | 久久午夜宅男免费网站 | 欧美性69| 欧美黄色片免费看 | 亚洲国产精 | 亚洲日韩图片专区第1页 | 国产呦系列呦交 | 亚洲一区中文字幕在线观看 | 日本不卡一区二区三区视频 | 黄色一级日本 | 女人本色高清在线观看wwwwww国产 |