Я часто запускаю команды параллельно, которые занимают много времени, и иногда я теряю информацию о том, что работает там, где они выводят в основном ту же информацию на экране.
Знаете ли вы, как узнать, какая команда работает в каком терминале?
Название окна терминала можно изменить, изменив значение переменной $PS1 - строки первичной подсказки. [1] [2]. Мы могли бы объединить это решение с идеей использования команды history из ответа Десерта.
Подход 1: автоматически обновить значение $PS1. (Обновить)
Добавьте следующие строки в конец файла ~/.bashrc:
# Change the terminal window title, based on the last executed command
rtitle() {
# If the variable $PS1_bak is unset,
# then store the original value of $PS1 in $PS1_bak and chang $PS1
# else restore the value of $PS1 and unset @PS1_bak
if [ -z "${PS1_bak}" ]; then
PS1_bak=$PS1
PS1+='\e]2;$(history 1 | sed "s/^[0-9 ]* \+//")\a'
else
PS1=$PS1_bak
unset PS1_bak
fi
};
export -f rtitle # Export the function to be accessible in sub shells
#rtitle # Uncomment this line to change the default behaviour
Затем source ~/.bashrc или просто откройте новый терминал и используйте функцию в этом путь:
Выполнить rtitle, чтобы автоматически начинать изменять заголовок окна терминала, основываясь на последней выполненной команде. Выполните rtitle еще раз, чтобы вернуться к поведению по умолчанию.Подход 1: автоматически обновить значение $PS1. (начальный ответ)
Добавить следующие строки в внизу файла ~/.bashrc:
set-title() { # Set a title of the current terminal window
[[ -z ${@} ]] && TITLE="$(history 2 | head -1 | sed "s/^[0-9 ]* \+//")" || TITLE="$@" # If the title is not provided use the previous command
[[ -z ${PS_ORIGINAL} ]] && PS_ORIGINAL="${PS1}" || PS_ORIGINAL="${PS_ORIGINAL}" # Use the original value of PS1 for each future change
PS1="${PS_ORIGINAL}"'\e]2;'"$TITLE"'\a' # Change the prompt (the value of PS1)
}; export -f set-title
Затем source ~/.bashrc или просто откройте новый терминал и используйте функцию следующим образом:
Выполнить rtitle для автоматического изменения названия окна терминала на основе последней выполненной команды. set-title без аргумента изменит заголовок окна терминала на предыдущую команду.Ссылки и примеры:
set-title без аргумента изменит заголовок окна терминала на предыдущую команду. [d13 ] Выполните rtitle еще раз, чтобы вернуться к поведению по умолчанию. Пример 1; Пример 2Название окна терминала можно изменить, изменив значение переменной $PS1 - строки первичной подсказки. [1] [2]. Мы могли бы объединить это решение с идеей использования команды history из ответа Десерта.
Подход 1: автоматически обновить значение $PS1. (Обновить)
Добавьте следующие строки в конец файла ~/.bashrc:
# Change the terminal window title, based on the last executed command
rtitle() {
# If the variable $PS1_bak is unset,
# then store the original value of $PS1 in $PS1_bak and chang $PS1
# else restore the value of $PS1 and unset @PS1_bak
if [ -z "${PS1_bak}" ]; then
PS1_bak=$PS1
PS1+='\e]2;$(history 1 | sed "s/^[0-9 ]* \+//")\a'
else
PS1=$PS1_bak
unset PS1_bak
fi
};
export -f rtitle # Export the function to be accessible in sub shells
#rtitle # Uncomment this line to change the default behaviour
Затем source ~/.bashrc или просто откройте новый терминал и используйте функцию в этом путь:
Выполнить rtitle, чтобы автоматически начинать изменять заголовок окна терминала, основываясь на последней выполненной команде. Выполните rtitle еще раз, чтобы вернуться к поведению по умолчанию.Подход 1: автоматически обновить значение $PS1. (начальный ответ)
Добавить следующие строки в внизу файла ~/.bashrc:
set-title() { # Set a title of the current terminal window
[[ -z ${@} ]] && TITLE="$(history 2 | head -1 | sed "s/^[0-9 ]* \+//")" || TITLE="$@" # If the title is not provided use the previous command
[[ -z ${PS_ORIGINAL} ]] && PS_ORIGINAL="${PS1}" || PS_ORIGINAL="${PS_ORIGINAL}" # Use the original value of PS1 for each future change
PS1="${PS_ORIGINAL}"'\e]2;'"$TITLE"'\a' # Change the prompt (the value of PS1)
}; export -f set-title
Затем source ~/.bashrc или просто откройте новый терминал и используйте функцию следующим образом:
Выполнить rtitle для автоматического изменения названия окна терминала на основе последней выполненной команды. set-title без аргумента изменит заголовок окна терминала на предыдущую команду.Ссылки и примеры:
set-title без аргумента изменит заголовок окна терминала на предыдущую команду. Выполните rtitle еще раз, чтобы вернуться к поведению по умолчанию. Пример 1; Пример 2Название окна терминала можно изменить, изменив значение переменной $PS1 - строки первичной подсказки. [1] [2]. Мы могли бы объединить это решение с идеей использования команды history из ответа Десерта.
Подход 1: автоматически обновить значение $PS1. (Обновить)
Добавьте следующие строки в конец файла ~/.bashrc:
# Change the terminal window title, based on the last executed command
rtitle() {
# If the variable $PS1_bak is unset,
# then store the original value of $PS1 in $PS1_bak and chang $PS1
# else restore the value of $PS1 and unset @PS1_bak
if [ -z "${PS1_bak}" ]; then
PS1_bak=$PS1
PS1+='\e]2;$(history 1 | sed "s/^[0-9 ]* \+//")\a'
else
PS1=$PS1_bak
unset PS1_bak
fi
};
export -f rtitle # Export the function to be accessible in sub shells
#rtitle # Uncomment this line to change the default behaviour
Затем source ~/.bashrc или просто откройте новый терминал и используйте функцию в этом путь:
Выполнить rtitle, чтобы автоматически начинать изменять заголовок окна терминала, основываясь на последней выполненной команде. Выполните rtitle еще раз, чтобы вернуться к поведению по умолчанию.Подход 1: автоматически обновить значение $PS1. (начальный ответ)
Добавить следующие строки в внизу файла ~/.bashrc:
set-title() { # Set a title of the current terminal window
[[ -z ${@} ]] && TITLE="$(history 2 | head -1 | sed "s/^[0-9 ]* \+//")" || TITLE="$@" # If the title is not provided use the previous command
[[ -z ${PS_ORIGINAL} ]] && PS_ORIGINAL="${PS1}" || PS_ORIGINAL="${PS_ORIGINAL}" # Use the original value of PS1 for each future change
PS1="${PS_ORIGINAL}"'\e]2;'"$TITLE"'\a' # Change the prompt (the value of PS1)
}; export -f set-title
Затем source ~/.bashrc или просто откройте новый терминал и используйте функцию следующим образом:
Выполнить rtitle для автоматического изменения названия окна терминала на основе последней выполненной команды. set-title без аргумента изменит заголовок окна терминала на предыдущую команду.Ссылки и примеры:
set-title без аргумента изменит заголовок окна терминала на предыдущую команду. Выполните rtitle еще раз, чтобы вернуться к поведению по умолчанию. Пример 1; Пример 2