75 Comandi, plugin, alias e strumenti di Zsh

Mag 9, 2021
admin

Passo gran parte della mia giornata nel terminale, e la mia shell preferita è Zsh – una shell Unix altamente personalizzabile che contiene alcune caratteristiche molto potenti. Dato che sono uno sviluppatore pigroTM, sono sempre alla ricerca di modi per digitare meno e per automatizzare tutte le cose. Fortunatamente questo è qualcosa a cui Zsh si presta bene.

In questo post, condividerò con voi 75 comandi, plugin, alias e strumenti che si spera vi faranno risparmiare alcune sequenze di tasti e vi renderanno più produttivi nel vostro lavoro quotidiano.

Se non avete Zsh installato sulla vostra macchina, allora date un’occhiata a questo post, dove vi mostro come iniziare a lavorare.

15 cose che Zsh può fare fuori dalla scatola

Zsh condivide molte caratteristiche utili con Bash. Nessuna delle seguenti è unica per Zsh, ma sono comunque buone da sapere. Ti incoraggio ad iniziare ad usare la linea di comando per eseguire operazioni come quelle elencate qui sotto. All’inizio potrebbe sembrare più faticoso che usare una GUI, ma una volta che avrai preso la mano, non guarderai più indietro.

  • Inserendo cd da qualsiasi punto del file system ti riporterà direttamente alla tua home directory.
  • Inserendo !! si aprirà l’ultimo comando. Questo è utile se un comando fallisce perché ha bisogno dei diritti di amministratore. In questo caso puoi digitare sudo !!.
  • Puoi usare && per concatenare più comandi. Per esempio, mkdir project && cd project && npm init -y.
  • L’esecuzione condizionata è possibile usando ||. Per esempio, git commit -m "whatever..." || echo "Commit failed".
  • Utilizzando uno switch -p con il comando mkdir vi permetterà di creare cartelle madri secondo necessità. L’uso dell’espansione delle parentesi riduce la ripetizione. Per esempio, mkdir -p articles/jim/sitepoint/article{1,2,3}.
  • Imposta le variabili d’ambiente su una base per comando come segue: NODE_DEBUG=myapp node index.js. Oppure, su una base per sessione, in questo modo: export NODE_DEBUG=myapp. Puoi controllare che sia stato impostato digitando echo $<variable-name>.
  • Trasmetti l’output di un comando in un secondo comando. Per esempio, cat /var/log/kern.log | less per rendere leggibile un lungo log, o history | grep ssh per cercare qualsiasi voce della cronologia contenente “ssh”.
  • Puoi aprire file nel tuo editor dal terminale. Per esempio, nano ~/.zshrc (nano), subl ~/.zshrc (Sublime Text), code ~/.zshrc (VS Code). Se il file non esiste, verrà creato quando premi Save nell’editor.
  • La navigazione è un’abilità importante da padroneggiare. Non fare affidamento solo sui tasti freccia. Per esempio, Ctrl + a ti porterà all’inizio di una linea.
  • Dove invece Ctrl + e ti porterà alla fine.
  • Puoi usare Ctrl + w per cancellare una parola (all’indietro).
  • Ctrl + u rimuoverà tutto dal cursore all’inizio della linea.
  • Ctrl + k cancellerà tutto dal cursore alla fine della linea. Questi ultimi tre possono essere annullati con Ctrl + y.
  • Puoi copiare il testo con Ctrl + Shift + c. Questo è molto più elegante che cliccare con il tasto destro e selezionare Copia.
  • Inversamente, puoi incollare il testo copiato con Ctrl + shift + v.

Prova a memorizzare queste combinazioni di tasti. Sarete sorpresi di quanto spesso vi torneranno utili.

15 alias personalizzati per aumentare la vostra produttività

Gli alias sono scorciatoie del terminale per comandi regolari. Puoi aggiungerli al tuo file ~/.zshrc, poi ricaricare il tuo terminale (usando source ~/.zshrc) perché abbiano effetto.

