Wyszukiwanie w witrynie

Dowiedz się, dlaczego „mniej” jest szybsze niż „więcej” Polecenie efektywnej nawigacji po plikach


Więcej to wiersz poleceń *nix używany do wyświetlania zawartości pliku w konsoli. Podstawowym zastosowaniem polecenia więcej jest uruchomienie polecenia na pliku, jak pokazano poniżej:

Przeczytaj także: Poznaj różnicę między poleceniami „cat” i „tac” z przykładami

Naucz się polecenia „więcej” w systemie Linux

# more /var/log/auth.log
Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session closed for user root
Apr 12 11:55:01 tecmint CRON[7159]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session closed for user root
Apr 12 11:55:02 tecmint CRON[7159]: pam_unix(cron:session): session closed for user root
Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session closed for user root
Apr 12 12:05:01 tecmint CRON[7435]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session closed for user root
Apr 12 12:05:02 tecmint CRON[7435]: pam_unix(cron:session): session closed for user root
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session closed for user root
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session closed for user root
....

Inny sposób użycia polecenia więcej w połączeniu (potok) z innymi poleceniami, takimi jak polecenie cat, jak pokazano w poniższym przykładzie:

cat /var/log/auth.log | more

Aby poruszać się po pliku linia po linii, naciśnij klawisz Enter lub naciśnij klawisz Spacja, aby poruszać się po jednej stronie na raz, przy czym strona ma bieżący rozmiar ekranu terminala. Aby wyjść z polecenia wystarczy wcisnąć klawisz q.

Przydatną opcją polecenia more jest przełącznik -number, który pozwala ustawić liczbę linii, które powinna zawierać strona. Jako przykład wyświetl plik auth.log jako stronę zawierającą 10 linii:

more -10 /var/log/auth.log

Możesz także wyświetlić stronę zaczynającą się od określonego numeru wiersza, korzystając z opcji +number, jak pokazano poniżej:

more +14 /var/log/auth.log
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session closed for user root
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session closed for user root
Apr 12 12:16:01 tecmint mate-screensaver-dialog: gkr-pam: unlocked login keyring
Apr 12 12:17:01 tecmint CRON[7793]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:17:01 tecmint CRON[7793]: pam_unix(cron:session): session closed for user root
Apr 12 12:20:01 tecmint CRON[7905]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:20:01 tecmint CRON[7905]: pam_unix(cron:session): session closed for user root
Apr 12 12:25:01 tecmint CRON[8107]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:25:01 tecmint CRON[8108]: pam_unix(cron:session): session opened for user root by (

Naucz się polecenia „mniej” w systemie Linux

Podobnie jak więcej, polecenie mniej umożliwia przeglądanie zawartości pliku i poruszanie się po nim. Główna różnica między więcej i mniej polega na tym, że polecenie mniej jest szybsze, ponieważ nie ładuje całego pliku na raz i umożliwia nawigację po pliku przy użyciu klawisze w górę/w dół.

In może być używany jako samodzielne polecenie wydawane dla pliku lub używane z potokami z wieloma poleceniami systemu Linux w celu zawężenia ich wyświetlania na ekranie, umożliwiając przewijanie wyników.

less /var/log/auth.log
ls /etc | less

Możesz poruszać się po pliku linia po linii, naciskając klawisz Enter. Nawigację po stronie można obsługiwać za pomocą klawisza spacjar. Rozmiar strony jest reprezentowany przez bieżący rozmiar ekranu terminala. Aby zakończyć polecenie, wpisz klawisz q, tak samo jak w przypadku polecenia more.

Przydatną funkcją polecenia mniej jest użycie opcji /word-to-seach. Na przykład możesz wyszukiwać i dopasowywać wszystkie wiadomości sshd z pliku dziennika, interaktywnie określając ciąg /sshd.

Aby wyświetlić plik patrząc na konkretny numer linii, użyj następującej składni:

less +5 /var/log/auth.log

Jeśli chcesz wyśledzić numer każdej linii za pomocą polecenia less, użyj opcji -N.

less -N /var/log/daemon.log
      1 Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session opened for user root by (uid=0)
      2 Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session closed for user root
      3 Apr 12 11:55:01 tecmint CRON[7159]: pam_unix(cron:session): session opened for user root by (uid=0)
      4 Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session opened for user root by (uid=0)
      5 Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session closed for user root
      6 Apr 12 11:55:02 tecmint CRON[7159]: pam_unix(cron:session): session closed for user root
      7 Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session opened for user root by (uid=0)
      8 Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session closed for user root
      9 Apr 12 12:05:01 tecmint CRON[7435]: pam_unix(cron:session): session opened for user root by (uid=0)
     10 Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session opened for user root by (uid=0)
     11 Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session closed for user root

Domyślnie jedynym sposobem na wyjście z polecenia less jest naciśnięcie klawisza q. Aby zmienić to zachowanie i automatycznie zamykać plik po osiągnięciu jego końca, użyj opcji -e lub -E:

less -e /var/log/auth.log
less -E /var/log/auth.log

Aby otworzyć plik przy pierwszym wystąpieniu wzorca, użyj następującej składni:

less +/sshd /var/log/auth.log
Apr 12 16:19:39 tecmint sshd[16666]: Accepted password for tecmint from 192.168.0.15 port 41634 ssh2
Apr 12 16:19:39 tecmint sshd[16666]: pam_unix(sshd:session): session opened for user tecmint by (uid=0)
Apr 12 16:19:39 tecmint systemd-logind[954]: New session 1 of user tecmint.
Apr 12 16:19:48 tecmint sshd[16728]: Received disconnect from 192.168.0.15: 11: disconnected by user
Apr 12 16:19:48 tecmint sshd[16666]: pam_unix(sshd:session): session closed for user tecmint
Apr 12 16:20:01 tecmint CRON[16799]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 16:20:02 tecmint CRON[16799]: pam_unix(cron:session): session closed for user root
Apr 12 16:25:01 tecmint CRON[17026]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 16:25:01 tecmint CRON[17025]: pam_unix(cron:session): session opened for user root by (uid=0)

Powyższe polecenie mówi less, aby otworzył plik auth.log przy pierwszym dopasowaniu ciągu sshd.

Aby automatycznie dołączyć zawartość pliku otwartego komendą less użyj kombinacji klawiszy Shift+f lub uruchom less z poniższą składnią.

less +F /var/log/syslog

Dzięki temu less może działać w trybie interaktywnym (na żywo) i wyświetlać nową zawartość na bieżąco w oczekiwaniu na zapisanie nowych danych do pliku. To zachowanie jest podobne do polecenia tail -f.

W połączeniu ze wzorcem możesz interaktywnie przeglądać plik dziennika, naciskając klawisze Shift+f podczas dopasowywania słowa kluczowego. Aby wyjść z trybu na żywo, wystarczy nacisnąć klawisze Ctrl+c.

less +/CRON /var/log/syslog

Niezależnie od tego, czy zdecydujesz się użyć więcej, czy mniej, co jest osobistym wyborem, pamiętaj, że mniej znaczy więcej, gdy więcej cechy.

Przeczytaj także: Efektywne zarządzanie plikami za pomocą poleceń head, tail i cat