Když jsem před více než rokem opustil svět Linuxu a plně přešel na OS X, nejvíce mi chyběla robustní komunita a spousta možností přizpůsobení, úprav a personalizace operačního systému a pracovní stanice. Následuje průvodce, který popisuje snahu o vytvoření mého dokonalého shellu pro OS X – funkčního a krásného příkazového řádku, aniž bych jedno obětoval druhému. Doufám, že mé kroky ušetří některým podobně smýšlejícím cestovatelům čas a frustraci na jejich cestě za dokonalým terminálem.
- Míle 1: Výběr aplikace shellu
- Míle 2: Instalace unixového shellu
- Instalace Zsh:
- Míle 3: Výběr frameworku
- Instalace oh-my-zsh:
- Konfigurace oh-my-zsh:
- Instalace zásuvných modulů:
- Mile 4: Spaceship Prompt Installation
- Instalace promptu Spaceship:
- Přizpůsobení výzvy Vesmírná loď:
- Colorls installation:
- Závěrečné poznámky k mému příkazu:
- Míle 5: Závěr:
- Závěr:
Míle 1: Výběr aplikace shellu
Prvním a důležitým krokem na této cestě je výběr aplikace pro emulaci terminálu. Ve světě OS X existují dva dominantní hráči: iTerm a Hyper.
Tento článek nemá být recenzí aplikace, takže nebudu zabíhat do podrobností týkajících se funkcí nebo pokročilého použití obou voleb, ale řeknu následující:
Všeobecně platí, že iTerm bude výkonnější volbou z obou. iTerm disponuje opravdu úžasnou škálou možností, zkratek a schopností. Pokud intenzivně pracujete s příkazovým řádkem Macu, pravidelně používáte tmux nebo vyžadujete pokročilejší možnosti konfigurace, bude tento program pravděpodobně vhodnější. iTerm najdete zde.
Hyper je na tomto poli novějším hráčem, a přestože má méně funkcí než iTerm, je bezesporu krásnějším terminálem. Tím nechci říct, že by iTerm byl ošklivý, ale stylizace Hyperu je prostě… hezká.
Hyper je postaven na webových technologiích (HTML, CSS, JS) a díky robustní sbírce témat, rozmanité knihovně snadno instalovatelných doplňků a neustálému přispívání uživatelů je to zábavná a zajímavá volba. Tým Hyperu právě vydal verzi 2, která zvyšuje rychlost, přidává užitečná vylepšení UX, dále zjednodušuje instalaci zásuvných modulů a další. Hyper si můžete prohlédnout zde.
Každá z těchto voleb bude dobrá. Obě možnosti lze nakonfigurovat tak, abyste vytvořili krásné a vysoce funkční terminálové prostředí. Doporučuji vyzkoušet obě – já mám nainstalované obě a každou používám k jiným účelům.
Poznámka: Pokud se vám nelíbí ani jedna z výše uvedených možností nebo raději zůstáváte u nativních aplikací, vestavěného terminálu.aplikace, která je dodávána se systémem OS X, bude dobře fungovat pro většinu nebo všechny činnosti, kterými se budeme zabývat ve zbytku článku.
Míle 2: Instalace unixového shellu
Po určení, kterou terminálovou aplikaci budete používat, je dalším krokem výběr unixového shellu. To je nezbytný předpoklad pro většinu toho, co bude následovat.
V tomto oddělení existují tři hlavní možnosti: Bash (výchozí pro OS X), Zsh a Fish. Každá volba má jiné výhody a nevýhody, ale pro účely tohoto článku budeme pracovat se zsh.
Z shell, neboli zsh, existuje již od roku 1990 a má velké množství příznivců a rozmanitou škálu doplňků, průvodců a přispěvatelů. Mezi výhody zsh patří: vylepšené dokončování, historie příkazů, globbing, zkratky, práce s proměnnými a mnoho dalších. Každou z těchto položek stojí za to prozkoumat a seznámit se s ní jindy.
Instalace Zsh:
Zsh se dodává se systémem OS X, jedná se však o starší verzi. I recommend installing the latest version using Homebrew, the Mac package manager.
If you have not heard of Homebrew, or do not have it installed, you can find it here.
- To install zsh using Homebrew, enter the following into your terminal:
brew install zsh zsh-completions
- Verify installation by entering the following:
zsh --version
expected result: 5.1.1 or newer.
- Make zsh your system’s default shell:
chsh -s $(which zsh)
- Verify that it worked:
echo $SHELL
expected result: /bin/zsh
If you get hung up anywhere during this process, or need additional help, check this for more information and a more detailed install guide.
After installing zsh, the first time zsh is ran, it will prompt you with a series of questions concerning configuration. Postupujte podle této výzvy až do konce a proveďte změny, kde je to žádoucí. Žádné změny však nejsou nutné – výchozí nastavení bude fungovat dobře.
Míle 3: Výběr frameworku
Po instalaci zsh se vám otevře celý nový svět frameworků, pluginů a témat. Mnohem více, než je možné obsáhnout v rámci tohoto článku. Pro účely tohoto článku budeme jako framework používat oh-my-zsh od Robbyho Russela. Jeho instalace je jednoduchá, má robustní sadu funkcí a jeho použitelnost je obecně shovívavá.
Pokud oh-my-zsh není vaším šálkem čaje, bude místo něj dobře fungovat podobný framework, jako je Prezto. Případně, pokud dáváte přednost odlehčenější alternativě, můžete zůstat pouze u správce zásuvných modulů, jako je Antigen, nebo pracovat zcela bez frameworku. Tato rozhodnutí jsou zcela na vás a doporučuji vám, abyste si pohráli s různými konfiguracemi, frameworky, zásuvnými moduly a změnami a určili, co nejlépe vyhovuje vašemu pracovnímu postupu a potřebám.
Instalace oh-my-zsh:
Zamířit do repozitáře oh-my-zsh na Githubu – zde.
Postupujte podle základních pokynů k instalaci v úložišti, nebo viz níže:
Instalace přes curl:
V terminálu spusťte:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Výše uvedené provede klonování a instalaci oh-my-zsh. Po dokončení jste připraveni začít jej používat.
Konfigurace oh-my-zsh:
Zsh pluginy mohou přidat nejrůznější užitečná řešení pracovních postupů, zábavná vylepšení nebo přidat důležité funkce. Pro začátek uvádíme několik z nich:
zsh-nvm
– zásuvný modul zsh pro Správce verzí uzlu (za předpokladu, že používáte Node.js). Stáhněte si jej zde.
zsh-syntax-highlighting
nebo fast-syntax-highlighting
– přidává zvýrazňování syntaxe příkazů v reálném čase při psaní v terminálu – velmi doporučeno. Najdete ji zde.
git
– zkratky a řešení pro uživatele systému git. Dodává se s nástrojem oh-my-zsh.
Existuje mnoho a mnoho dalších doplňků. Oh-my-zsh se dodává také s dlouhým seznamem z nich (viz zde). Opět záleží na osobní konfiguraci – věnujte čas rozhodnutí, který vám bude nejlépe vyhovovat.
Instalace zásuvných modulů:
Touto částí příručky se dostáváme k velmi důležitému prvku v procesu konfigurace zsh: konfiguračnímu souboru zsh, .zshrc
.
Váš .zshrc
soubor by měl být vygenerován při prvním spuštění zsh a/nebo při instalaci oh-my-zsh. Najdete ho mezi skrytými soubory ve svém domovském adresáři.
Poznámka: Chcete-li povolit zobrazení skrytých souborů ve svém domovském adresáři, zadejte do terminálu tento příkaz:
defaults write com.apple.finder AppleShowAllFiles YES
V souboru .zshrc
bude probíhat většina naší konfigurace promptů. Oh-my-zsh vygeneruje výchozí konfiguraci s poli pro téma, pluginy, aliasy a další.
Instalace nového pluginu je jednoduchý proces. Pokud se jedná o zásuvný modul dodaný se systémem oh-my-zsh, jednoduše přejděte do části „plugins“ v souboru .zshrc
a zadejte jeho název do závorek. Znovu načtěte terminál zadáním zsh
a měl by být funkční.
U zásuvných modulů třetích stran doporučuji postupovat podle pokynů k instalaci v repozitáři zásuvného modulu. Instalační proces většiny zásuvných modulů třetích stran je však poměrně jednoduchý a měl by probíhat následovně:
- Klonujte zásuvný modul a přesuňte naklonované soubory do složky
/custom
v rámci instalace oh-my-zsh, kterou najdete ve svém domovském adresáři. - Ve svém
.zshrc
souboru přidejte název zásuvného modulu do závorek v poli ‚plugins‘, jak jsme to udělali výše. - Znovu načtěte zsh a měl by být připraven k použití.
Note: if you run into any hangups in this process, please refer to the oh-my-zsh repository, or the third party plugin’s repository. Most of your troubleshooting needs should be addressed there. Additionally, there is a large community surrounding the use of these tools- if there is something you can’t immediately find in the repositories, a quick google search will likely turn up a long list of people asking and solving the same questions you have.
Mile 4: Spaceship Prompt Installation
Now that we have installed zsh, a framework, and our plugins, we can now get to work configuring our command line via a theme/custom prompt.
Váš příkazový řádek může být jakýkoli – minimální, slovní, informativní, krásný, pragmatický nebo všechno dohromady. Pro naše účely jsem vybral skvělý motiv příkazového řádku zsh, Spaceship. Je to nejlepší kombinace všech výše uvedených atributů, se kterou jsem se dosud setkal.
Repositář githubu Spaceship Prompt najdete zde.
Instalace promptu Spaceship:
Klonování repozitáře:
git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt"
Symlink spaceship.zsh-theme
do adresáře oh-my-zsh custom themes:
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"
Nastavte ZSH_THEME="spaceship"
ve své .zshrc
‚sekci „téma“.
Přizpůsobení výzvy Vesmírná loď:
Když už máte výzvu nainstalovanou, existuje dlouhý seznam přizpůsobení a úprav, které lze provést tak, aby vyhovovaly vašemu pracovnímu postupu nebo stylu. Jejich úložiště obsahuje skvělou sadu dokumentů, které vám ukáží některé z možností. Spend some time viewing the examples, or leave it as-is — the defaults are great.
My personal prompt is configured to display some custom icons and information:
The above should give you an idea of some of the cool possibilities that you can create with Spaceship. To get your prompt looking like mine, a few steps must be followed:
The font I’m using iTerm is Monoid Nerd Font
. In Hyper I am using nerd fonts‘ PowerlineSymbols
and mononoki Nerd Font Mono
. Use whichever fonts you personally like, however— a nerd font is required to properly use Spaceship prompt. Šprtská písma jsou speciálně upravena tak, aby obsahovala všechny skvělé symboly/glyfy, o kterých je řeč v tomto článku.
Šprtská písma najdete zde a zde.
- Instalace šprtských písem:
- Ruční instalace – stáhněte/skloňte soubory písma. V úložišti nerd fonts najdete podrobné pokyny týkající se stažení buď celého balíčku, nebo jednotlivých písem.
- Přejděte do adresáře nově stažených písem. Najděte skutečné soubory písma, obvykle končící na
.ttf
– současně otevřete nativní aplikaci ‚Font Book‘, která je dodávána se systémem OS X. - Přesuňte soubory písma (
.ttf
) přímo do seznamu písem aplikace Font Book. Kurzor by se měl po přetažení změnit na zelený symbol „+“. Uvolněte kurzor a písma budou nainstalována.
3. Další možnosti instalace písem jsou podrobně popsány v repozitáři nerd fonts Github a zahrnují instalaci pomocí Homebrew, instalačního skriptu a ad hoc stažení pomocí curl. Každá z nich má své výhody/výhody – doporučuji si přečíst repozitář a rozhodnout se, která je pro vaše potřeby nejjednodušší/nejvhodnější.
4. Po stažení a instalaci písem nerd otevřete emulátor terminálu (iTerm nebo Hyper) a stiskněte Command + ,
. Tím se otevřou uživatelské předvolby. V iTermu budou mít podobu dialogového okna s grafickým uživatelským rozhraním. V Hyperu se otevře konfigurační soubor Hyperu, .hyper.js
ve výchozím textovém editoru.
- V iTermu lze písma nastavit v rámci „Profilů“ -> {název profilu}. -> sekce ‚Text‘. V části ‚Text‘ přejděte na část ‚Písmo‘. Změňte primární písmo na své nové šprtací písmo a zaškrtněte políčko ‚Použít jiné písmo pro text, který není ASCII‘. Zaškrtněte toto políčko a také políčko ‚Použít ligatury‘. Nastavte také sekundární písmo na šprtské písmo. See below:
In Hyper, within your .hyper.js
configuration file in your text editor, navigate to the fontFamily
tag. Replace the defaults with the names of your new nerd font(s).
Note: if you are not a programmer, be careful with your use of quotation marks. Multiple word font names with spaces will need their own surrounding quotes.
Your configuration should look something like the below, specifically, the portion surrounded in the blue box (you may disregard the other fields):
Now that you have Spaceship prompt and nerd fonts installed and selected within your terminal, you can begin customizing the prompt:
- Within the nerd fonts website, roughly two-thirds of the way down, there is a scrollable field that displays glyphs/icons and their corresponding codes. Any of these icons can be used in your prompt using Spaceship and a nerd font. Scroll through and find one or two that you like.
Note: the four-character glyph/icon codes must be preceded by
\u
, as shown below.
- Ve svém
.zshrc
souboru vložte za sekci „téma“ následující text:
SPACESHIP_PROMPT_ADD_NEWLINE=”true”
SPACESHIP_CHAR_SYMBOL=” \uf0e7"
SPACESHIP_CHAR_PREFIX=”\uf296"
SPACESHIP_CHAR_SUFFIX=(" ")
SPACESHIP_CHAR_COLOR_SUCCESS=”yellow”
SPACESHIP_PROMPT_DEFAULT_PREFIX=”$USER”
SPACESHIP_PROMPT_FIRST_PREFIX_SHOW=”true”
SPACESHIP_USER_SHOW=”true”
Výše uvedené způsobí, že vaše výzva bude vypadat stejně jako ta moje, za předpokladu, že máte nainstalovaný font nerd. Pokud byste chtěli ikony ve výzvě změnit, do polí SPACESHIP_CHAR_SYMBOL=
a SPACESHIP_CHAR_PREFIX=
vložíte kódy ikon z nerdských písem, které jsem uvedl výše. Můžete přidat loga z programovacích jazyků, frameworků a knihoven. Najdete zde také glyfy, šipky, blesky, meteory – pro ty, kteří jsou posedlí přizpůsobením, je zde spousta možností, jak pracovat.
4. Další položkou, která může být v rámci mého terminálu zajímavá, jsou barevné ikony složek/souborů. I’m using a ruby gem called „colorls“- which you can find here.
Colorls installation:
Colorls, once installed, adds some glyphs to your ls
command, and can be configured to show informative reports, realign and reconfigure the output of ls
, among many other options. Follow the installation instructions within the repository.
To get colorls to print every time the ls
command is used, you will need to use an alias within your .zshrc
file.
To configure this, head into your .zshrc
file, and scroll to the very bottom.
Paste the following:
alias ls=’colorls — light — sort-dirs — report’
alias lc=’colorls — tree — light’
This will get your ls
looking identical to mine. Additionally, inputting the lc
command will print a tree-view version of ls
. Jako varování doporučuji tento postup provádět pouze u menších adresářů – při indexování větších adresářů se může zpomalit.
Závěrečné poznámky k mému příkazu:
V iTermu používám barevné schéma termnk
– najdete ho zde.
Další dlouhý seznam barevných schémat iTermu najdete zde.
Pro Hyper je moje konfigurace následující:
plugins: ,
Míle 5: Závěr:
V tuto chvíli byste měli mít funkční terminál zsh a skvělý začátek vlastní konfigurace. Po zhlédnutí mé osobní konfigurace a případné emulaci jejích částí byste nyní měli mít dobrou představu o některých krásných a nekonečných možnostech, které má shell zsh na Macu k dispozici. To je však pouze začátek cesty. Tento průvodce si neklade za cíl být vyčerpávající – existuje mnoho dalších možností a úžasných zdrojů, jak si svůj shell a pracovní postup upravit podle toho, jak chcete, aby vypadal, působil a fungoval. Tato závěrečná část je věnována nastínění některých skvělých zdrojů, díky kterým se můžete dále učit a pokračovat v objevování.
Doporučená četba:
Existuje mnoho dalších úžasných doplňků zsh, které mohou pomoci s vyhledáváním, grepováním, přidáváním spořičů obrazovky do terminálu, jako je pipes.sh, nebo informativních výzev při načítání, jako je Neofetch. Doporučuji pročíst a najít další zásuvné moduly, které budou vyhovovat vašemu pracovnímu postupu.
Podobně i sborník užitečných zdrojů souvisejících se vším, co se týká zsh.
Komunita zaměřená na obohacování/přizpůsobování všeho unixového. Přestože zde dominuje Linux, rychlým vyhledáním „OSX“ získáte několik inspirativních příkladů.
Jak již bylo zmíněno, kurátorský seznam frameworků, rozšíření a zdrojů Terminálu. Jedná se o skvělou referenci – vřele doporučujeme.
Interaktivní testovací aplikace pro náhled některých z nejlepších dostupných programovacích písem. Většina/všechny jsou zdarma a mají opravenou verzi ke stažení z nerd fonts.
Konečný seznam zásuvných modulů Hyper themes &. Pokud se rozhodnete Hyper používat, měla by to být jedna z vašich prvních zastávek.
Závěr:
Pokračujte ve zkoumání a práci na svém terminálu. Nadšení z toho, jak váš příkazový řádek vypadá a jak se v něm cítíte, vám pomůže s větším nadšením učit se jej používat, programovat (pokud je to možné) a je to prostě zábava.
Jak bude do světa přizpůsobování příkazového řádku vstupovat stále více uživatelů, budou jistě následovat další možnosti a inovace. Přestože Linux má obecně větší podporu pro tento typ přizpůsobení, doufám, že jsem některým čtenářům otevřel oči pro některé úžasné konfigurace terminálu možné v systému OS X.
Podívejte se na mou další práci zabývající se přizpůsobením ikony Mac & doku zde.