mod_bashrc

This commit is contained in:
Halbe Bruno 2025-02-10 12:07:49 -03:00
parent fceee77759
commit 21efc47972

185
mod/mod_bashrc Normal file
View File

@ -0,0 +1,185 @@
#!/bin/bash
_red(){ /bin/echo -e "\033[0;31m$@\033[0m"; }
# Função para verificar e instalar pacotes
install_packages() {
# Lista de pacotes a serem instalados
local packages=(
"bash-completion"
"wget"
"grc"
)
echo "Verificando e instalando pacotes necessários..."
# Verificar e instalar os pacotes individualmente
for pkg in "${packages[@]}"; do
if dpkg -l | grep -q "^ii $pkg "; then
echo "Pacote $pkg já está instalado."
else
echo "Instalando pacote $pkg..."
apt-get install -y "$pkg"
fi
done
echo "Verificação e instalação de pacotes concluída!"
}
add_aliases() {
local BASHRC=$1
# Adicionar aliases apenas se ainda não existirem
if ! grep -q "Alias MOD" "$BASHRC"; then
cat << 'EOF' >> "$BASHRC"
# Alias MOD
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lha'
alias grep='grep --color'
alias egrep='egrep --color'
alias ip='ip -c'
alias diff='diff --color'
alias meuip='curl ifconfig.me; echo;'
alias tail='grc tail'
alias ping='grc ping'
alias traceroute='grc traceroute'
alias ps='grc ps'
alias netstat='grc netstat'
alias dig='grc dig'
alias apt='sudo apt'
alias l='ls -lh'
alias la='ls -lha'
EOF
echo "Aliases adicionados ao arquivo $BASHRC."
else
echo "Aliases já estão presentes no arquivo $BASHRC."
fi
}
# Função para ajustar o .bashrc de um usuário específico
adjust_user_bashrc() {
local USER_HOME=$1
local BASHRC="$USER_HOME/.bashrc"
# Criar backup do arquivo .bashrc, se ele existir
if [ -f "$BASHRC" ]; then
cp "$BASHRC" "${BASHRC}_backup"
echo "Backup do .bashrc criado: ${BASHRC}_backup"
# Descomentar a linha force_color_prompt=yes
sed -i 's/^#force_color_prompt=yes/force_color_prompt=yes/' "$BASHRC"
# Substituir o bloco do PS1 usando \$ para root e usuários comuns
sed -i '/if \[ "\$color_prompt" = yes \]; then/,/fi/c\if [ "\$color_prompt" = yes ]; then\n PS1="\\[\\e[38;5;255m\\][\\[\\e[38;5;39m\\]\\u\\[\\e[38;5;81m\\]@\\[\\e[38;5;77m\\]\\h\\[\\e[38;5;255m\\]:\\[\\e[38;5;226m\\]\\w\\[\\e[38;5;255m\\]]\\[\\033[0m\\]\\$ "\nelse\n PS1='\''\${debian_chroot:+(\$debian_chroot)}\u@\h:\w\\$ '\''\nfi' "$BASHRC"
# Adicionar aliases ao .bashrc do usuário
add_aliases "$BASHRC"
echo ".bashrc de $USER_HOME ajustado com sucesso!"
fi
}
# Função para ajustar o .bashrc do root
adjust_root_bashrc() {
local ROOT_BASHRC="/root/.bashrc"
# Criar backup do arquivo .bashrc do root, se ele existir
if [ -f "$ROOT_BASHRC" ]; then
cp "$ROOT_BASHRC" "${ROOT_BASHRC}_backup"
echo "Backup do .bashrc do root criado: ${ROOT_BASHRC}_backup"
# Adicionar o PS1 personalizado com verificação de UID para root
cat << 'EOF' > "$ROOT_BASHRC"
# ~/.bashrc: executed by bash(1) for non-login shells.
# Redefinir o PS1 para root e usuários comuns
if [ "$UID" -eq 0 ]; then
PS1="\[\e[38;5;255m\][\[\e[38;5;39m\]\u\[\e[38;5;81m\]@\[\e[38;5;77m\]\h\[\e[38;5;255m\]:\[\e[38;5;226m\]\w\[\e[38;5;255m\]]\[\033[0m\]# "
else
PS1="\[\e[38;5;255m\][\[\e[38;5;39m\]\u\[\e[38;5;81m\]@\[\e[38;5;77m\]\h\[\e[38;5;255m\]:\[\e[38;5;226m\]\w\[\e[38;5;255m\]]\[\033[0m\]\$ "
fi
# Definir umask padrão
umask 022
# Alias específicos para evitar erros
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Alias MOD
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lha'
alias grep='grep --color'
alias egrep='egrep --color'
alias ip='ip -c'
alias diff='diff --color'
alias meuip='curl ifconfig.me; echo;'
alias tail='grc tail'
alias ping='grc ping'
alias traceroute='grc traceroute'
alias ps='grc ps'
alias netstat='grc netstat'
alias dig='grc dig'
alias apt='sudo apt'
alias l='ls -lh'
alias la='ls -lha'
EOF
echo ".bashrc do root ajustado com sucesso!"
fi
}
# Função para ajustar o .bash_profile do root para carregar o .bashrc
adjust_root_bash_profile() {
local ROOT_BASH_PROFILE="/root/.bash_profile"
# Verificar se o .bash_profile existe, senão criar um novo
if [ ! -f "$ROOT_BASH_PROFILE" ]; then
echo "# .bash_profile" > "$ROOT_BASH_PROFILE"
fi
# Adicionar a linha para carregar o .bashrc se não existir
if ! grep -q ". ~/.bashrc" "$ROOT_BASH_PROFILE"; then
echo 'if [ -f ~/.bashrc ]; then' >> "$ROOT_BASH_PROFILE"
echo ' . ~/.bashrc' >> "$ROOT_BASH_PROFILE"
echo 'fi' >> "$ROOT_BASH_PROFILE"
echo "Arquivo .bash_profile do root ajustado para carregar o .bashrc."
fi
}
# Função para ajustar todos os usuários existentes e o root
adjust_all_users_bashrc() {
# Ajustar o bashrc de cada usuário em /home
for USER_HOME in /home/*; do
if [ -d "$USER_HOME" ]; then
adjust_user_bashrc "$USER_HOME"
fi
done
# Ajustar o bashrc e o bash_profile do root
adjust_root_bashrc
adjust_root_bash_profile
}
## Verifica se o usuário é root
if [ "$EUID" -ne 0 ]; then
_red "\n Você deve ser root para executar este script!\n"
exit 1
fi
# Executar funções
apt-get update
install_packages
adjust_all_users_bashrc