Saya ingin tahu perintah mana yang paling saya gunakan di baris perintah. Saya ingin tahu sehingga saya dapat meningkatkan penggunaan baris perintah saya. Jika saya tahu perintah mana yang paling saya gunakan, saya bisa membaca lebih banyak tentang mereka, mencoba dan mencari cara yang lebih baik untuk menggunakannya.
Saya tahu riwayat menyimpan daftar semua perintah sebelumnya yang saya ketikkan. Bagaimana saya memprosesnya untuk melihat daftar 10 atau 20 perintah paling banyak digunakan.
linux
command-line
history
nelaaro
sumber
sumber
Jawaban:
Saya baru saja melihat posting ini di http://linux.byexamples.com/
Pada dasarnya Anda menggunakan skrip awk satu baris sederhana
Penjelasan lengkap dapat ditemukan di tautan di atas.
Contoh out put on my machine adalah:
sumber
Perintah awk akan mencetak string pertama dari ~ / .bash_history (tidak menampilkan opsi atau argumen perintah), lalu sortir akan memesan semua baris secara alfabet, kemudian "uniq -c" akan menghapus baris yang digandakan (perintah yang diketik) dan menghitungnya, dan pengurutan terakhir akan memerintahkan perintah Anda dengan jumlah hitungan yang dikembalikan oleh uniq.
sumber
-r
di akhir perintah untuk mengurutkannya dalam urutan terbalik dan| head -10
membatasi jumlah hasil.Anda dapat menggunakan
hash
perintah di terminal Anda, yang menyimpan entri hash dari setiap perintah yang Anda gunakan bersama dengan jumlah klik dan berdasarkan pada klik yang Anda dapat mengurutkan dan memprosesnya.Lihat artikel ini untuk informasi lebih lanjut.
sumber
Untuk jawaban yang lebih umum, aktifkan " proses akuntansi " pada sistem Anda. Anda bisa mendapatkan tidak hanya frekuensi penggunaan, tetapi agregat CPU, memori, dan statistik I / O.
sumber
Script dalam jawaban lain hanya menghitung perintah pertama yang dieksekusi di setiap baris perintah; mereka tidak menyertakan perintah yang dieksekusi setelah pipa (yaitu '|'). Misalnya, jika baris ini sendiri ada di riwayat bash Anda:
kemudian dalam ringkasan yang dikembalikan dari perintah yang paling dieksekusi, 'sort' dan 'uniq' dan 'sort' kedua tidak akan dimasukkan, karena itu bukan token pertama di baris.
Membangun jawaban dari nelaar, cukup untuk pertama-tama membagi garis dalam sejarah bash Anda pada setiap pipa:
sumber
Tambahan yang menyenangkan akan menjadi diagram batang hitungan:
Keluaran:
Perintah panjang akan mengimbangi jarak.
sumber
printf
atausprintf
bukannyaprint
.Gunakan
$ history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10
untuk mendapatkan daftar 10 perintah teratas Anda.Contoh:
sumber
Anda dapat membuat
awk
jawaban di atas dari @nelaar menjadi skrip bash yang bagus:sumber
Nah ini adalah versi modifikasi dari perintah "Неделчо Христов" yang disalin dan ditempel di sini .... jika Anda telah mengamankan atau mencap tanggal pada riwayat pesta Anda, maka Anda akan memiliki output yang bermasalah
Ini akan membuat Anda lebih baik menggunakan ini:
sumber