Saya mencoba menemukan di mana spesifik alias
telah dinyatakan. Saya telah mencari semua tempat yang biasa saya tahu untuk mencari alias:
- ~ / .bashrc
- ~ / .bash_profile
- / etc / bashrc
- / etc / profile
Tanpa keberuntungan.
Saya tahu itu alias
karena ketika saya melakukannya which COMMAND
, saya mendapatkan:
alias COMMAND='/path/to/command'
/path/to/command
Apakah ada cara untuk menemukan file yang menyatakan alias
hanya mengetahui alias
nama?
set -x
seperti yang disarankan di bagian atas Anda dan lihat apakah itu mempersempitnya untuk Anda.set -x
di atas/etc/bash_profile
atau/etc/bashrc
. Mengapa tidak hanya menjalankanbash -i -x
ataubash -l -x
?Jawaban:
Saya akan mencari
/etc/profile.d/
kesalahannyaalias
.Anda juga dapat melakukan yang berikut untuk menemukannya:
Ini akan secara rekursif
grep
melalui file mencari baris yang dimulai denganalias COMMAND
.Jika semuanya gagal, letakkan ini di akhir Anda
~/.bashrc
sumber
Ada beberapa hal yang dapat Anda coba:
bash -v
untuk melihat baris apa yang sedang dibaca saat startup shellbash -x
untuk melihat perintah apa yang sedang dijalankan saat startup shellbash -v
The
-v
pilihan membuatbash
mencetak setiap baris dari setiap file script itu berbunyi seperti membaca itu.Mulailah dengan berlari
tunggu 5-10 detik, lalu tekan Ctrl+C.
Ini akan memberi Anda satu file yang disebut
bash-i.out
itu seperti semua file startup Anda digabung (atau digabung) bersama-sama.Kemudian gunakan
less
untuk membuka file dan mencari alias menggunakan/aliasname
.Sekarang, bandingkan di mana alias itu muncul dalam kaitannya dengan baris lain dalam file. Misalnya, pada sebagian besar sistem,
/etc/bash.bashrc
ada komentar di bagian atas yang mengatakan/etc/bash.bashrc
dan~/.bashrc
ada juga.Jika itu di atas bagian atas Anda
~/.bashrc
, maka itu mungkin file startup di/etc
yang mendefinisikan alias, jika tidak di dalam Anda~/.bashrc
atau file itu termasuk melaluisource
atau.
(perintah dot).Jika itu tidak menunjukkan alias, coba
Itu memberitahu bash menjadi shell login, yang membaca beberapa file startup yang berbeda, misalnya
/etc/profile
dan~/.bash_profile
bukannya/etc/bash.bashrc
dan~/.bashrc
.bash -x
Jika
bash -v
tidak memberikan jawaban yang pasti, coba jalankanbash -x
, yang mencetak perintah yang dijalankan shell, daripada baris yang dibaca shell Anda.Metode ini pada dasarnya sama dengan yang di atas kecuali berubah
-v
menjadi-x
. (Anda dapat menggunakan keduanya bersama-sama jika perlu.)Jalankan hanya dengan satu file startup
dan lihat apakah Anda memiliki alias.
Coba hal yang sama dengan
rcfile
set ke/etc/bash.bashrc
apakah sistem Anda memilikinya.Lalu coba
dan lakukan hal yang sama dengan setiap file startup bash yang memiliki
profile
namanya, mis. ubah$HOME/.bash_profile
ke/etc/profile
.Cara apa pun yang membuat alias muncul memberi tahu Anda file yang harus Anda mulai lihat.
sumber
Mungkin Anda
.xinitrc
? Anda juga harus memeriksa untuk melihat apakah Anda.bashrc
atau.bash_profile
sumber file lain di dalamnya. Sebagai contoh, saya menyimpan semua alias saya di file terpisah yang dirujuk oleh perintah ini:Beberapa pertanyaan yang mungkin juga membantu: Apakah ini untuk pengguna biasa atau root? Perintah apa itu? Apa rasa Linux?
sumber
Saya mengikuti praktik yang sangat umum untuk memasukkan definisi alias saya
dan kemudian memanggilnya dari .bashrc dengan
sumber