← Back to course

Czytanie i Wyszukiwanie w Plikach

Czytanie i Wyszukiwanie w Plikach

Witaj ponownie.

W poprzedniej lekcji nauczyłeś się tworzyć, kopiować, przenosić, zmieniać nazwy i usuwać pliki.

Teraz czas zajrzeć do środka.

Bo pliki nie są dekoracją. Są pojemnikami na informacje.

Czasem przydatne informacje.

Czasem logi.

Czasem plik konfiguracyjny, który wygląda, jakby napisał go czarodziej podczas burzy.

Czego Się Nauczysz

W tej lekcji nauczysz się:

Misja

Twoja misja jest prosta:

Stworzyć kilka plików tekstowych, przeczytać je, sprawdzić i wyszukać w nich informacje.

Zamieniamy terminal w narzędzie detektywa.

Lupa nie jest wymagana.

Dramatyczny kapelusz opcjonalny.

Stwórz Plik do Ćwiczeń

Najpierw przejdź do folderu ćwiczeń:

cd ~/terminal-practice

Jeśli folder nie istnieje, stwórz go:

mkdir -p ~/terminal-practice
cd ~/terminal-practice

Teraz stwórz plik story.txt:

touch story.txt

Możesz otworzyć go w edytorze tekstu albo szybko stworzyć z terminala:

echo "Linux is powerful." > story.txt
echo "The terminal is direct." >> story.txt
echo "Practice makes everything easier." >> story.txt
echo "Errors are messages, not monsters." >> story.txt

Teraz masz plik z kilkoma liniami tekstu.

Czytanie Pliku za Pomocą cat

Aby wyświetlić cały plik w terminalu, użyj:

cat story.txt

Powinieneś zobaczyć:

Linux is powerful.
The terminal is direct.
Practice makes everything easier.
Errors are messages, not monsters.

cat jest przydatny dla małych plików.

Przy dużych plikach może zalać terminal tekstem, jakby ktoś otworzył fabrykę makaronu w twoim ekranie.

Używaj go mądrze.

Czytanie Długich Plików za Pomocą less

Dla dłuższych plików użyj:

less story.txt

W środku less możesz się poruszać:

Tak, q oznacza quit.

To ważne.

Wiele osób było uwięzionych w less dłużej, niż chce przyznać.

Początek Pliku za Pomocą head

Aby zobaczyć pierwsze linie pliku, użyj:

head story.txt

Domyślnie head pokazuje pierwsze 10 linii.

Aby pokazać tylko pierwsze 2 linie:

head -n 2 story.txt

To przydatne, gdy chcesz szybko zrozumieć, o czym jest plik.

Jak przeczytanie pierwszej strony instrukcji przed decyzją, żeby ją całkowicie zignorować.

Koniec Pliku za Pomocą tail

Aby zobaczyć ostatnie linie pliku, użyj:

tail story.txt

Aby pokazać tylko ostatnie 2 linie:

tail -n 2 story.txt

tail jest bardzo przydatny dla logów, bo nowe informacje zwykle pojawiają się na końcu.

Na przykład:

tail -f app.log

Opcja -f śledzi plik na żywo.

Pokazuje nowe linie, gdy się pojawiają.

Bardzo przydatne.

I lekko hipnotyczne.

Wyszukiwanie w Pliku za Pomocą grep

Aby wyszukać tekst w pliku, użyj grep.

Szukaj słowa terminal:

grep "terminal" story.txt

Powinieneś zobaczyć:

The terminal is direct.

Szukaj Errors:

grep "Errors" story.txt

Powinieneś zobaczyć:

Errors are messages, not monsters.

grep to jedna z najbardziej przydatnych komend terminala.

Szybko znajduje tekst.

Jak Ctrl+F, tylko z mocniejszą kawą.

Wyszukiwanie Bez Rozróżniania Wielkości Liter

Domyślnie grep rozróżnia wielkie i małe litery.

To znaczy, że errors i Errors to różne rzeczy.

Spróbuj:

grep "errors" story.txt

Możesz nic nie zobaczyć.

Teraz spróbuj:

grep -i "errors" story.txt

Opcja -i ignoruje wielkość liter.

Znacznie lepiej.

Linux jest surowy, ale czasem możemy poprosić go, żeby się rozluźnił.

Pokazywanie Numerów Linii

Aby pokazać numery linii, użyj:

grep -n "terminal" story.txt

Możesz zobaczyć:

2:The terminal is direct.

To przydatne, gdy chcesz znaleźć, gdzie coś się pojawia.

Zwłaszcza w plikach konfiguracyjnych, logach albo kodzie.

Wyszukiwanie w Wielu Plikach

Stwórz kolejny plik:

echo "The terminal can search many files." > notes.txt
echo "Learning Linux step by step is smart." >> notes.txt

Teraz szukaj we wszystkich plikach .txt:

grep "terminal" *.txt

Możesz zobaczyć wyniki z więcej niż jednego pliku.

Tutaj grep zaczyna wyglądać jak supermoc.

Nie efektowna supermoc.

Raczej cichy bibliotekarz, który potrafi znaleźć wszystko w trzy sekundy.

Częste Błędy

Używanie cat na ogromnych plikach

To może być irytujące:

cat very-large-file.log

Jeśli plik jest ogromny, terminal może wypełnić się niekończącym tekstem.

Użyj:

less very-large-file.log

albo:

tail very-large-file.log

Bądź mądry. Nie walcz ze smokiem logów za pomocą łyżki.

Zapominanie cudzysłowów

To jest dobrze:

grep "terminal" story.txt

Dla prostych słów to też może działać:

grep terminal story.txt

Ale jeśli szukany tekst ma spacje, użyj cudzysłowów:

grep "Practice makes" story.txt

Cudzysłowy trzymają słowa razem.

Bez nich shell może źle cię zrozumieć.

Shell jest potężny, ale nie czyta w myślach.

Szukanie z niewłaściwą wielkością liter

Jeśli to nic nie znajduje:

grep "errors" story.txt

spróbuj:

grep -i "errors" story.txt

Wielkość liter ma znaczenie, chyba że każesz grep ją ignorować.

Praktyka

Spróbuj tego:

cd ~/terminal-practice
cat story.txt
less story.txt
head -n 2 story.txt
tail -n 2 story.txt
grep "terminal" story.txt
grep -i "errors" story.txt
grep -n "Practice" story.txt

Potem odpowiedz:

  1. Która komenda pokazuje cały plik?
  2. Która komenda jest lepsza dla długich plików?
  3. Która komenda pokazuje pierwsze linie?
  4. Która komenda pokazuje ostatnie linie?
  5. Która komenda wyszukuje tekst w plikach?

Mini Wyzwanie

Stwórz plik linux-notes.txt z tymi liniami:

Linux is stable.
The terminal is useful.
Commands can be combined.
Practice every day.
Do not fear errors.

Potem:

  1. Pokaż cały plik.
  2. Pokaż tylko pierwsze 2 linie.
  3. Pokaż tylko ostatnie 2 linie.
  4. Wyszukaj słowo terminal.
  5. Wyszukaj słowo errors, ignorując wielkość liter.
  6. Pokaż numer linii, w której pojawia się Practice.

Używaj tylko komend terminala.

Bez myszy.

Mysz zaczyna czuć się bezrobotna.

Podsumowanie

Dzisiaj nauczyłeś się, że:

Teraz potrafisz czytać i przeszukiwać pliki z terminala.

To duży krok.

Bo kiedy potrafisz szukać, przestajesz być zagubiony i zaczynasz być niebezpieczny.

W dobrym sensie.

Przeważnie.

Następna Lekcja

W następnej lekcji porozmawiamy o uprawnieniach i sudo.

To moment, w którym Linux zaczyna mówić:

“Nie.”

A my uczymy się dlaczego.