Jsem jedním z těch, kteří hodně času využívají terminál (konzole, bash, shell, jak to chcete nazvat), z X nebo Y důvodů musím neustále měnit adresář a pracovat na něm 🙂
Ve velké většině případů se změna adresáře (Například: cd / opt /) a také chci vědět, co je v tomto adresáři, vědět tuto druhou, kterou používám ls.
To znamená, že by to bylo takto:
kzkggaara @ geass: ~ $ cd / opt /
kzkggaara @ geass: / opt / $
kzkggaara @ geass: / opt / $ ls
nessus
Říkal jsem to mnohokrát ... Jsem docela líný, rád dělám co nejméně kroků v terminálu, proto jsem po mnoha experimentech dosáhl přesně toho, co jsem chtěl.
Podívejte se na následující, což není nic jiného než vstup do mě / opt / jednoduchým příkazem cd / opt /:
Jak vidíte, v jednom kroku (cd / opt /) Vstoupím do adresáře a TAKÉ vypíše obsah tohoto adresáře a ... jako by to nestačilo, ukazuje mi to barvami 😀
Zde je můj příklad přístupu /atd/ s cd / atd/:
Barvy jsou snadno pochopitelné:
Žádná barva = Soubory
Modrá barva = Složky
Zelená barva = Soubory s oprávněním ke spuštění
Ale pojďme k hlavnímu ... Jak sakra používám pouze cd, mohu také automaticky vypsat adresář, do kterého přistupuji?
Náš archiv .bashrc (nachází se v naší domovské nebo osobní složce) nám v tom pomůže, musíme nejdříve deklarovat funkci, kterou budeme nazývat CDL:
funkce cdls {cd "$ 1"; ls –color;}
Dali jsme tuto linii na obě strany naší .bashrc ... zde je příkaz:
echo "" >> $HOME/.bashrc && echo "function cdls { cd "$1"; ls --color;}" >> $HOME/.bashrc
S tímto příkazem to NEMUSÍTE nutně dělat, cílem je soubor .bashrc obsahuje tento řádek, takže tento soubor upravte pomocí preferovaného textového editoru (podložka pod myš, kate, gedit, nano, vi atd) a přidejte jej.
Uloží změnu, zavře terminál, který mají otevřený, a otevře nový.
V něm napíšeme následující a stiskneme [Enter]:
cdls $HOME
To by mělo stačit pro přístup k naší osobní složce v tomto terminálu a bude také obsahovat seznam jejího obsahu (s barvami a vším).
Chci říct, co CDL už dělá to, co chceme ... nyní můžeme dosáhnout pouze stejného, ale s cd
Za tímto účelem přidáme do souboru .bashrc následující řádek:
alias cd='cdls'
To bude, když budeme psát cd … Akce, kterou definujeme, bude skutečně provedena CDL
Nechám vám příkaz, který automaticky umístí tento řádek výše:
echo "" >> $HOME/.bashrc && echo "alias cd='cdls'" >> $HOME/.bashrc
Ale jak jsem již řekl, cílem je přidat tento další řádek do stejného souboru, můžete pro něj použít textový editor podle vašeho výběru.
Jakmile to provedete, zavřete terminál a otevřete nový ... do něj napište následující a stiskněte [Enter]:
cd /etc/
A bingo, vstoupí / Etc/ a také bude uveden obsah této složky a v barvách 😉 (stejně jako na předchozí fotografii)
K čemu je to užitečné? 😀
Pro zvědavce, kteří se diví, co tato funkce znamená? … Nechám vám jednoduché vysvětlení:
funkční CDL = Zde definujeme, že vytváříme novou funkci a bude se jmenovat cdls
cd "$ 1" = A to, co tato funkce udělá (bude to dělat pokaždé, když zavoláme, použijeme nebo provedeme), je vytvořit cd (enter) k 1. parametru, tedy ... - »« cd / home / »,« $ 1 »znamená« co že píšeme po cd ", v tomto příkladu je 1. parametr" / home / ".
; = To znamená, že tu objednávka končí, nebo akce, která má být provedena ... ale funkce může mít více akcí a nyní definujeme druhou.
ls –barva; = Znamená to, že kromě jakékoli dříve deklarované akce provede také „ls“, kde se nacházíme, a „ls“ to udělá barvou (–color).
Poslední věc ... nejchytřejší, uvědomí si, že tato logika (převzetí funkce a její konfigurace pro provedení několika akcí) má hodně, velký potenciál, například ... pokud chci vstoupit do složky a také smazat jinou, to znamená, že chci vstoupit do /Domov/ a také smazat / opt / temp / funkce pro toto by byla:
function asdasd { cd "$1"; rm -Rv "$2"; }
A psaní terminálu asdasd / home / / opt / test / bylo by to, protože vstoupí do 1. parametru (/Domov/) a odstraňte druhý (/ opt / temp /).
Každopádně, toto má opravdu SPOUSTU potenciálních hehe, je jen na vás, abyste to co nejvíce využili.
Pokud máte jakékoli pochybnosti nebo dotazy, stížnosti nebo návrhy, rád vám pomůžu, nejsem zdaleka odborník, ale alespoň rád pomůžu 😀
pozdravy
A to vše za nepoužívání Zsh.
Opravdu jsem ho neznal 😉
Díky za tip, budu na to dávat pozor.
Znalosti se však nekonají ... čím více tipů a znalostí člověk dokáže získat, tím lépe, nemyslíte? 🙂
Zsh je pro diváky, muži používají sh !!! >: D
V realitě
HAHAHA ne, ne, ne ... nemyslím si to, a také to tak neříkej, protože některé by se mohly urazit.
Každý používá to, co mu nejlépe vyhovuje, co má nejraději 😀
😉
Aplikace, kterou hodně používám k navigaci v mém systému, je Autojump:
https://github.com/joelthelion/autojump/blob/master/README.md
Muži jsou praktičtí, ženy a diváci jsou ti, kteří si rádi komplikují život. Není třeba žádné další objasnění.
Zkuste prosím nekomentovat sexuální preference ano? … Pro takové věci nastaly nepříjemné situace.
Doufám, že je to pochopitelné.
Toto objasnění by mělo být pro @msx. Nápady jsou vytvářeny pravdivými, objektivními a racionálními tvrzeními, nikoli urážkami nebo hrubostí.
Ve svém výše uvedeném komentáři jsem mu řekl, aby tyto věci neříkal (odpusťte nadbytečnost).
A teď říkám znovu ano, ale není zaměřen pouze na vás, je platný pro všechny.
Neberte to špatně, záměrem nebylo, aby se někdo cítil nepohodlně nebo špatně, jen se snažím vyhnout nedorozuměním 🙂
Hahaha, právě jsem viděl tento komentář!
«Toto vysvětlení by mělo být pro @msx. Myšlenky jsou konstruovány s pravdivými, objektivními a racionálními tvrzeními, ne s urážkami nebo hrubostí. “
Přestaň snídat s mužem s citrony, na 100 $ účtu už vypadáš jako Franklin: http://www.watchingamerica.com/frankfurterallgemeine000009.shtml
????
Je to queer zsh? No, myslím, že se mi líbí být queerem, protože protože jsem se to naučil používat, nezastavil jsem se a nemyslím si to. o_____o
Používají muži sh?, Ten komentář je divný od někoho, kdo má bashrc plný věcí, takže budu předpokládat, že jste žena. xP
K tomu jsem se nechtěl dostat. Prosím, nechme tu boj, ano? 🙂
Každý používá, co chce ... sh, zsh, nebo cokoli chce, a také ... každý má sexuální preference, které chce mít, už se o takové věci vedly boje 🙁
hahaha xD
V poslední době se zsh hodně vyvinul, jakmile budu mít čas --ha, jak klamné! - Přečtu si jeho dokumentaci, jak jen mohu, abych to využil a provedl změnu 🙂
Když teď mluvím vážně: jediná věc, která mi na zsh trochu vadí, je, že není stoprocentně kompatibilní s Bashem, takže pokud použijeme zsh ve svých skriptech a využijeme jeho plný potenciál, je velmi, velmi možné, že uvedený skript selže na druhé straně v bash Na druhou stranu, i když používáme zsh, píšeme naše shell skripty v bash, je zbytečné používat zsh ... o_O
Přesto si myslím, že zsh stojí za to. Když už mluvíme o skořápce, znáte ryby? Projekt povstal z popela, nyní se mu říká fishfish a vyvíjejí ho velmi rychle.
Myslím, že by měl být napsán zsh, protože terminál rozlišuje velká a malá písmena
Ačkoli cd && ls / route je také platný
I když je to delší psaní
Zdravím 😀
Mýlil jsem se, prst mi zmizel
Dal jsem to s tím, že je to uvedeno a je přístupný adresář
cd && ls / cesta
ale jen se připrav
přestože se používá pouze seznam
ls / cesta
příkaz, který je ekvivalentní, je
cd / cesta && ls
pozdravy
Použitím && je totéž dosaženo 😀
Jediný rozdíl je v tom, že „cd / opt / && ls“ má o 6 znaků více než jen „cd / opt /“, to znamená, že bych musel stisknout ještě 6 kláves ^ - ^ U ... jsem trochu líný pro takové věci hehe.
Proto jsem se připojil k CD + LS… LOL !!
Používám také to, že výsledky filtruji podle rozšíření.
příklad
Mám mnoho souborů v ~ / Downloads více než 100 a chci vidět pouze .png, jak to udělat.
Stahování CD && ls * png
Co bych musel přidat nebo udělat, abych filtroval výsledky v jednodušším kódu?
pozdravy
Jednoduché 😉
Vytvoříte funkci, která je například cdlsf:
function cdlsf { cd "$1"; ls *.$2; }
Použití by bylo:
cdlsf / opt / png
Zobrazí se pouze soubory . Png en / opt /
To znamená, že první parametr (v příkladu / opt /) bude adresář, do kterého chcete vstoupit, a druhý parametr (v příkladu png) bude přípona, kterou chcete filtrovat, když uvedete seznam adresáře.
Další příklad, pokud chcete přejít na / home / user / Pictures a zobrazit pouze soubory, které jsou .JPG, by bylo:
cdlsf / home / user / Pictures jpg
????
To jsi chtěl, že?
PS: Dal jsem cdlsf pro cd (enter) ls (list) f (filter) ... ale samozřejmě můžete funkci volat, jak chcete.
zsh není POSIX a navíc to trvá déle, než začnu, takže dávám přednost tomu být teplouš, ale efektivnější
Nejprve v zsh můžete povolit podporu POSIX. Zadruhé, spuštění trvá podle toho, kolik funkcí načtete při spuštění, takže může být tak lehké, jak chcete. Za třetí, s zsh je jeden praktičtější a efektivnější než s jakýmkoli jiným shellem. Za čtvrté, použijte jej před kritikou.
5. Když zapnete podporu POSIX, nemá smysl používat ZSH.
Používám to už nějakou dobu, nestojí to za to, sh je krátký a Bash je perfektní, v Bash se nedá nic dělat se správnými aliasy a funkcemi.
Moc se mi to téma líbí. ve skutečnosti by měli vytvořit rozsáhlejší článek o příkazech, které lze obecně použít v terminálu a v konkrétních distribucích, jako je Chakra.
Podívejte se na tento příspěvek 😉
https://blog.desdelinux.net/mas-de-400-comandos-para-gnulinux-que-deberias-conocer/
Považoval jsem to za velmi zajímavé, protože kromě výuky tohoto triku jste vysvětlili, jak jednotlivé příkazy fungují.
Sleduji vás od doby, kdy jsem začal ve světě Linuxu (nedávno) ... a byl jsem vyzván, abych to komentoval, jen abych vám poblahopřál k článku 😉
Děkujeme, že jste se zastavili a zanechali nám komentář 😀
Kdykoli se odvážím něco vysvětlit, rád to vysvětlím co nejjasněji ... no, vím velmi dobře, co to je číst výukové programy na internetu a vůbec nic nerozumět hahaha.
Vítejte dvakrát ... vítejte ve světě Tux haha a také vítejte na blogu 🙂
Máte-li jakékoli dotazy, dejte nám vědět hehe.
Zdravím a děkuji za komentář ^ ⁻ ^
Právě jsem četl váš příspěvek z jiného webu a nemohl jsem odolat:
Nebylo by to jednodušší, stačí vytvořit alias uvnitř .bashrc?
alias cd = 'ls'
Vlastně to, co se snažím dosáhnout, je zadat adresář X (/ opt /… / home / user /… cokoli) a také když jej zadám, automaticky uvede obsah tohoto adresáře.
Udělejte vše pomocí jediného kroku nebo příkazu.
Když uděláte alias, jak uvedete, potom bych vypsal adresář, ano, ale nezadal bych ho.
Z toho, co chápu, je cílem toho všeho udělat to, že pokud chcete například zadat „/ etc“ pomocí příkazu „cd“, po zadání vám automaticky zobrazí obsah tohoto adresáře, že?
Pokud je to tak, můžete funkci zjednodušit na „alias“, kam do .bashrc vložíte:
alias cd = »ls»
S tímto v terminálu používáte:
cd / atd
Vstoupíte do adresáře «/ etc» a také automaticky zobrazí seznam všech souborů a adresářů, které se tam nacházejí.
Pokud jsem nepochopil cíl, omluva 😛
Ve skutečnosti chci vstoupit do adresáře a jakmile do něj vstoupím, seznam, co obsahuje.
Snažil jsem se, co říkáte, deklarovat, že cd = ls pomocí aliasingu, ale pro mě to nefungovalo.
Nakonfiguruji si to sám a pak udělám:
cd / etc /
Ale uvádí seznam / etc /…, ale nejde do tohoto adresáře.
Zanechávám snímek obrazovky, abyste viděli: http://img204.imageshack.us/img204/5272/cdlserror.png
Moje chyba 😀
Bylo zřejmé, že to tak nebude fungovat, a to i když jsem zkusil:
alias cdls = 'cd $ 1; ls'
Z nějakého podivného důvodu to nefunguje, pouze vypisuje adresář, ale nejde do D:
Bash chyba? xD
Omluva za zbytečné komentáře! 😀 A beru funkci pro svůj bashrc 😛
Alias není stejný jako funkce, alias, pokud chcete, aby byl stejný jako několik příkazů, musíte použít && ... není to jako ve funkcích, že using; a psaní dalších pokynů bude fungovat pro vás.
HAHA nah za nic, příteli, nic k omluvě 😀
pozdravy
PS:… sakra… jak nostalgický jsem, když vidím logo Arch…. T_T ...
Vím, že to není stejné, ale myslel jsem si, že to bude fungovat (Chyba: P)
Pouze to, že použití «;» funguje pro mě. namísto „&&“ uvnitř aliasu D: (Mám dva takové aliasy, čemu nerozumím, proč to nefunguje s aliasem, který jsem chtěl pro tento případ vytvořit)
Děkuji a mimochodem, myslím, že na blogu zůstanu pod názvem „častý čtenář“ 😀 Obsah blogu se mi opravdu líbil 😛
oooh ano, vím, někdy se oddělím od svého drahého Archa, ale nevím proč, vždy je nemožné, abych se k němu nevrátil xD
Zdravím!
No ... Tux je záhadný, dělá věci a mnohokrát mu nerozumíme, ale má plán nebo účel pro každého ... HAHA 😀
Radost číst, co říkáte, další uživatel Arch, který se připojí k blogu hahahaha ... potěšení 😀
Musel jsem ho přestat používat kvůli velmi zvláštním problémům, které mi jádro dalo ... ale stále zaujímá místo v mém srdci 🙁
lol
Nesetkal jsem uživatele Archu, který by k distribuci nebral velkou náklonnost, má „Nevím co, co vím“: P, možná a kdyby problémy, které jsem vám dal, byly dávno, můžete přemýšlet o návratu do Archu
Mimochodem, věděl jsem, že někde jinde jsem už četl vaše jméno (no, přezdívka, pseudonym, přezdívka, cokoli), jste součástí autorů artedeskitorio, že? 🙂
Četl jsem jim 🙂
Vlastně k uvedení obsahu adresáře není nutné jej zadávat, takže si nemyslím, že příklad, který jste si vybrali, je nejšťastnější, hehe. To znamená, že funkce lze použít k mnoha užitečným věcem.
Například používám tuto funkci k vytvoření adresáře a jeho okamžitému zadání (ověření, že se používá pouze jeden parametr):
function mkcd () {
FNERR="Parametros incorrectos.\nUso: mkcd "
if [ $# -eq 1 ] ; then
mkdir -p "$1" && cd "$1"
else
echo -e $FNERR
fi
}
Hmmm ... blog obsahoval část příkazu, pokusím se vložit neúplný řádek se značkami HTML:
FNERR="Parametros incorrectos.\nUso: mkcd <nombre del directorio a crear>"
To, co jsem chtěl udělat, bylo zachránit se o krok.
Jinými slovy, předpokládejme, že chci zadat adresář (/ etc / squid /) a poté upravit soubor v tomto adresáři, a nepamatuji si název souboru.
Kroky by normálně byly:
cd / etc / squid /
ls
nano file.conf
Ale s tímto tipem, který navrhuji, převádím první 2 kroky pouze na 1, takže jednoduše provedením:
cd / etc / squid /
Automaticky také vypíše obsah adresáře pro mě.
Je to prostě o uložení kroku 😀
Rozumíš mi?
... je pro mě těžké vysvětlit haha.
Ne, vysvětlení nemělo žádný problém, myslel jsem, že příklad, který jste vybrali pro ilustraci špičky, nebyl ideální, protože lze vytvořit jednoduchý adresář „ls“.
Ve skutečnosti, jakmile jsem viděl funkci, pochopil jsem účel. Také používám různé funkce v mém .bash_aliasesNapříklad toto je jeden, který hodně používám ke správě historie:
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
}
(S touto funkcí, pokud jsem jen uvedl h Dostávám posledních 25 příkazů, ale pokud bych například dal h montáž Dostávám poslední příkazy týkající se sestav).
Beru tvoji roli hehehe ... zaslouží si ji prostudovat 😀
skvělá vaše funkce! dík
+1
KZKG ^ Gaara
Velmi dobrá odpověď, sloužila mi velmi dobře, už jsem na ni nemohl reagovat již výše
Nyní použiji cdlsf ke zvýšení produktivity, což je velmi dobré jméno pro příkaz 😀
pozdravy
Když nastavíte čas terminálu, udělal jsem to už dříve, byl to bashrc, který jsem stáhl, ale nepamatuji si, jak se to jmenovalo.
Dobrý vstup, trik jsem neznal, uvedu ho do praxe, abych zjistil, jak to funguje. xP
Zdravím.
Bylo by hezké, kdyby byl přidán můj prohlížeč. xD
Zdravím vás znovu. xD
Jaký prohlížeč používáte?
V dalším komentáři jsem viděl, že jste použili Firefox 🙂
Ano, používám Firefox, ale je toho čím dál méně a už to není můj hlavní prohlížeč, používám dwb a bylo by dobré, kdyby se dal přidat. xP
Zdravím.
A nedělá tento alias problémy se skriptováním, když se snažíte jen na cd a také na výstup ls? Obzvláště dávám přednost vytváření aliasů se jmény, která jiné spustitelné soubory nepoužívají, protože to není poprvé, co mi dělá problémy ...
Jak získáte přerušované čáry a čas po každém příkazu?
Podívej se sem - " https://blog.desdelinux.net/con-el-terminal-mejorando-la-apariencia-de-la-consola-actualizado/
Můj příspěvek:
alias ldir = 'ls | grep -v \\. ' ## seznam pouze adresářů (pozor, nepřejmenovávejte to na ld, protože existuje příkaz GNU / Linux s tímto názvem)
-
alias 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); tisk} '\' ''
Zajímavostí tohoto aliasu je awk, který analyzuje výstup ls, result? Zobrazuje oprávnění souboru v osmičkovém formátu vedle rwx, pro mě nekonečně praktičtější a rychlejší než písmena.
-
alias 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); tisk} '\' '| grep -i'
Varianta alias výše. Na konec jsem přidal grep, takže tímto způsobem, když udělám například:
$lgzip
Zobrazit mi kromě osmičkových oprávnění atd. Pouze soubory, které obsahují zip v libovolné z jeho forem (všimněte si -i na konci) atd.
-
alias grep = 'grep –color = auto' ## vybarví grep odpovídající
-
Mám mnoho dalších, o které se mohu podělit, ale toto malé místo mě dělá těsným xD
@KZKG, zaměstnanci: Myslíte si, že otevřete příspěvek na blogu nebo na fóru (na které odkazujeme pokaždé, když je zveřejněn tip týkající se konzoly), abyste shromáždili všechny tyto malé perly?
Zdravím!
Pod odkazem to myslíte? - » https://blog.desdelinux.net/tag/bash
Nic jsem neřekl, nic jiného není potřeba, všechno je perfektně označeno!
Jaký chilský, to je velmi dobrá funkce!