8 literówek, których naprawdę musisz unikać w systemie Linux

Opublikowany: 2023-01-15
Zbliżenie na klawisz na klawiaturze z napisem „Ups!”
Redpixel.pl/Shutterstock
Przed naciśnięciem „Enter” sprawdź dokładnie, czy wpisałeś polecenie poprawnie. W Linuksie literówka może mieć destrukcyjne konsekwencje. Użyj uzupełniania tabulacji, aby automatycznie wypełnić jak najwięcej wpisów wiersza poleceń. Świetnym pomysłem są również aliasy dla długich i skomplikowanych poleceń.

Wiersz poleceń Linuksa zapewnia wielką moc. Problem polega na tym, że prawidłowe użycie tej mocy zależy od dokładności pisania. Oto osiem literówek, których nigdy nie chciałbyś popełnić.

Spis treści

Linia poleceń Linuksa
1. Nie zapomnij o -a
2. Używanie niewłaściwego identyfikatora dysku z dd
3. Używanie niewłaściwego identyfikatora dysku z mkfs
4. Nie usuwaj pliku crontab
5. Powtarzanie historii
6. Katastrofa przestrzeni
7. Używanie > Zamiast >>
8. Przekierowanie w złym kierunku
Jak uniknąć literówek w wierszu poleceń

Linia poleceń Linuksa

Wiersz poleceń Linuksa to portal do wielkiej mocy, ale wystarczy jedna literówka, aby ta moc zwróciła się przeciwko tobie. Wszyscy słyszeliśmy o poleceniu, którego nigdy nie powinieneś uruchamiać. Mówimy tutaj o poleceniach, które chcesz uruchomić, ale gdzie jedna wpadka może oznaczać katastrofę.

Po naciśnięciu „Enter” wszystko, co wpisałeś, zostanie przetworzone przez powłokę. Aliasy i zmienne są rozwijane. Polecenia, opcje i parametry są identyfikowane. Nazywa się to parsowaniem. Następny krok przekazuje przeanalizowane dane wejściowe poleceniom, które będą wykonywać twoje instrukcje.

Jeśli popełnisz błąd podczas wpisywania poleceń, może to zostać uwięzione jako błąd składniowy. Ale jeśli twój błąd utworzy inną prawidłową linię poleceń, zostanie ona wykonana.

Prosta literówka może być naprawdę destrukcyjna. Stopień zniszczenia zależy od polecenia i błędu. Możesz stracić czas. Możesz stracić plik. Możesz stracić cały system plików.

POWIĄZANE: Co to jest powłoka Bash i dlaczego jest tak ważna dla Linuksa?

1. Nie zapomnij o -a

Może być konieczne dodanie kogoś do grupy, aby umożliwić mu, na przykład, korzystanie z określonego oprogramowania. Na przykład VirtualBox wymaga, aby użytkownicy należeli do grupy „vboxusers”. Możemy to zrobić za pomocą usermod .

Polecenie groups wyświetla listę grup użytkownika.

 grupy 

Wyświetlanie listy grup użytkownika za pomocą polecenia groups

Dodamy użytkownika dave do nowej grupy. Opcja -a (dołącz) dodaje nową grupę do listy istniejących grup, w których znajduje się użytkownik. Opcja -G (grupy) identyfikuje grupę.

 sudo usermod -a -G vboxusers dave 

Dodanie użytkownika do nowej grupy za pomocą komendy usermod

Nowa grupa jest widoczna po zalogowaniu i wylogowaniu użytkownika.

 grupy 

Grupa vboxusers wyświetlana na liście grup, w których znajduje się ten użytkownik

Jest teraz w grupie „vboxusers”. Jeśli jednak zapomnisz użyć opcji -a (dołącz), wszystkie istniejące grupy użytkownika zostaną usunięte. Jedyna grupa, w której będą, to nowa grupa.

To jest błędne polecenie:

 sudo usermod -G vboxusers dave 

Dodanie użytkownika do grupy bez użycia opcji -a append

Gdy zalogują się następnym razem, przekonają się, że są tylko w jednej grupie.

 grupy 

Użytkownik jest teraz w jednej grupie

Jeśli masz jednego skonfigurowanego użytkownika i zrobisz mu to, będziesz miał poważne problemy. Po pierwsze, użytkownik nie jest już członkiem grupy „sudo”, więc nie możesz używać sudo do poprawiania rzeczy.

POWIĄZANE: Dodaj użytkownika do grupy (lub drugiej grupy) w systemie Linux

2. Używanie niewłaściwego identyfikatora dysku z dd

