如果您使用終端機,則非常有用的技巧(將CD命令與LS ...等等結合使用)

我是那些大部分時間都花在 終端 (console、bash、shell,無論你想怎麼稱呼它),由於 X 或 Y 原因,我必須不斷更改目錄,並對其進行工作 🙂

在絕大多數情況下,目錄更改(例如: cd / opt /),我也想知道該目錄中有什麼,知道我使用的第二個 ls.

也就是說,它會是這樣的:

kzkggaara@geass:~$ cd /opt/
kzkggaara@geass:/opt/$
kzkggaara@geass:/opt/$ls
Nessus的

我已經說過很多次了......我很懶,我喜歡在終端中執行盡可能少的步驟,這就是為什麼經過大量實驗後,我已經實現了我想要的。

看下面的,無非是我進入的 /選擇/ 用簡單的命令 cd / opt /:

正如您所看到的,一步到位 (cd / opt /)我輸入目錄,它還列出了該目錄的內容,並且......好像這還不夠,它用顏色向我顯示它😀

這是我訪問的示例 /等等/cd /等/:


顏色很容易理解:

沒有顏色 = 文件
藍色 = 文件夾
綠色 = 具有執行權限的文件

但讓我們來談談主要的事情...... 到底如何僅使用 cd 我也可以自動列出我訪問的目錄?

我們的檔案 的.bashrc (位於我們的家庭或個人文件夾中)將幫助我們做到這一點,我們必須首先聲明一個函數,我們將調用它 CDLS:

函數 cdls { cd "$1"; ls --顏色;}

我們把這條線放在我們的任何一邊 的.bashrc ...這裡我留下執行此操作的命令:

echo "" >> $HOME/.bashrc && echo "function cdls { cd "$1"; ls --color;}" >> $HOME/.bashrc

他們不一定必須使用此命令,目標是使文件 的.bashrc 包含這一行,因此只需使用您喜歡的文本編輯器編輯此文件即可(鼠標墊、kate、gedit、nano、vi 等)並添加它。
他們保存更改,關閉已打開的終端,然後打開一個新終端。

在其中我們將編寫以下內容並按 [輸入]:

cdls $HOME

這應該足以訪問該終端中的我們的個人文件夾,並且它還將列出其內容(帶有顏色和所有內容)。

我的意思是 CDLS 它已經做到了我們想要的......現在我們只需要實現同樣的事情,但是 cd

為此,我們在文件中添加 的.bashrc 下一行:

alias cd='cdls'

這會讓我們在寫的時候 cd ...將實際執行我們定義的操作 CDLS

我留給您的命令將自動放置上一行:

echo "" >> $HOME/.bashrc && echo "alias cd='cdls'" >> $HOME/.bashrc

但正如我之前告訴您的那樣,目標是將另一行添加到同一文件中,您可以使用您選擇的文本編輯器。

完成後,關閉終端並打開一個新終端......在其中寫入以下內容並按 [輸入]:

cd /etc/

賓果遊戲,他們會進入 / etc文件夾/ 並且還將列出該文件夾的內容,並帶有顏色😉(就像上一張照片一樣)

它有什麼用? 😀

對於好奇的人來說,這個函數意味著什麼? ......我給你留下簡單的解釋:

函數cdls = 這裡我們定義我們正在創建一個新函數,它將被稱為 cdls
光盤“1美元” = 這個函數將執行的操作(每次我們調用、使用或執行它時都會執行)是 cd (enter) 到第一個參數,即... -» «cd /home/»,«$1» 意味著 «什麼我們在 cd 之後寫入”,在本例中,第一個參數是“/home/”。
; = 這意味著該命令到此結束,或者要執行的操作...但是一個函數可以執行更多操作,我們現在將為它定義第二個操作。
ls——顏色; = 表示除了之前聲明的任何動作之外,還會ls我們所在的位置,並且ls會用顏色(--color)來做。

最後一件事......最聰明的人會意識到這種邏輯(採用一個函數並將其配置為執行多個操作)有很多很多潛力,例如......如果我想進入一個文件夾,並刪除另一個,就是我想進入 /家/ 並且還刪除 /選擇/溫度/ 它的函數是:

