Bash aliasy nemůžete žít bez

0 Comments

Bash alias je metoda doplnění nebo přepsání Bash příkazů novými. Bash aliases usnadňují uživatelům přizpůsobit své zkušenosti v POSIX terminálu. Často jsou definovány v $ HOME/.bashrc nebo $ HOME / bash_aliases (které musí být načteny $ HOME/.bashrc).

většina distribucí přidává ve výchozím nastavení alespoň některé populární aliasy .bashrc soubor jakéhokoli nového uživatelského účtu. To jsou ty jednoduché prokázat syntaxe Bash alias:

alias ls="ls -F"
alias ll="ls -lh"

Ne všechny distribuce, loď s pre-obydlené aliasy., Pokud přidáte aliasy ručně, musíte je načíst do aktuální relace Bash:

$ source ~/.bashrc

jinak můžete terminál zavřít a znovu jej otevřít tak, aby znovu načte konfigurační soubor.

s těmito aliasy definovanými v inicializačním skriptu Bash pak můžete zadat ll a získat výsledky ls-l, a když zadáte ls, dostanete místo výstupu obyčejného starého ls.

tyto aliasy jsou skvělé, ale jen poškrábají povrch toho, co je možné. Zde jsou Top 10 Bash aliasů, které, jakmile je vyzkoušíte, nebudete moci žít bez.,

nastavte nejprve

před začátkem vytvořte soubor s názvem~/.bash_aliases:

$ touch ~/.bash_aliases

poté se ujistěte, že se tento kód objeví ve vašem ~/.bashrc soubor:

if ; then
source $HOME/.bash_aliases
fi

Chcete-li vyzkoušet některý z aliasů v tomto článku pro sebe, zadejte je do svého .bash_aliases soubor, a pak je načíst do Bash relace se zdrojem ~/.velení bashrc.,

Seřadit podle velikosti souboru

Pokud jste zahájili svůj výpočetní život s GUI správci souborů, jako je nautilus v GNOME, Finder v MacOS nebo Explorer ve Windows, pak jste pravděpodobně zvyklí třídit seznam souborů podle jejich velikosti. Můžete to udělat také v terminálu, ale není to přesně stručné.

Přidat tento alias k vaší konfigurace na GNU systém:

alias lt="ls --human-readable --size -1 -S --classify"

Tento alias nahradí lt s je příkaz, který zobrazí velikost každé položky, a pak seřadí je podle velikosti, v jednom sloupci, se notace označující typ souboru., Vložte své nové jméno, a pak to vyzkoušet:

Na Mac os nebo BSD, ls nemá stejné možnosti, takže tento alias funguje místo:

alias lt="du -sh * | sort -h"

výsledky této verze jsou trochu odlišné,

$ du -sh * | sort -h
0 compile
0 COPYING
0 install-sh
0 missing
4.0K configure.ac
4.0K dot-gitlab.ci.yml
4.0K flatpak.path.patch
4.0K git-portal.spec
4.0K info.slackermedia.Git-portal.json
4.0K Makefile.am
8.0K README.md
12K config.log
16K bin
24K Makefile
24K Makefile.in
32K config.status
36K LICENSE
44K aclocal.m4
60K share
140K configure
476K autom4te.cache

Ve skutečnosti, dokonce i na Linuxu, že příkaz je užitečný, protože pomocí ls seznamy adresářů a odkazů jako 0 ve velikosti, která nemusí být informace, které jste vlastně chcete. Je to tvoje volba.

díky Brad Alexander pro tento alias nápad.

zobrazit pouze namontované jednotky

příkaz mount byl tak jednoduchý., Pomocí jediného příkazu můžete získat seznam všech připojených souborových systémů v počítači a často se používá pro přehled o tom, jaké jednotky byly připojeny k pracovní stanici. Bývalo působivé vidět více než tři nebo čtyři položky, protože většina počítačů nemá mnohem více portů USB než to, takže výsledky byly zvládnutelné.,

