GNU/Linux >> Znalost Linux >  >> Linux

5 tipů pro zlepšení produktivity pomocí zsh

Shell Z známý jako zsh je shell pro operační systémy typu Linux/Unix. Má podobnosti s jinými shelly v sh rodina (Bourne shell), jako je bash a ksh , ale poskytuje mnoho pokročilých funkcí a výkonné možnosti úprav příkazového řádku, jako je vylepšené doplňování tabel.

Nebylo by možné zde pokrýt všechny možnosti zsh; existují doslova stovky stránek dokumentujících jeho mnoho funkcí. V tomto článku představím pět tipů, jak zvýšit vaši produktivitu pomocí příkazového řádku s zsh.

1. Motivy a pluginy

V průběhu let komunita open source vyvinula nespočet témat a pluginů pro zsh. Téma je předdefinovaná konfigurace výzvy, zatímco plugin je sada užitečných aliasů a funkcí, které usnadňují použití konkrétního příkazu nebo programovacího jazyka.

Nejrychlejší způsob, jak začít používat témata a pluginy, je použít konfigurační rámec zsh. Existuje mnoho dostupných, ale nejoblíbenější je Oh My Zsh. Ve výchozím nastavení umožňuje některé rozumné možnosti konfigurace zsh a je dodáván se stovkami témat a pluginů.

Motiv vás zvyšuje produktivitu, protože do výzvy přidává užitečné informace, jako je stav vašeho úložiště Git nebo používaného virtuálního prostředí Python. Tyto informace na první pohled vám ušetří psaní ekvivalentních příkazů k jejich získání a je to skvělý vzhled. Zde je příklad Powerlevel9k, mého zvoleného tématu:

Kromě témat obsahuje Oh My Zsh spoustu užitečných pluginů pro zsh. Například povolením pluginu Git získáte přístup k řadě užitečných aliasů, jako jsou:

$ alias | grep -i git | seřadit -R | head -10
g=git
ga='git add'
gapa='git add --patch'
gap='git apply'
gdt=' git diff-tree --no-commit-id --name-only -r'
gau='git add --update'
gstp='git stash pop'
gbda=' git větev --no-color --merged | příkaz grep -vE "^(\*|\s*(master|develop|dev)\s*$)" | příkaz xargs -n 1 větev git -d'
gcs='git commit -S'
glg='git log --stat'

K dispozici jsou pluginy pro mnoho programovacích jazyků, balicích systémů a dalších nástrojů, které běžně používáte na příkazovém řádku. Zde je seznam pluginů, které používám na své pracovní stanici Fedora:

git golang fedora docker oc sudo vi-mode virtualenvwrapper 

2. Chytré aliasy

Aliasy jsou velmi užitečné v zsh. Definování aliasů pro vaše nejpoužívanější příkazy vám ušetří spoustu psaní. Oh My Zsh ve výchozím nastavení konfiguruje několik užitečných aliasů, včetně aliasů pro navigaci v adresářích a nahrazení běžných příkazů dalšími možnostmi, jako jsou:

ls='ls --color=tty'
grep='grep  --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn}'

Kromě aliasů příkazů umožňuje zsh dva další užitečné typy aliasů:alias s příponou a globální alias .

Alias ​​přípony vám umožňuje otevřít soubor, který zadáte do příkazového řádku, pomocí zadaného programu na základě přípony souboru. Chcete-li například otevřít soubory YAML pomocí vim, definujte následující alias:

alias -s {yml,yaml}=vim 

Nyní, když zadáte jakýkoli název souboru končící na yml nebo yaml v příkazovém řádku zsh otevře tento soubor pomocí vim:

$ playbook.yml
# Otevře soubor playbook.yml pomocí vim

Globální alias vám umožňuje vytvořit alias, který je rozbalen kdekoli v příkazovém řádku, nejen na začátku. To je velmi užitečné pro nahrazení běžných názvů souborů nebo zřetězených příkazů. Například:

alias -g G='| grep -i' 

Chcete-li použít tento alias, zadejte G kdekoli, kam byste zadali zřetězený příkaz:

$ ls -l G do
drwxr-xr-x. 5 rgerardi rgerardi 4096 7. srpna 14:08 Dokumenty
drwxr-xr-x. 6 rgerardi rgerardi 4096 24. srpna 14:51 Stažení

Dále se podívejme, jak zsh pomáhá při navigaci v souborovém systému.

3. Snadná navigace v adresáři

