Saya memiliki banyak perintah yang secara rutin perlu saya jalankan, seringkali dengan sedikit variasi.
Saat ini saya menyimpan semuanya .bash_history
dan menggunakannya CTRL- Runtuk mengaksesnya, tapi saya ingin tahu apakah ada cara yang lebih baik. Apa yang saya cari:
- Mudah untuk menambahkan perintah baru
- Mudah untuk mencari dan menjalankan kembali perintah yang diinginkan
- Hindari perintah yang tidak diinginkan dalam saran
Sayangnya, bash_history tidak begitu kuat pada permintaan ketiga: jika saya melakukan beberapa cd
dan ls
, itu mengisi file histori dengan cepat. Saya baru-baru ini belajar tentang HIST_SIZE
dan bahwa Anda dapat mengkonfigurasi riwayat untuk menghindari duplikat atau perintah tertentu, tetapi sebelum mengkonfigurasi semua itu, saya ingin memastikan itu adalah cara terbaik.
shell
command-history
Konerak
sumber
sumber
alias
mungkin lebih bermanfaat. misalnya.alias gfc="git fetch origin"
Jawaban:
Saya menemukan sangat berguna perintah readline berikut
(sadar mereka berbeda dari yang biasa
reverse-search-history
,forward-search-history
, terikat Ctrl- R, Ctrl- S).Saya memiliki perintah ini terkait dengan Ctrl- Updan Ctrl- Downmenempatkan baris berikut ke dalam
~/.inputrc
:Cara kerjanya: tulis beberapa karakter awal perintah, tekan Ctrl- Updan perintah lama berikutnya yang diawali dengan awalan itu akan ditampilkan, tekan lagi untuk melihat yang berikutnya, dan seterusnya. Ketika Anda puas, setelah mungkin memodifikasi perintah, tekan Enteruntuk mengeksekusi.
sumber
"\e[B": history-search-forward
dan"\e[A": history-search-backward
HISTFILESIZE
dan / atauHISTSIZE
(mendukung zsh sajaHISTSIZE
, bash mendukung keduanya) untuk memastikan buffer Anda cukup besar. Pertanyaan SO bash HISTSIZE vs HISTFILESIZE? dapat menerangi lebih lanjut.Kiat lain: Saya terkadang menggunakan komentar untuk menandai / memberi tanda pada sebuah perintah:
kemudian:
sumber
$_bookmark
. Dapat dikatakan bahwa ini adalah peretasan mengerikan yang mengeksploitasi fakta bahwa tidak ada variabel yang berkembang menjadi tidak ada, tetapi tentu saja berhasil, dengan peringatan bahwa spasi tidak diizinkan (gunakan _sebagai gantinya).Meskipun cakupannya sangat terbatas, saya ingin menunjukkan dua penampung ekspansi ini:
adalah ekspansi placeholder untuk perintah terakhir. Berguna jika Anda lupa untuk meletakkan
sudo
sebelum perintah.mengulangi parameter terakhir. Berguna jika Anda ingin mengulangi perintah yang berbeda dengannya
a/very/long/path/name/you/do/not/want/to/type/again
sumber
Gunakan 'alias'
alias
adalah alat yang bagus untuk ini.Saat Anda menggunakan alias, persis seperti Anda mengetiknya, jadi cukup fleksibel. Misalnya, Anda dapat menggunakannya dengan pipa:
Anda harus dapat melakukan "sedikit variasi" dengan melewati setiap flag yang belum Anda tentukan.
sumber
Saya membuat skrip shell minimal untuk perintah saya yang sering dan memberi mereka nama pendek. Mereka semua disimpan di tempat yang sama, yang ditambahkan
PATH
.Dengan begitu saya memiliki akses pintas ke perintah yang sangat kompleks, dan tidak seperti dengan
alias
saya dapat mengubah bagian tugas saya yang berubah menjadi argumen baris perintah pintas saya.sumber
Saya menyimpan salinan .bash_history di Git . Untuk menyederhanakan ini, saya telah mengatur
di .bashrc , dan perintah berikut (dimodifikasi untuk penggunaan umum) dalam skrip pembersihan
yang saya jalankan sebelum menambahkan baris
git gui
. Karena file histori dimodifikasi dengan setiap perintah, saya juga punya perintah khusus untuk memperbarui repositori tertentu:sumber
HISTCONTROL=ignorespace
, yang penting untuk tidak mengacaukan sejarah, kadang-kadang.Di antara semua jawaban lain di sini yang melibatkan sejarah.
aku menyiapkan
di ~ / .bash_profile
Selain komentar lainnya ulang: sejarah
Fitur bermanfaat lainnya ...
Memulai pengingatan sejarah dengan
akan mengingat perintah terakhir yang dimulai dengan beberapa huruf pertama
misalnya:
Anda tidak menyebutkan apakah Anda menggunakan GUI, atau hanya baris perintah. Jika Anda menggunakan GUI, Anda dapat menggunakan salah satu pengelola papan klip yang terus-menerus untuk menyalin / menempel perintah yang biasa digunakan, userid, kata sandi, url, dll.
sumber
!find<ESC>CTRL-E
berhasil, tapi saya ragu saya akan bisa mengingatnya besok. Apa itu ESC CTRL-E?Belajar menggunakan Ctrl-Rdan Ctrl-Smemungkinkan untuk dengan mudah mencari perintah yang Anda cari dalam sejarah, dan Anda sudah menemukan variabel lingkungan HISTCONTROL untuk mengabaikan duplikat dan mengubah situs file bash history.
Saya biasanya melakukan banyak Ctrl-Rdiikuti oleh Ctrl-Edan mengubah beberapa parameter, jika saya melewatkan perintah yang ditemukan dengan menekan Ctrl-Rsatu kali terlalu banyak, Ctrl-Suntuk menyelamatkan.
sumber
Saya selalu lebih suka menyimpan perintah yang terakhir digunakan dan hasilnya.
sumber
Selain jawaban yang baik di atas, jika Anda menggunakan gui berdasarkan kde atau gnome, maka AutoKey dapat sangat membantu.
Ini memungkinkan Anda membuat frasa yang dipicu dengan mengetikkan beberapa karakter atau menekan tombol pintas. Frase ini kemudian diganti atau ditambahkan ke input Anda.
Ini juga mendukung skrip yang ditulis dengan python yang dapat Anda lakukan melakukan apa saja jika Anda tahu python. Saya belum tahu python, tapi saya sudah mendapatkan beberapa skrip yang sangat mendasar untuk melakukan hal-hal yang rapi.
Semuanya tampak berasal dari keyboard Anda, sehingga berfungsi dengan aplikasi apa pun yang menerima input keyboard - dan dengan desktop Anda sendiri.
Ini memiliki banyak opsi untuk mengontrol bagaimana dan di mana hal-hal ini diaktifkan, sehingga Anda dapat memiliki beberapa yang hanya berfungsi di konsol Anda dan yang lain hanya bekerja di jendela lain. Anda juga dapat mengatur frasa untuk dijalankan segera setelah Anda mengetik string yang memicu mereka atau menunggu sampai Anda memberi mereka OK.
sumber
Seperti orang lain katakan alias adalah teman Anda. Untuk hal-hal yang sedikit lebih rumit (ketika Anda membutuhkan argumen di suatu tempat di antara instruksi) saya menggunakan fungsi di .zshrc saya, seperti:
yang berfungsi seperti cari (saya menggunakannya ketika karena alasan tertentu db tidak tersedia). Atau
untuk pengganti killall.
sumber
Selain menggunakan Cntl-Runtuk melihat kembali di
.bash_history
, saya juga memiliki file README di~/develop
direktori di mana saya meletakkan perintah panjang seperti untukgit
/svn
, jadi saya bisa kembali lagi nanti ketika saya perlu. Demikian pula, saya berencana memiliki~/install/README
file untuk meletakkan semua nama paket umum yang biasanya saya instal setelah menginstal versi baru Linux / Ubuntu. Jadi idenya adalah untuk memiliki file README di dalam setiap direktori, misalnya Video, Audio, ... dan memasukkannya perintah / tips umum, yang mungkin perlu Anda ketahui di lain waktu.sumber