Aliasuri Bash nu puteți trăi fără

0 Comments

un alias Bash este o metodă de completare sau suprascriere a comenzilor Bash cu altele noi. Aliasurile Bash facilitează utilizatorilor să-și personalizeze experiența într-un terminal POSIX. Ele sunt adesea definite în $ acasă/.bashrc sau $ HOME / bash_aliases (care trebuie să fie încărcate de $HOME/.bashrc).

majoritatea distribuțiilor adaugă cel puțin câteva pseudonime populare în mod implicit .fișierul bashrc al oricărui cont de utilizator nou. Acestea sunt simple pentru a demonstra sintaxa unui alias Bash:

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

nu toate distribuțiile sunt livrate cu pseudonime pre-populate., Dacă adăugați pseudonime manual, atunci trebuie să le încărcați în sesiunea Bash curentă:

$ source ~/.bashrc

În caz contrar, puteți închide terminalul și îl puteți redeschide astfel încât să reîncarce fișierul de configurare.

cu acele pseudonime definite în scriptul de inițializare Bash, puteți apoi să tastați ll și să obțineți rezultatele ls-l, iar atunci când tastați LS obțineți, în loc de ieșirea LS vechi simplu.

aceste pseudonime sunt minunate, dar ele doar zgârie suprafața a ceea ce este posibil. Iată primele 10 aliasuri Bash pe care, odată ce le încercați, nu veți putea trăi fără.,

configurați mai întâi

înainte de a începe, creați un fișier numit ~/.bash_aliases:

$ touch ~/.bash_aliases

apoi, asigurați-vă că acest cod apare în~/.bashrc file:

if ; then
source $HOME/.bash_aliases
fi

Dacă doriți să încercați oricare dintre pseudonimele din acest articol pentru dvs., introduceți-le în dvs.bash_aliases fișier, și apoi încărcați-le în sesiunea Bash cu sursa ~/.Comandamentul bashrc.,dacă ați început viața de calcul cu manageri de fișiere GUI, cum ar fi Nautilus în GNOME, Finder în MacOS sau Explorer în Windows, atunci probabil că sunteți obișnuit să sortați o listă de fișiere după dimensiunea lor. Puteți face asta și într-un terminal, dar nu este exact succint.

Adauga acest alias la configuratia ta pe un sistem GNU:

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

acest alias inlocuieste lt cu o comanda ls care afiseaza marimea fiecarui element, si apoi o Sorteaza dupa marime, intr-o singura coloana, cu o notatie pentru a indica tipul de fisier., Încărcați noua identitate, și apoi încercați să-l:

Pe MacOS sau BSD, comanda ls nu are aceleași opțiuni, astfel încât acest alias lucrări loc:

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

rezultatele din această versiune sunt un pic diferite:

$ 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

de fapt, chiar și pe Linux, care comandă este utilă, deoarece folosind ls listeaza directoarele și legături simbolice ca fiind 0 în dimensiune, care nu poate fi informațiile vrei de fapt. E alegerea ta.

mulțumesc lui Brad Alexander pentru această idee de alias.

vizualizați numai unitățile montate

comanda de montare era atât de simplă., Cu o singură comandă, puteți obține o listă a tuturor sistemelor de fișiere montate pe computer și a fost frecvent utilizată pentru o imagine de ansamblu a unităților atașate la o stație de lucru. A fost impresionant să vezi mai mult de trei sau patru intrări, deoarece majoritatea computerelor nu au mai multe porturi USB decât atât, astfel încât rezultatele au fost gestionabile.,

Calculatoare sunt un pic mai complicat acum, și între LVM, unități fizice, de stocare de rețea, și sisteme de fișiere virtuale, rezultatele de pe muntele poate fi dificil de a analiza:

Pentru a rezolva această problemă, încercați un alias astfel:

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

Acest alias folosește awk pentru a analiza producția de montare prin coloană, reducerea de ieșire la ceea ce, probabil, în căutarea pentru (ceea ce hard disk-uri, și nu de sisteme de fișiere, sunt montate):

Pe MacOS, comanda mount nu oferă foarte detaliată de ieșire, deci, un alias poate fi nejustificată., Cu toate acestea, dacă preferați un succint raport, încercați acest lucru:

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

rezultate:

Găsi o comandă în grep istorie

Uneori îți dai seama cum să faci ceva în terminal, și-ți promiți că nu vei uita niciodată ceea ce ai învățat. Apoi trece o oră și ai uitat complet ce ai făcut.căutarea prin istoricul Bash este ceva ce toată lumea trebuie să facă din când în când., Dacă știți exact ce căutați, puteți utiliza Ctrl + R pentru a face o căutare inversă prin istoricul dvs., dar uneori nu vă puteți aminti comanda exactă pe care doriți să o găsiți.

Aici este un alias pentru a face ca sarcina un pic mai ușor:

