Som jedným z tých, ktorí využívajú veľa času terminál (konzola, bash, shell, ako to nazvať), z X alebo Y dôvodov musím neustále meniť adresár a pracovať na ňom 🙂
V drvivej väčšine prípadov sa zmena adresára (Napríklad: cd / opt /) a tiež by som chcel vedieť, čo sa v danom adresári nachádza, vedieť túto druhú, ktorú používam ls.
To znamená, že by to bolo takto:
kzkggaara @ geass: ~ $ cd / opt /
kzkggaara @ geass: / opt / $
kzkggaara @ geass: / opt / $ ls
Nessus
Už som to povedal mnohokrát ... Som dosť lenivý, rád robím čo najmenej krokov v termináli, preto som po mnohých pokusoch dosiahol presne to, čo som chcel.
Pozrite si toto, čo nie je nič iné, ako keď vstúpim ja / Opt / jednoduchým príkazom cd / opt /:
Ako vidíte, v jednom kroku (cd / opt /) Vstúpim do adresára a TIEŽ obsahuje zoznam obsahu tohto adresára a ... akoby to nestačilo, zobrazuje mi ho farbami 😀
Tu je môj príklad prístupu /atď/ s cd / atď/:
Bez farby = Súbory
Farba modrá = Priečinky
Zelená farba = Súbory s oprávnením na vykonávanie
Prejdime však k tomu hlavnému ... Ako sakra môžem tiež použiť iba cd na automatický zoznam adresárov, do ktorých vstupujem?
Náš archív .bashrc (nachádza sa v našom domácom alebo osobnom priečinku) nám k tomu pomôže, musíme najskôr deklarovať funkciu, ktorú budeme nazývať CDL:
funkcia cdls {cd "$ 1"; ls –color;}
Dali sme túto čiaru na obidve strany .bashrc ... je to príkaz na to:
echo "" >> $HOME/.bashrc && echo "function cdls { cd "$1"; ls --color;}" >> $HOME/.bashrc
Týmto príkazom to NEMUSÍTE nevyhnutne robiť, cieľom je súbor .bashrc obsahuje tento riadok, tak len upravte tento súbor pomocou preferovaného textového editora (podložka pod myš, kate, gedit, nano, vi atď) a pridajte ju.
Uložia zmenu, zatvoria terminál, ktorý majú otvorený, a otvoria nový.
V ňom napíšeme nasledovné a stlačíme [vstúpiť]:
cdls $HOME
To by malo stačiť na prístup k nášmu osobnému priečinku v tomto termináli a uvedie tiež zoznam jeho obsahu (s farbami a všetkým).
Teda čo CDL už robí to, čo chceme ... teraz môžeme dosiahnuť iba to isté, ale s cd
Za týmto účelom pridáme do súboru .bashrc nasledujúci riadok:
alias cd='cdls'
Toto bude, keď budeme písať cd … Akcia, ktorú definujeme, sa v skutočnosti vykoná CDL
Opustím príkaz, ktorý automaticky umiestni tento predchádzajúci riadok:
echo "" >> $HOME/.bashrc && echo "alias cd='cdls'" >> $HOME/.bashrc
Ale ako som už povedal predtým, cieľom je pridať tento ďalší riadok do rovnakého súboru, môžete na to použiť textový editor podľa vášho výberu.
Akonáhle je to hotové, zatvorte terminál a otvorte nový ... doň napíšte nasledovné a stlačte [vstúpiť]:
cd /etc/
A bingo, vstúpia /atď/ a tiež bude uvedený obsah tohto priečinka a bude farebne 😉 (rovnako ako na predchádzajúcej fotografii)
Na čo je to užitočné? 😀
Pre zvedavcov, ktorí sa pýtajú, čo znamená táto funkcia? ... nechám vám jednoduché vysvetlenie:
funkcia cdls = Tu definujeme, že vytvárame novú funkciu, ktorá sa bude volať cdls
cd „$ 1“ = A čo táto funkcia urobí (urobí to vždy, keď ju zavoláme, použijeme alebo vykonáme), je urobiť cd (Enter) smerom k 1. parametru, to znamená ... - »« cd / home / »,« $ 1 »znamená« to, čo napíšeme po cd ", v tomto príklade je 1. parameter" / home / ".
; = To znamená, že tam ten príkaz končí alebo sa má vykonať akcia ... ale funkcia môže mať viac akcií a teraz definujeme druhú.
ls - farba; = Znamená to, že okrem akejkoľvek predtým deklarovanej akcie urobí aj „ls“, kde sa nachádzame, a „ls“ to urobí farbou (–color).
Posledná vec ... najchytrejší si uvedomia, že táto logika (prevzatie funkcie a jej konfigurácia na vykonanie niekoľkých akcií) má napríklad veľa, veľa potenciálu ... ak chcem vstúpiť do priečinka, a tiež vymazať ďalšie, to znamená, že chcem vstúpiť do /Domov/ a tiež vymazať / opt / temp / funkcia pre toto by bola:
function asdasd { cd "$1"; rm -Rv "$2"; }
A zadanie terminálu asdasd / home / / opt / test / bolo by to, pretože vstúpi do 1. parametra (/Domov/) a odstráňte druhý (/ opt / temp /).
Každopádne, toto má naozaj veľa potenciál hehe, je len na vás, aby ste to čo najviac využili.
Ak máte akékoľvek pochybnosti alebo otázky, sťažnosti alebo návrhy, rád vám pomôžem, nie som zďaleka odborník, ale aspoň rád pomôžem 😀
pozdravy
A to všetko za nepoužívanie Zsh.
Skutočne som ho nepoznala 😉
Ďakujem za tip, budem ho sledovať.
Vedomosti sa však nekonajú ... čím viac tipov a vedomostí sa človeku podarí získať, tým lepšie, nemyslíte? 🙂
Zsh je pre zvedavcov, muži používajú sh !!! >: D
V realite
HAHAHA nie nie nie ... nemyslím si to a tiež to tak nehovor, pretože niektorých by to mohlo uraziť.
Každý používa to, čo mu najviac vyhovuje, čo má najradšej 😀
😉
Aplikácia, ktorú často používam na navigáciu v mojom systéme, je Autojump:
https://github.com/joelthelion/autojump/blob/master/README.md
Muži sú praktickí, ženy a divní sú tí, ktorí si radi komplikujú život. Nie je potrebné ďalšie objasnenie.
Skúste, prosím, nekomentovať sexuálne preferencie, áno? ... Pre tento druh vecí nastali nepríjemné situácie.
Dúfam, že je to pochopiteľné.
Toto objasnenie by malo platiť pre @msx. Nápady sú budované na základe pravdivých, objektívnych a racionálnych výrokov, nie urážok alebo hrubosti.
Vo svojom komentári vyššie som mu povedal, aby tieto veci nehovoril (prepáčte nadbytočnosť).
A teraz hovorím znova áno, ale nie je to namierené iba proti vám, je to platné pre všetkých.
Neberte to zle, zámerom nebolo, aby sa niekto cítil nepríjemne alebo zle, len sa snažím vyhnúť nedorozumeniu 🙂
Hahaha, práve som videl tento komentár!
«Toto objasnenie by malo byť pre @msx. myšlienky sú konštruované na základe pravdivých, objektívnych a racionálnych výrokov, nie s urážkami alebo hrubosťou. ““
Prestaňte raňajkovať s mužom s citrónmi, už teraz vyzeráte ako Franklin na bankovke 100 dolárov: http://www.watchingamerica.com/frankfurterallgemeine000009.shtml
😀
Je to queer zsh? Myslím si, že sa mi potom páči queer, pretože odkedy som sa ho naučil používať, neprestal som a nemyslím si to. o_____o
Používajú muži sh?, Tento komentár je čudný od niekoho, kto má bashrc plný vecí, takže budem predpokladať, že ste žena. xP
K tomu som sa nechcel dostať. Prosím, nechajme tu boj, že? 🙂
Každý používa, čo chce ... sh, zsh alebo čo chce, a tiež ... každý má sexuálne preferencie, ktoré chce mať, už sa tu pre také veci bojovalo 🙁
hahaha xD
V poslednej dobe sa zsh veľa vyvinul, akonáhle mám čas -ha, aké klamné! - Čítam čo najviac z jeho dokumentácie, aby som to využil a urobil zmenu 🙂
Keď už to hovorím vážne: jediná vec, ktorá mi na zsh trochu vadí, je, že nie je stopercentne kompatibilný s Bashom, takže ak použijeme v našich skriptoch zsh, ktorý využíva celý jeho potenciál, je veľmi, veľmi možné, že uvedený skript zlyhá v bash, na druhej strane Na druhej strane, aj keď používame zsh, naše shell skripty píšeme v bashe, je zbytočné používať zsh ...
Aj napriek tomu si myslím, že zsh stojí za to. Keď už hovoríme o škrupine, poznáte ryby? Projekt vstal z popola, teraz sa volá fishfish a vyvíjajú ho veľmi rýchlo.
Myslím, že by sa malo písať zsh, pretože terminál rozlišuje veľké a malé písmená
Aj keď platia aj cd && ls / route
Aj keď sa píše dlhšie
Zdravím 😀
Mýlil som sa, prst mi odišiel
Dal som, že s týmto je to uvedené a je prístupný adresár
cd && ls / cesta
ale len sa priprav
aj keď iba na zoznam sa používa
ls / cesta
príkaz, ktorý je ekvivalentom, je
cd / cesta && ls
pozdravy
Použitím && je to isté 😀
Rozdiel je iba v tom, že „cd / opt / && ls“ má o 6 znakov viac než len „cd / opt /“, to znamená, že by som musel stlačiť ešte 6 ďalších kláves ^ - ^ U ... Som trochu lenivý na také veci hehe.
Preto som sa pripojil k CD + ls ... LOL !!
Používam tiež to, že výsledky filtrujem podľa rozšírení.
Príklad
Mám veľa súborov v priečinku ~ / Downloads viac ako 100 a chcem vidieť iba súbor .png.
stiahnutie cd & ls * png
Čo by som musel pridať alebo urobiť, aby sa výsledky filtrovali v jednoduchšom kóde?
pozdravy
Jednoduché 😉
Vytvoríte funkciu, ktorá je napríklad cdlsf:
function cdlsf { cd "$1"; ls *.$2; }
Použiť by to bolo:
cdlsf / opt / png
A toto zobrazí iba zoznam súborov .png en / Opt /
To znamená, že prvý parameter (v príklade / Opt /) bude adresár, do ktorého chcete vstúpiť, a druhý parameter (v príklade png) by bola prípona, ktorú chcete filtrovať pri zozname adresára.
Ďalším príkladom, ak chcete ísť do adresára / home / user / Pictures a zobraziť iba súbory, ktoré sú vo formáte .JPG, by bolo:
cdlsf / home / user / Pictures jpg
😀
Toto si chcel správne?
PS: Dal som cdlsf pomocou cd (enter) ls (list) f (filter) ... ale funkciu môžete samozrejme volať, ako chcete.
zsh nie je POSIX, a aby toho nebolo málo, štartovanie trvá dlhšie, takže som radšej blázon, ale efektívnejší
Najskôr v zsh môžete povoliť podporu POSIX. Po druhé, spustenie trvá určitý čas podľa toho, koľko funkcií načítate na začiatku, takže môže byť také ľahké, ako chcete. Po tretie, s zsh je jeden praktickejší a efektívnejší ako s akýmkoľvek iným shellom. Po štvrté, použite ho pred kritikou.
5. Keď povolíte podporu POSIX, nemá zmysel používať ZSH.
Používam to už nejaký čas, nestojí to za to, sh je krátke a Bash je perfektný, v Bashi nemôžete urobiť nič, čo by vám patričné aliasy a funkcie pomohli.
Téma sa mi veľmi páči. v skutočnosti by mali vytvoriť rozsiahlejší článok o príkazoch, ktoré možno všeobecne použiť v termináli a v konkrétnych distrách, ako je napríklad čakra.
Pozri sa na tento príspevok 😉
https://blog.desdelinux.net/mas-de-400-comandos-para-gnulinux-que-deberias-conocer/
Prišlo mi to veľmi zaujímavé, pretože okrem výučby tohto triku ste vysvetlili, ako jednotlivé príkazy fungujú.
Sledujem ťa odkedy som začal vo svete Linuxu (nie tak dávno ...) a bol som vyzvaný, aby som sa vyjadril, len aby som ti pogratuloval k článku 😉
Ďakujeme, že ste sa zastavili a zanechali nám komentár 😀
Kedykoľvek sa odvážim niečo vysvetliť, rád to vysvetlím čo najjasnejšie ... no, dobre viem, čo to je čítať návody na internete a vôbec ničomu nerozumieť hahaha.
Vitajte dvakrát ... vitajte vo svete Tux haha a tiež vitajte v blogu 🙂
Ak máte nejaké otázky, obráťte sa na nás.
Zdravím a ďakujem za komentár ^ ⁻ ^
Práve som čítal váš príspevok z iného webu a nemohol som odolať:
Nebolo by to jednoduchšie, jednoducho vytvoriť alias vo vnútri súboru .bashrc?
alias cd = 'ls'
Vlastne to, čo sa snažím dosiahnuť, je vstúpiť do adresára X (/ opt /… / home / user /… whatever) a tiež keď ho zadám, automaticky vypíše obsah tohto adresára.
Všetko zvládnete jediným krokom alebo príkazom.
Ak urobíte alias, ako sami naznačíte, potom by som uviedol zoznam adresárov, áno, ale nevstúpil by som do nich.
Z toho, čo chápem, je cieľom tohto všetkého dosiahnuť to, že ak chcete napríklad zadať „/ etc“ pomocou príkazu „cd“, po zadaní vám automaticky zobrazí obsah tohto adresára, však?
Ak je to tak, môžete zjednodušiť funkciu na „alias“, kam do súboru .bashrc vložíte:
alias cd = »ls»
S týmto, keď ste v termináli, používate:
cd / atď
Zadáte adresár «/ etc» a tiež automaticky zobrazí zoznam všetkých súborov a adresárov, ktoré sa tam nachádzajú.
Ak som zle pochopil cieľ, ospravedlnenie 😛
V skutočnosti chcem vstúpiť do adresára a po vložení do zoznamu uviesť, čo obsahuje.
Vyskúšal som, čo hovoríte, a vyhlasoval som, že cd = ls pomocou aliasu, ale nefungovalo mi to.
Nakonfigurujem si to sám a potom urobím:
CD / etc /
Ale uvádza zoznam / etc / ..., ale nejde do tohto adresára.
Zanechávam snímku obrazovky, aby ste videli: http://img204.imageshack.us/img204/5272/cdlserror.png
Moja chyba 😀
Bolo zrejmé, že to tak nebude fungovať, a dokonca aj keď som skúsil:
alias cdls = 'cd $ 1; ls'
Z nejakého čudného dôvodu to nefunguje, iba vypíše adresár, ale nejde do D:
Bash chyba? xD
Ospravedlnenie za nezmyselné komentáre! 😀 A funkciu beriem pre svoj bashrc 😛
Alias nie je to isté ako funkcia, alias, ak chcete, aby bolo rovnaké ako niekoľko príkazov, musíte použiť && ... nie je to ako vo funkciách, že použitie; a napísanie ďalších pokynov bude fungovať pre vás.
HAHA nah za nič kamarát, nič za ospravedlnenie 😀
pozdravy
PS: ... sakra ... aká nostalgická je pre mňa, keď vidím logo Arch ... T_T ...
Viem, že to nie je to isté, ale predstavoval som si, že to bude fungovať (chyba: P)
Pre mňa funguje iba to, že použitie znaku «;». namiesto „&&“ vo vnútri aliasu D: (Mám dva také aliasy, čomu nerozumiem, prečo to nefunguje s aliasom, ktorý som pre tento prípad chcel vytvoriť)
Ďakujem a mimochodom, myslím, že zostanem na blogu pod názvom „častý čitateľ“ 😀 obsah blogu sa mi veľmi páčil 😛
oooh áno viem, niekedy sa odlúčim od svojho drahého Archa, ale neviem prečo, je pre mňa vždy nemožné nevrátiť sa k nemu xD
Zdravím!
No ... Tux je záhadný, robí veci a mnohokrát mu nerozumieme, ale pre každého má plán alebo účel ... HAHA 😀
Radosť čítať, čo hovoríte, ďalší používateľ Archa, ktorý sa pripojí k blogu hahahaha ... potešenie 😀
Musel som ho prestať používať kvôli zvláštnym problémom, ktoré mi dalo jadro ... ale stále mi zaberá miesto v mojom srdci 🙁
LOL
Nestretol som sa s používateľom Archu, ktorý by nemal veľkú náklonnosť k distribúcii, mal by „neviem čo, čo viem“: P, možno a keby problémy, ktoré som ti dal, boli už dávno, mohli by ste uvažovať o návrate k Arch
Mimochodom, vedel som, že na inom mieste som už čítal vaše meno (no, prezývka, pseudonym, prezývka, čokoľvek), ste súčasťou spisovateľov desktopového umenia, však? 🙂
Predtým som im čítala 🙂
V skutočnosti nie je potrebné zoznamovať obsah adresára, nemusíte ho zadávať, takže si nemyslím, že príklad, ktorý ste si vybrali, je najšťastnejší, hehe. Vďaka tomu sa dajú funkcie využiť na mnoho užitočných vecí.
Túto funkciu napríklad používam na vytvorenie adresára a jeho okamžité zadanie (overenie, že sa používa iba jeden parameter):
function mkcd () {
FNERR="Parametros incorrectos.\nUso: mkcd "
if [ $# -eq 1 ] ; then
mkdir -p "$1" && cd "$1"
else
echo -e $FNERR
fi
}
Hmmm ... blog obsahoval časť príkazu, pokúsim sa vložiť neúplný riadok do značiek HTML:
FNERR="Parametros incorrectos.\nUso: mkcd <nombre del directorio a crear>"
To, čo som chcel urobiť, bolo zachrániť si krok.
Inými slovami, predpokladám, že chcem ísť do adresára (/ etc / squid /) a potom upraviť súbor v tomto adresári, ktorý si nepamätám jeho názov.
Kroky by zvyčajne boli:
cd / etc / squid /
ls
súbor nano.conf
Ale s týmto tipom, ktorý navrhujem, prevádzam prvé 2 kroky iba na 1, takže jednoducho vykonaním:
cd / etc / squid /
Automaticky mi vypíše aj obsah adresára.
Je to jednoducho o uložení kroku 😀
Rozumieš mi?
... je to, že je pre mňa ťažké vysvetliť haha.
Nie, vysvetlenie nemalo žiadny problém, myslel som tým, že príklad, ktorý ste si vybrali na ilustráciu hrotu, nebol asi ideálny, pretože je možné vytvoriť jednoduchý adresár „ls“.
Hneď ako som uvidel funkciu, pochopil som účel. Vo svojom používam aj rôzne funkcie .bash_aliasesNapríklad toto je jeden, ktorý často používam na správu histórie:
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 funkciou, keby som len uviedol h Dostanem posledných 25 príkazov, ale ak napríklad zadám h montáž Dostávam posledné príkazy súvisiace so zostavami).
Beriem tvoju rolu hehehe ... zaslúži si to naštudovať 😀
skvelá vaša funkcia! Vďaka
+1
KZKG ^ Gaara
Veľmi dobrá odpoveď slúžila mi veľmi dobre, nemohol som na ňu už vyššie reagovať
Teraz použijem cdlsf na zvýšenie svojej produktivity, veľmi dobré meno pre príkaz 😀
pozdravy
Keď nastavíte čas na termináli, urobil som to už predtým, bol to bashrc, ktorý som si stiahol, ale nepamätám si, ako sa to volá.
Dobrý vstup, trik som nepoznal, uvediem ho do praxe, aby som videl, ako to funguje. xP
Zdravím.
Bolo by pekné, keby bol pridaný môj prehliadač. xD
Zdravím, ešte raz. xD
Aký prehliadač používate?
No, v ďalšom komentári som videl, že ste používali Firefox 🙂
Áno, používam Firefox, ale je ho čoraz menej a už to nie je môj hlavný prehliadač, používam dwb a bolo by dobré, keby sa dal pridať. xP
Zdravím.
A nebude tento alias spôsobovať problémy v skriptoch, keď sa pokúsite spustiť iba cd a tiež vygenerovať ls? Obzvlášť uprednostňujem vytváranie aliasov s názvami, ktoré iné spustiteľné súbory nepoužívajú, pretože to nie je prvýkrát, čo mi robí problémy ...
Ako získate prerušované čiary a čas po každom príkaze?
Pozri sa sem - " https://blog.desdelinux.net/con-el-terminal-mejorando-la-apariencia-de-la-consola-actualizado/
Môj príspevok:
alias ldir = 'ls | grep -v \\. ' ## vypísať iba adresáre (pozor, nepremenujte ho na ld, pretože existuje príkaz GNU / Linux s týmto názvom)
-
alias ll = 'ls -lah –color | awk '\ »{k = 0; pre (i = 0; i <= 8; i ++) k + = ((substr ($ 1, i + 2,1) ~ / [rwx] /) * 2 ^ (8-i)); if (k) printf ("% 0o", k); tlač} '\' ''
Zaujímavosťou tohto aliasu je awk, ktorý analyzuje výstup ls, result? Zobrazuje povolenia súborov v osmičkovom formáte vedľa súboru rwx, pre mňa nekonečne praktickejšie a rýchlejšie ako písmená.
-
alias lg = 'ls -lah –color | awk '\' '{k = 0; pre (i = 0; i <= 8; i ++) k + = ((substr ($ 1, i + 2,1) ~ / [rwx] /) * 2 ^ (8- i)); if (k) printf ("% 0o", k); tlač} '\' '| grep -i'
Variant vyššie uvedeného aliasu. Ja som na koniec pridal grep, aby som takto napríklad urobil:
$ lg zips
Zobraziť mi iba súbory, ktoré obsahujú zip v ktorejkoľvek z jeho foriem (všimnite si na konci -i) okrem osmičkových povolení atď.
-
alias grep = 'grep –color = auto' ## vyfarbí grepové zhody
-
Mám toho ešte veľa na zdieľanie, ale toto malé miesto ma robí pevným xD
@KZKG, zamestnanci: Myslíte si, že otvoríte príspevok na blogu alebo na fóre (na ktoré odkazujeme vždy, keď je zverejnený tip týkajúci sa konzoly), aby ste zhromaždili všetky tieto malé perly?
Zdravím!
Pod odkazom to myslíte? - » https://blog.desdelinux.net/tag/bash
Nič som nepovedal, nič iné netreba, všetko je perfektne označené!
Aký čílsky, to je veľmi dobrá funkcia!