O comando abaixo mostrará uma indicação colorida de que você tem sudo concedido, então lembre-se de fazer um sudo -k
antes de sair da máquina. Também é útil em terminais não coloridos.
Como podemos ter o sudo ativo e inativo em diferentes sessões de terminal, criei isso que você pode colocar no final do seu ~ / .bashrc
function FUNCpromptCommand () {
sudo -n uptime 2>/dev/null 1>/dev/null
local bSudoOn='if(($?==0));then echo true; else echo false; fi'
history -a; # append to history at each command issued!!!
local width='tput cols';
local half=$((width/2))
local dt="[EndAt:'date +"%Y/%m/%d-%H:%M:%S.%N"']";
if $bSudoOn; then dt="!!!SUDO!!!$dt"; fi
local sizeDtHalf=$((${#dt}/2))
#printf "%-${width}s" $dt |sed 's" "="g';
echo
output='printf "%*s%*s" $((half+sizeDtHalf)) "$dt" $((half-sizeDtHalf)) "" |sed 's" "="g';'
local colorLightRed="\e[1;31m"
local colorNoColor="\e[0m"
if $bSudoOn; then
echo -e "${colorLightRed}${output}${colorNoColor}"
else
echo -e "${output}"
fi
}
export PROMPT_COMMAND=FUNCpromptCommand
No terminal, digite bash
para testá-lo. Ele também adicionará uma linha inteira toda vez que você executar um comando, que tenha as informações da hora em que o último comando terminou, para que você possa ir almoçar e saber quando o último comando terminou:).
Você pode jogar com este código para atender às suas necessidades. Existe também a variável PS1 (que é a pequena linha única de prompt), mas acho melhor não mexer nela.
PS .: para o OS-X, procure o comentário abaixo por @nwinkler.