Как переименовать терминальный заголовок вкладки в терминале гнома?

Попробуйте find команда.

find /somedir1/somedir2 -name *.txt -name *.log -mtime 2w -delete

Изменение -delete кому: -print для пробного прогона.

72
06.01.2015, 20:53
10 ответов

Нет необходимости иметь отдельный домашний раздел. Единственная проблема этой конфигурации заключается в том, что если вам когда-либо потребуется переустановка с нуля, то вам потребуется создать резервную копию/home, так как корневой раздел обычно снова формируется при новой установке. Если вы разделяете/home, вы можете безопасно переустановить хранение данных.

-121--244278-

Можно использовать команду «найти» следующим образом

find ./ -name "libreoffice?.?"
-121--55931-

Создайте функцию в ~/.bashrc :

function set-title() {
  if [[ -z "$ORIG" ]]; then
    ORIG=$PS1
  fi
  TITLE="\[\e]2;$*\a\]"
  PS1=${ORIG}${TITLE}
}

Затем используйте новую команду для установки заголовка терминала. Он также работает с местами в имени

set-title my new tab title

. Впоследствии можно снова использовать set-title (исходный PS1 сохраняется как ORIG ).

109
27.01.2020, 19:31

Название пользователя код был удален 1 из Tranme-Terminal 3.14 . Чтобы установить название, вы можете использовать escape Sequence:

printf "\e]2;YOUR TITLE GOES HERE\a"

или E.g. С Bash :

PROMPT_COMMAND='echo -ne "\033]0;YOUR TITLE GOES HERE\007"'

1:

PROMPT_COMMAND='echo -ne "\033]0;YOUR TITLE GOES HERE\007"'

1: см. GNOME BUG 724110 и GNOME BUG 740188 .

32
27.01.2020, 19:31

поместите это в .bashrc:

function title() { 
  p1='echo -ne "\033]0;' 
  p2='\007"'
  PROMPT_COMMAND=$p1$@$p2 
  p1= 
  p2=
}
1
27.01.2020, 19:31

