Ini sebenarnya bukan tail
perilaku -- ini adalah terminal. Tail baru saja mengirimkan aliran keluaran ke stdout, yang menuju ke terminal Anda, dan Anda memasukkan baris kosong di tengah keluaran itu dengan menekan enter. Tail sendiri sebenarnya tidak menerima masukan dari Anda sama sekali. Anda dapat mengetik apa pun yang Anda inginkan dan itu juga akan muncul.
less
, bagaimanapun, adalah aplikasi konsol, dan membutuhkan input dan memprosesnya. Ini mengelola konsol menggunakan urutan kontrol terminal, begitulah cara Anda dapat menggulir. Membiarkan Anda memasukkan karakter arbitrer ke dalam aliran akan mengacaukan tampilan, dan lebih sedikit menggunakan masukan Anda untuk mengontrol program.
Sayangnya, sepertinya tidak ada cara untuk menandai posisi saat ini secara visual. Itu bukan permintaan fitur yang buruk, dan lebih sedikit tidak masih mendapatkan fitur baru dari waktu ke waktu.
Saya menemukan pertanyaan Anda saat mencari jawaban yang sama untuk diri saya sendiri.
Kecewa dengan jawaban yang diterima, saya menemukan solusi. Ini kurang dari ideal, tetapi memungkinkan saya untuk menandai posisi saya di log yang saya ikuti dengan less
, yang merupakan intinya.
Saya membuat skrip kecil yang dapat dieksekusi (saya menyebutnya marklog
) dengan konten berikut, dan letakkan di jalur saya:
#!/bin/sh
echo >> $1
echo >> $1
echo >> $1
echo `date` ---------------------------------------------------------------------- >> $1
echo >> $1
echo >> $1
Tentu saja, ini hanya berfungsi jika Anda memiliki akses tulis ke file log--yang bisa menjadi pemecah kesepakatan dalam banyak situasi. Saya juga telah membuat versi ini yang saya gunakan untuk menulis ke file log yang bukan milik saya (tetapi saya memiliki akses sudo):
#!/bin/sh
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo `date` ------------------------------------------------------------------------- >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
Skrip ini memberikan jeda visual yang saya cari. Setidaknya ada 3 cara untuk menggunakannya:
-
Pada titik di mana Anda biasanya menekan enter beberapa kali saat menggunakan
tail -f
, sebagai gantinya jalankanmarklog
dari terminal lain (menyediakan jalur ke file log sebagai argumen). -
Gunakan Ctrl Z untuk menangguhkan
less
sehingga Anda dapat menjalankan skrip di jendela terminal yang sama, tetapi ketika Anda mem-foregroundless
(menggunakanfg
, tentu saja), itu tidak lagi dalam mode 'ikuti', jadi Anda harus menekan Shift F lagi... -
Terakhir--dan ini mungkin cara yang paling nyaman, karena Anda tidak perlu mengetikkan jalur ke file log:Jalankan
marklog
langsung dariless
dengan mengetik!marklog %
.Less
akan menggantikan nama file saat ini untuk%
. Namun,less
tidak akan menanggapi! saat dalam mode 'ikuti', jadi Anda harus menekan Ctrl C pertama untuk keluar dari mode ikuti, jalankan!marklog %
, lalu Shift F lagi.
Dengan metode 3, Anda juga mendapatkan bonus tambahan dari riwayat perintah Less:Tekan saja !
dan kemudian gunakan panah atas untuk memilih perintah terbaru (bagi saya, selalu marklog
).
Semoga ini bisa membantu seseorang sebanyak yang telah membantu saya.