Wyszukiwanie w witrynie

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.

  1. vi jest zawsze dostępne (bez względu na to, jakiej dystrybucji używasz), ponieważ jest wymagane przez POSIX.
  2. 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:

    1. Wpisz „ap, aby wstawić linie skopiowane do bufora po bieżącej linii, na której znajduje się kursor.
    2. 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ę.