mkcd() { mkdir -p “$1” && cd “$1”; }
Make a directory and immediately cd into it. I rarely make a directory and not cd into it.
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
mkcd() { mkdir -p “$1” && cd “$1”; }
Make a directory and immediately cd into it. I rarely make a directory and not cd into it.
My app keeps crashing. That's the older version of my alias.
mkcd() { mkdir -p "$1" && cd "$1"; }
alias ..='cd ..'
AmigaOS style!
My variant (u mean "up" in my head)
alias u ='cd ..'
alias uu ='cd ../..'
alias uuu='cd ../../..'
alias weather='curl wttr.in'
That is really neat. I never knew I needed that.
alias ll="ls - l"
My most-used, by far, for decades.
For just a second I thought this was Loss
This and alias la="ls -lhA"
In addition to this, I have lat
& las
with -t
& -s
sorting added respectively.
alias ta="tmux attach -t"
I'm always thinking of using tmux for tilling.
Here are mine. Sorry for the mouth full, but I think people may benefit from some of these :)
alias ll="ls -alkhF"
alias l="ls -1"
# BE CAREFUL WITH THIS AND COULD RETURN COLOR KEYCODES INTO PIPES ETC...
alias grep='grep --color=always'
alias db='dotnet build'
alias gs='git status'
alias gf='git fetch'
alias gl='git pull'
alias gp='git push'
alias gpt='git push --tags'
alias gP='git push --force-with-lease'
alias ga='git add'
alias gd='git diff'
alias gw='git diff --word-diff'
setopt interactive_comments
preexec(){ _lc=$1; }
alias gcm='git commit -m "${_lc#gcm }" #'
# THE BELOW TO BE USED ALONG WITH THE FOLLOWING GIT ALIASES:
#[alias]
# logo = log --pretty=tformat:'%C(auto,red)%m %C(auto,yellow)%h%C(auto,magenta) %G? %C(auto,blue)%>#(12,trunc)%ad %C(auto,green)%<(15,trunc)%aN%C(auto,reset)%s%C(auto,red) %gD %D' --date=short
# adog = log --all --decorate --oneline --graph
# dog = log --decorate --oneline --graph
alias glog='git logo'
alias gdog='git dog'
alias gadog='git adog'
alias gb='git branch'
alias gba='git branch --all'
alias gco='git checkout'
alias gm='git merge'
alias gt='git tag | sort -V | tail'
alias rl='source ~/.zshrc'
alias n='nvim'
# LIST PATHS OF OTHER ZSH SHELLS I HAVE OPEN
lssh() {
ps au \
| awk '$11 == "-zsh" || $11 == "/bin/zsh" { print $2 }' \
| xargs pwdx \
| awk '{ print $2 }' \
| sed -n "\|^${2}.*|p" \
| sort -u \
| nl
}
# CD TO SHELL NUMBER RETURNED BY LSSH
cdsh() {
cd $(lssh \
| sed "$1!d" \
| cut -f 2)
}
# CD TO PATH OF ANOTHER SHELL, USING FZF AS SELECTOR
cs() {
cmd1=$(lssh | fzf --select-1 --query "$1" --height=~50 | cut -f 2)
cmd="cd $cmd1"
print -S $cmd
eval $cmd
}
# RUN THE COMMAND FROM HISTORY, USING FZF AS SELECTOR, ALTERNATIVE TO <C-R>
hf() {
cmd=$(history 0 | sort -nr | cut -c 8- | fzf -e --select-1 --no-sort --query "$1" )
# push the command into the history
print -S $cmd
eval $cmd
}
# REMMINA USING THE CONNECTION FILE SELECTED USING FZF
rf() {
pushd ~/.local/share/remmina
cmd=$(remmina -c $(ls $PWD/* | fzf -e --select-1 --no-sort --query "$1"))
# push the command into the history
print -S $cmd
eval $cmd
popd
}
Not exactly an alias but a short script. First, get git-revise which is a replacement for git rebase
, and fzf if for some reason you don't have it yet. Then make a script in your ~/.local/bin
called git-f
or whatever you'd like:
#!/bin/bash
REF=${1:-origin/main} # adjust to your favorite trunk branch name
COMMIT=$(git log --pretty=oneline ${REF}.. \
| fzf --preview "git show -p --stat {+1}" | cut -d' ' -f1)
if [ -n "$COMMIT" ]; then
exec git revise "$COMMIT"
else
exit 1
fi
Now hack away in a branch, make some commits, and at some point you will realize you want to modify an earlier commit. Use git add -p
to add the relevant lines, but then instead of making a fixup commit just type git f
and pick the target commit from the list.
alias clearswap='sudo swapoff -a && sudo swapon -a
alias reload='source ~/.bashrc'
scan_local() {
local_ip=$(ip addr show wlan0 | grep "inet " | awk '{print $2}' | awk -F '/' '{print $1}')
sudo nmap -sn "$local_ip/24"
}
become="sudo su -"
pb="ansible-playbook"
alias upd=“yay -Syu --devel”
alias cleanup=“yay -Qdtq | yay -Rns-”
alias mirror=“sudo reflector --verbose --country ‘United States’ --protocol https --latest 15 --sort rate --save /etc/pacman.d/mirrorlist && sudo eos-rankmirrors”
I use this function to launch GUI apps from the shell without occupying that shell or cluttering it with their output:
nown() {
if [ -n "$1" ]
then
nohup $@ &> /dev/null & disown
else
echo "Don't give me a null command dumbass."
fi
}
I always set these because I've been burned too many times:
Turn on interactive mode for dangerous commands
alias cp='cp -iv'
alias mv='mv -iv'
alias rm='rm -iv'
alias clearswap='sudo swapoff -a && sudo swapon -a'
alias grep='grep --color=auto'
alias ls='ls --color=auto --group-directories-first'
alias la='ls -lAh --color=auto --group-directories-first'
alias timestamp='date +%Y-%m-%dT%H-%M-%S'
Technically not aliases but I have these in my ~/.bash_aliases so...
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
Type a few letters and press up/down arrow to scroll through matching history entries.
Also...
alias s="cd -"
It's like Alt+Tab for CLI.
I made a cool exercise some time ago: checking my top 10 used commands, to see how I can "optimize" them, and maybe create a few aliases to save a few keystrokes. Turns out I don't need that much aliases in the end:
alias v='vis' # my text editor
alias sv='doas vis'
alias ll='ls -l'
And that's pretty much it ^^ I do have a lot of scripts though, some of them being one-liners, but it makes them shell independent, which I like :)
For reference, here is my analysis of my top 10 most used commands.
edit: I do have a bunch of git aliases though for common subcommands I use. I prefer using them as git <alias>
over using she'll specific aliases so I can always type "git
" and not mentally think wether I need a git command or a shell alias.
alias et='emacsclient -ct'
alias ec='emacsclient -cn'
alias make='make --warn-undefined-variables'
Interesting, git do support aliases too. "git st" etc What is .load.sh?
*ahem
alias brb='paru -Syu --noconfirm && paru -Sc --noconfirm'
You should name it alias btw=... to fully embrace our stereotype ;).
I don't use aliases. Since I use fish
as a login shell, I use abbreviations. I have a lot of them configured. But I think my favorite one is yeet
which expands to paru -Rcns
.
alias gecko="echo"
Oh why that?
Purely for fun
That's always the best fun
Quite basic but saves me a couple of seconds each time. alias update="sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y"
dc="docker-compose" saves me soooo much time!
Oh yeah thanks forgot docker compose to put into my aliases