Polecenie dd zapisuje bloki danych w systemach plików. Jest często używany do zapisywania obrazów ISO na pamięciach USB.

Schemat nazewnictwa urządzeń pamięci masowej w systemie Linux wykorzystuje jedną literę do identyfikacji. Pierwszy dysk twardy nosi nazwę „/dev/sda”, drugi to „/dev/sdb”, trzeci to „/dev/sdc” i tak dalej. Partycje są identyfikowane przez numer. Pierwsza partycja na pierwszym dysku twardym to „/dev/sda1”, druga to „/dev/sda2” i tak dalej.

Jeśli nagrywasz obraz w pamięci USB, musisz znać identyfikator napędu pamięci USB. Znajdziemy to, lsblk przez grep , szukając wpisów zawierających „sd”.

 lsblk | grep sd 

Używanie grep do wyszukiwania linii zawierających „sd” w danych wyjściowych polecenia lsblk

Widzimy, że dysk twardy „/ dev / sda” to dysk o pojemności 32 GB z trzema partycjami. Jedną z partycji jest partycja „/boot”, a partycja „/dev/sda3” jest zamontowana w „/”, czyli katalogu głównym systemu plików.

Dysk twardy „/dev/sdb” jest zgłaszany jako dysk o pojemności 7,5 GB. Jest zamontowany w „/media/dave/Pink”. Najwyraźniej dysk „/dev/sda” jest głównym dyskiem twardym tego komputera, a „/dev/sdb” to pamięć USB.

Polecenie zapisania pliku ISO znajdującego się w katalogu „~/Downloads” na naszej pamięci USB to:

 sudo dd bs=4M if=Downloads/distro-image.iso of=/dev/sdb conv=fdatasync status=postęp 

Zapisywanie obrazu w pamięci USB za pomocą polecenia dd

Zostaniemy poproszeni o podanie hasła, a następnie dd wkracza do akcji. Nie ma opcji „Czy na pewno?” ostrzeżeń lub szans na wycofanie się. Pisanie rozpoczyna się natychmiast.

Wyświetlany jest postęp dd podczas zapisywania obrazu w pamięci USB

Jeśli jednak wpiszesz niewłaściwą literę identyfikatora dysku i pasuje on do istniejącego dysku twardego, zastąpisz ten dysk zamiast karty pamięci.

To jest błędne polecenie:

 sudo dd bs=4M if=Downloads/distro-image.iso of=/dev/sda conv=fdatasync status=postęp 

Omyłkowe zapisanie obrazu na głównym dysku twardym kończy się komunikatem o błędzie

Powiedzieliśmy dd , aby użył „/dev/sd a ”, więc tak się stało. Akcja zapisu jest znacznie szybsza, ale kończy się ostrzeżeniem. Właśnie skasowałeś swoją instalację Linuksa.

Sprawdź i dwukrotnie sprawdź identyfikatory dysków przed naciśnięciem „Enter”.

POWIĄZANE: Jak nagrać plik ISO na dysk USB w systemie Linux

3. Używanie niewłaściwego identyfikatora dysku z mkfs

Istnieją inne polecenia, które pobierają identyfikatory dysków jako część swojego wiersza poleceń, takie jak narzędzia mkfs . Formatują one dyski, tworząc systemy plików na partycjach.

Na tym komputerze mamy dysk 25 GB i dysk 10 GB.

Dane wyjściowe lsblk przesyłane przez grep, wyświetlające dyski twarde w komputerze

Jeśli chcemy utworzyć system plików Ext4 na pierwszej partycji dysku 10 GB, użyjemy tych poleceń.

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

Tworzenie systemu plików ext4 na pendrivie USB

Ale jeśli popełnimy błąd, używając „a” zamiast „b” w identyfikatorze dysku, usuniemy jedną z partycji na dysku 25 GB i uniemożliwimy uruchomienie komputera.

To jest błędne polecenie:

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

Omyłkowe sformatowanie głównego dysku komputera

Ta jedna mała litera ma moc, więc upewnij się, że trafiasz we właściwy dysk.

POWIĄZANE: Jak korzystać z polecenia mkfs w systemie Linux

4. Nie usuwaj pliku crontab

Demon cron wykonuje dla ciebie zadania w ustalonych z góry godzinach. Pobiera swoją konfigurację z pliku crontab . Każdy użytkownik — w tym root — może mieć plik crontab . Aby edytować crontab , użyj tego polecenia:

 crontab -e 

Polecenie do edycji pliku crontab: crontab -e

Plik crontab jest otwierany w edytorze. Możesz wprowadzać zmiany i dodawać nowe polecenia.

