8 greșeli de tipar pe care chiar trebuie să le evitați pe Linux

Publicat: 2023-01-15
Prim-plan al unei taste de la tastatură etichetată „Hopa!”
Redpixel.pl/Shutterstock
Verificați de două ori dacă ați introdus comanda corect înainte de a apăsa „Enter”. Pe Linux, o greșeală de tipar poate avea repercusiuni distructive. Utilizați completarea filei pentru a completa automat cât mai multe intrări în linia de comandă. Aliasurile pentru comenzi lungi și complicate sunt, de asemenea, o idee grozavă.

Linia de comandă Linux oferă o putere mare. Problema este că utilizarea corectă a acestei puteri depinde de acuratețea tastării. Iată opt greșeli de scriere pe care nu vrei să le faci niciodată.

Cuprins

Linia de comandă Linux
1. Nu uitați de -a
2. Folosind identificatorul de unitate greșit cu dd
3. Folosind identificatorul de unitate greșit cu mkfs
4. Nu ștergeți fișierul crontab
5. Repetarea istoriei
6. Calamitatea spațiilor
7. Folosind > În loc de >>
8. Redirecționare în direcția greșită
Cum să evitați greșelile de tipar în linia de comandă

Linia de comandă Linux

Linia de comandă Linux este un portal către o mare putere, dar o greșeală de tipar este tot ce este nevoie pentru ca această putere să se întoarcă împotriva ta. Cu toții am auzit despre comanda pe care nu ar trebui să o rulați niciodată. Ceea ce vorbim aici sunt comenzi pe care doriți să le executați, dar în cazul în care o scăpare poate însemna un dezastru.

Când apăsați „Enter”, tot ceea ce ați tastat este procesat de shell. Aliasurile și variabilele sunt extinse. Comenzile, opțiunile și parametrii sunt identificate. Aceasta se numește parsing. Următorul pas predă intrarea dvs. analizată comenzilor care urmează să vă execute instrucțiunile.

Dacă faceți o greșeală când introduceți comenzile, este posibil ca aceasta să fie prinsă ca o eroare de sintaxă. Dar dacă greșeala ta creează o altă linie de comandă validă, aceasta va fi executată.

O greșeală simplă poate fi cu adevărat distructivă. Nivelul de distrugere depinde de comandă și de greșeală. S-ar putea să pierzi timpul. Este posibil să pierdeți un fișier. Este posibil să pierdeți un întreg sistem de fișiere.

LEGATE: Ce este Bash Shell și de ce este atât de important pentru Linux?

1. Nu uitați de -a

S-ar putea să fie nevoie să adăugați pe cineva la un grup pentru a-i permite, de exemplu, să folosească o anumită bucată de software. De exemplu, VirtualBox solicită utilizatorilor să facă parte din grupul „vboxusers”. Putem face asta cu usermod .

Comanda groups listează grupurile unui utilizator.

 grupuri 

Listarea grupurilor unui utilizator cu comanda groups

Vom adăuga utilizatorul dave la un grup nou. -a (adăugați) adaugă noul grup la lista de grupuri existente în care se află utilizatorul. Opțiunea -G (grupuri) identifică grupul.

 sudo usermod -a -G vboxusers dave 

Adăugarea unui utilizator la un grup nou, folosind comanda usermod

Noul grup este văzut după ce utilizatorul se conectează și se deconectează.

 grupuri 

Grupul vboxusers care apare în lista de grupuri în care se află acest utilizator

Acum se află în grupul „vboxusers”. Cu toate acestea, dacă uitați să utilizați opțiunea -a (adăugați), toate grupurile existente ale utilizatorului sunt eliminate. Singurul grup în care vor fi, este noul grup.

Aceasta este comanda incorectă :

 sudo usermod -G vboxusers dave 

Adăugarea unui utilizator la un grup fără a utiliza opțiunea -a append

Când se conectează în continuare, vor descoperi că fac parte dintr-un singur grup.

 grupuri 

Utilizatorul se află acum într-un singur grup

Dacă aveți un singur utilizator configurat și îi faceți acest lucru, veți avea probleme serioase. În primul rând, utilizatorul nu mai este membru al grupului „sudo”, așa că nu puteți folosi sudo pentru a începe corectarea lucrurilor.

RELATE: Adăugați un utilizator la un grup (sau al doilea grup) pe Linux