Počítače jsou trochu složitější nyní, a mezi LVM, fyzické disky, síťové úložiště a virtuální souborové systémy, výsledky mount může být obtížné analyzovat:

Chcete-li vyřešit tento problém, zkuste alias, jako je tento:

alias mnt="mount | awk -F" " "{ printf \"%s\t%s\n\",\$1,\$3; }" | column -t | egrep ^/dev/ | sort"

Tento alias se používá awk analyzovat výstup připojit do kolony, snížení výkonu na to, co vás pravděpodobně hledají (co pevných disků, a ne souborové systémy, které jsou namontovány):

Na MacOS, příkaz mount neposkytuje strašně upovídaný výstup, takže alias může být overkill., Nicméně, pokud dáváte přednost stručné hlášení, zkuste toto:

alias mnt="mount | grep -E ^/dev | column -t"

výsledky:

Najít příkaz ve vašem grep historie

Někdy můžete zjistit, jak něco udělat v terminálu, a slibte si, že budete nikdy nezapomenu, co jste se právě naučili. Pak uběhne hodina a vy jste úplně zapomněli, co jste udělali.

prohledávání historie Bash je něco, co každý musí čas od času udělat., Pokud přesně víte, co hledáte, můžete pomocí Ctrl+R provést zpětné vyhledávání v historii, ale někdy si nepamatujete přesný příkaz, který chcete najít.

Tady je alias, aby tento úkol trochu jednodušší.

alias gh="history|grep"

Zde je příklad, jak ho použít:

$ gh bash
482 cat ~/.bashrc | grep _alias
498 emacs ~/.bashrc
530 emacs ~/.bash_aliases
531 source ~/.bashrc

Seřadit podle času změny

stává se To každé pondělí: můžete se dostat do práce, sedíte u počítače, si otevřete terminál, a zjistíte, že jste zapomněli, co jste dělali minulý pátek., To, co potřebujete, je alias pro seznam naposledy upravených souborů.

můžete použít příkazu ls vytvořit alias, aby vám pomohl najít, kde jste přestali:

alias left="ls -t -1"

výstup je jednoduchý, i když si můžete prodloužit s … dlouhá volba, pokud dáváte přednost., Alias, jak je uvedeno, zobrazuje toto:

$ left
demo.jpeg
demo.xcf
design-proposal.md
rejects.txt
brainstorm.txt
query-letter.xml

Počet souborů

Pokud potřebujete vědět, kolik souborů, které máte v adresáři, řešení je jedním z nejvíce klasické příklady UNIX příkaz stavby: seznam souborů s ls velení, řízení jeho výstup bude pouze jeden sloupec s -1 možnost, a pak trubka výstup na wc (word count), příkaz spočítat, kolik řádků jednotlivé soubory tam jsou.

je to skvělá ukázka toho, jak filozofie Unixu umožňuje uživatelům vytvářet vlastní řešení pomocí malých systémových komponent., Tento příkaz kombinace je také hodně typ, pokud jste náhodou udělat několikrát za den, a to není zrovna práce pro adresář adresáře, bez použití volby-R, která zavádí nové řádky na výstup a poskytuje výkon k ničemu.

místo toho tento alias usnadňuje proces:

alias count="find . -type f | wc -l"

Tento počítá soubory, ignoruje adresáře, ale ne obsah adresářů. Pokud máte složku projektu obsahující dva adresáře, z nichž každý obsahuje dva soubory, alias vrátí čtyři, protože v celém projektu jsou čtyři soubory.,

$ ls
foo bar
$ count
4

Vytvořte Python virtuální prostředí

kódujete v Pythonu?

hodně kódujete v Pythonu?

Pokud ano, pak víte, že vytvoření virtuálního prostředí Python vyžaduje přinejmenším 53 úhozů kláves.
to je 49 příliš mnoho, ale to je snadno obejít s dvě nové přezdívky volal jsem a va:

alias ve="python3 -m venv ./venv"
alias va="source ./venv/bin/activate"

Běžící ve vytvoří nový adresář, tzv. venv, obsahující obvyklé prostředí virtuálního souborového systému pro Python3., Va alias aktivuje životní prostředí v aktuálním shell:

$ cd my-project
$ ve
$ va
(venv) $

Přidat kopii progress bar

Všichni tropí žerty u tyče pokrok, protože jsou neslavně nepřesné. A přesto, hluboko uvnitř, všichni se zdá, že je chtějí. Příkaz UNIX cp nemá žádný progress bar, ale má možnost a-v pro upovídanost, což znamená, že odráží název každého souboru, který je zkopírován do terminálu. To je docela dobrý hack, ale to nefunguje tak dobře, když jste kopírování jednoho velkého souboru, a chcete nějaký údaj o tom, kolik souboru má zatím být převedeny.,

příkaz pv poskytuje během kopírování panel průběhu, ale není to běžné jako výchozí aplikace. Na druhou stranu je příkaz rsync součástí výchozí instalace téměř každého dostupného systému POSIX a je široce uznáván jako jeden z nejchytřejších způsobů kopírování souborů vzdáleně i lokálně.

ještě lepší je, že má vestavěný progress bar.,

alias cpv="rsync -ah --info=progress2"

Pomocí této alias je stejné jako při použití cp příkaz:

$ cpv bigfile.flac /run/media/seth/audio/
3.83M 6% 213.15MB/s 0:00:00 (xfr#4, to-chk=0/4)

zajímavý vedlejší efekt použití tohoto příkazu je, že rsync kopie obou souborů a adresářů bez -r příznak, že cp by jinak vyžadovaly.

Chraňte se před nehodami při odstraňování souborů

příkaz rm byste neměli používat. Příručka rm dokonce říká:

varování: pokud používáte “ rm “ k odstranění souboru, je obvykle možné obnovit obsah tohoto souboru., Pokud chcete více ujištění, že obsah je skutečně neopravitelný, zvažte použití „shred“.

Pokud chcete soubor odebrat, měli byste soubor přesunout do koše, stejně jako při použití plochy.

POSIX to usnadňuje, protože koš je přístupné, skutečné umístění ve vašem souborovém systému. Toto místo se může v závislosti na vaší platformě změnit: na FreeDesktop je koš umístěn na ~/.local / share / Trash, zatímco na MacOS je to~/.,Koše, ale buď jak buď, je to jen adresář, do kterého můžete umístit soubory, které chcete z dohledu, dokud jste připraveni vymazat navždy.

Tento jednoduchý alias poskytuje způsob, jak hodit soubory do Koše z vašeho terminálu:

alias tcn="mv --force -t ~/.local/share/Trash "

Tento alias se používá málo známé mv příznak, který umožňuje poskytnout soubor, který chcete přesunout jako poslední argument, ignoruje obvyklý požadavek pro daný soubor, které mají být uvedeny jako první., Nyní můžete používat svůj nový příkaz přesunout soubory a složky na vašem systému Koše:

$ ls
foo bar
$ tcn foo
$ ls
bar

soubor je „pryč“, ale jen dokud si neuvědomíte, studený pot, že budete ještě potřebovat. V tomto okamžiku můžete soubor zachránit ze systémového koše; nezapomeňte na cestu ven tipovat vývojáře Bash a mv.

Poznámka: Pokud potřebujete robustnější příkaz Trash s lepším dodržováním FreeDesktop, viz Trashy.

Zjednodušte pracovní postup Git

každý má jedinečný pracovní postup, ale obvykle existují opakující se úkoly bez ohledu na to, co., Pokud pracujete s Git pravidelně, pak je tu pravděpodobně nějaká sekvence, kterou se často opakujete. Možná zjistíte, že se vracíte do hlavní větve a tahání nejnovější změny znovu a znovu během dne, nebo možná jste najít sami vytvářet tagy a pak se tlačí je do ovladače, nebo možná je to něco úplně jiného.

bez ohledu na to, co git zaklínadlo jste unaveni psaní, můžete být schopni zmírnit nějakou bolest s Bash alias., Do značné míry díky své schopnosti předat argumenty hákům, Git má bohatou sadu introspektivních příkazů, které vám ušetří od nutnosti provádět podivné výkony v Bash.

například, zatímco by se vám možná snaží najít, v Bashi, projekt je top-level adresář (který, jak daleko, jak Bash je znepokojen, je zcela arbitrární označení, protože absolutní top úrovni k počítači je kořenový adresář), Git ví, že jeho nejvyšší úrovni s jednoduchým dotazem., Pokud studujete na hácích Git, zjistíte, že jste schopni zjistit všechny druhy informací, o kterých Bash nic neví,ale tyto informace můžete využít pomocí aliasu Bash.,

Tady je alias najít nejvyšší úrovni Git projekt, bez ohledu na to, kde v tomto projektu právě pracujete, a potom změňte adresář na to, změnit na hlavní větvi, a provést Git pull:

alias startgit="cd `git rev-parse --show-toplevel` && git checkout master && git pull"

Tento druh alias není v žádném případě všeobecně užitečné alias, ale to ukazuje, jak relativně jednoduché alias může odstranit mnoho pracné navigace, příkazy, a čeká na výzvu.

jednodušší a pravděpodobně univerzálnější alias vás vrátí na nejvyšší úroveň projektu Git., Tento alias je užitečný, protože když pracujete na projektu, tento projekt se víceméně stává vaším“ dočasným domovským “ adresářem. To by mělo být tak jednoduché jít „domů“, jak to je, jít do svého skutečného domova, a tady je alias na to:

alias cg="cd `git rev-parse --show-toplevel`"

příkaz cg vás zavede do horní části Git projekt, bez ohledu na to, jak hluboko do jeho adresářové struktuře jsi sestoupil.,

změnit adresáře a zobrazit obsah současně

kdysi (údajně) navrhl přední vědec, že bychom mohli vyřešit mnoho energetických problémů planety využitím energie vynaložené geeks psaní cd následované ls.
je to běžný vzor, protože obecně při změně adresářů máte impuls nebo potřebu vidět, co je kolem.

ale „chůze“ adresářového stromu počítače nemusí být proces start-and-stop.

tenhle podvádí, protože to vůbec není alias, ale je to skvělá výmluva k prozkoumání funkcí Bash., Zatímco aliasy jsou skvělé pro rychlé substituce, Bash vám umožní přidat místní funkce ve vašem .bashrc soubor (nebo samostatný soubor funkcí, které načtete do .bashrc, stejně jako soubor aliasů).

Chcete-li udržet věci modulární, vytvořte nový soubor s názvem ~/.bash_functions a pak mít své .,bashrc zatížení je:

if ; then
source $HOME/.bash_functions
fi

Ve funkcích souboru přidejte tento kód:

Načtení funkce do vašeho Bash sezení a pak to vyzkoušet:

$ source ~/.bash_functions
$ cl Documents
foo bar baz
$ pwd
/home/seth/Documents
$ cl ..
Desktop Documents Downloads

$ pwd
/home/seth

Funkce jsou mnohem více flexibilní, než aliasy, ale s tím, že flexibilita má zodpovědnost za vás, aby zajistily, že váš kód dává smysl a dělá to, co očekáváte. Aliasy mají být jednoduché, takže je udržujte snadné, ale užitečné. Pro vážné úpravy toho, jak se Bash chová, použijte funkce nebo vlastní skripty shellu uložené na místo v cestě.,

pro záznam existují některé chytré hacky pro implementaci sekvence cd a ls jako aliasu, takže pokud jste dostatečně trpěliví, pak je obloha limitem i při použití skromných aliasů.

spusťte aliasing a funkční


Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *