adding file
This commit is contained in:
94
.bashrc
Normal file
94
.bashrc
Normal file
@@ -0,0 +1,94 @@
|
||||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||
# If not running interactively, don't do anything
|
||||
case $- in
|
||||
*i*) ;;
|
||||
*) return;;
|
||||
esac
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# ✅ Smart Command History Configuration
|
||||
# ------------------------------------------------------------------------------
|
||||
HISTSIZE=100000 # Increase history size
|
||||
HISTFILESIZE=200000 # Store more commands in history
|
||||
HISTCONTROL=ignoredups:ignorespace # Ignore duplicate and space-prefixed commands
|
||||
shopt -s histappend # Append to history instead of overwriting
|
||||
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
|
||||
|
||||
# Enable arrow key history search (search by typing & pressing Up/Down)
|
||||
bind '"\e[A": history-search-backward'
|
||||
bind '"\e[B": history-search-forward'
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# ✅ Enable Fuzzy Search for Command History (Ctrl+R)
|
||||
# ------------------------------------------------------------------------------
|
||||
if command -v fzf &>/dev/null; then
|
||||
__fzf_history() {
|
||||
BUFFER=$(history | fzf --height 40% --reverse | sed 's/^[ ]*[0-9]*[ ]*//')
|
||||
echo $BUFFER
|
||||
}
|
||||
bind -x '"\C-r": __fzf_history'
|
||||
fi
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# ✅ Enable Colorized Command Output
|
||||
# ------------------------------------------------------------------------------
|
||||
alias grep="grep --color=auto"
|
||||
alias fgrep="fgrep --color=auto"
|
||||
alias egrep="egrep --color=auto"
|
||||
alias ping="ping -c 5" # Limit ping output
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# ✅ Improved `ls` with `eza` (modern replacement for `ls`)
|
||||
# ------------------------------------------------------------------------------
|
||||
if command -v eza &>/dev/null; then
|
||||
alias ls="eza --icons --group-directories-first"
|
||||
alias ll="eza -lh --icons --git"
|
||||
alias la="eza -lha --icons --git"
|
||||
alias lt="eza -T --icons" # Tree view
|
||||
fi
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# ✅ Useful Aliases for Faster Navigation and Commands
|
||||
# ------------------------------------------------------------------------------
|
||||
alias ..="cd .."
|
||||
alias ...="cd ../.."
|
||||
alias ....="cd ../../.."
|
||||
alias ~="cd ~"
|
||||
|
||||
alias cpuinfo="lscpu"
|
||||
alias meminfo="free -h"
|
||||
alias diskinfo="df -h"
|
||||
|
||||
# Git Aliases
|
||||
alias gs="git status"
|
||||
alias ga="git add ."
|
||||
alias gc="git commit -m"
|
||||
alias gp="git push"
|
||||
alias gl="git log --oneline --graph --decorate --all"
|
||||
|
||||
# Reload bashrc quickly
|
||||
alias reload="source ~/.bashrc && echo 'Bash config reloaded! ✅'"
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# ✅ Smart Git Prompt (Loads Only Inside Git Repos)
|
||||
# ------------------------------------------------------------------------------
|
||||
if command -v git &>/dev/null && [ -f "$HOME/.bash-git-prompt/gitprompt.sh" ]; then
|
||||
GIT_PROMPT_THEME=x-files-time
|
||||
alias gpchange="bash $HOME/.bash-git-prompt/gpchange.sh"
|
||||
alias gpthemes="bash $HOME/.bash-git-prompt/gpthemes.sh"
|
||||
|
||||
# Load git prompt only inside git repositories
|
||||
function __git_ps1_check() {
|
||||
git rev-parse --is-inside-work-tree &>/dev/null && source "$HOME/.bash-git-prompt/gitprompt.sh"
|
||||
}
|
||||
PROMPT_COMMAND="__git_ps1_check;$PROMPT_COMMAND"
|
||||
fi
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# ✅ Fancy Welcome Message
|
||||
# ------------------------------------------------------------------------------
|
||||
echo -e "\nWelcome back, $USER! 🚀"
|
||||
echo "Today is $(date '+%A, %d %B %Y')."
|
||||
echo "Uptime: $(uptime -p)"
|
||||
echo "You are in: $(pwd)"
|
||||
|
||||
Reference in New Issue
Block a user