2. Folosind identificatorul de unitate greșit cu dd

Comanda dd scrie blocuri de date în sistemele de fișiere. Este adesea folosit pentru a scrie imagini ISO pe stick-uri de memorie USB.

Schema de denumire Linux pentru dispozitivele de stocare folosește o singură literă pentru identificare. Primul hard disk se numește „/dev/sda”, al doilea este „/dev/sdb”, al treilea este „/dev/sdc” și așa mai departe. Partițiile sunt identificate prin număr. Prima partiție de pe primul hard disk este „/dev/sda1”, a doua este „/dev/sda2” și așa mai departe.

Dacă inscripționați o imagine pe un stick de memorie USB, trebuie să cunoașteți identificatorul unității stick-ului de memorie USB. Vom găsi asta prin lsblk prin grep , căutând intrări cu „sd” în ele.

 lsblk | grep sd 

Folosind grep pentru a căuta linii cu „sd” în ele, în rezultatul comenzii lsblk

Putem vedea că hard diskul „/dev/sda” este o unitate de 32 GB cu trei partiții. Una dintre partiții este partiția „/boot”, iar partiția „/dev/sda3” este montată la „/”, care este rădăcina sistemului de fișiere.

Unitatea de hard disk „/dev/sdb” este raportată ca o unitate de 7,5 GB. Este montat la „/media/dave/Pink”. În mod evident, unitatea „/dev/sda” este hard disk-ul principal de pe acest computer, iar „/dev/sdb” este stick-ul de memorie USB.

Comanda pentru a scrie un fișier ISO care se află în directorul „~/Descărcări” pe stick-ul nostru de memorie USB este:

 sudo dd bs=4M if=Descărcări/distro-image.iso of=/dev/sdb conv=fdatasync status=progres 

Scrierea unei imagini pe un stick de memorie USB cu comanda dd

Ni se solicită parola, apoi dd intră în acțiune. Nu există „Ești sigur?” avertismente sau șanse de a da înapoi. Scrierea începe imediat.

Afișează progresul dd în timp ce scrie o imagine pe un stick de memorie USB

Cu toate acestea, dacă tastați litera greșită pentru identificatorul unității și aceasta se potrivește cu un hard disk existent, veți suprascrie acea unitate în loc de stick-ul de memorie.

Aceasta este comanda incorectă :

 sudo dd bs=4M if=Descărcări/distro-image.iso of=/dev/sda conv=fdatasync status=progress 

Scrierea greșită a unei imagini pe hard diskul principal se termină cu un mesaj de eroare

I-am spus dd să folosească „/dev/sd a ”, așa a făcut. Acțiunea de scriere este mult mai rapidă, dar se termină cu un avertisment. Tocmai ți-ai aruncat la gunoi instalarea Linux.

Verificați și verificați identificatorii unității înainte de a apăsa „Enter”.

LEGATE: Cum să inscripționați un fișier ISO pe o unitate USB în Linux

3. Folosind identificatorul de unitate greșit cu mkfs

Există și alte comenzi care preiau identificatorii de unitate ca parte a liniei lor de comandă, cum ar fi instrumentele mkfs . Aceste unități formatează prin crearea de sisteme de fișiere pe partiții.

Pe acest computer avem o unitate de 25 GB și una de 10 GB.

Ieșirea lsblk a transmis prin grep, afișând hard disk-urile dintr-un computer

Dacă dorim să creăm un sistem de fișiere Ext4 pe prima partiție a unității de 10 GB, am folosi aceste comenzi.

 sudo umount /dev/sdb1
 sudo mkfs.ext4 /dev/sdb1 

Crearea unui sistem de fișiere ext4 pe un stick de memorie USB

Dar dacă facem greșeala de a folosi un „a” în loc de un „b” în identificatorul unității, vom șterge una dintre partițiile de pe unitatea de 25 GB și vom face computerul nepornit.

Aceasta este comanda incorectă :

 sudo umount /dev/sda1
 sudo mkfs.ext4 /dev/sda1 

Formatarea greșită a unității principale a unui computer

Acea literă mică are un pumn, așa că asigură-te că ai pornit pe unitatea corectă.

LEGATE: Cum să utilizați comanda mkfs pe Linux

4. Nu ștergeți fișierul crontab

Daemonul cron rulează sarcini la ore prestabilite pentru dvs. Își ia configurația dintr-un fișier crontab . Fiecare utilizator, inclusiv root, poate avea un fișier crontab . Pentru a edita crontab , utilizați această comandă:

 crontab -e 

Comanda pentru a edita fișierul crontab: crontab -e

Fișierul crontab este deschis într-un editor. Puteți face modificări și adăuga comenzi noi.

Un fișier crontab deschis într-un editor

Dar dacă tastați greșit comanda și apăsați „r” în loc de „e”, veți șterge - ca în ștergere - fișierul crontab .

Aceasta este comanda incorectă :

 crontab -r 

Comanda care șterge fișierul crontab: crontab -r

Data viitoare când utilizați comanda crontab -e , veți vedea un fișier implicit, gol.

Aceasta este o greșeală ușor de făcut, deoarece „e” și „r” sunt unul lângă celălalt pe majoritatea tastaturilor. Reconstruirea unui fișier crontab complicat nu este distractiv.

RELATE: Ce este un job Cron și cum le folosiți?

5. Repetarea istoriei

Utilizarea comenzii history este excelentă atunci când încercați să reduceți apăsările de taste și să economisiți timp. Dacă poți scoate o comandă îndelungată din istorie, câștigi viteză și precizie. Atâta timp cât selectezi comanda potrivită din istoricul tău.

Comanda history listează comenzile anterioare în fereastra terminalului. Sunt numerotate. Pentru a reutiliza o comandă, precedați numărul acesteia cu un semn de exclamare „ ! „, și apăsați tasta „Enter”.

 istorie 

Să presupunem că am clonat un depozit Git, ne-am încurcat cu el și l-am șters. Trebuie să-l clonăm încă o dată. Derulând în fereastra terminalului, putem identifica în curând comanda git clone . Îl putem rula din nou tastând:

 !60

Dar dacă ne-am uitat doar la ecran și am citit greșit numărul, s-ar putea să alegem următorul număr din greșeală:

 !61

Aceasta rulează următoarea comandă din listă, rm * . Aceasta șterge toate fișierele din directorul curent.

De asemenea, puteți folosi „ ! ” semnul exclamării cu un șir de text. Prima comandă de potrivire este executată pentru dvs. Nu este afișat pentru a putea verifica că este cel la care te gândeai, se execută imediat.

Imaginați-vă scenariul în care aveți un script numit „restart.sh”. Acest script setează implicit un set de fișiere de configurare pentru unele software pe care le scrieți. Periodic, pe măsură ce dezvoltați și testați, trebuie să ștergeți lista, așa că vă apelați scriptul.

Această comandă ar trebui să fie suficientă pentru a găsi și potrivi comanda din istoricul dvs. și pentru a o executa.

 !re

Dar dacă ați folosit comanda de reboot de când ați folosit ultima dată scriptul, comanda de reboot este găsită și executată imediat.

Comanda rm * este executată din greșeală

Pe computerul dvs. de acasă cu un singur utilizator, probabil că este doar o supărare. Pe un server partajat este o supărare și pentru mulți alți oameni.

LEGATE: Cum să utilizați comanda istoric pe Linux

6. Calamitatea spațiilor

Spațiile din numele fișierelor și căile directoarelor pot provoca ravagii. De aceea ar trebui să fie întotdeauna scăpați sau citați.

Cum să tratați spațiile în numele fișierelor pe Linux
LEGATE Cum să tratați spațiile în numele fișierelor pe Linux

Problemele cu spațiile pot fi evitate utilizând completarea filelor. Apăsați tasta „Tab” atunci când introduceți un nume de fișier sau o cale de director, iar shell-ul va completa automat cât mai mult posibil din calea sau numele fișierului. Este posibil să fie nevoie să tastați o literă pentru a face diferența între fișierul pe care îl doriți și orice alte fișiere care partajează o parte cu același nume, dar o altă apăsare a tastei „Tab” va completa restul numelui fișierului pentru dvs.

Acest lucru economisește apăsările de taste, împiedică spațiile să se strecoare din cauza greșelilor de scriere și scapă corect de orice spații legitime, astfel încât acestea să nu cauzeze probleme.

Să presupunem că avem un director „Dezvoltare” care conține alte două directoare, „geocoder” și „bin”. Există, de asemenea, un director „bin” în directorul „geocoder”.

Pentru a șterge fișierele din directorul „geocoder/bin” și pentru a elimina directorul, ați folosi această comandă.

 rm -r geocoder/bin 

Ștergerea directorului geocoder/bin

Acum imaginați-vă că ați adăugat din neatenție un spațiu după „geocoder/”, așa.

Aceasta este comanda incorectă :

 rm -r geocoder/ bin 

Ștergerea din greșeală a directoarelor geocoder și bin

Bum. Directorul „Dezvoltare” este acum gol. Directoarele „Development/geocoder”, „Development/geocoder/bin” și „Development/bin” au fost toate șterse complet.

Amintiți-vă, completarea filei este prietenul dvs.

RELATE: Utilizați completarea filelor pentru a introduce comenzi mai rapid pe orice sistem de operare

7. Folosind > În loc de >>

Redirecționarea trimite rezultatul unui proces într-un fișier. Folosim semnul mai mare decât „ > ” pentru a captura rezultatul dintr-un proces. Dacă fișierul există, acesta se golește mai întâi.

Să presupunem că investigăm o scurgere de memorie. Avem un script numit „memlog.sh”. Afișează statisticile memoriei o dată pe secundă. O vom redirecționa într-un fișier numit „memory.txt”, pentru analiză ulterioară.

 memlog.sh > memorie.txt
 memoria capului.txt 

Captarea și afișarea rezultatelor din scriptul memlog.sh

A doua zi, vrem să continuăm investigația și repornim scenariul. De data aceasta trebuie să folosim două semne mai mari decât „ >> ” pentru ca noile date să fie atașate fișierului.

 memlog.sh >> memorie.txt 

Adăugarea de date noi la sfârșitul unui fișier existent

Dacă folosim un singur semn mai mare decât „>”, vom pierde datele de ieri, deoarece fișierul este golit primul.

RELATE: Ce sunt stdin, stdout și stderr pe Linux?

8. Redirecționare în direcția greșită

Redirecționarea poate folosi conținutul unui fișier ca intrare într-un program.

Avem un fișier numit „placenames.sql” pe care dorim să îl importăm în sqlite3 . Fișierul cu schemă descrie cum să recreați tabelele bazei de date. De asemenea, deține datele pe care le dorim să fie stocate în baza de date. La 1,3 GB și peste 11 milioane de linii, este un fișier mare.

 ls -hl placenames.sql
 wc placenames.sql 

Verificarea dimensiunii unui fișier cu ls și wc

Putem crea o nouă bază de date numită „places.sqlite3” cu această comandă.

 sqlite3 places.sqlite3 < placenames.sql 

Importul unei scheme dintr-un fișier în sqlite3

De cele mai multe ori, atunci când redirecționăm, folosim caracterul „>”. Trebuie să te concentrezi pentru a evita să tastezi „>” din obișnuință. Dacă o faceți, orice ieșire pe care sqlite3 o generează este scrisă în fișierul dvs. de schemă, ștergându-l.

Aceasta este comanda incorectă :

 sqlite3 places.sqlite3 > placenames.sql 

Redirecționare eronată într-un fișier schemă din sqlite3

Fișierul nostru de schemă a fost distrus, suprascris de mesajul de bun venit din shell-ul sqlite3 .

 nume de locuri pisici.sql 

Fișierul de schemă suprascris care conține mesajul de bun venit sqlite3

La revedere, 1,3 GB de date.

Cum să evitați greșelile de tipar în linia de comandă

Există obiceiuri bune pe care le puteți adopta pentru a evita să faceți aceste tipuri de greșeli.

Folosiți completarea filei acolo unde este posibil. Veți evita problemele cu spațiile din căile de director și numele fișierelor.

Creați-vă propriile aliasuri scurte și memorabile pentru comenzi lungi și complicate pe care trebuie să le utilizați ocazional. În acest fel, nu vei da greșit folosind opțiuni și parametri greșiți.

Cum să tastați mai puțin și să lucrați mai rapid în terminalul Linux
LEGATE Cum să tastați mai puțin și să lucrați mai rapid în terminalul Linux

Este notoriu dificil să-ți verifici propriul text, dar asta trebuie să faci pe linia de comandă. Citiți ce este cu adevărat acolo. Nu aruncați o privire la el și nu credeți că spune ceea ce ați vrut să tastați. Ce spune de fapt? Pentru că asta va face cu adevărat.

LEGATE: 8 comenzi mortale pe care nu ar trebui să le rulați niciodată pe Linux