La sintassi per dichiarare un (semplice) alias è la seguente:

alias =''

Gli alias sono ottimi per comandi usati spesso, comandi lunghi, o comandi con una sintassi difficile da ricordare. Ecco alcuni di quelli che uso regolarmente:

  • Un alias myip, che stampa il tuo attuale indirizzo IP pubblico sul terminale: alias myip='curl http://ipecho.net/plain; echo'.
  • A distro alias per stampare informazioni sulla vostra distribuzione Linux: alias distro='cat /etc/*-release'.
  • A reload alias, dato che non riesco mai a ricordare come ricaricare il mio terminale: alias reload='source ~/.zshrc'.
  • Un alias undo-git-reset: alias undo-git-reset-head="git reset 'HEAD@{1}'". Questo annulla gli effetti dell’esecuzione di git reset HEAD~.
  • Un alias per aggiornare gli elenchi dei pacchetti: alias sapu='sudo apt-get update'.
  • Un alias per rieseguire il comando precedente con sudo: alias ffs='sudo !!'.
  • Perché sono pigro, ho dato l’alias y al comando yarn: alias y='yarn'. Questo significa che posso clonare un repo, poi basta digitare y per tirare dentro tutte le dipendenze. L’ho imparato da Scott Tolinski su Syntax.
  • Non è uno di quelli che uso, ma questo alias spazza via la cartella node_modules e rimuove il file package-lock.json, prima di reinstallare le dipendenze di un progetto: alias yolo='rm -rf node_modules/ && rm package-lock.json && yarn install'. Come probabilmente sapete, yolo sta per You Only Live Once.
  • Un alias per aprire il mio file .zshrc per la modifica: alias zshconfig='subl $HOME/.zshrc'.
  • Un alias per aggiornare la lista delle versioni di Ruby che rbenv può installare: alias update-available-rubies='cd ~/.rbenv/plugins/ruby-build && git pull'
  • Un alias per avviare un server nella directory corrente (non sono richiesti pacchetti npm): alias server='python -m SimpleHTTPServer 8000'.
  • Puoi anche creare un alias per aprire la documentazione nel tuo browser: alias npmhelp='firefox https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/npm'.
  • Un alias globale per convogliare l’output di un comando a less: alias -g L='| less'. Puoi usarlo in questo modo: cat production.log L.
  • Un alias globale per indirizzare l’output di un comando a grep: alias -g G='| grep'. Puoi usarlo in questo modo: history G ssh.
  • Puoi anche usare funzioni per creare alias. Il seguente (preso da qui) crea un alias che aggiunge, impegna e spinge il codice su GitHub:
    bash
    function acp() {
    git add .
    git commit -m ""
    git push
    }

Ci sono molti posti dove trovare altre idee per gli alias online. Per esempio, questa discussione su Hacker News, o questo post sulla produttività della linea di comando con Zsh.

15 cose fantastiche che puoi fare con (Oh My) Zsh

Oh My Zsh è un framework guidato dalla comunità per gestire la tua configurazione Zsh e viene fornito con migliaia di utili funzioni, helper, plugin e temi. Se hai intenzione di fare della shell Z il tuo driver quotidiano, dovresti davvero installare Oh My Zsh.

