Saya ingin membuat alias untuk rm perintah untuk memiliki pesan konfirmasi setelah menjalankan perintah ini. Jadi saya membuat alias seperti ini alias rm='rm -i'. Tapi sejauh yang saya tahu ini adalah alias sementara dan itu hidup sampai Anda menutup terminal.
Seperti yang dijelaskan di sini untuk menyimpan alias secara permanen saya perlu mengeksekusi ~/.bash_aliases atau ~/.bashrc perintah di terminal dan tambahkan alias saya di sana. Tapi ketika saya mengeksekusi ~/.bashrc Saya mendapatkan pesan kesalahan berikut :
bash: /home/bakhtiyor/.bashrc: Permission denied
Ketika saya menjalankan ~/.bash_aliases Saya mendapatkan pesan kesalahan lain seperti ini:
bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.
Apa masalah sebenarnya dan bagaimana saya bisa mengatasinya?
Ada banyak cara untuk membuat alias. Cara yang paling banyak digunakan adalah:
Tambahkan alias langsung di ~/.bashrc berkas
Sebagai contoh: tambahkan baris ini ke ~/.bashrc berkas
alias ll='ls -l'alias rm='rm -i'
Lain kali (setelah Anda keluar/masuk, atau selesai . ~/.bashrc) saat Anda mengetik rm the rm -i perintah akan dieksekusi.
Metode kedua memungkinkan Anda membuat file alias terpisah, jadi Anda tidak perlu memasukkannya .bashrc, tetapi untuk file pilihan Anda. Pertama, edit ~/.bashrc file dan tambahkan baris berikut jika mereka belum ada, atau tanda komentar mereka jika mereka lakukan:
if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi
Simpan dan tutup file. Setelah itu, yang harus Anda lakukan adalah membuat ~/.bash_aliases file dan tambahkan alias anda di sana, dengan format yang sama yang ditentukan dalam metode pertama.
Kedengarannya bagi saya seperti satu-satunya masalah Anda hanya mencoba untuk mengeksekusi .bashrc ketika tidak dieksekusi. Tapi ini bukan cara yang benar untuk melakukannya; setiap kali Anda membuat perubahan pada file ini, Anda harus "menjalankannya" dengan perintah:
source ~/.bashrc
Jika tidak, itu hanya akan membuat shell baru, mengeksekusi file di lingkungan shell baru, lalu membuang lingkungan itu ketika keluar, sehingga kehilangan perubahan Anda. Dengan sumber script, mengeksekusi dalam shell saat ini, sehingga akan tetap berlaku.
Saya berasumsi kesalahan kedua adalah karena bash_aliases tidak ada. Hal ini tidak diperlukan, hanya disarankan untuk menjaga perubahan Anda terpisah dan terorganisir. Hal ini hanya digunakan jika ada, dan Anda dapat melihat tes untuk itu di .bashrc:
if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi
Ini mengatakan bahwa jika file ~/.bash_aliases ada, lalu jalankan.
Ini adalah contoh yang saya cari, cara untuk mengetik beberapa huruf di terminal ("vps") untuk masuk dari jarak jauh ke server dan mengaktifkan penerusan X11 sehingga saya dapat menjalankan aplikasi gui seperti" gedit " melalui jaringan.
>>Apa pun perintah / perintah alias, cara ini dengan pernyataan echo, tanda kutip, dan simbol untuk menambahkan output dari perintah ke file () bekerja untuk saya. Cukup ganti perintah saya untuk perintah alias yang Anda butuhkan dan masukkan ke terminal Anda.
Saya menulis fungsi bermanfaat ini untuk membuat alias baru dengan cepat, dan kemudian menulis definisi alias ke ~/.bash_aliases(jika ada) atau ~/.bashrc.
TIP: Memastikan ~/.bash_aliases ada & amp; dieksekusi di ~/.bashrc.
# -----------------------------------# Create a new permanent bash alias## @param $1 - name# @param $2 - definition# -----------------------------------new-alias () { if [ -z "$1" ]; then echo "alias name:" && read NAME else NAME=$1 fi if alias $NAME 2 > /dev/null > /dev/null; then echo "alias $NAME already exists - continue [y/n]?" && read YN case $YN in [Yy]* ) echo "okay, let's proceed.";; [Nn]* ) return;; * ) echo "invalid response." && return;; esac fi if [ -z "$2" ]; then echo "alias definition:" && read DEFINTION else DEFINTION="$2" fi if [ -f ~/.bash_aliases ]; then echo "alias $NAME=\"$DEFINTION\"" >> ~/.bash_aliases else echo "alias $NAME=\"$DEFINTION\"" >> ~/.bashrc fi alias $NAME="$DEFINTION"}
jika Anda menggunakan ruby, Anda dapat menginstal alias menggunakan rubygem.
gem install aka2
penggunaan
aka generate hello="echo helloworld" #add an aliasaka g hello="echo helloworld" #add alias for lazy peopleaka destroy hello #remove aliasaka d hello #remove alias for lazy people
rubygem akan otomatis Sumber File dot anda sehingga anda tidak perlu. Coba lihat.
Seingat saya, bashrc memiliki, atau memiliki, garis yang menyarankan untuk tidak menggunakannya untuk alias secara langsung. The solusi adalah dengan menggunakan file eksternal(s). The foo dan bar Alias telah ditambahkan, tetapi untuk menambahkan baz the bashrc file harus "bersumber" (atau, cukup buka terminal baru). Contoh sebagai: