Vraag Hoe kan ik mijn opdrachtregel (bash) verkorten?


Momenteel is het:

michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/rails_v3/linker/spec/controllers$

Buiten het hernoemen van mijn machine- en directorystructuur ...

Hoe kan ik ervoor zorgen dat het iets meer is als:

michael:controllers$

148
2018-06-02 18:48


oorsprong


askubuntu.com/questions/816068/... - nazar2sfive


antwoorden:


Om het alleen te veranderen voor de huidige terminalinstantie

Ga gewoon naar binnen PS1='\u:\W\$ ' en druk op enter.


Om het "permanent" te veranderen

In uw ~/.bashrc, vind de volgende sectie:

als ["$ color_prompt" = yes]; dan
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $ '
anders
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ u @ \ h: \ w \ $'
fi

Verwijder de @\h, en vervang de \w met een hoofdletter \W, zodat het wordt:

als ["$ color_prompt" = yes]; dan
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ W \ [\ 033 [00m \] \ $ '
anders
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ u: \ W \ $'
fi

Sla op, sluit af, sluit terminal en start een andere om het resultaat te zien.


Veel meer opties!

  • Zien hier voor een uitgebreidere howto, met veel meer opties
  • Zien dit antwoord voor het gebruik van een klein Python-script om de prompt zo in te stellen dat het verkorten alleen plaatsvindt als je diep in een directorystructuur zit.

213
2018-06-02 19:04



Je kunt ook veel informatie hebben ... en vervolgens een carriage return aan het einde als in unix.stackexchange.com/q/88780/10043 - Michael Durrant
Is er een manier om dit globaal te maken? Met andere woorden, als ik naar een andere gebruiker sudo, moet deze instelling worden overgenomen, maar alleen voor mezelf (dus niet voor de gebruiker wanneer deze normaal zijn account gebruikt)? - ctote
Om een ​​gedeelde .bashrc te hebben die zowel op Linux als op OSX werkt, ben ik sindsdien overgeschakeld naar unix.stackexchange.com/a/127800/10043 - Michael Durrant
d.w.z. HOST='\033[02;36m\]\h' HOST=' '$HOST parse_git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; } TIME='\033[01;31m\]\t \033[01;32m\]' LOCATION=' \033[01;34m\]pwd | sed "s # (/ [^ /] \ {1, \} / [^ /] \ {1, \} / [^ /] \ {1, \} /). * (/ [^ /] \ { 1, \} / [^ /] \ {1 \}) / \ {0,1 \} # \ 1_ \ 2 # g"' BRANCH=' \033[00;33m\]$(parse_git_branch)\[\033[00m\]\n\$ ' PS1=$TIME$USER$HOST$LOCATION$BRANCH PS2='\[\033[01;36m\]>' - Michael Durrant
maar zie het antwoord voor de te gebruiken code. - Michael Durrant


Voer deze code uit in de huidige terminal

PROMPT_DIRTRIM=3

Nu toont de bash-prompt alleen de laatste 3 mapnamen. U kunt 1 kiezen om alleen de huidige map te tonen. Meer informatie is beschikbaar in de GNU-documentatie.

Het effect:

/var/lib/apt/lists# PROMPT_DIRTRIM=3
/.../lib/apt/lists# 

Als je het permanent wilt maken, voeg je de volgende regel toe aan ~/.bashrc in het begin:

PROMPT_DIRTRIM=3

of een ander getal groter dan nul.


83
2018-05-02 06:49



Gewoon een korte opmerking: dit vereist Bash 4. - Stefan Lasiewski
Leuk ... ik heb hiervoor een bach_alias toegevoegd (met een functie) promptdir() { PROMPT_DIRTRIM=$1; } gewoon om het leven gemakkelijker te maken ... - dgoosens


Dit is mijn snelst mogelijke instelling:

toegevoegd in ~/.bashrc 

PS1='[\u@\h \W]\$ '    

het ziet er zo uit:

[user@hostname dirname]$

(met een spatie achter de $ teken)


15
2017-10-10 03:08



Hoe voeg ik een spatie toe tussen elk woord? Kan ik het ook kleuren? - Dani Springer


Persoonlijk geef ik er de voorkeur aan alleen de huidige map in de bash-prompt te zien. Ik kan dit doen met het volgende commando:

PS1='\W\$ '

Als u wilt dat het na elke start van kracht wordt, voegt u het bovenstaande commando toe aan uw ~ / .bashrc.


6
2018-05-20 11:01





Ik realiseer me dat dit super oud is, maar omdat niemand heeft voorgesteld om een ​​alias te maken, dacht ik dat ik het zou posten. Gebruik makend van Bash Prompt Escape Sequences Ik heb een alias gemaakt shorten 

In ~/.bash_aliases hier zult u de $ Blue var opmerken om de promptkleur in te stellen die u kunt weglaten of wijzigen op basis van voorkeur Ik wis ook de terminal bij het verkorten.

alias c='clear'

alias shorten='PS1="$Blue$USER:\W$ "&& c'

Om de gewenste prompt string van het OP te bereiken:

alias shorten='PS1="$USER:\W$ "'

Ik heb kleuren gedefinieerd in ~/.bashrckopiëren en plakken vanuit https://wiki.archlinux.org/index.php/Color_Bash_Prompt. Aan een kanttekening wat zit er met ansi-codekleuren? Ik ben in de war als ik er gewoon naar kijk.

Blue='\e[0;34m'         # Blue

1
2017-10-26 21:03



Een stapsgewijze handleiding hiervoor zou zo handig zijn, omdat ik geen idee heb hoe ik naar .bash_aliases moet. Bedankt - Kayote
"" voorvoegsel geeft een verborgen map of bestand aan. De tilde "~" is een korte vorm van $ HOME-variabele. Dus "~ / .bash_aliases" is slechts een korte vorm van "/home/$USER/.bash_aliases". Om ".bash_aliases" te openen, kunt u ofwel een terminal openen en "gedit /home/$USER/.bash_aliases" of "gedit ~ / .bash_aliases" typen of in uw basismap type ctrl-h om verborgen bestanden te tonen en het bestand direct te openen . Ik hoop dat het helpt. Misschien wilt u ook op Google zoeken naar nuttige aliassen. - Allie Carver