Qui ci sono quindici cose utili che Oh My Zsh può fare per te:

  • Il comando take creerà una nuova directory e vi si trasferirà. take my-project sostituisce mkdir my-project && cd my-project.
  • zsh_stats ti darà una lista dei primi 20 comandi e quante volte sono stati eseguiti.
  • Oh My Zsh semplifica la navigazione nel tuo file system. Per esempio, .. è un alias per cd ...
  • Nello stesso modo, ... ti sposta su due directory, .... ti sposta su tre, e ..... ti sposta su quattro.
  • Puoi omettere il cd quando navighi. Digitando /, per esempio, ti porterà direttamente alla root del tuo filesystem.
  • È supportata anche la corrispondenza parziale. Per esempio, digitando /h/j/De e premendo TAB, poi Return, mi porta a /home/jim/Desktop/.
  • rd è un alias per rmdir e md è un alias per mkdir -p.
  • Puoi digitare d per elencare le ultime directory usate da una sessione di terminale.
  • Puoi poi navigare verso una qualsiasi di queste usando cd -n, dove n è il numero della directory.
  • Il completamento del tab è un’altra grande caratteristica. Per esempio, digitando ls - e premendo TAB verranno elencate tutte le opzioni del comando, insieme ad un’utile descrizione di cosa fanno. Questo funziona anche per cap, rake, ssh, e kill.
  • Scrivendo alias vengono elencati tutti i tuoi attuali alias.
  • Con globbing (una caratteristica di Zsh), puoi elencare i file con una particolare estensione. Per esempio, ls *.html elencherà tutti i file HTML nella directory corrente. Per includere le sottodirectory, cambia in: ls **/*.html.
  • I qualificatori globali ti permettono di selezionare i tipi di file usando dei flag. Per esempio, ls -l **/*(.x) troverà tutti i file eseguibili nella directory corrente e tutte le sottodirectory.
  • È possibile cercare i file per data di modifica. Per esempio, ls *(m-7) elencherà tutti i file modificati nell’ultima settimana.
  • È possibile cercare i file per dimensione. Per esempio, ls *(Lm+1) troverà tutti i file con una dimensione maggiore di 1MB.

Usare i plugin per divertimento e profitto

Oh My Zsh è fornito con molti plugin. Dovresti dare un’occhiata a questi e investire un po’ di tempo per imparare quelli che aiuteranno il tuo flusso di lavoro.

Qui ci sono tre plugin che uso regolarmente, che forniscono una tonnellata di comode scorciatoie e alias.

10 Nifty Git Aliases

Il plugin git fornisce molti alias e diverse funzioni utili. Perché non passare in rassegna questi e tentare di memorizzare la vostra top ten? Ecco quelli che uso più spesso.

  1. g è un comodo alias per git. Questo significa che puoi digitare cose come g clone <whatever> invece di git clone <whatever>. Potrebbero essere solo due battute, ma si sommano presto.
  2. gaa è un alias per git add all. Io lo uso sempre.
  3. gb è un alias per git branch, che elenca tutti i rami del repo corrente e ti mostra su quale sei.
  4. gcb è un alias per git checkout -b, il comando che ti permette di creare un nuovo ramo.
  5. gcm è un alias per git checkout master. Questo ti riporta al ramo master.
  6. gdca è un alias per git diff --cached. Questo ti permette di diff qualsiasi file che hai messo in scena per il commit.
  7. gf è un alias per git fetch.
  8. gm è un alias per git merge.
  9. gp è un alias per git push. Per sincronizzare un fork di un repo, si potrebbe fare: gf upstream, gm upstream/master, seguito da gp.
  10. glog è un alias per git log --oneline --decorate --graph, che vi darà un bel grafico di ramo git.

10 Pratici alias di npm

Il plugin npm fornisce anche il completamento di una serie di utili alias.

  • npmg è un alias per npm install --global, che puoi usare per installare globalmente le dipendenze sul tuo sistema. Per esempio, npmg nodemon.
  • npmS è un alias per npm install --save, che usi per installare le dipendenze e aggiungerle alla sezione dependencies del tuo package.json. Nota che, a partire da npm 5.0.0, questo è il default quando si esegue npm i <package>.
  • npmD è un alias per npm install --save-dev, che usi per installare le dipendenze e aggiungerle alla sezione devDependencies del tuo package.json.
  • npmO è un alias per npm outdated, che controllerà il registro per vedere se qualche (o, specifici) pacchetti installati sono attualmente obsoleti.
  • npmL è un alias per npm list, che elencherà i pacchetti installati.
  • npmL0 è un alias per npm list --depth=0, che elenca i pacchetti di primo livello. Questo è particolarmente utile per vedere quali moduli sono installati globalmente senza inondare il vostro terminale con un enorme albero delle dipendenze: npmL0 -g.
  • npmst è un alias per npm run start, uno script npm spesso usato per avviare un’applicazione.
  • npmt è un alias per npm run test, che, come si può intuire, è usato per eseguire i test.
  • npmR è un alias per npm run. Da solo, questo comando elencherà tutti gli script npm disponibili di un progetto, insieme ad una descrizione di ciò che fanno. Usato insieme al nome di uno script, eseguirà quello script, Per esempio, npmR build.
  • npmI è un alias di npm init. Questo vi farà un mucchio di domande, poi creerà un package.json basato sulle vostre risposte. Usa il flag -y per automatizzare il processo. Per esempio, npmI -y.