Když používáte příkazový řádek, navigace v různých adresářích je jedním z nejběžnějších úkolů. Zsh to usnadňuje tím, že poskytuje některé užitečné funkce pro navigaci v adresáři. Tyto funkce jsou povoleny pomocí Oh My Zsh, ale můžete je povolit pomocí tohoto příkazu:

setopt  autocd autopushd \ pushdignoredups 

S těmito nastavenými možnostmi nemusíte zadávat cd ke změně adresářů. Stačí zadat název adresáře a zsh se na něj přepne:

$ pwd
/home/rgerardi
$ /tmp
$ pwd
/tmp

Chcete-li se vrátit zpět, zadejte - :

Zsh uchovává historii adresářů, které jste navštívili, takže můžete rychle přepnout na kterýkoli z nich. Chcete-li zobrazit seznam, zadejte dirs -v :

$ dirs -v
0       ~
1       /var/log
2       /var/opt
3       /usr/bin
4       /usr/local
5       /usr/lib
6       /tmp
7       ~/Projects/Opensource.com/zsh-5tips
8       ~/Projects
9       ~/Projects/ansible
10      ~/Dokumenty

Přepněte do libovolného adresáře v tomto seznamu zadáním ~# kde # je číslo adresáře v seznamu. Například:

$ pwd
/home/rgerardi
$ ~4
$ pwd
/usr/local

Zkombinujte je s aliasy, aby byla navigace ještě jednodušší:

d='dirs -v | hlava -10'
1='cd -'
2='cd -2'
3='cd -3'
4='cd -4'
5='cd -5'
6='cd -6'
7='cd -7'
8='cd -8'
9='cd - 9'

Nyní můžete zadat d zobrazíte prvních deset položek v seznamu a číslo, na které chcete přepnout:

$ d
0       /usr/local
1       ~
2       /var/log
3       /var/opt
4       /usr/bin
5       /usr/lib
6       /tmp
7       ~/Projects/Opensource.com/zsh-5tips
8       ~/Projekty
9       ~/Projects/ansible
$ pwd
/usr/local
6 $
/tmp
$ pwd
/tmp

Nakonec zsh automaticky rozšíří názvy adresářů o dokončení Tab. Zadejte první písmena názvů adresářů a TAB použít:

$ pwd
/home/rgerardi
$ p/o/z (TAB)
$ Projects/Opensource.com/zsh-5tips/

To je jen jedna z funkcí, které umožňuje výkonný systém doplňování tabulek zsh. Podívejme se na další.

4. Pokročilé dokončení karty

Výkonný dokončovací systém Zsh je jedním z jeho charakteristických znaků. Pro zjednodušení tomu říkám Tab Complete, ale pod kapotou se odehrává nejedna věc. Obvykle dochází k rozšíření a dokončení příkazů. Zde je společně proberu. Podrobnosti naleznete v této uživatelské příručce.

Dokončení příkazů je standardně povoleno pomocí Oh My Zsh. Chcete-li to povolit, přidejte do souboru .zshrc následující řádky soubor:

autoload -U compinit
compinit

Systém doplňování Zsh je chytrý. Snaží se navrhovat pouze položky, které lze použít v určitých kontextech – například pokud zadáte cd a TAB , zsh navrhuje pouze názvy adresářů, protože zná cd nefunguje s ničím jiným.

Naopak navrhuje uživatelská jména při spouštění uživatelských příkazů nebo názvy hostitelů při použití ssh nebo ping , například.

Má rozsáhlou knihovnu dokončení a rozumí mnoha různým příkazům. Pokud například používáte tar můžete stisknout Tab a zobrazit seznam souborů dostupných v balíčku jako kandidátů na extrakci:

$ tar -xzvf test1.tar.gz test1/soubor1 (TAB)
soubor1 soubor2

Zde je pokročilejší příklad pomocí git . V tomto příkladu při psaní TAB , zsh automaticky doplní název jediného souboru v úložišti, který lze připravit:

$ ls
původní  plan.txt  zsh-5tips.md  zsh_theme_small.png
$ git status
Na větvi master
Vaše větev má aktuální verzi 'origin/master '.

Změny nejsou připraveny pro potvrzení:
  (použijte "git add ..." k aktualizaci toho, co bude potvrzeno)
  (použijte "git checkout -- ..." pro zrušení změn v pracovním adresáři)

        upraveno:  zsh-5tips.md

žádné změny nebyly přidány do odevzdání (použijte "git add" a/ nebo "git commit -a")
$ git add (TAB)
$ git add zsh-5tips.md

