LFCS #2: Jak zainstalować i używać Vi/Vima w systemie Linux
Kilka miesięcy temu Linux Foundation uruchomiła certyfikację LFCS (Linux Foundation Certified Sysadmin), aby pomóc osobom z całego świata w sprawdzeniu, czy są w stanie wykonywać podstawowe i średniozaawansowane zadania administracyjne w systemach Linux.
Zadania administracyjne związane z Linuksem obejmują rozwiązywanie problemów i konserwację z pierwszej ręki, a także inteligentne podejmowanie decyzji, aby wiedzieć, kiedy nadszedł czas, aby zgłosić problem wyższym zespołom wsparcia.
Seria będzie nosiła tytuł Przygotowanie do LFCS (Certyfikowany administrator systemu Linux Foundation) części od 1 do 33 i obejmuje następujące tematy:
- Part 1
Jak używać polecenia „Sed” do manipulowania plikami w systemie Linux
- Part 2
Jak zainstalować i używać Vi/Vima w systemie Linux
- Part 3
-
Jak kompresować pliki i katalogi oraz znajdować pliki w systemie Linux
- Part 4
Partycjonowanie urządzeń pamięci masowej, formatowanie systemów plików i konfigurowanie partycji wymiany
- Part 5
Montuj/odłączaj lokalne i sieciowe systemy plików (Samba i NFS) w systemie Linux
- Part 6
Składanie partycji jako urządzeń RAID – tworzenie kopii zapasowych systemu i zarządzanie nimi
- Part 7
Zarządzanie procesami i usługami uruchamiania systemu (SysVinit, Systemd i Upstart
- Part 8
Jak zarządzać użytkownikami i grupami, uprawnieniami do plików i dostępem Sudo
- Part 9
Zarządzanie pakietami systemu Linux za pomocą Yum, RPM, Apt, Dpkg, Aptitude i Zypper
- Part 10
Nauka podstawowych skryptów powłoki i rozwiązywania problemów z systemem plików
- Part 11
Jak zarządzać i tworzyć LVM za pomocą poleceń vgcreate, lvcreate i lvextend
- Part 12
Jak poznawać system Linux z zainstalowaną dokumentacją pomocy i narzędziami
- Part 13
-
Jak skonfigurować i rozwiązać problemy z programem Grand Unified Bootloader (GRUB)
- Part 14
Monitoruj wykorzystanie zasobów procesów systemu Linux i ustawiaj limity procesów dla poszczególnych użytkowników
- Part 15
Jak ustawić lub zmodyfikować parametry wykonawcze jądra w systemach Linux
- Part 16
Wdrażanie obowiązkowej kontroli dostępu za pomocą SELinux lub AppArmor w systemie Linux
- Part 17
Jak ustawić listy kontroli dostępu (ACL) i przydziały dysku dla użytkowników i grup
- Part 18
Instalowanie usług sieciowych i konfigurowanie automatycznego uruchamiania podczas rozruchu
- Part 19
Kompletny przewodnik po konfigurowaniu serwera FTP w celu umożliwienia logowania anonimowego
- Part 20
Skonfiguruj podstawowy serwer DNS z buforowaniem rekurencyjnym i skonfiguruj strefy dla domeny
- Part 21
Jak zainstalować, zabezpieczyć i dostroić wydajność serwera bazy danych MariaDB
- Part 22
Jak zainstalować i skonfigurować serwer NFS do udostępniania systemu plików
- Part 23
-
Jak skonfigurować Apache z wirtualnym hostingiem opartym na nazwach z certyfikatem SSL
- Part 24
Jak skonfigurować zaporę sieciową Iptables, aby umożliwić zdalny dostęp do usług w systemie Linux
- Part 25
Jak zamienić Linuksa w router do obsługi ruchu statycznego i dynamicznego
- Part 26
Jak skonfigurować zaszyfrowane systemy plików i dokonać zamiany za pomocą narzędzia Cryptsetup
- Part 27
Jak monitorować wykorzystanie systemu, awarie i rozwiązywać problemy z serwerami Linux
- Part 28
Jak skonfigurować repozytorium sieciowe w celu instalacji lub aktualizacji pakietów
- Part 29
Jak kontrolować wydajność sieci, bezpieczeństwo i rozwiązywanie problemów
- Part 30
Jak instalować maszyny wirtualne i kontenery oraz zarządzać nimi
- Part 31
Naucz się podstaw Git, aby efektywnie zarządzać projektami
- Part 32
Przewodnik dla początkujących dotyczący konfigurowania adresów IPv4 i IPv6 w systemie Linux
- Part 33
Przewodnik dla początkujących dotyczący tworzenia połączeń sieciowych i mostowania w systemie Ubuntu
Ten post jest Częścią 2 z serii 33 samouczków. W tej części omówimy podstawowe operacje edycji plików i tryby zrozumienia w edytorze Vi/Vim, które są wymagane do egzaminu certyfikacyjnego LFCS.
Wykonaj podstawowe operacje edycji plików w edytorze Vi
Vi był pierwszym pełnoekranowym edytorem tekstu napisanym dla systemu Unix. Chociaż w założeniu miał być mały i prosty, dla osób przyzwyczajonych wyłącznie do edytorów tekstu GUI, takich jak NotePad++ czy gedit, może to stanowić pewne wyzwanie, żeby wymienić tylko kilka przykłady.
Aby używać Vi, musimy najpierw zrozumieć tryby 3, w których działa ten potężny program, aby później rozpocząć naukę jego potężnych procedur edycji tekstu.
Należy pamiętać, że większość nowoczesnych dystrybucji Linuksa jest dostarczana z wariantem vi znanym jako vim („Vi ulepszony”), który obsługuje więcej funkcji niż wersja oryginalny vi tak. Z tego powodu w tym samouczku będziemy używać zamiennie vi i vim.
Jeśli w Twojej dystrybucji nie ma zainstalowanego Vima, możesz zainstalować go w następujący sposób.
sudo apt install vim [On Debian, Ubuntu and Mint]
sudo yum install vim [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/vim [On Gentoo Linux]
sudo apk add vim [On Alpine Linux]
sudo pacman -S vim [On Arch Linux]
sudo zypper install vim [On OpenSUSE]
Dlaczego powinienem chcieć nauczyć się Vi?
Są co najmniej 2 dobre powody, aby nauczyć się edytora vi.
- vi jest zawsze dostępne (bez względu na to, jakiej dystrybucji używasz), ponieważ jest wymagane przez POSIX.
- vi nie zużywa znacznej ilości zasobów systemowych i pozwala nam wykonać dowolne wyobrażalne zadanie bez odrywania palca od klawiatury.
Dodatkowo vi posiada bardzo rozbudowaną wbudowaną instrukcję, którą można uruchomić komendą :help
zaraz po uruchomieniu programu. Ten wbudowany podręcznik zawiera więcej informacji niż strona podręcznika vi/m.
Uruchamianie edytora Vi
Aby uruchomić vi, wpisz vi w wierszu poleceń.
vi
Następnie naciśnij i
, aby przejść do trybu Wstaw i możesz zacząć pisać.
Innym sposobem uruchomienia vi/m jest.
vi filename
Spowoduje to otwarcie nowego bufora (więcej o buforach później) o nazwie filename, który możesz później zapisać na dysku.
Zrozumienie trybów Vi
Edytor Vi ma wiele trybów, z których każdy służy innemu celowi i pozwala użytkownikom wykonywać określone czynności.
Oto główne tryby, o których powinieneś wiedzieć:
Vi Tryb wiersza poleceń
W trybie poleceń vi umożliwia użytkownikowi poruszanie się po pliku i wprowadzanie poleceń vi, które są krótkimi kombinacjami jednego lub więcej liter. Prawie wszystkie z nich można poprzedzić liczbą, aby powtórzyć polecenie tyle razy.
Na przykład yy (lub Y) kopiuje całą bieżącą linię, podczas gdy 3yy (lub 3Y) kopiuje całą bieżącą linię wraz z dwiema kolejnymi liniami (w sumie 3 linie).
Zawsze możemy wejść w tryb poleceń (niezależnie od trybu, nad którym pracujemy), naciskając klawisz Esc. Fakt, że w trybie poleceń klawisze klawiatury są interpretowane jako polecenia, a nie tekst, może być mylący dla początkujących.
Tryb Vi Ex
W trybie ex możemy manipulować plikami (w tym zapisywać bieżący plik i uruchamiać programy zewnętrzne). Aby wejść do tego trybu, musimy wpisać dwukropek (:
) z trybu poleceń, po którym bezpośrednio następuje nazwa polecenia trybu ex, którego należy użyć. Następnie vi automatycznie powraca do trybu poleceń.
Vi Tryb wstawiania
W trybie wstawiania (do wejścia w ten tryb powszechnie używa się litery i
) po prostu wpisujemy tekst. Większość naciśnięć klawiszy powoduje wyświetlenie tekstu na ekranie (jednym ważnym wyjątkiem jest klawisz Esc, który powoduje wyjście z trybu wstawiania i powrót do trybu poleceń).
Użycie poleceń Vi
Poniższa tabela przedstawia listę często używanych poleceń vi. Polecenia edycji pliku można wymusić, dodając do polecenia znak wykrzyknika (na przykład :q!
wymusza zamknięcie bez zapisywania).
- Key Command
Opis
- h or left arrow
Idź o jeden znak w lewo
- j or down arrow
Zejdź o jedną linię w dół
- k or up arrow
Idź w górę o jedną linię
- l (lowercase L) or right arrow
Idź o jeden znak w prawo
- H
Przejdź na górę ekranu
- L
Przejdź na dół ekranu
- G
Przejdź na koniec pliku
- w
Przesuń o jedno słowo w prawo
- b
Przesuń jedno słowo w lewo
- 0 (zero)
Przejdź na początek bieżącej linii
- ^
Przejdź do pierwszego niepustego znaku w bieżącym wierszu
- $
Przejdź na koniec bieżącej linii
- Ctrl-B
Wróć o jeden ekran
- Ctrl-F
Przejdź jeden ekran do przodu
- i
Wstaw w bieżącej pozycji kursora
- I (uppercase i)
Wstaw na początku bieżącego wiersza
- J (uppercase j)
Połącz obecną linię z następną (przesuń następny skład)
- a
Dołącz po bieżącej pozycji kursora
- o (lowercase O)
Tworzy pustą linię po bieżącej linii
- O (uppercase o)
Tworzy pustą linię przed bieżącą linią
- r
Zastąp znak w bieżącej pozycji kursora
- R
Zastąp w bieżącej pozycji kursora
- x
Usuń znak w bieżącej pozycji kursora
- X
Usuń znak bezpośrednio przed (po lewej) bieżącej pozycji kursora
- dd
Wytnij (w celu późniejszego wklejenia) całą obecną linię
- D
Wytnij od bieżącej pozycji kursora do końca linii (to polecenie jest równoważne d$)
- yX
Wydaj polecenie ruchu X, skopiuj (przeciągnij) odpowiednią liczbę znaków, słów lub linii z aktualnej pozycji kursora
- yy or Y
Szarpnij (skopiuj) całą bieżącą linię
- p
Wklej po (następnym wierszu) bieżącej pozycji kursora
- P
Wklej przed (poprzednią linią) bieżącą pozycję kursora
- . (period)
Powtórz ostatnie polecenie
- u
Cofnij ostatnie polecenie
- U
Cofnij ostatnie polecenie w ostatniej linii. Będzie to działać, dopóki kursor będzie nadal na linii.
- n
Znajdź następne dopasowanie w wyszukiwarce
- N
Znajdź poprzednie dopasowanie w wyszukiwarce
- :n
Następny plik; jeśli do edycji określono wiele plików, to polecenie ładuje następny plik.
- :e file
Załaduj plik zamiast bieżącego pliku.
- :r file
Wstaw zawartość pliku po (następnej linii) bieżącej pozycji kursora
- :q
Wyjdź bez zapisywania zmian.
- :w file
Zapisz bieżący bufor do pliku. Aby dołączyć do istniejącego pliku, użyj :w >> file.
- :wq
Zapisz zawartość bieżącego pliku i wyjdź. Równoważne x! i ZZ
- :r! command
Wykonaj polecenie i wstaw dane wyjściowe po (następnym wierszu) bieżącej pozycji kursora.
Opcje Vi
Poniższe opcje mogą się przydać podczas uruchamiania vima (musimy je dodać w naszym pliku ~/.vimrc).
echo set number >> ~/.vimrc
echo syntax on >> ~/.vimrc
echo set tabstop=4 >> ~/.vimrc
echo set autoindent >> ~/.vimrc
- ustaw numer pokazuje numery linii, gdy vi otwiera istniejący lub nowy plik.
- Opcja syntax on włącza podświetlanie składni (dla wielu rozszerzeń plików), aby uczynić kod i pliki konfiguracyjne bardziej czytelnymi.
- set tabstop=4 ustawia rozmiar tabulatora na 4 spacje (wartość domyślna to 8).
- set autoindent przenosi poprzednie wcięcie do następnego wiersza.
Wyszukaj i zamień tekst w Vi
vi umożliwia przesuwanie kursora do określonej lokalizacji (w pojedynczej linii lub w całym pliku) na podstawie wyszukiwania. Może także wykonywać zamiany tekstu za potwierdzeniem użytkownika lub bez niego.
Wyszukiwanie w linii
Komenda f
przeszukuje linię i przesuwa kursor do następnego wystąpienia określonego znaku w bieżącej linii.
Na przykład polecenie fh
przesunie kursor do następnego wystąpienia litery h
w bieżącym wierszu. Pamiętaj, że ani litera f
, ani znak, którego szukasz, nie pojawi się nigdzie na ekranie, ale znak zostanie podświetlony po naciśnięciu Enter.
Na przykład coś takiego otrzymuję po naciśnięciu f4
w trybie poleceń.
Przeszukiwanie całego pliku
Użyj polecenia /
, po którym wpisz słowo lub frazę, którą chcesz wyszukać. Wyszukiwanie można powtórzyć używając poprzedniego szukanego ciągu komendą n
lub kolejnego (przy pomocy komendy N
). Jest to wynik wpisania /Jane
w trybie poleceń.
Wyszukaj i zamień tekst
Vi używa polecenia (podobnego do sed'a) do wykonywania operacji podstawienia w zakresie linii lub całego pliku.
Aby zmienić słowo „old
” na „young
” dla całego pliku, musimy wprowadzić następujące polecenie.
:%s/old/young/g
Uwaga: Dwukropek na początku polecenia.
Dwukropek (:
) rozpoczyna polecenie ex, w tym przypadku s
(dla podstawienia), %
to skrót oznaczający od pierwszej linii do ostatniej linii (zakres można również określić jako n
, m
, co oznacza „od linii n do linii m ”), stary to wzorzec wyszukiwania, młody to tekst zastępujący, a g
wskazuje, że podstawienie powinno być wykonywane przy każdym wystąpieniu szukanego ciągu w pliku.
Alternatywnie, na końcu polecenia można dodać c
, aby poprosić o potwierdzenie przed wykonaniem jakiejkolwiek zamiany.
:%s/old/young/gc
Przed zastąpieniem oryginalnego tekstu nowym, vi/m wyświetli nam następujący komunikat.
- y: wykonaj podstawienie (tak)
- n: pomiń to wystąpienie i przejdź do następnego (nie)
- a: wykonaj podstawienie w tym i wszystkich kolejnych wystąpieniach wzorca.
- q lub Esc: zakończ zastępowanie.
- l (małe L): wykonaj tę zamianę i wyjdź (ostatni).
- Ctrl-e, Ctrl-y: przewiń odpowiednio w dół i w górę, aby zobaczyć kontekst proponowanego podstawienia.
Edycja wielu plików w Vi
Wpiszmy vim plik1 plik2 plik3 w naszym wierszu poleceń.
vim file1 file2 file3
Najpierw vim otworzy plik1. Aby przejść do kolejnego pliku (plik2) należy użyć komendy :n
. Gdy będziemy chcieli wrócić do poprzedniego pliku, zrobi to :N
.
Aby przełączyć się z pliku 1 na pliku 3.
a). Polecenie :buffers
wyświetli listę aktualnie edytowanego pliku.
:buffers
b). Polecenie :buffer 3
(bez s
na końcu) otworzy plik3 do edycji.
Na powyższym obrazku znak funta (#
) wskazuje, że plik jest aktualnie otwarty, ale w tle, natomiast %a
oznacza plik, który jest aktualnie edytowany.
Natomiast spacja po numerze pliku (3 w powyższym przykładzie) oznacza, że plik nie został jeszcze otwarty.
Tymczasowe bufory Vi
Aby skopiować kilka kolejnych linii (powiedzmy na przykład 4) do tymczasowego bufora o nazwie a (niepowiązanego z plikiem) i umieścić te linie w innej części pliku później w bieżącym vi sekcję, musimy…
- Naciśnij klawisz
ESC
, aby upewnić się, że jesteśmy w trybie vi Command. - Umieść kursor na pierwszej linijce tekstu, który chcemy skopiować.
- Wpisz „a4yy”, aby skopiować bieżącą linię wraz z 3 kolejnymi liniami do bufora o nazwie a. Możemy kontynuować edycję naszego pliku – nie musimy od razu wstawiać skopiowanych linii.
Kiedy dotrzemy do lokalizacji skopiowanych linii, użyj „a przed poleceniami p lub P, aby wstawić skopiowane linie do bufora o nazwie < b>a:
- Wpisz „ap, aby wstawić linie skopiowane do bufora po bieżącej linii, na której znajduje się kursor.
- Wpisz „aP, aby wstawić linie skopiowane do bufora a przed bieżącą linią.
Jeśli chcemy, możemy powtórzyć powyższe kroki, aby wstawić zawartość bufora w wielu miejscach naszego pliku. Bufor tymczasowy, taki jak ten w tej sekcji, jest usuwany po zamknięciu bieżącego okna.
Streszczenie
Jak widzieliśmy, vi/m to potężny i wszechstronny edytor tekstu dla CLI. Zachęcamy do dzielenia się własnymi trikami i komentarzami poniżej.
Aktualizacja: Jeśli chcesz poszerzyć swoje umiejętności edytorskie VI, sugeruję przeczytanie poniższych dwóch przewodników, które poprowadzą Cię do niektórych przydatne triki i wskazówki edytora VI.
E-Book LFCS jest już dostępny w sprzedaży. Zamów swój egzemplarz już dziś i rozpocznij swoją podróż do zostania certyfikowanym administratorem systemu Linux!
Product Name | Price | Buy |
---|---|---|
The Linux Foundation’s LFCS Certification Preparation Guide | $19.99 | [Buy Now] |
Na koniec, rozważ zakup kuponu egzaminacyjnego za pomocą poniższych linków, aby otrzymać niewielką prowizję, która pomoże nam aktualizować tę książkę.