Kekuatan Linux Perintah Sejarah di Bash Shell
- 2784
- 10
- Ian Parker
Kita gunakan sejarah Perintah sering dalam pekerjaan rutin harian kami untuk memeriksa riwayat perintah atau untuk mendapatkan info tentang perintah yang dieksekusi oleh pengguna. Dalam posting ini, kita akan melihat bagaimana kita dapat menggunakan perintah riwayat secara efektif untuk mengekstrak perintah yang dieksekusi oleh pengguna di bash shell. Ini mungkin berguna untuk tujuan audit atau untuk mengetahui perintah apa yang dieksekusi pada apa tanggal Dan waktu.
Secara default tanggal Dan cap waktu tidak akan terlihat saat mengeksekusi sejarah memerintah. Namun, Bash Shell menyediakan Cli Alat untuk Mengedit Riwayat Perintah Pengguna. Mari kita lihat beberapa tips dan trik yang praktis sejarah memerintah.
Contoh Komando Sejarah1. Daftar perintah terakhir/semua yang dieksekusi di Linux
Mengeksekusi sederhana sejarah Perintah dari Terminal akan menunjukkan kepada Anda daftar lengkap perintah yang dieksekusi terakhir dengan nomor baris.
[[email dilindungi] ~] $ riwayat 1 ps1 = '\ e [1; 35m [\ [email dilindungi] \ h \ w] $ \ e [m' 2 ps1 = "\ e [0; 32m [\ [Email Dilindungi] \ h \ w] $ \ e [m "3 ps1 =" \ [email dilindungi] \ h: \ w [\ j] $ "4 ping google.com 5 echo $ ps1 6 tail -f/var/log/pesan 7 tail -f/var/log/pesan 8 Keluar 9 Clear 10 History 11 Clear 12 History
2. Buat daftar semua perintah dengan tanggal dan cap waktu
Bagaimana menemukan tanggal Dan cap waktu melawan perintah? Dengan 'ekspor' Perintah dengan variabel akan menampilkan perintah riwayat dengan cap waktu yang sesuai saat perintah dieksekusi.
[[email dilindungi] ~] $ ekspor histtimeformat = " %f %t" 1 2013-06-09 10:40:12 Cat /etc /edisi 2 2013-06-09 10:40:12 CLEAR 3 2013-06- 09 10:40:12 Temukan /dll -Name *.CONF 4 2013-06-09 10:40:12 CLEAR 5 2013-06-09 10:40:12 SEJARAH 6 2013-06-09 10:40:12 PS1 = '\ E [1; 35M [\ [Email Dilindungi Dilindungi ] \ h \ w] $ \ e [M '7 2013-06-09 10:40:12 ps1 = "\ e [0; 32m [\ [email dilindungi] \ h \ w] $ \ e [m" 8 2013-06-09 10:40:12 PS1 = "\ [Email Dilindungi] \ H: \ w [\ j] $" 9 2013-06-09 10:40:12 Ping Google.com 10 2013-06-09 10:40:12 ECHO $ PS1
Arti variabel histtimeformat
%F setara dengan %y - %m - %d %t digantikan pada waktu ( %h: %m: %s)
3. Perintah Filter dalam Sejarah
Karena kita dapat melihat perintah yang sama sedang diulangi berapa kali dalam output di atas. Cara memfilter perintah sederhana atau tidak destruktif dalam sejarah?. Gunakan yang berikut 'ekspor'Perintah dengan menentukan perintah di Histignore = 'ls -l: pwd: tanggal:' tidak akan disimpan oleh sistem dan tidak akan ditampilkan dalam perintah sejarah.
[[email dilindungi] ~] $ ekspor histignore = "ls -l: pwd: tanggal:"
4. Abaikan perintah duplikat dalam sejarah
Dengan perintah di bawah ini akan membantu kami mengabaikan entri perintah duplikat yang dibuat oleh pengguna. Hanya entri tunggal yang akan ditampilkan dalam sejarah, jika pengguna menjalankan perintah yang sama beberapa kali dalam prompt bash.
[[Email Dilindungi] ~] $ Ekspor HistControl = diabaikan
5. Perintah Ekspor yang Tidak Disetel
Perintah Ekspor yang Tidak Terbaik dengan cepat. Menjalankan Ekspor yang tidak disetel perintah dengan variabel satu per satu perintah apa pun telah diekspor oleh ekspor memerintah.
[[Email Dilindungi] ~] $ Ekspor Histcontrol yang Tidak Disetel
6. Simpan Perintah Ekspor secara permanen
Membuat entri sebagai berikut .Bash_profile untuk menyimpan ekspor Perintah secara permanen.
[[email dilindungi] ~] $ vi .Bash_profile # .Bash_profile # Dapatkan alias dan fungsi jika [-f ~/.Bashrc]; Kemudian . ~/.BASHRC FI # Lingkungan Khusus Pengguna dan Program Startup ekspor histcontrol = diabaikan Path = $ path: $ home/bin Export Path
7. Daftar perintah yang dieksekusi pengguna tertentu
Bagaimana melihat riwayat perintah dieksekusi oleh pengguna tertentu. Bash menyimpan catatan sejarah di a '~//.Bash_history ' mengajukan. Kita dapat melihat atau membuka file untuk melihat riwayat perintah.
[[email dilindungi] ~] $ vi .Bash_history CD / TMP / CD Logstalgia-1.0.3/ ./Konfigurasikan sudo passwd root apt-get install libsdl1.2-dev LIBSDL-IMAGE1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev membuat gcc ./Mengkonfigurasi Make APT-GET INSTALL LIBSDL1.2-dev LIBSDL-IMAGE1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev membuat gcc ++ apt-get install libsdl1.2-dev LIBSDL-IMAGE1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev membuat gcc apt-get install membuat mysql -u root -p apt-get install grsync apt-get install unison unison
8. Nonaktifkan Simpan Sejarah Perintah
Beberapa organisasi tidak menyimpan sejarah perintah karena kebijakan keamanan organisasi. Dalam hal ini, kami dapat mengedit .Bash_profile File (File Tersembunyi) dari pengguna dan buat entri seperti di bawah ini.
[[email dilindungi] ~] $ vi .Bash_profile # .Bash_profile # Dapatkan alias dan fungsi jika [-f ~/.Bashrc]; Kemudian . ~/.BASHRC FI # Lingkungan Khusus Pengguna dan Program Startup Path = $ Path: $ home/bin HistSize = 0 Jalur Ekspor .Bash_profile (akhir)
Simpan file dan muat perubahan dengan perintah di bawah ini.
[[email dilindungi] ~] $ sumber .Bash_profile
Catatan: Jika Anda tidak ingin sistem mengingat perintah yang telah Anda ketik, cukup jalankan perintah di bawah ini yang akan menonaktifkan atau berhenti merekam riwayat dengan cepat.
[[Email Dilindungi] ~] $ Ekspor HistSize = 0
Tips: Mencari 'Histsize'Dan edit di'/etc/profile ' file dengan superuser. Perubahan file akan mempengaruhi secara global.
9. Hapus atau jelas sejarah perintah
Dengan ke atas Dan turun panah, kita dapat melihat perintah yang digunakan sebelumnya yang mungkin bermanfaat atau mungkin membuat Anda marah. Menghapus atau membersihkan semua entri dari daftar sejarah bash dengan '-C' pilihan.
[[email dilindungi] ~] $ history -c
10. Perintah pencarian dalam sejarah menggunakan perintah grep
Cari perintah melalui '.BASH_HISTORY'Dengan menyalakan file riwayat Anda ke'grep' seperti di bawah ini. Misalnya, perintah di bawah ini akan mencari dan menemukan 'PWD'Perintah dari daftar sejarah.
[[email dilindungi] ~] $ history | GREP PWD 113 2013-06-09 10:40:12 PWD 141 2013-06-09 10:40:12 PWD 198 2013-06-09 15:46:23 Sejarah | GREP PWD 202 2013-06-09 15:47:39 Sejarah | grep pwd
11. Cari perintah yang dieksekusi terakhir
Cari perintah yang sebelumnya dieksekusi dengan 'Ctrl+r' memerintah. Setelah Anda menemukan perintah yang Anda cari, tekan 'Memasuki'Untuk mengeksekusi yang sama lagi tekan'ESC'Untuk membatalkannya.
(reverse-i-search) 'Sumber': Sumber .Bash_profile
12. Ingat perintah yang dieksekusi terakhir
Ingat perintah spesifik yang sebelumnya digunakan. Kombinasi Bang Dan 8 (!8) Perintah akan mengingat nomor 8 Perintah yang telah Anda jalankan.
[[Email Dilindungi] ~] $ !8
13. Ingat perintah spesifik yang dieksekusi terakhir
Ingat perintah yang sebelumnya digunakan (netstat -np | Grep 22) dengan '!'dan diikuti dengan beberapa huruf dari perintah tertentu.
[[Email Dilindungi] ~] $ !net netstat -np | grep 22 (tidak ada info yang bisa dibaca untuk "-p": geteuid () = 501 tetapi Anda harus root.) TCP 0 68 192.168.50.2:22 192.168.50.1: 1857 Didirikan - TCP 0 0 192.168.50.2:22 192.168.50.1: 2516 Didirikan - UNIX 2 [] DGRAM 12284 - @/org/freedesktop/hal/udev_event unix 3 [] Stream Terhubung 14522 - UNIX 2 [] DGRAM 13622 - UNIX 3 [] Terhubung Terhubung 12250 - @/var/run/ hald/dbus -ujajomna0g unix 3 [] stream Terhubung 12249 - unix 3 [] stream Terhubung 12228 -/var/run/dbus/system_bus_socket unix 3 [] Stream Terhubung 12227 -
Kami telah mencoba menyoroti perintah kekuatan sejarah. Namun, ini bukan akhir dari itu. Silakan bagikan pengalaman Anda tentang perintah sejarah dengan kami melalui kotak komentar kami di bawah ini.
- « Cara membuat dan menjalankan unit layanan baru di SystemD menggunakan skrip shell
- Cara Menginstal dan Mengkonfigurasi LEMP di Debian 8 (Jessie) »