8 literówek, których naprawdę musisz unikać w systemie Linux
Opublikowany: 2023-01-15Wiersz 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ć.
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
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
Nowa grupa jest widoczna po zalogowaniu i wylogowaniu użytkownika.
grupy
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
Gdy zalogują się następnym razem, przekonają się, że są tylko w jednej grupie.
grupy
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
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
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.
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
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.
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
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
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
Plik crontab
jest otwierany w edytorze. Możesz wprowadzać zmiany i dodawać nowe polecenia.
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
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.
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ć.
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
Teraz wyobraź sobie, że nieumyślnie dodałeś spację po „geocoder/”, w ten sposób.
To jest błędne polecenie:
rm -r geokoder/ pojemnik
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
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
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
Za pomocą tego polecenia możemy utworzyć nową bazę danych o nazwie „places.sqlite3”.
sqlite3 miejsca.sqlite3 < nazwy miejsc.sql
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
Nasz plik schematu został zniszczony, nadpisany komunikatem powitalnym z powłoki sqlite3
.
cat nazwy miejsc.sql
Ż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.
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