# Shorter exit - I'm lazy alias e="exit" # Change PHP CLI binary alias phpa="sudo update-alternatives --config php" # Kill all code-server processes. Sometimes it hangs on startup alias kvscode="ps uxa | grep .vscode-server | awk '{print $2}' | xargs kill -9" # Tmux split commands, "q" for fast access, "w" for horizontal (right of q), "a" for vertical (below q) alias qw="tmux split-window -h" alias qa="tmux split-window -v" # +-------------------+ # | Directory & Files | # +-------------------+ # Preview contents of a file or list the contents of a directory l () { # Set target to argument or default to current working directory local target="${1:-$(pwd)}" if [ -f $target ] ; then less $target return fi # List current directory contents and bail out if target does not exist if [ ! -d $target ]; then l $(dirname $target) echo "" echo -e "\e[0;91mNo such file or directory '$target'\e[0m" return 1 fi # Current directory is the user home directory if [ $target == "$HOME" ]; then # Ignore these files when running the "l" command from the home directory local BLACKLIST=("Makefile") local pattern local pattern_ignore for pattern in "${BLACKLIST[@]}"; do pattern_ignore+="-I \"$pattern\" " done eval ls -lh $pattern_ignore return 0 fi ls -lh $target } # Preview the contents of a file or list the contents of a directory with hidden files shown ll () { # Set target to argument or default to current working directory local target="${1:-$(pwd)}" if [ -f $target ] ; then less $target return fi # List current directory contents and bail out if target does not exist if [ ! -d $target ]; then ll $(dirname $target) echo "" echo -e "\e[0;91mNo such file or directory '$target'\e[0m" return 1 fi ls -lah $target } # Edit the contents of a file or list the contents of a directory (with hidden files shown) if that file is not found lll () { # Set target to argument or default to current working directory local target="${1:-$(pwd)}" if [ -f $target ] ; then nano $target return fi # List current directory contents and bail out if target does not exist if [ ! -d $target ]; then lll $(dirname $target) echo "" echo -e "\e[0;91mNo such file or directory '$target'\e[0m" return 1 fi ls -lah $target } .. () { cd .. && l } cdl () { # Cdl to home if no args provided if [ $# -eq 0 ]; then cdl $HOME fi cd -P -- "$1" && l } cdll () { # Cdll to home if no args provided if [ $# -eq 0 ]; then cdll $HOME fi cd -P -- "$1" && ll } # Make a new directory and cd into it mkcdir () { mkdir -p -- "$1" && cd -P -- "$1" } # +-----+ # | Git | # +-----+ # Short-hands for various git functions gitf () { case "$1" in # Stage all changes and fall through to WIP commit "aw") git add . gitf w ;; # Checkout [and create] a git branch (defaults to "master") "b") local branch="${2:-master}" if git show-ref --verify --quiet refs/heads/"$branch"; then git checkout $branch return 0 fi git checkout -b $branch ;; # Clear local branches that have no upstream on remote (cleanup) "c") git fetch -p && git branch -vv | awk '/: gone]/{print $1}' | xargs git branch -D ;; # Pull current branch from a remote (defaults to "origin"). "d" for download. "d") local remote="${2:-origin}" git pull "$remote" $(git rev-parse --abbrev-ref HEAD) git submodule update --recursive ;; # Update all git submodules in this repo. "sd" for submodule download. "sd") # Only supports "master" as branch for now. This could cause unexpected results if a tracked submodule has a different branch or location name git submodule foreach "(git checkout master; git pull)" ;; # Push commited changes (current branch) to a remote (defaults to "origin"). "u" for upload. "u") local remote="${2:-origin}" git push --set-upstream "$remote" $(git rev-parse --abbrev-ref HEAD) ;; # Create a git "Work in Progress" commit with timestamps "w") git commit -m "wip: $(date +%Y-%m-%dT%H:%M:%S%z) ($(date +%s))" ;; *) git branch -v echo "" git status -v ;; esac } # +-----+ # | SSH | # +-----+ # SSH to machine in debug mode at local.vlw.se sshl () { # Set login name from first argument or default to current user local user="${1:-$(whoami)}" ssh -p 2222 "$user"@local.vlw.se }