A terminál aktuális munkakönyvtárának elrejtése

112

Alapértelmezésként a terminálkijelzés a következőt jeleníti meg:

user@system:/folder1/folder2/folder3/folder4$

a fájlrendszerbe mélyebb bejutás, annál kevésbé marad a parancsok beírása. Módosíthatom ezt, hogy csak valami ilyesmit mutasson:

>

Úgy értem, csak apwd -ot írhatom meg, hogy megmutassam, hol vagyok. ;)

    
készlet Theodor 09.12.2010 10:16
forrás

5 válasz

131
export PS1='\u@\h: '

Ez aoli@bert: értéket eredményezi az én parancsomhoz.

Ha tényleg valami minimalista kérdést szeretne, kérdezze meg ezt:

export PS1='> '

A~/.bashrc fájl végére csatolhatod, hogy továbbra is fennmaradjon a bejelentkezési adatok között.

Néhány színnel kreatív is lehet. Íme, amit a kiszolgálómban használok:

export PS1='\[3[0;35m\]\h\[3[0;33m\] \w\[3[00m\]: '

Adott (könnyebb látni egy teljes fekete háttéren):

Elfogadható karakterek szójegyzéke a PS1-ben

    
válasz adott Oli 09.12.2010 10:22
forrás
87

Csak az Oli válasza bővítéséhez (és annak érdekében, hogy rendelkezzenek egy könyvjelzővel a rövid szimbólumokkal):

A bash parancs (stefano@linux:~$) csak az első egy pár kérés láthatja:

  • PS1 : a héj megnyitásakor megjelenő alapértelmezett parancs

    Ez az érték aPS1 nevű környezeti változóban tárolódik. Ahhoz, hogy megtekinthesse az értékét, típusú

    echo $PS1

    Ez ad neked valamit, mint

    \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w$
    

    A módosításhoz új értéket állíthat be a változóhoz:

    export PS1="\u > "
    

    Ez a következőképpen fog megjelenni:

    stefano > 
    
  • PS2 : a másodlagos prompt. Ez akkor jelenik meg, ha egy parancs nem fejeződött be. Írja be aecho "asd parancsot, és nyomja meg az enter billentyűt, a másodlagos prompt adja meg többet amíg el nem zárja a fordított vesszőket.

  • A
  • PS3 a select (2)

  • A
  • PS4 az stack nyomok (alapértelmezett:+)

A változtatások véglegesekor a.bash_profile (vagy.bashrc) végére csatoljuk őket: ez a kérdés ) home könyvtárat.

Itt van egy többé-kevésbé teljes listája a rövidítésekről, amelyeket használhatsz ezek összeállításakor:

  • \a A "csengő" karakter
  • \A 24 órás idő
  • \d dátum (például kedd 21 dec.)
  • \e A "menekülési" karakter
  • \h Hosztnév (legfeljebb az első ".")
  • \H Hosztnév
  • \j Jelenleg futó állások száma (ps)
  • \l Aktuális tty
  • \n sor feed
  • \t Idő (hh: mm: ss)
  • \T Idő (hh: mm: ss, 12 h formátum)
  • \r kocsi vissza
  • \s Shell (vagyis bash, zsh, ksh ..)
  • \u felhasználónév
  • \v Összetett verzió
  • \V Teljes Bash kiadási karakterlánc
  • \w Aktuális munkakönyvtár
  • \W Az aktuális munkakönyvtár utolsó része
  • \! a jelenlegi index a történelemben
  • \# parancs index
  • $ "#" ha gyökér vagy, "$"
  • \ Literal Backslash
  • \@ Idő (12 órás formátum am / pm)

Természetesen betölthet bármilyen szó szerinti karakterláncot és bármely parancsot:

export PS1="\u $(pwd) > "

Ahol a$(pwd) a "pwd.

kimenetén áll
  • Ha a parancs helyettesítését megszünteti, mint a$(pwd) -ban, az értékelés minden alkalommal megjelenik, különben a$(pwd) -ban csak a bash indításakor lesz értékelve.

Ha szeretné, hogy a színek színe megjelenjen, használhatja bash színkódjait. A kód három részből áll:

40;33;01
  • A pontosvessző előtt álló első rész a szövegstílust jelöli.

    • 00 = none
    • 01 = félkövér
    • 04 = aláhúzás
    • 05 = pislogás
    • 07 = reverz
    • 08 = rejtett
  • A második és harmadik rész a szín és a háttérszín:

    • 30 = fekete
    • 31 = piros
    • 32 = zöld
    • 33 = sárga
    • 34 = kék
    • 35 = bíbor
    • 36 = cián
    • 37 = fehér

Minden rész elhagyható, feltételezve, hogy a bal oldalon kezdődik. azaz "1" jelentése merész, "1; 31" jelentése merész és piros. És akkor kapja meg a terminált, hogy színesben nyomtassa ki az utasításokat[ -al, és végül egym -al. 33 vagy 1B hexadecimális, az ASCII "ESCAPE" jel (az ASCII karakterkészlet speciális karaktere). Példa:

"[1;31mHello World[m"

A "Hello World" világos vörös színű szövegeket nyomtat.

    
válasz adott Stefano Palazzo 21.12.2010 22:57
forrás
6

A másik alternatíva az, hogy lerövidül a dolgozó könyvtárútvonalat ha túlságosan hosszú: vágja el a terminál parancssorának munkakönyvtárát

  

Hozzon létre egy kis pithon scriptet, amely végrehajtja a kívánt vágási logikát.

     

Példa: ~ / short.pwd.py

import os
from commands import getoutput
from socket import gethostname
hostname = gethostname()
username = os.environ['USER']
pwd = os.getcwd()
homedir = os.path.expanduser('~')
pwd = pwd.replace(homedir, '~', 1)
if len(pwd) > 30:
    pwd = pwd[:10]+'...'+pwd[-20:] # first 10 chars+last 20 chars
print '[%s@%s:%s] ' % (username, hostname, pwd)
     

Most teszteljük, egy terminálról:

export PROMPT_COMMAND='PS1="$(python ~/.short.pwd.py)"'
     

Ha rendben van az eredménnyel, csak add hozzá a parancsot a ~ / .bashrc

-be
    
válasz adott Olivier Lalonde 22.12.2010 01:26
forrás
4

Ezt gyakran ideiglenesen meg akarom csinálni. Itt van, amit csinálok:

$ export OLD_PS1=$PS1                    # save Long Prompt to OLD_PS1
$ export PS1="\u > "export PS1="\u $ "   # change to PS1 to Short Prompt
$ export PS1=$OLD_PS1                    # restore Long Prompt to PS1

Remélem, ez segít valakinek.

    
válasz adott Joe Codeswell user601770 27.03.2013 23:33
forrás
0

A dolog, ami segített nekem: export PS1 = '$'

Annak érdekében, hogy ez minden alkalommal megnyithassa a terminált, írja be a parancsot a .bashrc végén, amelyet megnyithat a "cd" és a "gedit .bashrc" segítségével.

Remélem ez segít. Készített nekem.

    
válasz adott Arka Mitra 05.07.2018 21:36
forrás