Název terminálu se nastavuje pomocí speciálních escape sekvencí ve výstupu konzole. Ve výchozím nastavení obsahuje výzva bash tyto sekvence escape a nastavuje název na aktuální pracovní adresář.
Budete tedy muset upravit proměnnou PS1 (většinou je nastavena v ~/.bashrc
), jinak bash přepíše váš název pokaždé, když se zobrazí výzva.
Název pak můžete nastavit vložením následujícího do skriptu, který se spustí, když se přihlásíte, např. ~/.profile
:
echo -e "\033]0;<your string>\007"
Většina terminálových programů - včetně konsole, putty a xterm - emuluje starý terminál VT100. Tento terminál umožňuje nastavit určité věci, včetně tučného písma, barev, nastavení názvu terminálu atd., pomocí speciálních sekvencí znaků nazývaných sekvence escape.
Shell bash má proměnnou nazvanou PROMPT_COMMAND, která, pokud je nastavena, je vyhodnocena před každou výzvou, kterou vytisknete (věřím, že zsh má něco podobného, ve skutečnosti si myslím, že bash od nich převzal kód). Pomocí příkazu PROMPT_COMMAND můžete vytisknout sekvence escape a nastaví váš titulní pruh.
Toto mám v mém (Linux/bash):
USER=$(/usr/bin/id -un)
HOSTNAME=$(uname -n)
HOSTNAME=${HOSTNAME%%.*}
PROMPT_COMMAND='echo -ne "\e]0;[email protected]${HOSTNAME}: $(pwd -P)\a"'
Můžete to vložit do svého ~/.bashrc
S terminálem můžete provádět mnoho přizpůsobení. Mám rád tučné písmo ve výzvě, aby bylo snazší vidět konec výzvy. Díky tomu je tučně žlutá, dobrá na mém výchozím černém pozadí:
PS1="\[\e[33;1m\]\h:\$\[\e[0m\] "
Podívejte se kolem na Linux Prompt Customization, najdete více HowTos, než budete vědět, co dělat. Vyberte tu, která se vám nejsnáze čte.
Prohledal jsem mnoho fór a nenašel jsem odpověď na otázku:
Jak dostat všechny výstupy příkazů do názvu Putty?
Potřeboval to pro ostatní programy, aby věděly, kdy jsou některé úlohy na serveru provedeny a zda se to dělá dobře nebo špatně. Plink stdout a stdin nefungovaly. Použil jsem mnoho vylepšení s čekacími prodlevami a pro některé příkazy, které fungovaly, pro jiné ne. Na tento server nelze nainstalovat XSEL a XCLIP.
Takže tady je řešení:
- Získejte výstup příkazu v souboru.
- Zopakujte název souboru.
Na klientovi Putty a serveru SUSE to vypadá takto:
ls /home | grep domagaja > logutoit.txt
echo -e "\033]0\\;$(cat logutoit.txt)\\007\\c"
Snad to někdo bude umět využít. Samozřejmě to nebude fungovat pro všechny typy serverů a nastavení klienta putty, ale nápad by měl fungovat dobře.