Plik crontab otwarty w edytorze

Ale jeśli źle wpiszesz polecenie i naciśniesz „r” zamiast „e”, usuniesz — tak jak w przypadku usunięcia — plik crontab .

To jest błędne polecenie:

 crontab -r 

Polecenie, które usuwa twój plik crontab: crontab -r

Następnym razem, gdy użyjesz polecenia crontab -e , zobaczysz domyślny, pusty plik.

Jest to łatwy błąd, ponieważ „e” i „r” znajdują się obok siebie na większości klawiatur. Odbudowa skomplikowanego pliku crontab nie jest zabawna.

POWIĄZANE: Co to jest praca Cron i jak z nich korzystać?

5. Powtarzanie historii

Używanie polecenia history jest świetne, gdy próbujesz ograniczyć liczbę naciśnięć klawiszy i zaoszczędzić czas. Jeśli potrafisz wyciągnąć długie polecenie z historii, zyskujesz szybkość i dokładność. O ile wybierzesz właściwe polecenie z historii.

Polecenie history wyświetla listę poprzednich poleceń w oknie terminala. Są ponumerowane. Aby ponownie użyć polecenia, poprzedź jego numer wykrzyknikiem „ ! „i naciśnij klawisz „Enter”.

 historia 

Załóżmy, że sklonowaliśmy repozytorium Git, zrobiliśmy z nim bałagan i usunęliśmy je. Musimy sklonować go jeszcze raz. Przewijając okno terminala, możemy wkrótce zauważyć polecenie git clone . Możemy go ponownie uruchomić, wpisując:

 !60

Ale jeśli tylko spojrzeliśmy na ekran i źle odczytaliśmy numer, możemy omyłkowo wybrać następny numer:

 !61

To uruchamia następne polecenie na liście, rm * . Spowoduje to usunięcie wszystkich plików w bieżącym katalogu.

Możesz także użyć „ ! ” wykrzyknik z ciągiem tekstu. Zostanie wykonane pierwsze pasujące polecenie. Nie jest wyświetlany, abyś mógł sprawdzić, czy to ten, o którym myślałeś, jest wykonywany natychmiast.

Wyobraź sobie scenariusz, w którym masz skrypt o nazwie „restart.sh”. Ten skrypt domyślnie ustawia zestaw plików konfiguracyjnych dla niektórych programów, które piszesz. Okresowo, gdy tworzysz i testujesz, musisz wyczyścić tablicę, więc wywołujesz swój skrypt.

To polecenie powinno wystarczyć do znalezienia i dopasowania polecenia w historii oraz do jego wykonania.

 !odnośnie

Ale jeśli użyłeś polecenia reboot od ostatniego użycia skryptu, to polecenie reboot zostanie znalezione i natychmiast wykonane.

Komenda rm * została uruchomiona przez pomyłkę

Na komputerze domowym dla jednego użytkownika jest to prawdopodobnie tylko irytacja. Na serwerze współdzielonym jest to irytujące także dla wielu innych osób.

POWIĄZANE: Jak korzystać z polecenia historii w systemie Linux

6. Katastrofa przestrzeni

Spacje w nazwach plików i ścieżkach katalogów mogą powodować spustoszenie. Dlatego zawsze należy je cytować lub cytować.

Jak radzić sobie ze spacjami w nazwach plików w systemie Linux
POWIĄZANE Jak radzić sobie ze spacjami w nazwach plików w systemie Linux

Problemów ze spacjami można uniknąć, stosując uzupełnianie tabulacji. Naciśnij klawisz „Tab” podczas wpisywania nazwy pliku lub ścieżki do katalogu, a powłoka automatycznie uzupełni tyle ścieżki lub nazwy pliku, ile tylko będzie w stanie. Może być konieczne wpisanie litery, aby odróżnić żądany plik od innych plików, które mają część tej samej nazwy, ale kolejne naciśnięcie klawisza "Tab" uzupełni pozostałą część nazwy pliku.

Oszczędza to naciśnięcia klawiszy, zapobiega wkradaniu się spacji z powodu literówek i poprawnie pomija wszelkie uzasadnione spacje, aby nie powodowały problemów.

Powiedzmy, że mamy katalog „Development”, który zawiera dwa inne katalogi, „geocoder” i „bin”. W katalogu „geocoder” znajduje się również katalog „bin”.

Aby usunąć pliki w katalogu „geocoder/bin” i usunąć katalog, użyjesz tego polecenia.

 rm -r geokoder/pojemnik 

Usuwanie katalogu geocoder/bin

