Cukup gunakan UPdan CTRL-A.
Keduanya !sudo
dan sudo !!
fungsinya mudah. Dengan perbedaan:
sudo !!
akan mengeksekusi perintah terakhir yang diambil dari sejarah dengan sudo
di awal.
!sudo
akan menjalankan perintah terakhir dalam sejarah yang dimulai dengan sudo
.
Biasanya CTRL-Amembawa Anda di awal baris di terminal linux dan CTRL-Esampai akhir.
Jika mau, Anda dapat terus menggunakan strategi Anda. Anda hanya perlu menemukan pintasan sistem Anda. Anda dapat menemukan daftar jalan pintas di lingkungan grafis dan teks misalnya di sini .
Hanya peringatan : sudo !!
dan !sudo
fungsinya sangat cepat dan Anda tidak memiliki kontrol visual terhadap garis yang Anda jalankan sebagai superuser . Ini kadang-kadang bisa berbahaya . Khususnya jika Anda mengalami kesalahan cetak.
Mari kita lakukan contoh dramatis:
cd $HOME/Directory_To_Delete # You go to delete what is inside a directory
rm -rf . ; cd .. # You do it and go up of one
apt-get update # Note the space in the beginning of the line
sudo !! # Gone!! Now you realize you never really wanted
Terlambat Anda baru saja menghapus direktori home Anda dan semua subfolder !! .
Saat Anda menulis perintah dengan spasi sebagai karakter pertama, kemungkinan itu tidak akan selesai dalam sejarah. Ini tergantung dari nilai variabel $ HISTCONTROL. Jika daftar nilainya menyertakan ignorespace (atau ignoreboth ) garis-garis yang dimulai dengan karakter spasi tidak disimpan dalam daftar sejarah. Begitu juga dengan sudo !! Anda akan menjalankan perintah terakhir sebelumnya.
Anda dapat membayangkan situasi yang sama dengan !sudo
itu, itu akan mengeksekusi perintah terakhir dimulai dengan sudo
dicatat dalam sejarah, tetapi jika yang terakhir yang Anda ingat dimulai dengan spasi ... sekarang Anda tahu Anda akan menggunakan yang lain.
Catatan terakhir: lebih sedikit kesalahan dramatis Anda, lebih bisa keliru karena bisa lewat tanpa Anda sadari ... dan Anda akan berisiko dipanggil untuk membayar semua bunga tagihan yang tidak dapat Anda ingat.
Pembaruan (Bash hebat):
dengan versi terbaru dari Bash dimungkinkan untuk memperbaiki perilaku berbahaya ini dengan perintah berikut yang saya sarankan untuk dimasukkan ke dalam ~/.bashrc
file:
shopt -s histverify
Dari man bash
Anda bisa membaca
Jika opsi histverify shell diaktifkan dan readline sedang digunakan, pergantian riwayat tidak segera diteruskan ke parser shell. Alih-alih, baris yang diperluas dimuat ulang ke buffer pengeditan readline untuk modifikasi lebih lanjut.
Sehingga Anda dapat membaca, dan memodifikasi saat dibutuhkan, perintah yang akan Anda jalankan.
Karena ini bukan pengaturan default di banyak distribusi, kami masih harus mengingatnya ketika kami menggunakan akun lain.
!!
terutama dalam kombinasi dengan sudo, kalau-kalau ternyata perintah sebelumnya bukan yang saya pikir seharusnya.