alias gh="history|grep"

Aici e un exemplu de cum să-l folosească:

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

un Fel de modificare

Se întâmplă în fiecare luni: Vă ajunge la locul de muncă, stai jos la computer, deschideți un terminal, și tu te-ai uitat ce faceai vinerea trecută., Ceea ce aveți nevoie este un alias pentru a lista Cele mai recent modificate fișiere.

puteți utiliza comanda ls pentru a crea un alias pentru a vă ajuta să găsiți unde ați rămas:

alias left="ls -t -1"

ieșirea este simplă, deși o puteți extinde cu opțiunea –long dacă preferați., Alias, astfel cum sunt enumerate, afișează acest lucru:

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

Contele de fișiere

Dacă aveți nevoie să știți cât de multe fișiere într-un director, soluția este una dintre cele mai clasice exemple de comandă UNIX constructii: lista de fișiere cu comanda ls, de control de ieșire să fie o singură coloană cu -1 opțiune, și apoi țeavă de ieșire la wc (word count) comandă pentru a conta cât de multe linii de fișiere individuale există.

este o demonstrație strălucitoare a modului în care filozofia UNIX permite utilizatorilor să-și construiască propriile soluții folosind componente de sistem mici., Această combinație de comandă este, de asemenea, o mulțime de tip dacă se întâmplă să o faci de mai multe ori pe zi, și nu funcționează exact pentru un director de directoare fără a utiliza opțiunea-R, care introduce noi linii la ieșire și face exercițiul inutil.

În schimb, acest alias face procesul ușor:

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

acesta numără fișierele, ignorând directoarele, dar nu și conținutul directoarelor. Dacă aveți un dosar de proiect care conține două directoare, fiecare conținând două fișiere, aliasul returnează patru, deoarece există patru fișiere în întregul proiect.,

$ ls
foo bar
$ count
4

creați un mediu virtual Python

codați în Python?

codificați în Python mult?dacă o faceți, atunci știți că crearea unui mediu virtual Python necesită cel puțin 53 de apăsări de taste.
Asta e 49 prea multe, dar asta e ușor eludate cu două nume noi sunat ve și va:

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

de Funcționare ve creează un nou director, numit venv, conținând de obicei mediul virtual filesystem pentru Python3., Va alias activează mediu în shell-ul curent:

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

Adăugați o copie bara de progres

toată Lumea râde de bare de progres pentru că sunt rușinos inexacte. Și totuși, în adâncul sufletului, toți par să le dorim. Comanda UNIX cp nu are o bară de progres, dar are opțiunea a-v pentru verbosity, ceea ce înseamnă că ecou numele fiecărui fișier copiat pe terminalul dvs. Acesta este un hack destul de bun, dar nu funcționează atât de bine atunci când copiați un fișier mare și doriți să indicați cât de mult din fișier nu a fost încă transferat.,

comanda pv oferă o bară de progres în timpul copierii, dar nu este obișnuită ca aplicație implicită. Pe de altă parte, comanda rsync este inclusă în instalarea implicită a aproape tuturor sistemelor POSIX disponibile și este recunoscută pe scară largă ca fiind una dintre cele mai inteligente modalități de a copia fișiere atât de la distanță, cât și local.mai bine, are o bară de progres încorporată.,

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

Folosind acest alias este la fel ca folosind comanda cp:

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

Un efect secundar interesant de a folosi această comandă este că rsync exemplare ambele fișiere și directoare, fără -r steagul cp, altfel, ar necesita.

Protejați-vă de accidentele de eliminare a fișierelor

nu trebuie să utilizați comanda rm. Manualul rm spune chiar așa:

atenție: dacă utilizați ” rm ” pentru a elimina un fișier, este de obicei posibil să recuperați conținutul acelui fișier., Dacă doriți mai multă siguranță că conținutul este cu adevărat nerecuperabil, luați în considerare utilizarea „shred”.

Dacă doriți să eliminați un fișier, ar trebui să mutați fișierul în coșul de gunoi, la fel cum faceți atunci când utilizați un desktop.

POSIX face acest lucru ușor, deoarece coșul de gunoi este o locație accesibilă, reală în sistemul de fișiere. Această locație se poate schimba, în funcție de platforma dvs.: pe un FreeDesktop, coșul de gunoi este localizat la ~/.local/share / Trash, în timp ce pe MacOS este~/.,Coșul de gunoi, dar oricum, este doar un director în care plasați fișierele pe care le doriți din vedere până când sunteți gata să le ștergeți pentru totdeauna.

Acest simplu alias oferă o modalitate de a arunca fișiere în coșul de Gunoi de la terminal:

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

