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 spacja
r. 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