我是那些大部分時間都花在 終端 (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/測試/ 會,因為它將進入第一個參數(/家/)並刪除第二個(/選擇/溫度/).
不管怎樣,這確實有很大的潛力,呵呵,就看你能否充分利用它了。
如果您有任何疑問或問題、投訴或建議,我很樂意幫助您,我絕不是專家,但至少我喜歡提供幫助😀
問候
而這一切都是因為不使用 Zsh。
我其實並不認識他
謝謝你的信息,我去看看。
然而,知識並不佔用空間……一個人可以獲得的技巧和知識越多越好,你不覺得嗎? 🙂
zsh是給基佬用的,男人用sh!!! >:D
實際上
哈哈哈不不不……我不這麼認為,也不要這樣說,因為有些人可能會覺得被冒犯。
每個人都用最適合自己、最喜歡的東西😀
😉
Autojump 是我經常使用的一個應用程序來導航我的系統:
https://github.com/joelthelion/autojump/blob/master/README.md
男人很實際,女人和酷兒則喜歡讓自己的生活變得複雜。 無需進一步澄清。
請盡量不要評論性取向是嗎? ……這種事情曾經出現過尷尬的情況。
希望這是可以理解的。
該澄清應發送給@msx。 想法是基於真實、客觀和理性的主張而不是侮辱或粗魯而建立的。
在我上面的評論中,我告訴他不要說那些話(值得冗餘)。
現在我再說一遍,是的,但不是專門針對你的,它對每個人都有效。
不要誤解,我的目的不是讓任何人感到不舒服或不好,我只是想避免誤解🙂
哈哈哈,我才看到這個評論!
“這個澄清應該交給@msx。 想法是通過真實、客觀和理性的主張建立的,而不是通過侮辱或粗魯的言語構建的。”
別再早餐吃檸檬了,伙計,你已經像 100 美元鈔票上的富蘭克林了: http://www.watchingamerica.com/frankfurterallgemeine000009.shtml
????
zsh 適合同性戀嗎?嗯,我想我喜歡當同性戀,所以自從我學會如何使用它後,我就沒有停止過,也不打算停止。 哦_____o
男人用 sh 嗎?這是來自 bashrc 充滿東西的人的罕見評論,所以我假設你是女人。 xP
這就是我不想達到的目的。 拜託,我們別再吵了,好嗎? 🙂
每個人都使用他們想要的東西... sh,zsh,或者任何他們想要的東西,而且...每個人都有他們想要的性取向,這裡已經為類似的事情發生過爭吵🙁
哈哈哈xD
最近,zsh 已經發展了很多,只要我有時間 - 哈,多麼迷惑! - 我將盡可能多地閱讀它的文檔以利用它,並且我將做出改變 🙂
現在認真地說:zsh 唯一讓我有點惱火的是它與 Bash 不是 100% 兼容,所以如果我們在腳本中使用 zsh,充分利用它的潛力,那麼腳本非常非常有可能在bash中會失敗,否則另外,即使我們使用zsh,我們在bash中編寫shell腳本,使用zsh也是浪費...o_O
儘管如此,我認為 zsh 還是值得的。 說到貝殼,你知道Fish嗎? 該項目浴火重生,現在被稱為fishfish,並且開發速度非常快。
我認為你應該寫 zsh 因為終端非常區分大小寫。
雖然 cd && ls /path 也有效
雖然寫的比較長
問候😀
我錯了,我錯過了手指
我用這個列出並訪問了一個目錄
cd && ls /路徑
但它只列出了
儘管僅列出它的用途
ls /路徑
等效的命令是
cd /路徑 && ls
問候
事實上,使用 && 可以達到同樣的效果 😀
唯一的區別是“cd /opt/ && ls”比“cd /opt/”多了6個字符,也就是說,我必須多按6個鍵^-^U...我有點懶對於這樣簡單的事情呵呵。
這就是我加入 cd + ls 的原因...哈哈!!
我還使用的是按擴展名過濾結果。
例子
我在 ~/Downloads 中有很多文件超過 100 個,我只想查看 .png 來執行此操作
cd 下載 && ls *png
我需要添加或執行哪些操作才能以更簡單的代碼過濾結果?
問候
簡單😉
您創建一個函數,例如, 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) …但顯然你可以隨意調用該函數。
zsh 不是 POSIX,更糟糕的是它需要更長的時間來啟動,所以我更喜歡成為一個基佬,但效率更高
首先,在 zsh 中您可以啟用 POSIX 兼容性。 其次,啟動需要時間,具體取決於啟動時加載的功能數量,因此可以隨心所欲地輕量。 第三,zsh 比任何其他 shell 都更實用、更高效。 第四,在批評之前使用它。
第五。 當您啟用 POSIX 兼容性時,使用 ZSH 不再有意義。
我已經使用它有一段時間了,它不值得,sh 很短,而 Bash 很完美,使用正確的別名和函數,在 Bash 中沒有什麼是做不到的。
我真的很喜歡這個主題。 事實上,他們應該創建一篇更長的文章,介紹可在終端和特定發行版(例如 Chakra)中通用的命令。
看這個帖子😉
https://blog.desdelinux.net/mas-de-400-comandos-para-gnulinux-que-deberias-conocer/
我發現它非常有趣,因為除了教授這個小技巧之外,您還解釋了每個命令的工作原理。
自從我進入 Linux 世界以來(不久前......)我就一直在關注你,並且我被鼓勵發表評論只是為了祝賀你這篇文章😉
感謝您過來給我們留下評論😀
每當我冒險解釋一些事情時,我都喜歡盡可能清楚地解釋...好吧,我很清楚在互聯網上閱讀教程卻什麼都不懂是什麼感覺哈哈哈。
雙重歡迎......歡迎來到 Tux 的世界哈哈,也歡迎來到博客 🙂
如果您有任何疑問,請告訴我們,呵呵。
問候並感謝您的評論 ^ ⁻ ^
我剛剛從另一個網站讀到你的條目,我無法抗拒:
只需在 .bashrc 中創建一個別名不是更容易嗎?
別名 cd='ls'
實際上,我想要實現的是輸入一個 X 目錄(/opt/ ... /home/username/ ... 等等),並且當我輸入它時,它會自動列出該目錄的內容。
只需 1 個步驟或命令即可完成這一切。
按照您的指示創建別名,然後它會列出目錄,是的,但不會輸入它。
據我了解,這樣做的目的是,如果你想通過“cd”命令輸入“/etc”,當你輸入時,它會自動向你顯示該目錄的內容,對嗎?
如果是這樣,您可以將該函數簡化為別名,在 .bashrc 中放置:
別名 cd=”ls”
這樣,當您在終端中使用時:
cd /等
您將進入“/etc”目錄,它還會自動列出其中的所有文件和目錄。
如果我誤解了目的,請道歉😛
事實上,我想輸入一個目錄並在其中列出它包含的內容。
我嘗試了你所說的,通過別名聲明 cd = ls,但它不起作用。
我將其設置為自身,然後執行以下操作:
光盤 /etc/
但它列出了 /etc/ ... 但它不會進入該目錄。
我留下截圖給你看: http://img204.imageshack.us/img204/5272/cdlserror.png
我的錯誤😀
很明顯,它不會那樣工作,即使我嘗試使用:
別名 cdls='cd $1;ls'
由於某些奇怪的原因它不起作用,它只列出目錄但不進入 D:
bash 錯誤? xd
抱歉無意義的評論! 😀 我將這個函數用於我的 bashrc 😛
就是別名和函數不一樣,別名如果你想讓它等於幾個命令,你必須使用 && ...它不像函數中那樣使用 ; 並輸入更多說明會對您有所幫助。
哈哈,根本不是朋友,沒什麼可道歉的😀
問候
PS:……該死……當我看到Arch標誌時我會懷念…… T_T ...
我知道它不一樣,但我認為它會起作用(錯誤:P)
只是使用“;”對我有用。 而不是別名 D 中的“&&”:(我有兩個這樣的別名,我不明白的是為什麼它不能與我想為此情況創建的別名一起使用)
謝謝,順便說一句,我想我會以“常客”的標題留在博客上😀我真的很喜歡博客的內容😛
哦,是的,我知道,有時候我會和我親愛的 Arch 分開,但是,我不知道為什麼,我總是不可能不回到他身邊 xD
的問候!
嗯...Tux很神秘,他做的事情很多時候我們不理解他,但他對每個人都有一個計劃或目的...哈哈😀
很高興讀到你所說的,另一個加入博客的 Arch 用戶哈哈哈哈......真的很高興😀
由於內核給我帶來了非常罕見的問題,我不得不停止使用它......但它仍然在我心中佔據一席之地🙁
哈哈哈哈
我還沒有遇到過一個不太關心發行版的 Arch 用戶,它有一個“我不知道什麼,我知道什麼”:P,無論如何,如果你遇到的問題很長不久前,你可以考慮回到 Arch 😀
順便說一句,我知道我已經在其他地方讀過你的名字(好吧,暱稱,化名,暱稱,等等),你是 artescritorio 編輯的一員,對吧? 🙂
我以前讀過它們 🙂
實際上,列出一個目錄的內容並不需要輸入它,所以我不認為你選擇的例子是最快樂的,哈哈。 話雖這麼說,函數可以用於許多有用的事情。
例如,我使用此函數創建一個目錄並立即跳轉到該目錄(驗證僅使用一個參數):
function mkcd () {
FNERR="Parametros incorrectos.\nUso: mkcd "
if [ $# -eq 1 ] ; then
mkdir -p "$1" && cd "$1"
else
echo -e $FNERR
fi
}
嗯……博客吃了部分命令,我會嘗試用 HTML 標籤放置不完整的行:
FNERR="Parametros incorrectos.\nUso: mkcd <nombre del directorio a crear>"
我想要實現的目標是讓自己節省一步。
也就是說,假設我想進入一個目錄(/etc/squid/)然後編輯該目錄中的文件,但我不記得該文件的名稱。
步驟通常是:
cd /etc/squid/
ls
納米.conf 文件
但是,通過我提出的這個技巧,它可以將前 2 個步驟變成 1 個步驟,因此只需執行以下操作即可:
cd /etc/squid/
它還會自動列出目錄的內容。
這只是為了讓我們節省一步😀
你懂我的?
……我很難解釋哈哈。
不,解釋沒有問題,我的意思是,也許您選擇用來說明提示的示例並不理想,因為可以製作一個簡單的“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
非常好的答案,對我很有幫助,我無法再回答上面的問題
現在我將使用 cdlsf 來提高我的工作效率,這是一個非常好的命令名稱 😀
問候
你如何設置終端的時間,我以前已經做過了,這是我下載的一個bashrc,但我不記得它叫什麼了。
很好的入門,我不知道其中的竅門,我將把它付諸實踐,看看效果如何。 xP
問候。
如果能加上我的瀏覽器就好了。 xd
再次問候。 xd
您使用什麼瀏覽器?
好吧,在另一條評論中我看到你使用了 Firefox 🙂
是的,我使用 Firefox,但它越來越少,它不再是我的主要瀏覽器,我正在使用 dwb,如果可以添加它就好了。 xP
問候。
並且創建此別名不會在嘗試僅 cd 並給出 ls 輸出的腳本中導致問題? 我特別喜歡使用其他可執行文件未使用的名稱創建別名,因為這不是第一次給我帶來問題......
如何獲得虛線和每個命令後的時間?
看這裡 -” https://blog.desdelinux.net/con-el-terminal-mejorando-la-apariencia-de-la-consola-actualizado/
我的貢獻:
別名 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,工作人員:您是否考慮在博客或論壇(每次發布與控制台相關的提示時我們都會鏈接到該論壇)上發表帖子來收集所有這些寶石?
的問候!
你說的鏈接是指這個嗎? -» https://blog.desdelinux.net/tag/bash
我什麼也沒說,不需要其他任何東西,一切都被完美標記了!
真是個奇萊羅,功能非常好!