Saya mencoba menetapkan alias untuk sudo !!
di Bash. Saya mencoba alias sbb='sudo !!
', tetapi itu menafsirkannya sebagai huruf !!
dan cetakan
sudo: !!: command not found
Jika saya menggunakan tanda kutip ganda, itu menggantikan bang ganda dalam string itu sendiri, sehingga tidak berfungsi.
Apakah ada cara untuk membuat ini berfungsi? Atau alias alternatif? `
bash
sudo
alias
command-history
history-expansion
Manishearth
sumber
sumber
Jawaban:
!!
diperluas oleh bash saat Anda mengetiknya. Itu tidak diperluas dengan substitusi alias.Anda dapat menggunakan
history
built-in untuk melakukan ekspansi:Jika perintah lebih dari sekadar perintah sederhana (mis. Perintah ini berisi pengalihan atau pipa), Anda perlu menjalankan shell di bawah sudo:
sumber
man tcsh
dan menemukan bahwa itu tidak melakukan ekspansi sejarah selama ekspansi alias "seolah-olah perintah asli adalah garis masukan sebelumnya." Menarik. Namun,alias sbb 'sudo \!-2
tidak berfungsi seperti yang diharapkan (itu sebenarnya menggantikan entri kedua sebelumnya);alias sbb 'sudo \!\!'
berhasil seperti yang diharapkan (digantisbb
untuk!!
); dan pada akhirnya ternyata apa yang saya inginkan adalahalias sbb 'sudo \!-1'
yang saya harapkan akan sama dengan\!\!
. (tcsh 6.17.06 (Astron) 2011-04-15) YMMV. Semoga berhasil.sbb
saya lebih sukaprease
sebagai alias seperti yang disarankan oleh @jpschorrMencoba:
Saya suka sebenarnya lebih suka memberi nama 'tolong':
Info:
fc
adalah perintah bawaan pada bash shell. yang mencantumkan, mengedit, dan menjalankan kembali perintah yang sebelumnya dimasukkan ke shell interaktif.sumber
please
jelas merupakan cara untuk pergi!please
membuatnya terasa seperti terminal adalah suatu entitas yang saya harus bersikap baik untuk menyelesaikan sesuatu. Saya lebih suka sesuatu yang memberikan rasa kontrol yang lebih baik - sepertifuck
;)Sekarang ada repositori untuk tujuan ini di GitHub, secara ajaib memeriksa apakah perlu hak pengguna super, juga memperbaiki kesalahan ketik:
https://github.com/nvbn/thefuck
sumber
apt-get install thefuck
yang ada, tetapi tidak berfungsi pada Ubuntu 15.10; (Ini awalnya diposting pada pertanyaan ini tetapi kemudian, disarankan untuk memposting di sini.
Inilah cara Anda dapat menggunakan
fc
danhistory
dengan alias untuk!-
pengganti sejenis. Misalkan jika Anda ingin menggunakan!-n
(di mana n adalah digit untuk n th perintah terakhir digunakan), maka Anda dapat menggunakanfc
danhistory
dengan alias sebagai berikut:Menggunakan
history
:Catatan: Di sini
!-n
harus dilampirkan dengan'
atau''
.Menggunakan
fc
:Catatan: di sini 1 st dan 2 nd
-n
digunakan untuk menentukan kisaran daftar sejarah.Di sini saya menggunakan gema sebelum mengeksekusi perintah untuk felling like
!-<n>
.sumber
history -p
danfc
. Ada yang baru di sini?-ln -n -n
menjadi sangat membingungkan; juga sedikit tentang'
atau''
(dan juga sedikit tentang-<n>
).$(fc -ln -1)
sumber