@ RaduRădeanu Teraz przeniosłem to na osobną odpowiedź.
Mark Raymond
Ogólnie rzecz biorąc, możesz się tym pobawić, ustawiając wartość PS1w terminalu, np PS1="How r u, \u?". Zmiana potrwa tylko do momentu zamknięcia terminalu.
Do tej pory nie było ani jednego odniesienia do wszystkiego, co może się pojawić w monicie Bash - ale ponieważ jest to funkcja, która ewoluowała przez dziesięciolecia i prawdopodobnie różni się w zależności od dystrybucji, może to zbyt wiele zapytać. Próbowałem podsumować to, co uważam za najbardziej przydatne tutaj.
Ta instrukcja jest najbardziej kompletna, ale jest bardzo długa i chaotyczna. Niektóre bardziej przydatne sekcje:
W sekcjach 2.4 i 2.5 wyjaśniono podstawy ustawiania PS1, w tym (znaki drukowalne) znaków zmiany znaczenia.
W sekcji 3.4 wyjaśniono, dlaczego \[i \]są konieczne.
Rozdział 6 wyjaśnia wszystkie główne (niedrukowalne) sekwencje specjalne, których możesz chcieć użyć, w tym ustawienie koloru monitu i tytułu okna xterm.
Pomiędzy nimi, myślę, że każda postać w domyślnej zmiennej Ubuntu PS1 jest wyjaśniona.
Objaśnienie monitu o Ubuntu
Monit składa się z trzech części:
\[\e]0;\u@\h: \w\a\] ustawia pasek tytułu okna xterm:
\[ uruchamia sekcję znaków niedrukowalnych
\e]0; jest sekwencją ucieczki dla „set xterm title” (uważam, że liczby inne niż 0 ustawią inne właściwości xterm, chociaż tego nie testowałem)
\u@\h: \wtytuł do użycia (patrz poniżej \u, \hi \w)
\a oznacza koniec tytułu
\] oznacza koniec znaków niedrukowalnych
${debian_chroot:+($debian_chroot)}rozwija się do wartości $ debian_chroot w nawiasach, jeśli $ debian_chroot jest ustawiony. Zobacz to pytanie, aby uzyskać więcej informacji na temat $ debian_chroot.
\u@\h:\w\$ jest sam monit:
\u rozwija się do bieżącej nazwy użytkownika
\h rozwija się do bieżącej nazwy hosta
\w rozwija się do bieżącego katalogu roboczego
\$rozwija się #do rootowania i $wszystkich innych użytkowników
Podstawowy ciąg zachęty. Wartość domyślna to \s-\v\$. Zobacz Kontrolowanie monitu , aby wyświetlić pełną listę sekwencji specjalnych, które zostały wcześniej rozwinięte PS1.
@Radu - Dzięki, to mnie posunęło dalej niż wcześniej. Nadal wydaje się, że niewiele jest informacji na temat tego, co może wejść do środka, \[a \]jednak - czy masz na to jakieś odniesienia?
Mark Raymond
@ MarkRaymond Wyjaśniono to w dwóch linkach, które ci dałem ( Drukowanie monitu i monitu PS1 wyjaśnione dla systemu Linux / Unix ): \[- rozpocznij sekwencję znaków niedrukowalnych, których można użyć do osadzenia sekwencji kontrolnej terminala w monicie; \]- zakończyć sekwencję znaków niedrukowalnych. Nie
spiesz się
Tak, przeczytałem to - szukałem odniesienia do tego, co robią te niedrukowalne postacie. Przepraszam, jeśli nie było jasne!
Wydaje się, że ss64.com ma najlepsze referencje, jakie znalazłem.
Wyjaśnia następujące zmienne:
\d The date, in "Weekday Month Date" format (e.g., "Tue May 26").
\h The hostname, up to the first . (e.g. deckard)
\H The hostname. (e.g. deckard.SS64.com)
\j The number of jobs currently managed by the shell.
\l The basename of the shell's terminal device name.
\s The name of the shell, the basename of $0 (the portion following
the final slash).
\t The time, in 24-hour HH:MM:SS format.
\T The time, in 12-hour HH:MM:SS format.
\@ The time, in 12-hour am/pm format.
\u The username of the current user.
\v The version of Bash (e.g., 2.00)
\V The release of Bash, version + patchlevel (e.g., 2.00.0)
\w The current working directory.
\W The basename of $PWD.
\! The history number of this command.
\# The command number of this command.
\$ If you are not root, inserts a "$"; if you are root, you get a "#" (root uid = 0)
\nnn The character whose ASCII code is the octal value nnn.
\n A newline.
\r A carriage return.
\e An escape character.
\a A bell character.
\\ A backslash.
\[ Begin a sequence of non-printing characters. (like color escape sequences). This
allows bash to calculate word wrapping correctly.
\] End a sequence of non-printing characters.
\[ ... \]Definiuje szereg znaków niedrukujące. Są one wymagane do prawidłowego śledzenia pozycji kursora.
W \ezachęcie rozpoczyna się sekwencja ucieczki. Więcej o tych tutaj (uwaga „Esc” na tej stronie to \esekwencja).
Uwaga: Nigdy tak naprawdę nie lubiłem sekwencji ucieczki. Użyj, tputaby uzyskać kod ucieczki dla Ciebie.
${debian_chroot:+($debian_chroot)}to rozszerzenie parametrów. Zobacz tutaj
Pisze, ($debian_chroot)jeśli $debian_chrootjest ustawiony inaczej nic.
PS1
w terminalu, npPS1="How r u, \u?"
. Zmiana potrwa tylko do momentu zamknięcia terminalu.Odpowiedzi:
Bibliografia
Do tej pory nie było ani jednego odniesienia do wszystkiego, co może się pojawić w monicie Bash - ale ponieważ jest to funkcja, która ewoluowała przez dziesięciolecia i prawdopodobnie różni się w zależności od dystrybucji, może to zbyt wiele zapytać. Próbowałem podsumować to, co uważam za najbardziej przydatne tutaj.
Ta instrukcja jest najbardziej kompletna, ale jest bardzo długa i chaotyczna. Niektóre bardziej przydatne sekcje:
\[
i\]
są konieczne.Ten przewodnik wyjaśnia, jak
${}
ogólnie działa Bash, a to pytanie Ask Ubuntu wyjaśnia nieco więcej o tym, jak to działadebian_chroot
.Pomiędzy nimi, myślę, że każda postać w domyślnej zmiennej Ubuntu PS1 jest wyjaśniona.
Objaśnienie monitu o Ubuntu
Monit składa się z trzech części:
\[\e]0;\u@\h: \w\a\]
ustawia pasek tytułu okna xterm:\[
uruchamia sekcję znaków niedrukowalnych\e]0;
jest sekwencją ucieczki dla „set xterm title” (uważam, że liczby inne niż 0 ustawią inne właściwości xterm, chociaż tego nie testowałem)\u@\h: \w
tytuł do użycia (patrz poniżej\u
,\h
i\w
)\a
oznacza koniec tytułu\]
oznacza koniec znaków niedrukowalnych${debian_chroot:+($debian_chroot)}
rozwija się do wartości $ debian_chroot w nawiasach, jeśli $ debian_chroot jest ustawiony. Zobacz to pytanie, aby uzyskać więcej informacji na temat $ debian_chroot.\u@\h:\w\$
jest sam monit:\u
rozwija się do bieżącej nazwy użytkownika\h
rozwija się do bieżącej nazwy hosta\w
rozwija się do bieżącego katalogu roboczego\$
rozwija się#
do rootowania i$
wszystkich innych użytkownikówźródło
Zgodnie z podręcznika Reference Bash ,
PS1
to:Niektóre inne dobre referencje to:
Wyjaśnienie monitu PS1 dla systemu Linux / Unix
Co robi „$ {debian_chroot: + ($ debian_chroot)}” w moim monitie terminalu?
Bash Shell PS1: 10 przykładów, które sprawią, że Twój Linux będzie monitowany jak Angelina Jolie
źródło
\[
a\]
jednak - czy masz na to jakieś odniesienia?\[
- rozpocznij sekwencję znaków niedrukowalnych, których można użyć do osadzenia sekwencji kontrolnej terminala w monicie;\]
- zakończyć sekwencję znaków niedrukowalnych. NieWydaje się, że ss64.com ma najlepsze referencje, jakie znalazłem.
Wyjaśnia następujące zmienne:
\[ ... \]
Definiuje szereg znaków niedrukujące. Są one wymagane do prawidłowego śledzenia pozycji kursora.W
\e
zachęcie rozpoczyna się sekwencja ucieczki. Więcej o tych tutaj (uwaga „Esc” na tej stronie to\e
sekwencja).tput
aby uzyskać kod ucieczki dla Ciebie.${debian_chroot:+($debian_chroot)}
to rozszerzenie parametrów. Zobacz tutaj($debian_chroot)
jeśli$debian_chroot
jest ustawiony inaczej nic.źródło