Variabel prompt $PS1
mungkin tidak disetel, jadi bawaan bawaan \s-\v\$
digunakan.
Ketika bash dijalankan secara interaktif, ia mengambil file konfigurasi, biasanya salah satu ~/.bashrc
atau ~/.bash_profile
, menganggapnya ada, dan ini adalah bagaimana prompt yang lebih menarik diatur. Dari man bash
:
DOA
[...] Ketika bash dipanggil sebagai shell login interaktif, atau sebagai shell non-interaktif dengan opsi --login, bash pertama kali membaca dan mengeksekusi perintah dari file / etc / profile, jika file itu ada. Setelah membaca file itu, ia mencari ~ / .bash_profile, ~ / .bash_login, dan
~ / .profile, dalam urutan [...]
[...] Ketika shell interaktif yang bukan shell login dimulai, bash membaca dan mengeksekusi perintah dari
~ / .bashrc, jika file itu ada.
Tidak memiliki set prompt Anda dapat terjadi dalam dua konteks yang berbeda, shell login dan shell non-login. Jika Anda menggunakan manajer tampilan untuk masuk langsung ke GUI, Anda tidak menemukan shell login kecuali Anda beralih ke konsol virtual (via, mis. CtrlAlt+ F1 ke F6). Namun, Anda dapat menguji profil login pesta Anda di GUI dengan membuka shell login baru secara eksplisit: bash -l
.
Masalah terjadi dengan shell non-login
Jika masalah terjadi dengan, misalnya, terminal GUI normal, mungkin salah Anda ~/.bashrc
hilang, atau telah diedit untuk mengecualikan sumber file global, mungkin /etc/bashrc
.
Jika ~/.bashrc
tidak ada, harus ada yang /etc/skel/.bashrc
digunakan untuk membuatnya untuk pengguna baru. Cukup salin file itu ke direktori home Anda, dan prompt default Anda akan kembali untuk shell baru berikutnya yang Anda buka.
Jika ~/.bashrc
memang ada, periksa untuk melihat apakah ada garis di suatu tempat yang sumbernya /etc/bashrc
:
. /etc/bashrc
-OR-
source /etc/bashrc
Jika tidak, periksa apakah file itu ada (seharusnya, setidaknya di sebagian besar distro linux) dan tambahkan baris seperti itu ke file Anda ~/.bashrc
.
Masalah terjadi dengan shell login
Jika masalah terjadi dengan shell login dan juga shell non-login, masalahnya mungkin sama seperti di atas. Jika itu terjadi hanya dengan shell login, Anda tidak memiliki salah satu file yang disebutkan untuk shell login di bawah kutipan INVOCATION di atas, atau mereka tidak sumber Anda ~/.bashrc
, yang normal pada kebanyakan distro linux. Jika tidak ada file-file itu ada, buat ~/.bash_profile
dengan ini di dalamnya:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
Ini memungkinkan Anda, untuk sebagian besar, menyimpan konfigurasi Anda dalam satu file ( ~/.bashrc
).
Jika apa pun yang Anda lakukan, Anda tidak bisa mendapatkan prompt kembali, Anda dapat membuatnya dan melakukannya seperti ~/.bashrc
ini:
if [ "$PS1 ]; then
PS1= .... # see below
fi
Ini karena $ PS1 disetel dan memiliki nilai default untuk shell interaktif, dan Anda tidak ingin mengaturnya karena hal lain mungkin menggunakan nilai ini untuk menentukan apakah ini adalah lingkungan interaktif.
Halaman bash man berisi bagian PROMPTING yang menjelaskan cara mengatur prompt dengan fitur dinamis seperti nama pengguna Anda dan direktori kerja saat ini, yang akan menjadi, misalnya ,:
PS1="\u \w:"
Ada panduan untuk menggunakan warna di sini . Perhatikan fakta bahwa Anda harus menyertakan karakter yang tidak dicetak dalam \[
dan \]
(ada diskusi tentang ini di akhir jawaban tentang warna).