Bila Anda sering menggunakan baris perintah Linux, menggunakan riwayat secara efektif dapat menjadi peningkatan produktivitas yang besar. Faktanya, setelah Anda menguasai 15 contoh yang saya berikan di sini, Anda akan menemukan penggunaan baris perintah lebih menyenangkan dan menyenangkan.
1. Tampilkan stempel waktu menggunakan HISTTIMEFORMAT
Biasanya ketika Anda mengetik riwayat dari baris perintah, ini akan menampilkan perintah# dan perintah. Untuk tujuan audit, mungkin bermanfaat untuk menampilkan cap waktu bersama dengan perintah seperti yang ditunjukkan di bawah ini.
# export HISTTIMEFORMAT='%F %T ' # history | more 1 2008-08-05 19:02:39 service network restart 2 2008-08-05 19:02:39 exit 3 2008-08-05 19:02:39 id 4 2008-08-05 19:02:39 cat /etc/redhat-release
2. Cari riwayat menggunakan Control+R
Saya sangat percaya, ini mungkin fitur sejarah Anda yang paling sering digunakan. Ketika Anda sudah menjalankan perintah yang sangat panjang, Anda cukup mencari riwayat menggunakan kata kunci dan menjalankan kembali perintah yang sama tanpa harus mengetiknya sepenuhnya. Tekan Control+R dan ketik kata kunci . Dalam contoh berikut, saya menelusuri merah , yang menampilkan perintah sebelumnya “cat /etc/redhat-release ” dalam sejarah yang mengandung kata merah.
# [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt] (reverse-i-search)`red': cat /etc/redhat-release [Note: Press enter when you see your command, which will execute the command from the history] # cat /etc/redhat-release Fedora release 9 (Sulphur)
Terkadang Anda ingin mengedit perintah dari riwayat sebelum menjalankannya. Untuk misalnya Anda dapat menelusuri httpd , yang akan menampilkan layanan httpd stop dari riwayat perintah, pilih perintah ini dan ubah berhenti menjadi mulai dan jalankan kembali seperti yang ditunjukkan di bawah ini.
# [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt] (reverse-i-search)`httpd': service httpd stop [Note: Press either left arrow or right arrow key when you see your command, which will display the command for you to edit, before executing it] # service httpd start
3. Ulangi perintah sebelumnya dengan cepat menggunakan 4 metode berbeda
Terkadang Anda mungkin mengulangi perintah sebelumnya karena berbagai alasan. Berikut ini adalah 4 cara berbeda untuk mengulang perintah yang terakhir dieksekusi.
- Gunakan panah atas untuk melihat perintah sebelumnya dan tekan enter untuk menjalankannya.
- Ketik !! dan tekan enter dari baris perintah
- Ketik !-1 dan tekan enter dari baris perintah.
- Tekan Kontrol+P akan menampilkan perintah sebelumnya, tekan enter untuk menjalankannya
4. Jalankan perintah tertentu dari riwayat
Pada contoh berikut, Jika Anda ingin mengulang perintah #4, Anda dapat melakukan !4 seperti yang ditunjukkan di bawah ini.
# history | more 1 service network restart 2 exit 3 id 4 cat /etc/redhat-release # !4 cat /etc/redhat-release Fedora release 9 (Sulphur)
5. Jalankan perintah sebelumnya yang dimulai dengan kata tertentu
Jenis ! diikuti dengan beberapa huruf awal dari perintah yang ingin Anda jalankan kembali. Pada contoh berikut, ketikan !ps dan enter, jalankan perintah sebelumnya yang dimulai dengan ps, yaitu ‘ps aux | grep yp’.
# !ps ps aux | grep yp root 16947 0.0 0.1 36516 1264 ? Sl 13:10 0:00 ypbind root 17503 0.0 0.0 4124 740 pts/0 S+ 19:19 0:00 grep yp
6. Kontrol jumlah total baris dalam riwayat menggunakan HISTSIZE
Tambahkan dua baris berikut ke .bash_profile dan masuk kembali ke bash shell lagi untuk melihat perubahannya. Dalam contoh ini, hanya 450 perintah yang akan disimpan dalam riwayat bash.
# vi ~/.bash_profile HISTSIZE=450 HISTFILESIZE=450
7. Ubah nama file riwayat menggunakan HISTFILE
Secara default, riwayat disimpan di ~/.bash_history mengajukan. Tambahkan baris berikut ke .bash_profile dan login kembali ke bash shell, untuk menyimpan perintah history di file .commandline_warrior alih-alih file .bash_history. Saya belum menemukan penggunaan praktis untuk ini. Saya dapat melihat ini digunakan ketika Anda ingin melacak perintah yang dijalankan dari terminal yang berbeda menggunakan nama file riwayat yang berbeda.
# vi ~/.bash_profile HISTFILE=/root/.commandline_warrior
Jika Anda memiliki alasan yang baik untuk mengubah nama file riwayat, silakan bagikan dengan saya, karena saya tertarik untuk mengetahui bagaimana Anda menggunakan fitur ini.
8. Hilangkan entri berulang yang terus-menerus dari riwayat menggunakan HISTCONTROL
Dalam contoh berikut pwd diketik tiga kali, ketika Anda melakukan histori, Anda dapat melihat semua 3 kemunculannya yang berkelanjutan. Untuk menghilangkan duplikat, setel HISTCONTROL ke abaikan seperti yang ditunjukkan di bawah ini.
# pwd # pwd # pwd # history | tail -4 44 pwd 45 pwd 46 pwd [Note that there are three pwd commands in history, after executing pwd 3 times as shown above] 47 history | tail -4 # export HISTCONTROL=ignoredups # pwd # pwd # pwd # history | tail -3 56 export HISTCONTROL=ignoredups 57 pwd [Note that there is only one pwd command in the history, even after executing pwd 3 times as shown above] 58 history | tail -4
9. Hapus duplikat di seluruh riwayat menggunakan HISTCONTROL
Abaikan yang ditunjukkan di atas menghapus duplikat hanya jika itu adalah perintah berurutan. Untuk menghilangkan duplikat di seluruh riwayat, setel HISTCONTROL ke erasedups seperti yang ditunjukkan di bawah ini.
# export HISTCONTROL=erasedups # pwd # service httpd stop # history | tail -3 38 pwd 39 service httpd stop 40 history | tail -3 # ls -ltr # service httpd stop # history | tail -6 35 export HISTCONTROL=erasedups 36 pwd 37 history | tail -3 38 ls -ltr 39 service httpd stop [Note that the previous service httpd stop after pwd got erased] 40 history | tail -6
10. Paksa riwayat untuk tidak mengingat perintah tertentu menggunakan HISTCONTROL
Saat Anda menjalankan perintah, Anda dapat menginstruksikan riwayat untuk mengabaikan perintah dengan mengatur HISTCONTROL ke abaikan spasi DAN mengetik spasi di depan perintah seperti yang ditunjukkan di bawah ini. Saya dapat melihat banyak sysadmin junior bersemangat tentang ini, karena mereka dapat menyembunyikan perintah dari riwayat. Adalah baik untuk memahami cara kerja abaikan ruang. Namun, sebagai praktik terbaik, jangan menyembunyikan apa pun dari sejarah dengan sengaja.
# export HISTCONTROL=ignorespace # ls -ltr # pwd # service httpd stop [Note that there is a space at the beginning of service, to ignore this command from history] # history | tail -3 67 ls -ltr 68 pwd 69 history | tail -3
11. Hapus semua riwayat sebelumnya menggunakan opsi -c
Terkadang Anda mungkin ingin menghapus semua riwayat sebelumnya, tetapi ingin membuat riwayat tetap berjalan.
# history -c
12. Ganti kata dari perintah history
Saat menelusuri riwayat, Anda mungkin ingin menjalankan perintah yang berbeda tetapi menggunakan parameter yang sama dari perintah yang baru saja Anda telusuri.
Pada contoh di bawah, !!:$ di sebelah perintah vi mendapatkan argumen dari perintah sebelumnya ke perintah saat ini.
# ls anaconda-ks.cfg anaconda-ks.cfg # vi !!:$ vi anaconda-ks.cfg
Pada contoh di bawah, !^ di sebelah perintah vi mendapatkan argumen pertama dari perintah sebelumnya (yaitu perintah cp) ke perintah saat ini (yaitu perintah vi).
# cp anaconda-ks.cfg anaconda-ks.cfg.bak anaconda-ks.cfg # vi !^ vi anaconda-ks.cfg
13. Ganti argumen tertentu untuk perintah tertentu.
Pada contoh di bawah, !cp:2 mencari perintah sebelumnya dalam sejarah yang dimulai dengan cp dan mengambil argumen kedua dari cp dan menggantikannya dengan perintah ls -l seperti yang ditunjukkan di bawah ini.
# cp ~/longname.txt /really/a/very/long/path/long-filename.txt # ls -l !cp:2 ls -l /really/a/very/long/path/long-filename.txt
Pada contoh di bawah, !cp:$ mencari perintah sebelumnya dalam sejarah yang dimulai dengan cp dan mengambil argumen terakhir (dalam hal ini, yang juga merupakan argumen kedua seperti yang ditunjukkan di atas) dari cp dan menggantikannya dengan perintah ls -l seperti yang ditunjukkan di bawah ini.
# ls -l !cp:$ ls -l /really/a/very/long/path/long-filename.txt
14. Nonaktifkan penggunaan riwayat menggunakan HISTSIZE
Jika Anda ingin menonaktifkan semua riwayat dan tidak ingin bash shell mengingat perintah yang Anda ketik, setel HISTSIZE ke 0 seperti yang ditunjukkan di bawah ini.
# export HISTSIZE=0 # history # [Note that history did not display anything]
15. Abaikan perintah tertentu dari riwayat menggunakan HISTIGNORE
Terkadang Anda mungkin tidak ingin mengacaukan riwayat Anda dengan perintah dasar seperti pwd dan ls. Gunakan HISTIGNORE untuk menentukan semua perintah yang ingin Anda abaikan dari riwayat. Harap dicatat bahwa menambahkan ls ke HISTIGNORE hanya mengabaikan ls dan bukan ls -l. Jadi, Anda harus memberikan perintah yang tepat yang ingin Anda abaikan dari riwayat.
# export HISTIGNORE="pwd:ls:ls -ltr:" # pwd # ls # ls -ltr # service httpd stop # history | tail -3 79 export HISTIGNORE="pwd:ls:ls -ltr:" 80 service httpd stop 81 history [Note that history did not record pwd, ls and ls -ltr]
Bacaan yang Disarankan
Bash 101 Hacks, oleh Ramesh Natarajan . Saya menghabiskan sebagian besar waktu saya di lingkungan Linux. Jadi, tentu saja saya penggemar berat baris perintah Bash dan skrip shell. 15 tahun yang lalu, ketika saya mengerjakan berbagai rasa *nix, saya biasa menulis banyak kode pada shell C dan shell Korn. Bertahun-tahun kemudian, ketika saya mulai bekerja di Linux sebagai administrator sistem, saya cukup banyak mengotomatisasi setiap tugas yang mungkin menggunakan skrip Bash shell. Berdasarkan pengalaman Bash saya, saya telah menulis eBook Bash 101 Hacks yang berisi 101 contoh praktis pada baris perintah Bash dan skrip shell. Jika Anda berpikir untuk menguasai Bash, bantulah diri Anda sendiri dan bacalah buku ini, yang akan membantu Anda mengendalikan baris perintah Bash dan skrip shell.
Artikel Linux yang Luar Biasa
Berikut adalah beberapa 15 contoh yang mengagumkan artikel yang mungkin bermanfaat bagi Anda.
- Perintah Unix LS:15 Contoh Praktis
- Dapatkan Pegangan di Grep! – 15 Contoh Perintah Grep Praktis
- Linux Crontab:15 Contoh Pekerjaan Cron yang Luar Biasa
- Bu, aku menemukannya! — 15 Contoh Perintah Temukan Linux yang Praktis