Katakanlah seseorang duduk di belakang laptop saya sebentar dan berjalan:
alias cd='Ha Ha, Got You :))'
atau kami menjalankan perangkat lunak / skrip / etc yang tidak dikenal dan menambahkan sesuatu ~/.bashrc
. Suka:
alias sort='rm -rf ~'
Ini hanya contoh aliases
; Seperti yang Anda ketahui, hal-hal ini juga dapat dilakukan menggunakan fungsi:
cd(){ echo "Removing everything you've got :D"; }
Situasi ini hanyalah contoh imajiner, pertimbangkan yang serupa.
Bagaimana dengan skrip kecil?
sudo -n ls &>/dev/null
if [ "$?" -eq "0" ]
then
sudo "Some dangerous command"
else
cd $1
fi
Lalu alias cd="/home/user/.config/gtk/.cd.sh"
.
Untuk perintah yang telah dijalankan di bash, kita cukup menutup dan membuka kembali terminal kita, tetapi bagaimana dengan yang telah diatur dalam file startup, kita tidak bisa memeriksa file atau daftar alias / fungsi setiap kali kita menjalankan terminal. .
command-line
bash
bashrc
alias
Ravexina
sumber
sumber
/bin/bash
; yang lain menyimpan daftar alias di dalam skrip di tempat yang aman (izin) yang berisi sesuatu sepertiunalias -a; alias x='...'; alias y='...';
. kemudian menjalankannya dengan path absolut:/usr/local/bin/reload_aliases
.Jawaban:
pengantar
File konfigurasi bash
Bash memiliki banyak file konfigurasi (alias startup), menggunakan file-file ini untuk mengatur lingkungan tertentu untuk setiap pengguna.
Beberapa file-file ini terletak di
/etc
, salah satunya yang saya ketahui adalah/etc/profile
, ini adalah file konfigurasi global dan pengaturannya akan diterapkan ke semua sesi, yang lain adalah/etc/bash.bashrc
; Kami tidak perlu menangani file-file ini karena lokasinya sudah terlindungi dan hanya root yang berhak mengeditnya.Direktori yang sangat penting yang dapat banyak membantu kami adalah
/etc/skel
:; Setiap kali Anda membuat pengguna baru dengan direktori home, file dalam direktori ini akan digunakan sebagai kerangka untuk direktori home pengguna baru Anda.Kami juga dapat menggunakan
dpkg
untuk menemukan tentang file-file ini:kita dapat melihat bahwa semua ini diinstal oleh
bash
.Cara kerja di bash
Alias atau fungsi dapat diatur di salah satu file ini, jadi mari kita lihat bagaimana file-file ini akan digunakan oleh
bash
.Dari
bash
halaman manual:jadi urutannya adalah:
~/.bash_profile > ~/.bash_login > ~/.profile
yang ini akan dijalankan setiap kali kita keluar dari shell login, saya tidak bisa melihat bagaimana yang satu ini memiliki efek pada situasi kita.
jadi yang paling penting adalah
~/.bashrc
, karena hampir 90% shell bash yang kita jalankan berada dalam mode interaktif dan tanpa login. dan jika kita melihat file ini kita dapat melihat bahwa ia akan mencari file lain bernama~/.bash_aliases
, jika ia dapat menemukannya, maka itu akansource
file itu juga.Mulailah merawat file-file ini
Pertama-tama kita harus pindah
~/.profile
ke~/.bash_profile
sebaliknya tidak masalah jika kita melindungi~/.profile
file, seseorang dapat membuat~/.bash_profile
dan itu akan menimpa konfigurasi kita, jadi:Setelah itu jika Anda tidak menggunakan
~/.bash_aliases
file kemudian membuat itu, lagi seperti di atas, seseorang dapat dengan mudah membuat file ini dan ada kemungkinan bahwa ia dapat mengubah atau alias di dalamnya.Terakhir digunakan
chattr
untuk melindungi file-file ini dari pengeditan dan penghapusan.Dari
chattr
halaman manual:Kami selesai, Jangan lupa bahwa setiap kali Anda ingin mengedit file-file ini, Anda harus terlebih dahulu menghapus
-i
atribut.Setel ulang semuanya tanpa menutup / membuka kembali terminal
Solusi lain adalah, membuat file:
Letakkan alias Anda di sana:
Pastikan tidak ada yang bisa menulis ke file itu:
Sekarang setiap kali Anda ingin memuat ulang semua yang berjalan:
Kembalikan
Dan jika Anda berubah pikiran:
sumber
bash --rcfile=/home/evil/bashrc.bad
(dan biarkan luser mengeluarkan perintah ke shell itu).man bash
, dan cari--rcfile
. Dikatakan "Execute commands from file *instead* of the system wide initialization file /etc/bash.bashrc and the standard personal initialization file ~/.bashrc if the shell is interactive (see INVOCATION below).
" (tanda bintang saya)Jika Anda melakukan hal-hal bodoh (berjalan pergi tanpa mengunci layar, membabi buta menjalankan skrip yang tidak diketahui dari sumber yang tidak dipercaya, dll), Anda akan mendapatkan hasil yang buruk.
Berusaha cukup pintar untuk pulih dari praktik buruk tidak pernah berhasil sebelumnya.
sumber