Cara mendefinisikan alias secara terus-menerus di Terminal

18

Saya ingin menambahkan alias ke lingkungan saya sehingga tersedia di semua instance Terminal.

Saya mendapat jawaban ini :

Ya, Anda bisa meletakkannya di .bashrc, .bash_profile atau .profile Anda. Pada beberapa sistem, skrip init shell juga sumber .bash_aliases atau .aliases jadi jika salah satu file itu ada di sistem Anda, mungkin masuk akal untuk menggunakannya.`

Tetapi saya tidak dapat menemukan file-file ini.

(Saya mengkonfigurasi OS X untuk melihat file yang tersembunyi, namun saya tidak melihat satupun dari yang di atas 4.)

Elad Benda
sumber
Alias ​​hanya berfungsi di shell (di Terminal), jadi apa sebenarnya yang Anda maksud dengan menambahkan alias ke lingkungan OS X Anda? Apakah Anda ingin membuat alias dapat diakses oleh semua pengguna?
nohillside
Maksud saya itu akan ditetapkan untuk setiap instance terminal yang saya buka di masa depan
Elad Benda
Saya telah memutar kembali hasil edit Anda karena itu mengubah fokus pertanyaan. Jika Anda masih mencari jawaban tentang cara menambahkan alias ke zsh, tanyakan pertanyaan baru.
nohillside

Jawaban:

23

Jika Anda menggunakan bash, tambahkan perintah alias ke ~ / .bashrc dan simpan file seperti ini sebagai ~ / .bash_profile:

. ~/.bashrc

Ketika bash dipanggil sebagai shell non-login interaktif, ia membaca .bashrc tetapi tidak .bash_profile. Ketika bash dipanggil sebagai shell login interaktif, ia membaca .bash_profile tetapi tidak .bashrc.

Terminal dan iTerm secara default membuka shell baru sebagai shell login, sehingga banyak pengguna OS X hanya menggunakan .bash_profile sebagai file konfigurasi pribadi mereka. Misalnya tmux dan mode shell di Emacs membuka shell baru sebagai shell non-login.

. profil juga dibaca oleh shell lain seperti ksh. Jika keduanya .bash_profile dan .profile ada, bash hanya membaca .bash_profile ketika dipanggil sebagai shell login interaktif.

Lihat https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html untuk informasi lebih lanjut.

Lri
sumber
3
@EladBenda Jika Anda menggunakan zsh, tambahkan perintah alias ke ~/.zshrc. ~/.zshrcdibaca oleh non-login (interaktif) dan shell login, jadi Anda tidak perlu mengambilnya dari ~/.zprofile.
Lri
Saya selalu ingin tahu perbedaan antara .bash_profile dan .bashrc, sekarang saya tahu. Terima kasih.
Deesbek
Pilihan yang lebih baik adalah menyimpan alias di dalam file bernama ~ / .aliases jika Anda menggunakan oh-my-zsh. Jika file ini tidak ada, itu dapat ditambahkan di folder rumah dan akan menjadi file tersembunyi.
Anusha
6

Buka jendela Terminal baru dan pergi ke direktori home Anda (cukup ketik cddan tekan Enter).

Setelah itu, ketik ls .bash*dan juga ls .profile(harap perhatikan masing-masing nama file dimulai dengan titik). Jika Anda memiliki file-file itu (dan Anda harus memiliki setidaknya file .profile) maka Anda perlu mengeditnya dan menambahkan alias Anda ke dalamnya. Saya menggunakan VI (atau VIM) untuk mengedit file-file itu, tetapi Anda bisa menggunakan editor lain (sebenarnya mengetik di jendela Terminal Anda open .bash_profileakan membukanya di TextEditor, yang mungkin sedikit lebih ramah pengguna jika Anda tidak terbiasa dengan VI) . Jika, karena suatu alasan, Anda tidak memiliki file-file itu, lalu buat yang baru (dan panggil .bashrc), tambahkan baris alias Anda ke dalamnya (jadi ini akan menjadi satu perintah per baris, karena Anda akan mengetiknya di shell) dan kemudian simpan file tersebut. Anda kemudian dapat membuat symlink ke .bash_profile dan .profile dengan menggunakan ln -s .bashrc .bash_profile; ln -s .bashrc .profile.

Apa yang biasanya saya lakukan adalah saya membuat .bashrc dan .bash_profile tautan simbolis ke .profile dan kemudian hanya perlu khawatir tentang satu file saja.

Perbedaan antara file-file itu adalah bahwa bash akan sumber yang berbeda tergantung pada apakah itu telah dimulai sebagai shell login (biasanya proses login akan memulai shell sebagai shell login) atau sebagai hanya shell interaktif (tetapi tidak login), atau shell non-interaktif. Memiliki ketiga file pada dasarnya sama memberi saya lingkungan yang konsisten terlepas dari bagaimana bash dimulai.

Anda akan mendapatkan lebih banyak informasi dengan melakukan man bash, tetapi bersiaplah, itu adalah halaman manual yang panjang. Anda akan dapat melihat yang mana dari tiga file (.bashrc, .profile dan .bash_profile) yang bersumber tergantung pada mode mana bash dimulai.

Semoga itu bisa membantu - jika tidak, beri aku teriakan.

mikrofon
sumber
3

Masukkan perintah berikut di Terminal:

cd /etc
sudo vi bashrc

tambahkan seperti berikut:

alias ll="ls -lrt"

Akhirnya restart Terminal.

pengguna172265
sumber
2

Jika Anda membutuhkan mesin ini lebar Anda perlu melihat di /etcfolder. Namun, mereka mungkin tidak ada secara default, dalam hal ini Anda hanya perlu membuatnya di folder di atas dan restart terminal. Kemungkinan besar Anda perlu menggunakannya sudountuk membuatnya karena /etcfolder tersebut dimiliki oleh root.

Jika Anda membutuhkan ini untuk setiap terminal yang Anda buka, Anda tidak perlu melakukannya dengan lebar mesin. Anda dapat membuat file-file ini di folder rumah Anda sendiri dan itu akan dibaca oleh terminal setiap kali Anda memulai sesi terminal.

Juga seperti yang disebutkan dalam komentar, Anda umumnya hanya dapat melihat ini menggunakan terminal dan menggunakan ls -lha.

BinaryMisfit
sumber
0

jika Anda telah menginstal ruby, lihat skrip ruby ​​ini https://github.com/ytbryan/aka

Script ini menyediakan fungsionalitas seperti persistensi dan sumber otomatis file dot. Anda dapat mengelola alias melalui terminal tanpa memutus alur kerja Anda dan membuka editor teks.

disclaimer: Saya menulis skrip ini dan menggunakannya setiap hari. Beri tahu saya jika ada bug / ide. :)

ytbryan
sumber
0

Bagi Anda yang mencari perintah ll seperti di Linux BASH, dibuat seperti ini ...

alias ll="ls -laF"

Tambahkan baris itu ke .bashrcfile Anda , lalu duplikat .bashrcfile sebagai .bash_profile, dan Anda akan selalu dan selamanya.

Untuk apa nilainya, ll di linux BASH hanyalah alias " ls -laF".

Phillip H. Blanton
sumber
-2

Saya memiliki masalah yang sama, bahwa saya tidak punya .ash atau .profile di lokasi profil saya. saya akhirnya menemukannya di / etc

Leo Boulanger
sumber
1
/ etc digunakan di seluruh sistem. Saya sangat menyarankan untuk tidak mengedit file-file ini, tetapi menggunakan file profil Anda sendiri di folder rumah Anda, misalnya ~ / .bash_profile.
grg
saya tidak perlu memiliki ~ / .bash_profile, itu adalah hal pertama yang saya coba dan jika saya membuat satu, itu tidak akan digunakan bahkan setelah restart, saya percaya admin saya pasti telah mencegahnya. Saya sekarang menggunakan zsh dan .zshrc berfungsi dengan baik
Leo Boulanger