Teraz wyobraź sobie, że nieumyślnie dodałeś spację po „geocoder/”, w ten sposób.

To jest błędne polecenie:

 rm -r geokoder/ pojemnik 

Omyłkowo usunięto katalogi geokodera i bin

Bum. Katalog „Development” jest teraz pusty. Katalogi „Development/geocoder”, „Development/geocoder/bin” i „Development/bin” zostały całkowicie usunięte.

Pamiętaj, uzupełnianie kart jest twoim przyjacielem.

POWIĄZANE: Użyj uzupełniania tabulatorami, aby szybciej wpisywać polecenia w dowolnym systemie operacyjnym

7. Używanie > Zamiast >>

Przekierowanie wysyła dane wyjściowe procesu do pliku. Znaku większości „ > ” używamy do przechwytywania danych wyjściowych procesu. Jeśli plik istnieje, jest najpierw opróżniany.

Powiedzmy, że badamy wyciek pamięci. Mamy skrypt o nazwie „memlog.sh”. Wyświetla statystyki pamięci raz na sekundę. Zamierzamy przekierować to do pliku o nazwie „memory.txt” do późniejszej analizy.

 memlog.sh > pamięć.txt
 pamięć głowy.txt 

Przechwytywanie i wyświetlanie danych wyjściowych skryptu memlog.sh

Następnego dnia chcemy kontynuować nasze dochodzenie i ponownie uruchamiamy skrypt. Tym razem musimy użyć dwóch znaków większości „ >> ”, aby nowe dane zostały dołączone do pliku.

 memlog.sh >> pamięć.txt 

Dołączanie nowych danych na końcu istniejącego pliku

Jeśli użyjemy pojedynczego znaku większości „>”, stracimy wczorajsze dane, ponieważ plik jest najpierw opróżniany.

POWIĄZANE: Czym są stdin, stdout i stderr w systemie Linux?

8. Przekierowanie w złym kierunku

Przekierowanie może wykorzystywać zawartość pliku jako dane wejściowe do programu.

Mamy plik o nazwie „placenames.sql”, który chcemy zaimportować do sqlite3 . Plik schematu opisuje, jak odtworzyć tabele bazy danych. Zawiera również dane, które chcemy przechowywać w bazie danych. Przy 1,3 GB i ponad 11 milionach linii jest to duży plik.

 ls -hl nazwy miejsc.sql
 wc nazwy miejsc.sql 

Sprawdzanie rozmiaru pliku za pomocą ls i wc

Za pomocą tego polecenia możemy utworzyć nową bazę danych o nazwie „places.sqlite3”.

 sqlite3 miejsca.sqlite3 < nazwy miejsc.sql 

Importowanie schematu z pliku do sqlite3

Najczęściej podczas przekierowywania używamy znaku „>”. Musisz się skoncentrować, aby uniknąć wpisywania „>” z przyzwyczajenia. Jeśli to zrobisz, wszelkie dane wyjściowe sqlite3 zostaną zapisane w twoim pliku schematu, zacierając go.

To jest błędne polecenie:

 sqlite3 miejsca.sqlite3 > nazwy miejsc.sql 

Błędne przekierowanie do pliku schematu z sqlite3

Nasz plik schematu został zniszczony, nadpisany komunikatem powitalnym z powłoki sqlite3 .

 cat nazwy miejsc.sql 

Nadpisany plik schematu zawierający wiadomość powitalną sqlite3

Żegnaj, 1,3 GB danych.

Jak uniknąć literówek w wierszu poleceń

Istnieją dobre nawyki, które możesz przyjąć, aby uniknąć popełniania tego typu błędów.

Używaj uzupełniania tabulatorów tam, gdzie to możliwe. Unikniesz problemów ze spacjami w ścieżkach katalogów i nazwach plików.

Twórz własne krótkie i zapadające w pamięć aliasy dla długich, skomplikowanych poleceń, których czasem potrzebujesz użyć. W ten sposób nie narobisz bałaganu, używając niewłaściwych opcji i parametrów.

Jak pisać mniej i pracować szybciej w terminalu Linux
POWIĄZANE Jak pisać mniej i pracować szybciej w terminalu Linux

Notorycznie trudno jest sprawdzić własne pismo, ale to właśnie musisz zrobić w wierszu poleceń. Przeczytaj, co tak naprawdę tam jest. Nie wystarczy na niego spojrzeć i pomyśleć, że mówi to, co chciałeś napisać. Co to naprawdę mówi? Bo tak naprawdę to zrobi.

POWIĄZANE: 8 zabójczych poleceń, których nigdy nie powinieneś uruchamiać w systemie Linux