Sebelum Anda mengklik, ini bukan pertanyaan "bagaimana cara membuat bash prompt saya berwarna". Saya sudah menyesuaikan bash prompt saya agar terlihat seperti ini:
[user @ host]----[$(pwd)]
$
di mana segala sesuatu di dalam tanda kurung berwarna biru muda, dan segala sesuatu yang lain (termasuk $) berwarna hitam dengan menambahkan yang berikut ke file ~ / .bashrc saya
# Turn the prompt symbol red if the user is root
if [ $(id -u) -eq 0 ];
then # you are root, make the prompt red
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n\e[01;31m#\e[00m "
else
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n$ "
fi
Tujuannya adalah untuk membuatnya sedemikian rupa sehingga satu-satunya hal yang berubah ketika saya menggunakan 'sudo su' adalah bahwa $ hitam berubah menjadi # merah. Saya telah mencari di /etc/bash.bashrc dan / etc / profile untuk melihat apakah hanya ada satu baris untuk berkomentar, tetapi ada banyak hal tentang debian_chroot yang tidak saya mengerti, dan saya tidak ingin untuk mengacaukan sesuatu. Bagaimana saya bisa mencapai apa yang saya inginkan?
PS Inilah yang saya ingin prompt terlihat seperti root
[user @ host]----[$(pwd)]
(red)#
edit: Tandai ini terpecahkan, tambahkan kode di atas ke ~ / .bashrc sementara root mencapai tujuan saya. Juga, dalam kode di atas, $ (pwd) hanya menampilkan direktori home (saya kira karena itu adalah direktori yang berfungsi ketika terminal dibuka), dan tidak pernah memperbarui. Mengganti $ (pwd) dengan perbaikan \ w ini, tetapi menampilkan direktori home sebagai ~
, yang saya coba hindari.
sumber
\e[01;31m
, dalam\[...\]
. Ini dijelaskan dalam PROMPTING dalam manual. Juga lihat mywiki.wooledge.org/BashFAQ/053pwd
tidak bekerja di prompt adalah, bahwa Anda harus keluar dari tanda dolar, jika tidak$(pwd)
akan dieksekusi sebelum konten ditempatkan dalam $ PS1. Anda dapat mengujinya dengan ini:PS1="\$(pwd) "
.Jawaban:
Ini juga akan tergantung pada bagaimana Anda menjadi pengguna root. Anda perlu membuat perubahan di .bashrc pengguna root jika Anda menggunakan sesuatu seperti
su - root
atausudo -i
, tempat Anda membaca di lingkungan.Dengan
sudo -s
, Anda harus membaca .bashrc Anda sendiri.Pertimbangkan untuk menambahkan pernyataan printf atau echo untuk men-debug kode Anda, untuk memberi tahu Anda ketika kode telah dieksekusi.
Gunakan
id
perintah untuk memastikan Anda adalah diri Anda yang sebenarnya:sumber
sudo su
sudo su
membaca ~ root / .bashrc (setidaknya seperti yang saat ini diterapkan pada sistem 13.04 saya).Untuk mengubah warna prompt menjadi merah untuk root, saya memodifikasi
.bashrc
file, mengikuti contoh di utas ini.Kemudian, dalam vim, cari tampilan akhir
PS1
penugasan, dan tambahkan berikut ini (perhatikan bahwa itu memperbarui nilai$PS1
sehingga baris sebelumnya lainnya tidak perlu dimodifikasi, dan perubahannya mudah dikembalikan):sumber
Mengikuti jawaban valid belacqua /ubuntu//a/305053/12218 , dengan menerbitkan sudo su .bashrc root dimuat.
Anda dapat memeriksa ini dengan mengeluarkan
sudo su
diikuticd ~
Anda akan melihat bahwa Anda berada di direktori home root.Menggunakan
sudo su
Anda login sebagai root (su = beralih pengguna) bertentangan dengansudo do some administrative task
sebagai pengguna dengan hak istimewa yang tinggi.Jadi dengan menggunakan
sudo su
Anda menjadi root aktual dan perubahan yang dibuat ke lingkungan adalah perubahan yang dibuat khusus untuk root, yaitu:sudo su
diikuti olehvim .bashrc
.sumber
Mengikuti mungkin membantu
Ini akan ditampilkan
'> '
untuk pengguna normal dan'# '
untuk root. Ini masih harus di root.bashrc
juga.sumber