Misalnya, alias umum yang pernah saya lihat di ~/.bashrc
file (atau yang setara) adalah
alias rm='rm -i'
Namun, saya telah melihat orang merekomendasikan ini karena
- alias mungkin tidak ada di sistem lain dan karena Anda menjadi ceroboh
rm
, Anda secara tidak sengaja menghapus sesuatu yang penting. [1] - dengan menggunakan alias ini, Anda pada dasarnya melatih diri Anda untuk mengetik
y
atauyes
setelah setiaprm
perintah, yang mengalahkan seluruh tujuan.
Apakah ada alasan lain untuk merekomendasikan hal ini? Mungkinkah beberapa program hanya membuat panggilan, rm
bukan \rm
, dan mengatasinya dapat menyebabkan masalah bagi mereka?
Saya menggunakan rm
hanya sebagai contoh, tetapi saya telah melihat perintah lain suka cp
atau mv
ditutupi oleh alias juga. Secara pribadi, saya perlahan melatih diri untuk menggunakan alias seperti ini di tempat rm -i
:
alias trash=`mv -v -t $HOME/.Trash`
shell
command-line
alias
Ricardo Altamirano
sumber
sumber
rm -i
, itu melatih saya sedikit lebih untuk secara otomatis menambahkan-f
bendera.rm -i
untuk apa pun yang Anda inginkan. Sepertidel
,irm
, dll Anda tidak perlu untuk alias untukrm
. Ini menghindari titik 1, dan dengan secara selektif menggunakandel
ataurm
tergantung pada apa yang Anda inginkan, Anda juga menghindari titik 2 sampai taraf tertentu.Jawaban:
Dengan asumsi bahwa Anda menggunakan bash, ini seharusnya tidak menyebabkan masalah untuk skrip, karena bash shell non-interaktif tidak bersumber
~/.bashrc
atau~/.bash_profile
(yang kemungkinan besar tempat alias Anda diletakkan, atau merupakan langkah pertama untuk mencari alias Anda di skrip lain) . Namun, hal itu dapat menyebabkan masalah jika Anda mencari skrip:Pertanyaan Anda mencakup sebagian besar kekhawatiran umum tentang pengalihan perintah yang ada, yang utama adalah bahwa lingkungan yang tidak dikenal yang pada pandangan pertama tampak sama berpotensi menghasilkan hasil yang sangat berbeda. Misalnya, aliasing
rm
untukrm -i
memiliki niat baik, tetapi buruk dalam praktek untuk alasan Anda negara.sumber
Tentu saja:
(3) Karena suatu hari saya berharap dapat menambah fondasi yang dibangun oleh [-----------] dan orang-orang paranoid yang menghukum orang lain karena meniadakan perintah standar, walaupun aliasing perintah standar adalah, yah, standar .
Namun serius, ini hanya peringatan. Jika Anda memercayai diri sendiri untuk tidak jatuh ke dalam lubang kehancuran itu, maka waspadalah dan teruskan.
Secara pribadi, saya alias sangat sedikit perintah standar; Saya menggunakan sedikit variasi karena saya, hanya sedikit, paranoid dan anal. Tapi satu manfaat yang saya temukan untuk ini adalah berkaitan dengan sistem di mana saya sering login sebagai root atau pengguna lain, dan ada beberapa hal yang saya tidak ingin secara tidak sengaja / malas dijalankan sebagai root:
atau
sumber
Sebagai contoh ekstrem, izinkan saya hanya alias perintah standar untuk menggambarkan mengapa aliasing perintah standar dapat berbahaya:
Jelas, ini buruk karena akan menyebabkan kejutan buruk suatu hari nanti. Demikian juga, mengganti perintah standar dengan alias pada akhirnya akan menyebabkan kejutan yang disayangkan ketika Anda tidak mengharapkannya.
Tapi izinkan saya menyajikan skenario umum yang akan terjadi pada hampir setiap admin Unix saat mereka maju dalam karir mereka:
Suatu hari di masa depan, Anda akan memulai pekerjaan baru dan akan bekerja pada sistem baru yang dibuat oleh orang lain. Ini akan menjadi jam tiga pagi pada hari Sabtu dan Anda tidak berpikir jernih dan cenderung membuat kesalahan. Lingkungan standar Anda tidak akan tersedia. Faktanya, Anda root.
Mengingat ini, apakah Anda akan mengingat yang
rm
tidak aliasrm -i
? Apakah Anda akan memeriksa alias khusus Anda setiap kali Anda masuk ke dalam kotak? Jika Anda mengubah lingkungan root, apakah rekan kerja Anda akan senang dengan perubahan Anda?Saya jujur di pagar tentang ini. Saya telah bekerja pada ribuan sistem dalam karier saya, dan jika saya memodifikasi lingkungan pada semua sistem ini, akan sulit untuk melihat nilainya.
Mengasingkan
rm
kerm -i
sangat umum dan saya telah melihatnya mencegah banyak masalah, tetapi juga menyebabkan banyak kejutan dan jam kerja ekstra untuk memulihkan file yang terhapus secara tidak sengaja.Jadi sekarang saya mencoba untuk menghindari aliasing perintah sistem umum. Sebaliknya saya menggunakan alias dan fungsi untuk melakukan hal-hal yang shell tidak dapat dengan mudah dilakukan. Apa yang saya cenderung lakukan sekarang adalah melampirkan surat tambahan ke alias, seperti:
Dan mungkin saya benar-benar harus menyingkirkan alias terakhir saya, karena beradaptasi dengan praktik baru membutuhkan waktu:
sumber
ls
mungkin lebih nyaman daripada mengingat sepuluh alias.rm
->rm -i
contoh adalah jauh lebih baik. Satu lagi yang bagus akan menjadi salah satu yang alias rm untuk meletakkan hal-hal di a~/.trash
Ada lebih banyak bahaya untuk itu.
Misalnya, jika Anda menggunakan
shell-command
dalam Emacs, Anda mungkin berpikir Anda mendapatkan perintah "Anda" (atau alias , tetapi Anda tidak harus memukulls
alias di terminal yang berkali-kali sebelum Anda lupa semua tentang pengaturan alias, memikirkan itu seperti perintah lain ...) - pada kenyataannya (kembali ke Emacs), Anda mendapatkan perintah (tidak diubah). Emacs akan menjalankannya tanpa masalah, jadi Anda bahkan mungkin buta dengan apa yang baru saja terjadi!Adapun komputer dan / atau sistem yang berbeda, jika Anda pikir itu terlalu membosankan untuk mengatur
.rc
file individual untuk mereka semua, Anda hanya dapat memiliki satu file seperti itu, tetapi denganif
klausa untuk menyesuaikan.Misalnya, alih-alih menilai setiap fungsi saat Anda menulisnya, hanya ketika Anda mengalami masalah dengan salah satu dari mereka, tambahkan mereka ke "daftar hitam", terakhir:
sumber
Mengganti nama perintah standar dengan alias (yaitu,
rm=rm -i
hal-hal) tentu saja dapat menyebabkan kejutan ketika alias tidak tersedia. Saya lebih suka untuk tidak menggunakan seperti itu, dan (oleh beberapa pahit, pengalaman pahit ;-) Saya sudah menjadi acustomed untuk membaca setiap perintah dua kali, dan jika iturm
ataumv
atau apa pun yang berpotensi merusak tiga kali. Dan alias semacam itu menyebabkan "rm foo" ENTER "y" otomatis Ups !! tetap (dan biaya penekanan tombol ekstra setiap kali).Tapi itu hanya aku. Jika Anda tidak berharap untuk berjalan di lingkungan asing (mesin lain, pengguna lain, ...) dan Anda dapat menginstal alias favorit Anda di mana pun Anda berada, menjadi liar. Unix terkenal memberi pengguna lebih dari cukup tali untuk menembak kaki mereka sendiri.
sumber
Jawaban lainnya baik, tetapi mereka semua hanya melihat bagaimana pengaruhnya terhadap Anda.
Biarkan saya mengubah jawaban @Stephan Laswieski di kepala itu sedikit.
Dengan asumsi Anda tidak mahatahu, Anda mungkin perlu orang lain mengerjakan akun pengguna Anda atau memberi tahu Anda cara melakukan sesuatu.
Kemudian, ketika mereka melakukan sesuatu atau menyuruh Anda melakukannya, itu mungkin tidak berfungsi seperti yang diharapkan.
Paling-paling, Anda harus membuang waktu untuk menjelaskan kepada mereka apa yang terjadi (jika Anda di sana dan dapat mengingat atau mengetahui bahwa alias adalah penyebab masalah).
Paling buruk, lihat twist pada contoh di salah satu jawaban lain: alias ls = 'rm -rf'.
sumber