В новых версиях gnome-terminal просто выброшены самые полезные профессиональные функции :-(

Я попытался настроить и запустить старую версию gnome-terminal, а также сравнил альтернативы.

Если terminator для вас слишком экзотичен, то mate-terminal - отличный вариант! Он является форком gnome-terminal и просто сохраняет все хорошие функции:

  • вы можете открывать несколько вкладок из командной строки, давая им разные названия

    mate-terminal --tab -t "aaa" --tab -t "bbb" --tab -t "ccc"
    
  • вы можете настроить сочетание клавиш (я использую Ctrl+Shift-i) для установки title

18
27.01.2020, 19:31

Si está utilizando Ubuntu 16.04, es posible que deba:

PS1=$
PROMPT_COMMAND=
echo -en "\033]0;New title\a"

Enumero esto y más información al respecto en enlace .

2
27.01.2020, 19:31

В качестве дополнения к ответу @Weston Ganger, если вы хотите автоматически установить заголовок при открытии нового терминала Gnome, добавьте его в конец вашего~/.bashrc:

if [ ! -z "$SET_TITLE" ]; then
    set-title $SET_TITLE;
    export SET_TITLE=;
fi

Затем запустите терминал, например:

gnome-terminal --tab -e 'bash -c "export SET_TITLE=\"my title\"; bash -i"'

и автоматически запустится set-title, чтобы применить заголовок.

0
27.01.2020, 19:31

однострочное решение, добавьте следующую строку в ваш.bashrc

alias tab_name='read -p "Name to Assign:" tabname ;  printf "\e]2;$tabname\a" '

теперь введите имя вкладки _в терминале, т.е.

user:~$ tab_name  
Name to Assign: ( type desired name here! )

Готово

0
27.01.2020, 19:31

Мой новый сценарий от марта 2021 г.:

Теперь у меня есть новая версия функции "установить заголовок". Чтобы найти последнюю версию, найдите мой ~/.bash_aliasesфайл где-то здесь . Вот как это может выглядеть. Теперь у него есть меню справки -h, и вместо того, чтобы полагаться на резервную копию переменной PS1при первом запуске, что довольно сложно, он просто использует команду sed'stream 'editor. и регулярное выражение для удаления существующей строки заголовка из переменной PS1.

gs_set_title() {
    CMD="gs_set_title"
    # Help menu
    if [ "$1" == "-h" ] || [ "$1" == "-?" ]; then
        echo "Set the title of your currently-opened terminal tab."
        echo "Usage:   $CMD any title you want"
        echo "   OR:   $CMD \"any title you want\""
        echo "   OR (to make a dynamic title which relies on variables or functions):"
        echo "         $CMD '\$(some_cmd)'"
        echo "     OR  $CMD '\${SOME_VARIABLE}'"
        echo "Examples:"
        echo "         1. static title"
        echo "           $CMD my new title"
        echo "         2. dynamic title"
        echo "           $CMD 'Current Directory is \"\$PWD\"'"
        echo "       OR  $CMD 'Date and time of last cmd is \"\$(date)\"'"
        return $EXIT_SUCCESS
    fi

    TITLE="$@"
    # Set the PS1 title escape sequence; see "Customizing the terminal window title" here:
    # https://wiki.archlinux.org/index.php/Bash/Prompt_customization#Customizing_the_terminal_window_title
    ESCAPED_TITLE="\[\e]2;${TITLE}\a\]"

    # Delete any existing title strings, if any, in the current PS1 variable. See my Q here:
    # https://askubuntu.com/questions/1310665/how-to-replace-terminal-title-using-sed-in-ps1-prompt-string
    PS1_NO_TITLE="$(echo "$PS1" | sed 's|\\\[\\e\]2;.*\\a\\\]||g')"
    PS1="${PS1_NO_TITLE}${ESCAPED_TITLE}"
}

Оригинальный ответ:

@Weston Ganger написал эту функцию(и разместил ее здесь ), чтобы поместить в~/.bashrc:

function set-title() {
  if [[ -z "$ORIG" ]]; then
    ORIG=$PS1
  fi
  TITLE="\[\e]2;$*\a\]"
  PS1=${ORIG}${TITLE}
}

Затем вы можете установить название терминала, вызвавset-title TERMINAL NAME(кавычки вокруг имени необязательны ).

Мне это показалось довольно загадочным (см. мои комментарии под его ответом ), так что прошлой ночью я провел несколько часов за чтением и изучением, чтобы понять, что, черт возьми, он сделал и почему это сработало. Вот что я нашел:

  1. Начиная с gnome-terminal3.16.2 или около того(см. комментарии к этому ответу ), «опция --titleбольше не поддерживается». В противном случае вы бы просто сделали gnome-terminal --title="my title", , как я делал здесь .
  2. Согласно этому ответу здесь и многим комментариям вокруг этого ответа, вы должны использовать $@вместо $*для представления всех входных аргументов в приведенном выше сценарии.По-видимому, $@менее подвержен ошибкам -и более совместим, поскольку это способ POSIX для представления «всех входных аргументов». Поэтому в моей версии ниже я использую $@вместо $*.
  3. Оказывается, почти в любом терминале (, пока данный терминал поддерживает его ), существуют управляющие коды ANSI , которые являются формой " в -. ] сигнализация диапазона ", которую можно использовать для установки заголовка терминала. См. раздел «Настройка заголовка окна терминала » в этой самой -превосходной вики Archlinux здесь . Escape-последовательность Bash для установки заголовка терминала выглядит следующим образом :\[\e]2;new title\a\], и чтобы применить этот заголовок к окну терминала, все, что вам нужно сделать, это изменить его «Строка подсказки 1» или PS1переменную . ], добавив эту escape-последовательность «установить заголовок» после вашей текущей строки приглашения 1, например:PS1="${PS1}\[\e]2;new title\a\]". Поскольку gnome-terminalбольше не поддерживает аргумент --title, это, по-видимому, единственный способ установить заголовок.

А теперь моя версия функции Уэстона Гангера с обширными пояснительными комментариями. Это войдет в мои файлы точек , чтобы я никогда не потерял его:

# Set the title string at the top of your current terminal window or terminal window tab
set-title() {
    # If the length of string stored in variable `PS1_BAK` is zero...
    # - See `man test` to know that `-z` means "the length of STRING is zero"
    if [[ -z "$PS1_BAK" ]]; then
        # Back up your current Bash Prompt String 1 (`PS1`) into a global backup variable `PS1_BAK`
        PS1_BAK=$PS1 
    fi

    # Set the title escape sequence string with this format: `\[\e]2;new title\a\]`
    # - See: https://wiki.archlinux.org/index.php/Bash/Prompt_customization#Customizing_the_terminal_window_title
    TITLE="\[\e]2;$@\a\]"
    # Now append the escaped title string to the end of your original `PS1` string (`PS1_BAK`), and set your
    # new `PS1` string to this new value
    PS1=${PS1_BAK}${TITLE}
}

Примеры использования:

  • Статические строки заголовка(заголовок остается фиксированным ):
    • set-title my tab 1ИЛИset-title "my tab 1"
    • set-title $PWDИЛИset-title "$PWD"
  • Динамические строки заголовка(заголовок обновляется каждый раз, когда вы вводите любую команду терминала ):вы можете использовать вызовы функций или переменные в строке заголовка, и они динамически обновляются каждый раз, когда вы вводите новую команду. Просто введите команду или получите доступ к глобальной переменной внутри строки заголовка. Обязательно используйте одинарные кавычки вокруг строки заголовка, чтобы это работало!:
    • set-title '$PWD'-этот заголовок обновляет текущий рабочий каталог каждый раз, когда вы cdпереходите на новый каталог!
    • set-title '$(date "+%m/%d/%Y - %k:%M:%S")'-это обновляет заголовок до новой даты и времени каждый раз он меняет и вы вводите новую команду терминала! Формат выглядит так:02/06/2020 - 23:32:58

Связанные:

  1. https://askubuntu.com/questions/315408/open-terminal-with-multiple-tabs-and-execute-application/1026563#1026563
  2. Мои dotfiles (файлы конфигурации, сценарии и общие пользовательские настройки):https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles

Основные ссылки:

  1. [мой вопрос]https://askubuntu.com/questions/1310665/how-to-replace-terminal-title-using-sed-in-ps1-prompt-string
  2. Как переименовать заголовок вкладки терминала в терминале gnome -?
  3. https://wiki.archlinux.org/index.php/Bash/Prompt_customization#Customizing_the_terminal_window_title
  4. https://www.thegeekstuff.com/2008/09/bash-shell-take-control-of-ps1-ps2-ps3-ps4-and-prompt_command/
  5. Почему переменная приглашения bash называется PS1?
  6. Справочное руководство по Bash:https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html
14
07.02.2020, 21:49

У меня была та же проблема, и я обнаружил, что нет простого способа установить заголовок вкладки с помощью правого щелчка мыши (так, как я и большинство моих коллег привыкли ). В то же время это так раздражало :(. Так что в нашем случае решением было переключить терминал. Итак, ищите альтернативы, такие как сакура и т. Д., И, наконец, остановились на терминале xfce -, используйте приведенную ниже команду для его установки

sudo apt-get install xfce4-terminal

Он предоставляет профиль и команду для щелчка правой кнопкой мыши и изменения имени вкладки. Все остальные функции аналогичны Gnome

4
10.04.2020, 13:19

У меня -tпараметр все еще работает (gnome -terminal v3.36.1.1 ), но только во время выполнения команды:

gnome-terminal --tab -t browser-sync  -- npm run sync

поэтому в приведенном выше примере, когда синхронизация браузера -, запущенная скриптом npm, выполняется -, заголовок есть, и когда он останавливается, вкладка закрывается, лол. Хорошо, если вы просто

gnome-terminal --tab -t my-title

без команды -вы все равно увидите «мой -заголовок» в заголовке вкладки, но только на доли секунды.

0
26.04.2020, 12:20

Теги

Похожие вопросы