jsem jedním z těch lidí, kteří okamžitě otevře okno terminálu po spuštění počítače. V tuto chvíli to není z nutnosti, ale zvyk je tam. Většinu své kariéry jsem strávil učením jeho magických zaklínad, a zjistil jsem, že navigace v každodenních úkolech na terminálu přispívá k příjemnějšímu dni v práci. To vše řečeno, je hezké vyzkoušet něco nového jednou za čas.
nedávno jsem pustil výchozí interpret příkazového řádku, Bash, ve prospěch fish, který se hrdě prodává jako „shell příkazového řádku pro 90. léta“. zde je důvod, proč jsem přešel.
zjistil jsem, že .bashrc nestačí
před více než rokem jsem se rozhodl přestat abstrahovat své operační systémy a začít se to učit od základů. Nedávno jsem přešel z Mac na Linux, což mi dalo důvod podívat se na portování mých dotfiles do nového prostředí. Bylo to osvěžující; Našel jsem spoustu matoucích zkratek a duplikace a spároval jsem je na něco, co dobře porty mezi operačními systémy. Zde je několik oblíbené:
## Nicer shell experience
export GREP_OPTIONS="--color=auto"; # make grep colorful
export LSCOLORS=gxfxbEaEBxxEhEhBaDaCaD; # make ls more colorful as well
export HISTSIZE=32768; # Larger bash history (allow 32³ entries; default is 500)
export HISTFILESIZE=$HISTSIZE;
export HISTCONTROL=ignoredups; # Remove duplicates from history. I use `git status` a lot.
export HISTIGNORE="ls:cd:cd -:pwd:exit:date:* --help"; # Make some commands not show up in history
export LANG="en_US.UTF-8"; # Language formatting is still important
export LC_ALL="en_US.UTF-8"; # byte-wise sorting and force language for those pesky apps
export MANPAGER="less -X"; # Less is more
export GPG_TTY=$(tty); # for gpg key management
byl jsem na cestě, aby demystifikovat magie z mého prostředí, a to začíná dávat větší smysl.
přizpůsobení přeruší můj .bashrc
v tomto bodě jasnosti jsem se znovu zasekl. Chci některé moderní úmluv v mém terminálu, zejména auto-návrhy, zvýraznění syntaxe, a zbarvení velení výstupy, aniž by příliš mnoho závislostí, a jsem rád, že konfigurace je nezávislá na cokoliv command line interpreter, že jsem utekl. (iTerm2 je skvělý na Mac, ale nechci sledovat jeho kryptický konfigurační soubor v mých dotfiles. Tak co mám dělat?
Když jsem poprvé šel po odpovědi, vyřešil jsem to krok po kroku:
- nejprve jsem přizpůsobil svůj ~/.inputrc soubor umožňující vyhledávání vpřed a vzad.
- pak jsem nahradil cat s předstíraným výstupem ccat a aliased cat na ccat v mém .bashrc. To později nakonec v některých případech přerušilo psaní na stdout, tak jsem to přestal používat.
- nakonec jsem použil Bash-it, což je výkonný plugin systém pro přizpůsobení Bash.
po odlupování kusů jeden po druhém jsem cítil, že jsem pochopil trochu víc o tom, jak můj systém běžel. Obruče, které jsem cítil, jako bych musel přeskočit, abych získal moderní zážitek, který jsem hledal, mě vedly zpět ke standardům, které mě přivedly k tomuto bodu. Cítil jsem se jako vězeň historie, dokud jsem se nerozhodl všechno zahodit a zkusit něco úplně jiného.
Snadná výchozí nastavení a přizpůsobení s rybami shell
Ryby shell je moderní rozhraní příkazového řádku s automatickým návrhy, tab dokončení, a zvýraznění syntaxe (mezi jinými funkcemi). Obzvláště se mi líbí, jak to poprvé vyzkoušíte zadáním ryby, získáte krásný zážitek:
v prvním řádku je příkaz modrý, protože pwd je platný příkaz. Na druhém řádku je červená, protože pdw není platný příkaz. Stiskl jsem Enter, abych ukázal, že je to pravda, ale mohl jsem rychle opravit chybu a pokračovat v mém dni. V třetím příkazu, chci změnit adresář (cd) do Rozvoje složku, a ryby se automaticky zeptá, zda chci, aby hop do mého dotfiles, jako jsem to udělal naposledy. Když dvakrát stisknu kartu, zobrazí se další možnosti ve stejném adresáři, stejně jako bych očekával.
Pokud chci přizpůsobit svůj zážitek z rybí skořápky, nemusím k tomu instalovat žádnou další knihovnu nebo rámec. Ryby lodí s fish_config příkaz, který se spustí grafické uživatelské rozhraní (GUI), kde si můžete vybrat různé barvy a rychlé konfigurace.
Co je působivější, můžete si prohlédnout všechny dostupné funkce, proměnné, vazby, a další z GUI, stejně:
Pokud se vám naladit své konfigurace, všechny úpravy jsou uloženy na stejném místě: ~/.config / ryba. Snímek obrazovky výše ukazuje, že jsem vytvořil vlastní funkci, která mi umožňuje snadno aktivovat prostředí Pythonu pomocí pyenv. Podívejte se na tutoriál o rybích funkcích pro více informací.
buďte varováni: ryby nejsou jako Bash
při zkoušení jiných skořápek jsem zjistil, že vždy bylo několik rozdílů, které jsem potřeboval naladit, ale celkově se cítili povědomě. To není případ ryb. Definice funkcí, aliasing a proměnné fungují trochu jinak. Existují užitečné strategie pro konverzi .bashrc a .bash_profile soubory do konfigurace ryby, ale je to víc, než jsem se bude týkat v tomto článku. Takže, zatímco jsem si zamiloval ryby, doporučuji si vzít interaktivní tutoriál na rotaci, abyste zjistili, zda se vám to líbí.
Vyzkoušejte ryby pro krásnou výchozí skořápku
baví mě začít svůj den otevřením terminálu a užívám si to ještě více od přechodu na rybí skořápku. Umožnilo mi to odklonit se od starostí o to, co je v Bash, a soustředit se na to, jaký kód mám v plánu napsat. Pokud se chcete vzdálit od pohrávání si s terminálem a více se zaměřit na kód, zkuste to. Použijte chsh Nastavit jako výchozí shell, a dejte mi vědět, jak to jde v komentářích.