Sebagai contoh, saya biasanya membuka mousepad (setara xfce dari gedit) dari menu aplikasi. Namun, saya tahu Anda juga bisa melakukan ini di terminal dengan mengetik mousepad
.
Mengikuti contoh ini, yang saya inginkan adalah setiap kali saya membuka mousepad melalui GUI, baris baru ditulis dalam file log yang menyatakan sesuatu seperti Sep 5 15:35:11 lucho@lucho:~$ mousepad
. Lebih umum, yang saya inginkan adalah mencatat semua aktivitas GUI yang berpotensi dilakukan melalui command-line (seperti membuka program, mengubah izin, memodifikasi pengaturan sistem, dll) tetapi ditulis dalam format eksekusi command-line alternatifnya . Saya ingin ini untuk meningkatkan pengetahuan saya tentang cara menggunakan command-line (tanpa melalui man
halaman). Ada banyak hal yang saya lakukan melalui GUI yang tidak saya lakukan melalui command-line (beberapa berpotensi automatable melalui skrip atau melalui pintasan keyboard) dan memiliki file log ini akan menjadi cara yang baik untuk mempelajarinya.
Saya sadar akan keberadaan file syslog di /var/log
tetapi bukan itu yang saya butuhkan. Aplikasi Activity Log Manager dari repositori Ubuntu tidak menunjukkan format baris perintah, sejauh yang saya tahu. Saya memerlukan sesuatu seperti file .bash_history yang ada di folder rumah saya tetapi merekam aktivitas berbasis GUI saya.
unity-control-center background
ataugnome-control-center background
(tergantung pada desktop Anda, Unity atau XFCE atau GNOME). Tetapi dunia luar mungkin hanya akan melihatgnome-control-center
Jawaban:
pengantar
Meskipun tidak mungkin untuk mencatat semua tindakan GUI, hal-hal seperti perintah logging yang berhubungan dengan windows yang terbuka dapat dilakukan. Di bawah ini adalah skrip python sederhana yang melakukan pekerjaan. Masih dalam pengembangan, tetapi melakukan 90% dari tugas yang diperlukan.
Kode sumber
Uji coba:
Script menunjukkan cap waktu, jenis acara, PID jendela, dan perintah yang sesuai.
Cara Penggunaan
Aturan standar dari setiap skrip berlaku. Pastikan Anda menyimpan skrip di
~/bin
direktori. Jika Anda tidak memiliki~/bin
direktori, maka buatlah. Simpan file skrip di sana dan pastikan itu dapat dieksekusi denganchmod +x ~/bin/log_open_windows.py
. Setelah daripada Anda dapat menjalankannya dari baris perintah kapan saja Anda inginkan dengan memanggil~/log_open_windows.py
baris perintah.sumber
Mengusulkan file log semacam itu sebagai dasar untuk belajar sebenarnya adalah ide yang brilian!
Sayangnya, banyak tindakan program GUI diimplementasikan dalam program itu sendiri, tidak menggunakan perintah eksternal; Dan bahkan jika itu menggunakan perintah eksternal, itu mungkin dengan cara yang berbeda dari yang akan dilakukan di shell;
Sehingga tidak ada, dan tidak mudah diimplementasikan.
Tapi saya punya solusi untuk sebagian masalah: Nama program di GUI terkadang berbeda dari nama program yang perlu diketahui untuk perintah shell - tidak hanya jika nama GUI diterjemahkan ke bahasa lokal.
Misalnya, bagaimana memulai program
Files
di baris comman?Kita perlu melihat semua
*.desktop
file untuk namanya. Di sana, kami menemukan perintah diExec
baris:locate -b '.desktop' | xargs grep -ls '^Name.*=Files$' | xargs grep '^Exec.*'
mencantumkan nama dan perintah file desktop untuk program GUI
File
- ganti dengan nama persis yang Anda cari - meskipun itu adalah beberapa kata (untuk pencarian substring, tinggalkan=
dan$
).Dengan perintah, saya temukan
Files
mungkinnautilus
,dolphin
atauactive-filebrowser
:sumber