function asdasd { cd "$1"; rm -Rv "$2"; }

並在終端中輸入 asdasd /home/ /opt/測試/ 會,因為它將進入第一個參數(/家/)並刪除第二個(/選擇/溫度/).

不管怎樣,這確實有很大的潛力,呵呵,就看你能否充分利用它了。

如果您有任何疑問或問題、投訴或建議,我很樂意幫助您,我絕不是專家,但至少我喜歡提供幫助😀

問候


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   blablabla 他說:

    而這一切都是因為不使用 Zsh。

    1.    KZKG ^ Gaara 他說:

      我其實並不認識他
      謝謝你的信息,我去看看。

      然而,知識並不佔用空間……一個人可以獲得的技巧和知識越多越好,你不覺得嗎? 🙂

      1.    MSX 他說:

        zsh是給基佬用的,男人用sh!!! >:D

        實際上

        1.    KZKG ^ Gaara 他說:

          哈哈哈不不不……我不這麼認為,也不要這樣說,因為有些人可能會覺得被冒犯。
          每個人都用最適合自己、最喜歡的東西😀

          1.    MSX 他說:

            😉

            Autojump 是我經常使用的一個應用程序來導航我的系統:
            https://github.com/joelthelion/autojump/blob/master/README.md

        2.    blablabla 他說:

          男人很實際,女人和酷兒則喜歡讓自己的生活變得複雜。 無需進一步澄清。

          1.    KZKG ^ Gaara 他說:

            請盡量不要評論性取向是嗎? ……這種事情曾經出現過尷尬的情況。

            希望這是可以理解的。

          2.    blablabla 他說:

            該澄清應發送給@msx。 想法是基於真實、客觀和理性的主張而不是侮辱或粗魯而建立的。

            1.    KZKG ^ Gaara 他說:

              在我上面的評論中,我告訴他不要說那些話(值得冗餘)。
              現在我再說一遍,是的,但不是專門針對你的,它對每個人都有效。

              不要誤解,我的目的不是讓任何人感到不舒服或不好,我只是想避免誤解🙂


          3.    馬丁 他說:

            哈哈哈,我才看到這個評論!

            “這個澄清應該交給@msx。 想法是通過真實、客觀和理性的主張建立的,而不是通過侮辱或粗魯的言語構建的。”
            別再早餐吃檸檬了,伙計,你已經像 100 美元鈔票上的富蘭克林了: http://www.watchingamerica.com/frankfurterallgemeine000009.shtml

            ????

        3.    亞伯 他說:

          zsh 適合同性戀嗎?嗯,我想我喜歡當同性戀,所以自從我學會如何使用它後,我就沒有停止過,也不打算停止。 哦_____o

          男人用 sh 嗎?這是來自 bashrc 充滿東西的人的罕見評論,所以我假設你是女人。 xP

          1.    KZKG ^ Gaara 他說:

            這就是我不想達到的目的。 拜託,我們別再吵了,好嗎? 🙂
            每個人都使用他們想要的東西... sh,zsh,或者任何他們想要的東西,而且...每個人都有他們想要的性取向,這裡已經為類似的事情發生過爭吵🙁

          2.    MSX 他說:

            哈哈哈xD

            最近,zsh 已經發展了很多,只要我有時間 - 哈,多麼迷惑! - 我將盡可能多地閱讀它的文檔以利用它,並且我將做出改變 🙂

            現在認真地說:zsh 唯一讓我有點惱火的是它與 Bash 不是 100% 兼容,所以如果我們在腳本中使用 zsh,充分利用它的潛力,那麼腳本非常非常有可能在bash中會失敗,否則另外,即使我們使用zsh,我們在bash中編寫shell腳本,使用zsh也是浪費...o_O

            儘管如此,我認為 zsh 還是值得的。 說到貝殼,你知道Fish嗎? 該項目浴火重生,現在被稱為fishfish,並且開發速度非常快。

    2.    黑客775 他說:

      我認為你應該寫 zsh 因為終端非常區分大小寫。

      雖然 cd && ls /path 也有效

      雖然寫的比較長

      問候😀

      1.    黑客775 他說:

        我錯了,我錯過了手指

        我用這個列出並訪問了一個目錄

        cd && ls /路徑

        但它只列出了

        儘管僅列出它的用途

        ls /路徑

        等效的命令是

        cd /路徑 && ls

        問候

        1.    KZKG ^ Gaara 他說:

          事實上,使用 && 可以達到同樣的效果 😀
          唯一的區別是“cd /opt/ && ls”比“cd /opt/”多了6個字符,也就是說,我必須多按6個鍵^-^U...我有點懶對於這樣簡單的事情呵呵。

          這就是我加入 cd + ls 的原因...哈哈!!

          1.    黑客775 他說:

            我還使用的是按擴展名過濾結果。

            例子

            我在 ~/Downloads 中有很多文件超過 100 個,我只想查看 .png 來執行此操作

            cd 下載 && ls *png

            我需要添加或執行哪些操作才能以更簡單的代碼過濾結果?

            問候

            1.    KZKG ^ Gaara 他說:

              簡單😉
              您創建一個函數,例如, CDLSF:
              function cdlsf { cd "$1"; ls *.$2; }

              使用它的方法是:
              cdlsf /選擇/ png

              這只會列出文件 巴紐 en /選擇/
              即第一個參數(在示例中 /選擇/) 將是您要訪問的目錄,第二個參數 (在示例中 PNG) 將是列出目錄時要過濾的擴展名。

              另一個例子,如果您想轉到 /home/username/Pictures 並僅查看 .JPG 文件,則為:
              cdlsf /home/用戶/圖片 jpg

              ????

              這就是你想要的,對吧?

              PS:我將 cdlsf 改為 cd(enter)ls(list)f(filter) …但顯然你可以隨意調用該函數。


    3.    評估 他說:

      zsh 不是 POSIX,更糟糕的是它需要更長的時間來啟動,所以我更喜歡成為一個基佬,但效率更高

      1.    blablabla 他說:

        首先,在 zsh 中您可以啟用 POSIX 兼容性。 其次,啟動需要時間,具體取決於啟動時加載的功能數量,因此可以隨心所欲地輕量。 第三,zsh 比任何其他 shell 都更實用、更高效。 第四,在批評之前使用它。

        1.    MSX 他說:

          第五。 當您啟用 POSIX 兼容性時,使用 ZSH 不再有意義。

          我已經使用它有一段時間了,它不值得,sh 很短,而 Bash 很完美,使用正確的別名和函數,在 Bash 中沒有什麼是做不到的。

  2.   馬爾科 他說:

    我真的很喜歡這個主題。 事實上,他們應該創建一篇更長的文章,介紹可在終端和特定發行版(例如 Chakra)中通用的命令。

  3.   潮汐 他說:

    我發現它非常有趣,因為除了教授這個小技巧之外,您還解釋了每個命令的工作原理。

    自從我進入 Linux 世界以來(不久前......)我就一直在關注你,並且我被鼓勵發表評論只是為了祝賀你這篇文章😉

    1.    KZKG ^ Gaara 他說:

      感謝您過來給我們留下評論😀
      每當我冒險解釋一些事情時,我都喜歡盡可能清楚地解釋...好吧,我很清楚在互聯網上閱讀教程卻什麼都不懂是什麼感覺哈哈哈。

      雙重歡迎......歡迎來到 Tux 的世界哈哈,也歡迎來到博客 🙂
      如果您有任何疑問,請告訴我們,呵呵。

      問候並感謝您的評論 ^ ⁻ ^

  4.   伊万 他說:

    我剛剛從另一個網站讀到你的條目,我無法抗拒:

    只需在 .bashrc 中創建一個別名不是更容易嗎?

    別名 cd='ls'

    1.    KZKG ^ Gaara 他說:

      實際上,我想要實現的是輸入一個 X 目錄(/opt/ ... /home/username/ ... 等等),並且當我輸入它時,它會自動列出該目錄的內容。

      只需 1 個步驟或命令即可完成這一切。

      按照您的指示創建別名,然後它會列出目錄,是的,但不會輸入它。

      1.    伊万 他說:

        據我了解,這樣做的目的是,如果你想通過“cd”命令輸入“/etc”,當你輸入時,它會自動向你顯示該目錄的內容,對嗎?

        如果是這樣,您可以將該函數簡化為別名,在 .bashrc 中放置:

        別名 cd=”ls”

        這樣,當您在終端中使用時:

        cd /等

        您將進入“/etc”目錄,它還會自動列出其中的所有文件和目錄。

        如果我誤解了目的,請道歉😛

        1.    KZKG ^ Gaara 他說:

          事實上,我想輸入一個目錄並在其中列出它包含的內容。
          我嘗試了你所說的,通過別名聲明 cd = ls,但它不起作用。
          我將其設置為自身,然後執行以下操作:
          光盤 /etc/

          但它列出了 /etc/ ... 但它不會進入該目錄。
          我留下截圖給你看: http://img204.imageshack.us/img204/5272/cdlserror.png

          1.    伊万 他說:

            我的錯誤😀

            很明顯,它不會那樣工作,即使我嘗試使用:

            別名 cdls='cd $1;ls'

            由於某些奇怪的原因它不起作用,它只列出目錄但不進入 D:

            bash 錯誤? xd

            抱歉無意義的評論! 😀 我將這個函數用於我的 bashrc 😛

            1.    KZKG ^ Gaara 他說:

              就是別名和函數不一樣,別名如果你想讓它等於幾個命令,你必須使用 && ...它不像函數中那樣使用 ; 並輸入更多說明會對您有所幫助。

              哈哈,根本不是朋友,沒什麼可道歉的😀
              問候

              PS:……該死……當我看到Arch標誌時我會懷念…… T_T ...


          2.    伊万 他說:

            我知道它不一樣,但我認為它會起作用(錯誤:P)

            只是使用“;”對我有用。 而不是別名 D 中的“&&”:(我有兩個這樣的別名,我不明白的是為什麼它不能與我想為此情況創建的別名一起使用)

            謝謝,順便說一句,我想我會以“常客”的標題留在博客上😀我真的很喜歡博客的內容😛

            哦,是的,我知道,有時候我會和我親愛的 Arch 分開,但是,我不知道為什麼,我總是不可能不回到他身邊 xD

            的問候!

            1.    KZKG ^ Gaara 他說:

              嗯...Tux很神秘,他做的事情很多時候我們不理解他,但他對每個人都有一個計劃或目的...哈哈😀

              很高興讀到你所說的,另一個加入博客的 Arch 用戶哈哈哈哈......真的很高興😀

              由於內核給我帶來了非常罕見的問題,我不得不停止使用它......但它仍然在我心中佔據一席之地🙁


          3.    伊万 他說:

            哈哈哈哈

            我還沒有遇到過一個不太關心發行版的 Arch 用戶,它有一個“我不知道什麼,我知道什麼”:P,無論如何,如果你遇到的問題很長不久前,你可以考慮回到 Arch 😀

            順便說一句,我知道我已經在其他地方讀過你的名字(好吧,暱稱,化名,暱稱,等等),你是 artescritorio 編輯的一員,對吧? 🙂
            我以前讀過它們 🙂

  5.   雨果 他說:

    實際上,列出一個目錄的內容並不需要輸入它,所以我不認為你選擇的例子是最快樂的,哈哈。 話雖這麼說,函數可以用於許多有用的事情。

    例如,我使用此函數創建一個目錄並立即跳轉到該目錄(驗證僅使用一個參數):

    function mkcd () {
    FNERR="Parametros incorrectos.\nUso: mkcd "
    if [ $# -eq 1 ] ; then
    mkdir -p "$1" && cd "$1"
    else
    echo -e $FNERR
    fi
    }

    1.    雨果 他說:

      嗯……博客吃了部分命令,我會嘗試用 HTML 標籤放置不完整的行:

      FNERR="Parametros incorrectos.\nUso: mkcd <nombre del directorio a crear>"

    2.    KZKG ^ Gaara 他說:

      我想要實現的目標是讓自己節省一步。
      也就是說,假設我想進入一個目錄(/etc/squid/)然後編輯該目錄中的文件,但我不記得該文件的名稱。

      步驟通常是:
      cd /etc/squid/
      ls
      納米.conf 文件

      但是,通過我提出的這個技巧,它可以將前 2 個步驟變成 1 個步驟,因此只需執行以下操作即可:
      cd /etc/squid/

      它還會自動列出目錄的內容。
      這只是為了讓我們節省一步😀

      你懂我的?

      ……我很難解釋哈哈。

      1.    雨果 他說:

        不,解釋沒有問題,我的意思是,也許您選擇用來說明提示的示例並不理想,因為可以製作一個簡單的“ls 目錄”。

        事實上,當我看到這個功能時,我就明白了它的用途。 我還在我的應用程序中使用各種功能 .bash_別名例如,這是我經常使用的一個來管理歷史記錄:

        h () {
        if [ $# -eq 0 ] ; then
        history | tail -n 25 | less
        elif [ $# -eq 1 ] ; then
        history | egrep -i "$1" | less
        else
        echo -e "Parametros incorrectos."
        fi
        }

        (有了這個功能,如果我只是把 h 我得到了最後 25 個命令,但是如果我輸入 h 安裝 我得到了與安裝相關的最後命令)。

        1.    KZKG ^ Gaara 他說:

          我會接受你的函數呵呵...它值得研究😀

        2.    阿尼巴爾 他說:

          你的工作很棒! 謝謝

        3.    MSX 他說:

          +1

  6.   黑客775 他說:

    KZKG ^ Gaara

    非常好的答案,對我很有幫助,我無法再回答上面的問題

    現在我將使用 cdlsf 來提高我的工作效率,這是一個非常好的命令名稱 😀

    問候

  7.   克里斯托弗·卡斯特羅 他說:

    你如何設置終端的時間,我以前已經做過了,這是我下載的一個bashrc,但我不記得它叫什麼了。

  8.   亞伯 他說:

    很好的入門,我不知道其中的竅門,我將把它付諸實踐,看看效果如何。 xP

    問候。

    1.    亞伯 他說:

      如果能加上我的瀏覽器就好了。 xd

      再次問候。 xd

      1.    KZKG ^ Gaara 他說:

        您使用什麼瀏覽器?
        好吧,在另一條評論中我看到你使用了 Firefox 🙂

        1.    亞伯 他說:

          是的,我使用 Firefox,但它越來越少,它不再是我的主要瀏覽器,我正在使用 dwb,如果可以添加它就好了。 xP

          問候。

  9.   吉列爾莫 他說:

    並且創建此別名不會在嘗試僅 cd 並給出 ls 輸出的腳本中導致問題? 我特別喜歡使用其他可執行文件未使用的名稱創建別名,因為這不是第一次給我帶來問題......

  10.   伊里戈爾 他說:

    如何獲得虛線和每個命令後的時間?

  11.   MSX 他說:

    我的貢獻:
    別名 ldir='ls | grep -v \\.' ## 僅列出目錄(注意,不要將其重命名為 ld,因為有一個 GNU/Linux 命令具有該名稱)
    -
    別名 ll='ls -lah –顏色 | awk '\»{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i ));if(k)printf(" %0o ",k);print}'\'''

    這個別名的有趣之處在於 awk 解析 ls 輸出,結果? 它在 rwx 旁邊以八進制格式顯示文件權限,對我來說比字母更實用、更快。

    -
    別名 lg='ls -lah –顏色 | awk '\''{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8- i));if(k)printf(" %0o ",k);print}'\''|grep -i'

    上述別名的變體。 我在最後添加了一個 grep ,這樣當我這樣做時它看起來像這樣:
    $lgzip
    僅顯示包含任何形式的 zip 的文件(注意末尾的 -i)以及八進制權限等。
    -
    alias grep='grep –color=auto' ## 顏色 grep 匹配
    -

    我還有很多東西要分享,但這個小地方對我來說很緊張 xD

    @KZKG,工作人員:您是否考慮在博客或論壇(每次發布與控制台相關的提示時我們都會鏈接到該論壇)上發表帖子來收集所有這些寶石?

    的問候!

    1.    KZKG ^ Gaara 他說:

      你說的鏈接是指這個嗎? -» https://blog.desdelinux.net/tag/bash

  12.   MSX 他說:

    我什麼也沒說,不需要其他任何東西,一切都被完美標記了!

  13.   富蘭克林·羅德里格斯 他說:

    真是個奇萊羅,功能非常好!