10 Alias Rails/Rake per risparmiare tempo

Questo plugin aggiunge il completamento per il framework Ruby on Rails e il programma Rake, così come alcuni alias per i log e le variabili di ambiente.

  • rc è un alias per rails console, che ti permette di interagire con la tua applicazione Rails dalla CLI.
  • rdc è un alias per rake db:create, che (a meno che RAILS_ENV sia impostato) crea i database di sviluppo e di test per la tua applicazione.
  • rdd è un alias per rake db:drop, che elimina i database di sviluppo e di test della tua applicazione.
  • rdm è un alias per rake db:migrate, che eseguirà qualsiasi migrazione di database in sospeso.
  • rds è un alias per rake db:seed, che esegue il file db/seeds.rb per popolare il tuo database di sviluppo con i dati.
  • rgen è un alias per rails generate, che genera codice boilerplate. Per esempio: rgen scaffold item name:string description:text.
  • rgm è un alias per rails generate migration, che genererà una migrazione di database. Per esempio: rgm add_description_to_products description:string.
  • rr è un alias per rake routes, che elenca tutte le rotte definite di un’applicazione.
  • rrg è un alias per rake routes | grep, che vi permetterà di elencare e filtrare le rotte definite. Per esempio, rrg user.
  • rs è un alias per rails server, che lancia il server web predefinito di Rails.

Risorse aggiuntive

Il compito principale dei plugin elencati sopra è di fornire alias a comandi spesso utilizzati. Siate consapevoli che ci sono molti altri plugin là fuori che aumentano la vostra shell con funzionalità aggiuntive.

Qui ci sono quattro dei miei preferiti:

  • sudo vi permette di prefissare facilmente i vostri comandi attuali o precedenti con sudo premendo ESC due volte.
  • autosuggestions suggerisce comandi mentre digitate in base alla cronologia e ai completamenti. Se il suggerimento è quello che state cercando, premete il tasto → per accettarlo. Un vero risparmio di tempo!
  • command-not-found: se un comando non è riconosciuto nel $PATH, questo userà il pacchetto command-not-found di Ubuntu per trovarlo o suggerire errori di ortografia.
  • z è un comodo plugin che costruisce una lista delle tue cartelle più frequenti e recenti (le chiama “frecent”) e ti permette di saltare ad esse con un solo comando.

E non dimenticare, se passi molto tempo nel terminale, vale la pena investire qualche sforzo per renderlo visivamente attraente. Fortunatamente, Oh My Zsh viene fornito con un sacco di temi tra cui scegliere. Il mio preferito è Agnoster.

Puoi saperne di più sui temi nel mio articolo 10 Zsh Tips &Tricks: Configurazione, Personalizzazione &Uso.

Conclusione

Così ci siamo: 75 comandi Zsh, plugin, alias e strumenti. Spero che abbiate imparato un trucco o due lungo la strada, e vi incoraggio ad uscire dalle vostre GUI ed entrare nel terminale. È più facile di quanto sembri e un ottimo modo per aumentare la vostra produttività.

Se mi sono perso il vostro plugin preferito, o alias/comando che vi fa risparmiare tempo, fatemelo sapere su Twitter.

Volete ottenere ancora di più dal vostro toolkit? Dai un’occhiata a Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers di Wiley.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.