Az egész rendszerre érvényes, belépéskor automatikusan végrehajtott parancsok és beállítások helye a /etc/profile, ami rendszergazdaként, vagyis root user-ként (felhasználóként) szerkeszthető. Csak a prompt-beállítás szempontjából fontos részeket idézem.
gvamosi@gergo1:~$ cat /etc/profile
if [ "${PS1-}" ]; then
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "id -u" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
Nézzük meg a PS1 környezeti változó beállítását, ami nem más, mint a prompt jel. 🙂
Értelmezés: ha a PS1 környezeti változó beállított azaz definiált (set -u parancccsal ekvivalens a szintaxis, a set-ről a későbbiekben lesz szó), továbbá a BASH környezeti változó is létezik és értéke nem /bin/sh, akkor végrehajtja a /etc/bash.bashrc file-ban foglaltakat (a . <script-név> ekvivalens a source <script-név> jelöléssel) Nézzük csak meg ezt a file-t! Csak a prompt-beállítás szempontjából fontos részeket idézem.
gvamosi@gergo1:~$ cat /etc/bash.bashrc
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, overwrite the one in /etc/profile)
# but only if not SUDOing and have SUDO_PS1 set; then assume smart user.
if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
Ez a szkript-rész először megnézi, hogy nem zérus-e a PS1 környezeti változó, azután megpróbálja beállítani a debian_chroot változót – a chroot-ról majd később -, végül pedig beállítja a prompt-ot. Ha van chroot változó, akkor (ez_a_chroot) kezdetű, amúgy pedig \u – felhasználónév @ \h – hosztnév : \w munkakönyvtár és a végén egy dollárjel és egy “space” – üres karakter. 🙂
gvamosi@gergo1:~$
A ~ jel nem mást jelöl, mint a home könyvtárat. A pwd parancs mindig kiírja az aktuális könyvtárat.
gvamosi@gergo1:~$ pwd
/home/gvamosi
Az összes környezeti változót amúgy a set paranccsal kérdezhetjük le.
gvamosi@gergo1:~$ set | grep PS1
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
A grep parancsról és a | pipe jelről pedig majd a későbbiekben írok. 🙂