Saya telah melihat seseorang mengetik
apt-get install !!
Dia melakukan itu beberapa kali dan setiap kali, program yang berbeda diinstal. Sepertinya secara otomatis tahu apa yang dibutuhkan selanjutnya.
Namun, ketika saya mencobanya di mesin virtual Ubuntu 14.04.1 LTS saya, itu hanya menunjukkan beberapa petunjuk penggunaan. Googling untuk apt-get install !!
sepertinya tidak berfungsi dengan baik. Banyak hasil pencarian tidak mengandung tanda seru ganda.
Apa yang apt-get install !!
dilakukan dan apa yang bisa hilang pada mesin saya yang tidak berfungsi?
command-line
bash
Thomas Weller
sumber
sumber
Jawaban:
!!
adalah jalan pintas dalam bash yang berarti perintah terakhir dijalankan.Coba ini:
Dalam konteks ini,
!!
akan diperluas ke yang lainecho hello
.Saya membayangkan apa yang terjadi adalah mereka mencoba menjalankan perintah dan gagal dan mengeluh itu tidak diinstal. Maka mereka mengetik
sudo apt-get install !!
karena nama paket itu kebetulan sama dengan nama perintah yang mereka coba jalankan. Perintah yang dihasilkan akan mencoba untuk menginstal paket dengan nama yang sama dengan perintah yang baru saja mereka coba jalankan.sumber
lynx
, lihat bahwa itu tidak diinstal dan kemudian jalankanapt-get install !!
menginstal lynx. Itu tidak berhasil untuk saya, karena saya mencobaapt-get install !!
sebagai satu-satunya perintah.sudo
, misalnyaapt-get install
sesuatu.apt-get install some-program
, dan ketika Anda menyadari bahwa Anda tidak memiliki hak istimewa, Anda hanyasudo !!
, yang memperluas kesudo apt-get install some-program
.!!
adalah alias untuk!-1
, artinya item terakhir dalam sejarah bash.!-2
adalah kedua dari belakang dan sebagainya.!!
tidak ada hubungannya denganapt-get
. Ini adalah kata kunci shell yang akan diperluas ke perintah sebelumnya. Ekspansi ini dilakukan oleh shell sebelum perintah saat ini ditafsirkan.Dari
man bash
:Misalnya, jika Anda menjalankan perintah:
Maka jika Anda menjalankan:
itu akan diperluas ke:
Seperti yang Anda lihat itu diperluas menjadi dua paket yaitu
echo
dan yang lainnyafoo
. Tidak ada paket mandiri bernamafoo
danecho
. Terlepas dari shell builtinecho
ada/bin/echo
executable yang merupakan bagian dari paket GNU-coreutils. Jadi, Anda akan mendapatkan kesalahan dengan mengatakan bahwa tidak ada paket yang tersedia.Di sisi lain orang lain mungkin melakukan sesuatu seperti ini:
Seperti yang Anda lihat
cowsay
sedang diinstal.Saya menyarankan Anda untuk tidak melakukan ini (kecuali Anda yakin), menjadi eksplisit tidak membahayakan.
sumber
!!
. Saya tahu apa artinya, tapi saya suka cara Anda menggambarkannya.!!
: Lihat perintah sebelumnya. Ini adalah sinonim untuk!-1
( Sumber ).Misalnya, jika saya menjalankan:
lalu ingat bahwa saya harus menjadi Root, maka saya cukup mengetik:
itu sama dengan mengetik:
Ini berguna ketika perintah terakhir Anda mengandung banyak karakter.
sumber
sudo !!
perintah itu; apa yang telah saya lakukan selama bertahun-tahun adalah tekan tombol atas sekali, lalu gerakkan kursor ke kiri dan tambahkansudo
.sudo
.Ctrl+A
atau setidaknyaHome
?Pertanyaannya sudah dijawab, jadi saya tidak akan berulang. Namun, saya ingin menunjukkan bahwa ada banyak cara pintas seperti itu di berbagai shell yang membantu mengulang / menemukan / mengedit perintah. Beberapa yang saya gunakan adalah:
!$
diikuti oleh ENTERakan mengetik kata terakhir dari perintah terakhir. Sebagai contoh,Ini akan membuat Anda masuk
/let/me/in
vi /home/mycoolproject.sh
dan diikuti dengan beberapa perintah acak sepertils
,cd
,pwd
, dll maka hanya mengetik Ctrl- Rdiikuti olehcool
akan menarik bahwavi
perintah.Cukup cari pintasan keyboard bash (atau csh atau apa pun) dan itu akan menjadi hal terbaik yang Anda lakukan hari ini!
sumber