Di UNIX, bagaimana menemukan perintah yang paling umum digunakan dalam sejarah unix?


8

Di UNIX, bagaimana menemukan perintah yang paling umum digunakan dalam sejarah?


Saya pikir ini di luar topik di sini, tetapi google menunjukkan beberapa daftar yang baik untuk referensi. Jelas penggunaan akan bervariasi berdasarkan distro dan ketersediaan perintah serta oleh pengguna, tujuan mereka, dan pengetahuan mereka tentang perintah lain, tetapi tentu saja ada beberapa yang melayang ke atas dan muncul di semua daftar pada subjek.
Caleb

7
Apakah maksud Anda "shell perintah histori file" atau "histori Unix"?
alex

Jawaban:


11

Ini lebih tergantung pada apa yang Anda inginkan dengan 'perintah'. Dari satu perspektif, sebuah perintah hanyalah sebuah executable yang dipanggil dari baris perintah, oleh karena itu lsdan ls -alh /tmp/foo/bar/*tar.bzkeduanya adalah perintah ls. Perspektif lain adalah bahwa perintah adalah jumlah dari bagian-bagiannya, yang berarti bahwa contoh di atas adalah 2 perintah yang berbeda.

Jika niat Anda adalah untuk menghitung perintah yang sepenuhnya unik dalam sejarah, Anda dapat menjalankan: history | cut -d' ' -f4- | uniq -c | sort -n

Perlu diketahui bahwa ini telah diuji pada sistem Debian, sintaks output dari perintah histori Anda mungkin sedikit berbeda. Sesuaikan angka '4' pada perintah untuk memilih kolom pengganti.

Jika Anda hanya ingin mempertimbangkan perintah pertama tanpa argumen, maka Anda dapat menjalankan: history | cut -d' ' -f4- | cut -d' ' -f1 | uniq -c | sort -n

Untuk memasukkan argumen tetapi tidak ada perintah berantai atau pipa yang mengikuti Anda bisa menjalankan: history | cut -d ' ' -f4- | cut -d'|' -f1 | uniq -c | sort -n

Harap dicatat bahwa masing-masing dari ini mengurutkan jumlah perintah secara numerik dengan frekuensi tertinggi yang muncul terakhir.


Saya perlu menambahkan tambahan sortsebelum uniqmendapatkan hitungan yang akurat karena hanya memeriksa baris yang berdekatan:history | cut -d' ' -f4- | cut -d' ' -f1 | sort | uniq -c | sort -n
nocash

4

Saya telah melihat jawaban vucar dan tok , keduanya sangat berguna tetapi Anda juga dapat menggunakan alat yang luar biasa awk:

jika Anda ingin daftar perintah yang paling sering Anda gunakan:

history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head

untuk menemukan perintah yang paling sering digunakan:

history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head -1 

bagi saya itu adalah vi:

94 vi

4

Pendekatan lain adalah dengan menggunakan proses akuntansi BSD , yang juga tersedia di Linux (meskipun saya tidak tahu apakah itu diaktifkan secara default). Ini pada dasarnya membuat tab semua program yang dijalankan (dan beberapa langkah lain, seperti waktu CPU dikonsumsi dll) selama akuntansi aktif. Dari sana beberapa statistik agregat tersedia, antara lain: jenis daftar semua program yang pernah dijalankan pada sistem, diurutkan berdasarkan dll. Jumlah penggunaan tertinggi.

Perintah yang harus dicari adalah lastcommuntuk menjalankan log dan sastatistik gabungan. Kembali ke pertanyaan awal, dengan asumsi bahwa sistem yang bersangkutan akan memiliki akuntansi yang diaktifkan sejak diinstal, maka sa -nakan memberikan daftar semua perintah yang pernah dieksekusi pada sistem (untuk semua pengguna), diurutkan berdasarkan frekuensi. Untuk pipa, setiap bagian dari pipa tentu saja akan dihitung secara terpisah, karena masing-masing bagian terdiri dari proses baru yang akan bercabang dua.

Untuk lebih jelasnya, jurnal Linux memiliki artikel yang menjelaskan cara kerjanya. Saya sendiri mendapat ide dari panduan NetBSD ; banyak tips administrasi yang lebih umum di sana tidak spesifik untuk NetBSD tetapi berlaku untuk sistem Unix lainnya juga.


2

20 perintah CLI yang paling banyak digunakan:

history |  cut -c7- | sort  | uniq -c | sort -nr | head -n 20

1

Anda dapat menggunakan perintah single cut:

history | cut -c 7-100  | sort  | uniq -c | sort -nr

1

Jika hanya untuk sesi saat ini, maka hashtanpa argumen.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.