Acest alias foloseste un pic de-cunoscute mv pavilion, care vă permite pentru a oferi fișierul pe care doriți să se mute, ca ultim argument, ignorând obicei cerință pentru ca dosarul să fie listate primele., Acum Puteți utiliza noua comandă pentru a muta fișierele și folderele în coșul de gunoi al sistemului:

$ ls
foo bar
$ tcn foo
$ ls
bar

acum fișierul este „plecat”, dar numai până când vă dați seama într-o transpirație rece că mai aveți nevoie de el. În acel moment, puteți salva fișierul din coșul de gunoi al sistemului; asigurați-vă că ați înclinat dezvoltatorii Bash și mv la ieșire.Notă: Dacă aveți nevoie de o comandă de gunoi mai robustă, cu o mai bună conformitate FreeDesktop, consultați Trashy.

Simplificați fluxul de lucru Git

toată lumea are un flux de lucru unic, dar de obicei există sarcini repetitive, indiferent de situație., Dacă lucrați cu Git în mod regulat, atunci probabil că există o secvență pe care o veți repeta destul de frecvent. Poate te găsești întorcându-te la ramura principală și trăgând cele mai recente modificări din nou și din nou în timpul zilei, sau poate te găsești creând etichete și apoi împingându-le la telecomandă, sau poate este cu totul altceva.

indiferent de incantația Git pe care te-ai săturat să tastezi, este posibil să poți atenua durerea cu un alias Bash., În mare parte datorită capacității sale de a transmite argumente către cârlige, Git are un set bogat de comenzi introspective care vă salvează de la a trebui să efectuați fapte ciudate în Bash.

de exemplu, în timp ce s-ar putea lupta pentru a localiza, în Bash, directorul de nivel superior al unui proiect (care, în ceea ce privește Bash este în cauză, este o denumire complet arbitrară, deoarece nivelul superior absolut al unui computer este directorul rădăcină), git își cunoaște nivelul superior cu o simplă interogare., Dacă studiați cârligele Git, veți găsi că puteți afla tot felul de informații despre care Bash nu știe nimic, dar puteți folosi aceste informații cu un alias Bash.,

Aici este un alias pentru a găsi cel mai înalt nivel de un proiect Git, nu contează în cazul în care în proiectul la care lucrează în prezent, și apoi pentru a schimba directorul de la el, schimba la ramura de master, și de a efectua un Git pull:

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

Acest fel de alias nu este universal utilă alias, dar demonstrează cum un relativ simplu alias poate elimina o mulțime de laborios de navigare, comenzi, și de așteptare pentru instrucțiunile.

un alias mai simplu și probabil mai universal vă readuce la nivelul superior al proiectului Git., Acest alias este util deoarece atunci când lucrați la un proiect, acel proiect devine mai mult sau mai puțin directorul dvs. Ar trebui să fie la fel de simplu să meargă „acasă”, cum este să mergi la actuala casă, și aici este un alias pentru a face:

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

Acum comanda cg duce la partea de sus de Git proiect, indiferent de cât de adânc în structura de directoare trebuie coborât.,

schimbați directoarele și vizualizați conținutul în același timp

a fost odată (presupus) propus de un om de știință de frunte că am putea rezolva multe dintre problemele energetice ale planetei prin valorificarea energiei consumate de geeks tastând cd urmat de LS.
este un model comun, pentru că, în general, atunci când schimbați directoare, aveți impulsul sau nevoia de a vedea ce este în jur.

dar” mersul pe jos ” copac directorul computerului nu trebuie să fie un proces de pornire și oprire.

aceasta este înșelăciune, pentru că nu este deloc un alias, dar este o scuză excelentă pentru a explora funcțiile Bash., În timp ce pseudonime sunt foarte bune pentru substituții rapide, Bash vă permite să adăugați funcții locale în Dvs .. fișier bashrc (sau un fișier funcții separate pe care le încărcați în .bashrc, la fel cum faci fișierul pseudonime).

pentru a păstra lucrurile modulare, creați un nou fișier numit~/.bash_functions și apoi au dvs .. ,bashrc sarcină:

if ; then
source $HOME/.bash_functions
fi

În funcții de fișier, adăugați acest cod:

Încărcare funcția în Bash sesiune și apoi încercați să-l:

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

$ pwd
/home/seth

Functii sunt mult mai flexibile decât pseudonime, dar cu flexibilitatea vine responsabilitatea pentru tine pentru a se asigura că codul de logic și de a face ceea ce vă așteptați. Aliasurile sunt menite să fie simple, așa că păstrați-le ușor, dar utile. Pentru modificări grave ale comportamentului Bash, utilizați funcții sau scripturi shell personalizate salvate într-o locație din calea dvs.,

pentru înregistrare, există câteva hack-uri inteligente pentru a implementa secvența cd și ls ca alias, așa că dacă ești suficient de răbdător, atunci cerul este limita chiar și folosind pseudonime umile.

începe aliasing și funcționarea


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *