Ben çok zaman kullananlardanım terminal (konsol, bash, kabuk, ne demek istersen), X veya Y nedenleriyle sürekli dizini değiştirmem gerekiyor, üzerinde çalışıyorum 🙂
Vakaların büyük çoğunluğunda, dizin değişikliği (Örnek: cd / opt /) ve ayrıca o dizinde ne olduğunu bilmek istiyorum, kullandığım bu saniyeyi bilmek ls.
Yani şöyle olur:
kzkggaara @ geass: ~ $ cd / opt /
kzkggaara @ geass: / opt / $
kzkggaara @ geass: / opt / $ ls
nessus
Bunu defalarca söyledim ... Oldukça tembelim, terminalde en az adımı atmayı seviyorum, bu yüzden birçok deneyden sonra tam istediğimi elde ettim.
Aşağıdakilere bakın, bu benim girmekten başka bir şey değil / opt / basit komutla cd / opt /:
Gördüğünüz gibi tek adımda (cd / opt /) Dizine giriyorum ve AYRICA o dizinin içeriğini listeliyorum ve ... bu yeterli değilmiş gibi, bana renklerle gösteriyor
İşte benim eriştiğim örnek /vb/ ile cd / vb/:
Renklerin anlaşılması kolaydır:
Renk yok = Dosyalar
Mavi renk = Klasörler
Yeşil renk = Yürütme izinlerine sahip dosyalar
Ama asıl şeye geçelim ... Eriştiğim dizini otomatik olarak listelemek için sadece cd'yi nasıl kullanabilirim?
Arşivimiz .bashrc (ev veya kişisel klasörümüzde bulunur) bunu yapmamıza yardımcı olacaksa, önce bir fonksiyon tanımlamalıyız ki cdl'ler:
function cdls {cd "$ 1"; ls –color;}
Bu çizgiyi her iki tarafa da koyarız .bashrc ... işte bunu yapmak için komut:
echo "" >> $HOME/.bashrc && echo "function cdls { cd "$1"; ls --color;}" >> $HOME/.bashrc
Bunu mutlaka bu komutla yapmak zorunda YOKTUR, amaç dosyanın .bashrc bu satırı içerir, bu nedenle bu dosyayı tercih ettiğiniz metin düzenleyiciyle düzenleyin (mousepad, kate, gedit, nano, vi vb.) ve ekleyin.
Değişikliği kaydeder, açtıkları terminali kapatır ve yeni bir tane açar.
İçinde aşağıdakileri yazacağız ve basacağız [Girmek]:
cdls $HOME
Bu, o terminaldeki kişisel klasörümüze erişmek için yeterli olmalı ve içeriğini de (renkler ve her şeyle) listeleyecektir.
Ne demek istedim cdl'ler zaten istediğimizi yapıyor ... şimdi sadece aynı şeyi başarabiliriz ama cd
Bunun için dosyaya ekliyoruz .bashrc aşağıdaki satır:
alias cd='cdls'
Bu yazdığımızda yapacak cd ... tanımladığımız eylem aslında cdl'ler
Bu önceki satırı otomatik olarak koyacak olan komutu bırakıyorum:
echo "" >> $HOME/.bashrc && echo "alias cd='cdls'" >> $HOME/.bashrc
Ama daha önce de söylediğim gibi, amaç bu diğer satırı aynı dosyaya eklemek, bunun için seçtiğiniz metin düzenleyiciyi kullanabilirsiniz.
Bu yapıldıktan sonra, terminali kapatın ve yeni bir tane açın ... içine aşağıdakini yazın ve tuşuna basın [Girmek]:
cd /etc/
Ve bingo, girecekler / Etc/ ve ayrıca bu klasörün içeriği ve renklerle 😉 listelenecek (tıpkı önceki bir fotoğraftaki gibi)
Ne işe yarar? 😀
Merak edenler için bu işlev ne anlama geliyor? ... size basit açıklamayı bırakıyorum:
fonksiyon cdl'leri = Burada yeni bir fonksiyon yarattığımızı tanımlıyoruz ve buna cdl adı verilecek
cd "$ 1" = Ve bu işlevin yapacağı şey (her çağırdığımızda, kullandığımızda veya çalıştırdığımızda yapacak) 1. parametreye doğru bir cd (enter) yapmaktır, yani ... - »« cd / home / »,« $ 1 »," cd'den sonra yazdıklarımız "anlamına gelir, bu örnekte 1. parametre" / home / "dur.
; = Bu, emrin orada bittiği veya yürütülecek eylem olduğu anlamına gelir ... ancak bir işlevin yapacak daha fazla eylemi olabilir ve şimdi ikinci bir tane tanımlayacağız.
ls –renk; = Bu, daha önce bildirilen herhangi bir eyleme ek olarak, bulunduğumuz yerde bir "ls" oluşturacağı ve "ls" nin bunu color (–color) ile yapacağı anlamına gelir.
Son şey ... en akıllısı, bu mantığın (bir işlevi alıp birkaç eylemi yürütecek şekilde yapılandırması) çok, çok fazla potansiyele sahip olduğunu anlayacaklar, örneğin ... bir klasöre girmek istersem ve ayrıca başka bir tane sil, yani girmek istiyorum /ev/ ve ayrıca sil / opt / temp / bunun işlevi şöyle olacaktır:
function asdasd { cd "$1"; rm -Rv "$2"; }
Ve bir terminale yazarak asdasd / home / / opt / test / olur, çünkü 1. parametreye (/ev/) ve ikinciyi (/ opt / temp /).
Her neyse, bu gerçekten çok fazla potansiyele sahip hehe, bundan olabildiğince yararlanmak size kalmış.
Herhangi bir şüpheniz veya sorunuz, şikayetiniz veya öneriniz varsa, size memnuniyetle yardımcı olurum, açık ara uzman değilim ama en azından yardım etmeyi seviyorum 😀
selamlar
Ve tüm bunlar Zsh kullanmadığınız için.
Onu gerçekten tanımıyordum 😉
Bahşiş için teşekkürler, ona göz kulak olacağım.
Bununla birlikte, bilgi gerçekleşmez ... kişi ne kadar çok ipucu ve bilgi edinmeyi başarırsa, o kadar iyi, sence de öyle değil mi? 🙂
Zsh queerler içindir, erkekler sh kullanır !!! >: D
Gerçekte
HAHAHA hayır hayır hayır ... Ben öyle düşünmüyorum ve öyle de söylemeyin, çünkü bazıları kırılabilir.
Her biri kendisine en uygun olanı, en çok sevdiği şeyi kullanır 😀
😉
Sistemimde gezinmek için çok kullandığım bir uygulama Autojump:
https://github.com/joelthelion/autojump/blob/master/README.md
Erkekler pratiktir, kadınlar ve queerler hayatlarını zorlaştırmayı sevenlerdir. Daha fazla açıklamaya gerek yoktur.
Lütfen cinsel tercihler hakkında yorum yapmamaya çalışın, evet? … Bu tür şeyler için rahatsız edici durumlar oldu.
Umarım anlaşılırdır.
Bu açıklama @msx için olmalıdır. Fikirler, hakaret veya edepsizlikle değil, doğru, objektif ve rasyonel ifadelerle oluşturulur.
Yukarıdaki yorumumda ona bunları söylememesini söyledim (fazlalıkları bağışlayın).
Ve şimdi tekrar evet diyorum ama sadece size özel olarak değil, herkes için geçerli.
Yanlış anlama, niyet kimseyi rahatsız ya da kötü hissettirmek değildi, sadece yanlış anlamalardan kaçınmaya çalışıyorum 🙂
Hahaha, bu yorumu az önce gördüm!
«Bu açıklama @msx için olmalıdır. fikirler hakaret veya edepsizlikle değil, doğru, nesnel ve rasyonel ifadelerle oluşturulur. "
Limonla kahvaltı etmeyi bırak dostum, 100 dolarlık banknottaki Franklin gibi görünüyorsun. http://www.watchingamerica.com/frankfurterallgemeine000009.shtml
😀
Yani, queer olmayı sevdiğimi düşünüyorum çünkü kullanmayı öğrendiğimden beri durmadım ve yapmayı düşünmüyorum. o_____o
Erkekler sh kullanıyor mu?, Bu yorum tuhaf bir şeylerle dolu bir bashrc'e sahip birinden geliyor, bu yüzden bir kadın olduğunu varsayacağım. xP
Ulaşmak istemediğim şey buydu. Lütfen, dövüşü burada bırakalım, tamam mı? 🙂
Herkes ne isterse kullanır ... sh, zsh veya ne isterse, ve ayrıca ... herkesin sahip olmak istediği cinsel tercihleri vardır, burada zaten bunun gibi şeyler için kavgalar olmuştur 🙁
hahaha xD
Son zamanlarda zsh çok gelişti, zamanım olur olmaz -ha, ne kadar hayal ürünü! - Bundan yararlanmak ve değişiklik yapmak için belgelerini olabildiğince okuyacağım.
Şimdi ciddi olarak konuşursak: zsh hakkında beni biraz rahatsız eden tek şey, Bash ile% 100 uyumlu olmamasıdır, bu nedenle, komut dosyalarımızda tam potansiyelini alarak zsh kullanırsak, söz konusu komut dosyasının başarısız olması çok, çok olasıdır. Öte yandan bash, diğer yandan zsh kullanmamıza rağmen kabuk betiklerimizi bash olarak yazıyoruz, zsh kullanmak israftır ... o_O
Öyle olsa bile, zsh'nin buna değer olduğunu düşünüyorum. Kabuk demişken, Fish'i tanıyor musun? Proje küllerden doğdu, şimdi balık balığı olarak adlandırılıyor ve çok hızlı geliştiriyorlar.
Bence uçbirim büyük / küçük harfe duyarlı olduğu için zsh yazılmalıdır
Cd && ls / route da geçerli olsa da
Yazması daha uzun olmasına rağmen
Selamlar 😀
Yanılmışım parmağım uçtu
Bununla birlikte listelenir ve bir dizine erişilir
cd && ls / yol
ama sadece hazırlan
sadece listelemek için kullanılmasına rağmen
ls / yol
eşdeğer olan komut
cd / yol && ls
selamlar
Gerçekten, && kullanılarak aynı şey elde edilir 😀
Tek fark, "cd / opt / && ls", "cd / opt /" den 6 daha fazla karaktere sahip olmasıdır, yani 6 tuşa daha basmam gerekir ^ - ^ U ... Biraz tembelim Böyle şeyler için hehe.
Bu yüzden cd + ls'ye katıldım… LOL !!
Ayrıca kullandığım şey, sonuçları uzantılara göre filtrelemem.
örnek
100'den fazla ~ / Downloads klasöründe birçok dosyam var ve bunu yapmak için yalnızca .png dosyasını görmek istiyorum.
cd İndirmeleri && ls * png
Sonuçları daha basit bir kodla filtrelemek için ne eklemem veya yapmam gerekir?
selamlar
Basit 😉
Örneğin, bir işlev oluşturursunuz, cdlsf:
function cdlsf { cd "$1"; ls *.$2; }
Kullanmak için:
cdlsf / opt / png
Ve bu size sadece dosyaları listeleyecek . Png en / opt /
Yani 1. parametre (örnekte / opt /) erişmek istediğiniz dizin ve 2. parametre (örnekte png) dizini listelediğinizde filtrelemek istediğiniz uzantı olacaktır.
Başka bir örnek, / home / user / Pictures'a gitmek ve yalnızca .JPG olan dosyaları görmek istiyorsanız, şöyle olur:
cdlsf / home / kullanıcı / Resimler jpg
😀
İstediğin şey buydu değil mi?
Not: cdlsf'yi cd (enter) ls (liste) f (filtre) olarak koydum ... ama tabii ki fonksiyonu istediğiniz gibi çağırabilirsiniz.
zsh, POSIX değildir ve en önemlisi başlaması daha uzun sürer, bu yüzden ibne olmayı tercih ederim ama daha verimli
İlk olarak, zsh'de POSIX desteğini etkinleştirebilirsiniz. İkincisi, başlangıçta kaç işlev yüklediğinize göre başlamak zaman alır, böylece istediğiniz kadar hafif olabilir. Üçüncüsü, zsh ile biri diğer kabuklardan daha pratik ve etkilidir. Dördüncüsü, eleştirmeden önce kullanın.
5. POSIX desteğini açtığınızda, ZSH'yi kullanmak artık mantıklı değil.
Bir süredir kullanıyorum, buna değmez, sh kısa ve Bash mükemmel, Bash'de uygun takma adlar ve işlevlerle yapamayacağınız hiçbir şey yok.
Konuyu gerçekten beğendim. aslında, genel olarak terminalde ve Chakra gibi belirli dağıtımlarda kullanılabilen komutlar hakkında daha kapsamlı bir makale oluşturmaları gerekir.
Bu gönderiye bak 😉
https://blog.desdelinux.net/mas-de-400-comandos-para-gnulinux-que-deberias-conocer/
Bunu çok ilginç buldum çünkü bu numarayı öğretmenin yanı sıra, her komutun nasıl çalıştığını açıkladınız.
Linux dünyasına başladığımdan beri seni takip ediyorum (uzun zaman önce değil ...) ve sadece makale için sizi tebrik etmek için yorum yapmaya teşvik edildim
Uğrayıp yorum bıraktığınız için teşekkür ederiz 😀
Ne zaman bir şeyi açıklama girişiminde bulunsam, onu olabildiğince açık hale getirmeyi seviyorum ... İnternette dersler okumanın ve hiçbir şey anlamamanın ne olduğunu çok iyi biliyorum hahaha.
İki kez hoş geldiniz ... Tux dünyasına hoş geldiniz haha ve ayrıca bloga hoş geldiniz 🙂
Bildiğiniz herhangi bir sorunuz varsa, bize bildirin.
Selamlar ve yorum için teşekkürler ^ ⁻ ^
Gönderinizi başka bir web sitesinden okudum ve karşı koyamadım:
.Bashrc içinde bir takma ad oluşturmak daha kolay olmaz mıydı?
takma ad cd = 'ls'
Aslında başarmaya çalıştığım şey bir X dizini (/ opt /… / home / user /… her neyse) girmek ve ayrıca onu girdiğimde, o dizinin içeriğini otomatik olarak listelemek.
Hepsini 1 tek adım veya komutla yapın.
Belirttiğiniz gibi bir takma ad oluşturursam, o zaman dizini listelerim, evet, ama girmem.
Anladığım kadarıyla, tüm bunları yapmanın amacı, örneğin "cd" komutu ile "/ etc" girmek isterseniz, girdiğinizde, size o dizinin içeriğini otomatik olarak gösterecektir. ?
Öyleyse, işlevi .bashrc'nin içine koyduğunuz bir "takma ad" olarak basitleştirebilirsiniz:
takma ad cd = »ls»
Bununla, bir terminal içindeyken şunları kullanırsınız:
cd / vb
«/ Etc» dizinine gireceksiniz ve ayrıca oradaki tüm dosya ve dizinleri otomatik olarak listeleyecektir.
Hedefi yanlış anladıysam özür dilerim 😛
Aslında, bir dizine girmek ve içeride ne içerdiğini listelemek istiyorum.
Takma ad vererek cd = ls olduğunu belirterek söylediklerini denedim ama benim için işe yaramadı.
Kendim yapılandırıyorum ve sonra yapıyorum:
cd / etc /
Ama / etc /… listeliyor ama o dizine girmiyor.
Şunları görebilmeniz için bir ekran görüntüsü bırakıyorum: http://img204.imageshack.us/img204/5272/cdlserror.png
Benim hatam 😀
Bu şekilde çalışmayacağı açıktı ve şunu denediğimde bile:
takma ad cdls = 'cd $ 1; ls'
Garip bir nedenden dolayı çalışmıyor, sadece dizini listeler ama D'ye girmez:
Bash hatası mı? xD
Anlamsız yorumlar için bir özür! 😀 Ve bashrc'imin işlevini alıyorum 😛
Bir takma ad bir işlevle aynı değildir, bir takma ad, birkaç komutla aynı olmasını istiyorsanız, && kullanmanız gerekir… işlevlerdeki gibi değildir, kullanmak; ve daha fazla talimat yazmak işine yarayacak.
HAHA nah hiçbir şey için arkadaş, mazeret yok 😀
selamlar
Not:… kahretsin… Arch logosunu gördüğümde ne kadar nostaljik oluyorum…. T_T ...
Aynı olmadığını biliyorum ama işe yarayacağını düşündüm (Hata: P)
Sadece «;» kullanmak benim için işe yarar. D takma adının içindeki "&&" yerine: (Bunun gibi iki takma adım var, anlamadığım şey neden bu vaka için oluşturmak istediğim takma adla çalışmadığıdır)
Teşekkür ederim ve bu arada, sanırım blogda "sık okuyucu" başlığı altında kalacağım 😀 Blog içeriğini gerçekten beğendim 😛
oooh evet biliyorum, bazen kendimi sevgili Arch'ımdan ayırıyorum ama neden bilmiyorum, ona geri dönmem her zaman imkansız xD
Selamlar!
Şey ... Tux gizemlidir, bir şeyler yapar ve çoğu zaman onu anlamıyoruz ama herkes için bir planı veya amacı vardır ... HAHA 😀
Dediklerinizi okumak bir zevk, bloga katılan başka bir Arch kullanıcısı hahahaha ... bir zevk 😀
Çekirdeğin bana verdiği çok tuhaf sorunlar nedeniyle kullanmayı bırakmak zorunda kaldım ... ama yine de kalbimde bir yer kaplıyor 🙁
LOL
Dağıtım için büyük bir sevgiye sahip olmayan bir Arch kullanıcısı ile tanışmadım, "Ne olduğunu bilmiyorum, ne biliyorum": P, belki ve size verdiğim sorunlar uzun zaman önce olsaydı, Arch'a geri dönmeyi düşünebilirsin 😀
Bu arada, başka bir yerde ismini zaten okuduğumu biliyordum (takma ad, takma ad, her neyse), masaüstü yazarlarının bir parçasısın, değil mi? 🙂
Onlara okurdum 🙂
Aslında bir dizinin içeriğini listelemek için ona girmek gerekli değildir, bu yüzden seçtiğiniz örneğin en mutlu olduğunu düşünmüyorum hehe. Bununla birlikte, işlevler birçok yararlı şey için kullanılabilir.
Örneğin, bir dizin oluşturmak ve hemen girmek için bu işlevi kullanıyorum (yalnızca bir parametrenin kullanıldığını doğrulayarak):
function mkcd () {
FNERR="Parametros incorrectos.\nUso: mkcd "
if [ $# -eq 1 ] ; then
mkdir -p "$1" && cd "$1"
else
echo -e $FNERR
fi
}
Hmmm ... blog komutun bir bölümünü yedi, eksik satırı HTML etiketleriyle koymaya çalışacağım:
FNERR="Parametros incorrectos.\nUso: mkcd <nombre del directorio a crear>"
Yapmak istediğim şey kendimi bir adım kurtarmaktı.
Başka bir deyişle, bir dizine (/ etc / squid /) girmek ve sonra bu dizindeki bir dosyayı düzenlemek istediğimi ve dosyanın adını hatırlamadığımı varsayalım.
Adımlar normalde şöyle olacaktır:
cd / etc / kalamar /
ls
nano.conf dosyası
Ancak, önerdiğim bu ipucuyla, ilk 2 adımı yalnızca 1'e dönüştürüyorum, böylece basitçe şunu yaparak:
cd / etc / kalamar /
Benim için de dizinin içeriğini otomatik olarak listeleyecektir.
Bu sadece bir adımı kaydetmekle ilgilidir 😀
Beni anlıyor musun?
... haha'yı açıklamak benim için zor.
Hayır, açıklamanın bir sorunu yoktu, belki de ipucunu göstermeyi seçtiğiniz örneğin ideal olmadığını kastediyorum, çünkü basit bir "ls dizini" oluşturulabilir.
Aslında işlevi görür görmez amacı anladım. Ayrıca çeşitli işlevler kullanıyorum. .bash_aliasesÖrneğin, bu, geçmişi yönetmek için çok kullandığım şey:
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
}
(Bu işlevle, sadece koyarsam h Son 25 komutu alıyorum, ancak örneğin h montajı Montajlarla ilgili son komutları alıyorum).
Senin rolünü alıyorum hehehe ... onu incelemeyi hak ediyor 😀
işlevin harika! Teşekkürler
+1
KZKG ^ Gaara
Çok güzel cevap bana çok iyi hizmet etti, yukarıda cevap veremedim
Şimdi üretkenliğimi artırmak için cdlsf kullanacağım, bir komut için çok iyi bir isim 😀
selamlar
Terminale saati ayarlamak için yaptığınız gibi, bunu daha önce yapmıştım, indirdiğim bir bashrc idi ama ne dendiğini hatırlamıyorum.
İyi giriş, numarayı bilmiyordum, nasıl çalıştığını görmek için uygulamaya koyacağım. xP
Selamlar.
Tarayıcım eklenmiş olsaydı iyi olurdu. xD
Tekrar selamlar. xD
Hangi tarayıcıyı kullanıyorsunuz?
Başka bir yorumda Firefox kullandığınızı gördüm 🙂
Evet, Firefox kullanıyorum ama gittikçe azalıyor ve ana tarayıcım olmaktan çıkıyor, dwb kullanıyorum ve eklenebilirse güzel olurdu. xP
Selamlar.
Ve bu takma adı yapmak, sadece cd yapmaya çalışırken ve ayrıca ls çıktısını almaya çalışırken betiklerde sorunlara neden olmaz mı? Özellikle diğer çalıştırılabilirlerin kullanmadığı isimlerle takma adlar yapmayı tercih ederim, çünkü bu bana ilk kez sorun yaratmıyor ...
Kesikli çizgileri ve her komuttan sonraki zamanı nasıl elde edersiniz?
Buraya bak - " https://blog.desdelinux.net/con-el-terminal-mejorando-la-apariencia-de-la-consola-actualizado/
Benim katkım:
takma ad ldir = 'ls | grep -v \\. ' ## sadece dizinleri listeleyin (dikkatli olun, bu isimde bir GNU / Linux komutu olduğundan onu ld olarak yeniden adlandırmayın)
-
takma ad ll = 'ls -lah –color | awk '\ »{k = 0; for (i = 0; i <= 8; i ++) k + = ((substr ($ 1, i + 2,1) ~ / [rwx] /) * 2 ^ (8-i)); if (k) printf ("% 0o", k); yazdır} '\' ''
Bu takma adla ilgili ilginç olan şey, ls'nin çıktısını ayrıştıran awk, sonuç? Dosya izinlerini rwx'in yanında sekizlik biçimde gösteriyor, benim için harflerden çok daha pratik ve daha hızlı.
-
takma ad lg = 'ls -lah –color | awk '\' '{k = 0; for (i = 0; i <= 8; i ++) k + = ((substr ($ 1, i + 2,1) ~ / [rwx] /) * 2 ^ (8- i)); if (k) printf ("% 0o", k); yazdır} '\' '| grep -i'
Yukarıdaki takma adın bir çeşidi. Sonuna bir grep ekledim, böylece örneğin bunu yaptığımda:
$ lg posta kodu
Bana sadece sekizlik izinlere ek olarak herhangi bir formunda zip içeren dosyaları göster (sonunda -i'ye dikkat edin), vb.
-
takma ad grep = 'grep –color = auto' ## renkler grep eşleşmesi
-
Paylaşacak çok şeyim var ama bu küçük yer beni sıkı sıkı xD
@KZKG, Personel: Tüm bu küçük incileri toplamak için blogda veya forumda (konsolla ilgili bir ipucu her yayınlandığında bağlantı verdiğimiz) bir gönderi açtığınızı düşünüyor musunuz?
Selamlar!
Bağlantı derken bunu mu kastediyorsunuz? - » https://blog.desdelinux.net/tag/bash
Hiçbir şey söylemedim, başka hiçbir şeye gerek yok, her şey mükemmel şekilde etiketlenmiş!
Ne Şilili, bu çok iyi bir işlev!