Rozumí také volbám příkazového řádku a navrhuje pouze ty, které jsou relevantní pro vybraný dílčí příkaz:

$ git commit - (TAB)
--all                  -a       -- uspořádat všechny upravené a odstraněné cesty
--allow-empty                   -- povolit záznam prázdného commitu
--allow -empty-message           – povolit záznam odevzdání s prázdnou zprávou
--amend                         – upravit špičku aktuální větve
--author                                      -    >--branch                        - zobrazit informace o větvi
--cleanup                       – zadejte, jak má být zpráva odevzdání vyčištěna
--date              datum -               dry-run                       – zobrazí pouze seznam cest, které mají být potvrzeny nebo ne, a všechny nesledované
--edit                 -e       -- upravte zprávu odevzdání před potvrzením
 - -             přečíst zprávu o odevzdání z daného souboru
--gpg-sign             -S       -- GPG-podepsat odevzdání--include              -i       – aktualizujte dané soubory a potvrďte celý index
--interactive                   – interaktivně aktualizujte cesty v souboru indexu
---message      -    použijte zprávu       -    jako zpráva odevzdání
... ZKRÁCENO ...

Po zadání TAB , můžete pomocí kláves se šipkami procházet seznamem možností a vybrat tu, kterou potřebujete. Nyní si nemusíte pamatovat všechny tyto možnosti Git.

K dispozici je mnoho možností. Nejlepší způsob, jak najít to, co je pro vás nejužitečnější, je používat to.

5. Úpravy a historie příkazového řádku

Užitečné jsou také možnosti úprav příkazového řádku Zsh. Ve výchozím nastavení emuluje emacs. Pokud jako já dáváte přednost vi/vim, povolte vazby vi pomocí následujícího příkazu:

$ bindkey -v 

Pokud používáte Oh My Zsh, vi-mode plugin umožňuje další vazby a indikátor režimu ve výzvě – velmi užitečné.

Po povolení vazeb vi můžete upravit příkazový řádek pomocí příkazů vi. Například stiskněte ESC+/ pro vyhledání historie příkazového řádku. Při hledání stiskněte n přinese další odpovídající řádek a N předchozí. Většina běžných příkazů vi funguje po stisknutí ESC například 0 pro skok na začátek řádku $ pro skok na konec i pro vložení a k připojení atd. Dokonce i příkazy následované pohybem, jako je cw změnit slovo.

Kromě úprav příkazového řádku poskytuje zsh několik užitečných funkcí historie příkazového řádku, pokud chcete opravit nebo znovu spustit dříve použité příkazy. Pokud jste například udělali chybu, zadejte fc přináší poslední příkaz ve vašem oblíbeném editoru, který to opraví. Respektuje $EDITOR proměnnou a ve výchozím nastavení používá vi.

Dalším užitečným příkazem je r , který znovu provede poslední příkaz; a r <WORD> , který provede poslední příkaz obsahující řetězec WORD .

Nakonec zadejte dvojitou ránu (!! ) vrátí poslední příkaz kdekoli na řádku. To je užitečné, například pokud jste zapomněli napsat sudo pro provádění příkazů, které vyžadují zvýšená oprávnění:

$ méně /var/log/dnf.log
/var/log/dnf.log:Povolení odepřeno
$ sudo !!
$ sudo less /var/log/dnf.log

Tyto funkce usnadňují nalezení a opětovné použití dříve zadaných příkazů.

Kam odtud jít?

Toto je jen několik funkcí zsh, které vám mohou zvýšit produktivitu; je jich mnohem víc. Další informace naleznete v následujících zdrojích:

Úvod do Z Shell

Uživatelská příručka k ZSH

Archlinux Wiki

milovníci zsh

Máte nějaké tipy na produktivitu zsh? Rád bych o nich slyšel v komentářích níže.


Linux
  1. Zlepšete svou produktivitu s tímto lehkým linuxovým desktopem

  2. JQ Command v Linuxu s příklady

  3. Tipy pro příkazový řádek Linuxu pro zvýšení produktivity

  1. Začínáme se Zsh

  2. Linux Tee Command s příklady

  3. Příkaz Nohup s příklady

  1. Zlepšete svou produktivitu s tímto klávesovým nástrojem pro Linux

  2. Tipy pro výpis souborů s ls na příkazovém řádku Linuxu

  3. 10 úžasných tipů a triků pro práci s Linuxem