alias scr=screen -dRU
I don't know why Screen has any other flags. I do not want to bother learning the keyboard shortcuts for tmux even though its probably works better
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
alias scr=screen -dRU
I don't know why Screen has any other flags. I do not want to bother learning the keyboard shortcuts for tmux even though its probably works better
alias cls=clear
My first language was QB, so it makes me chuckle.
Also, alias cim=vim
. If I had a penny...
I also have cls aliased to clear! I used to use windows terminal and found myself compulsively typing cls when I moved to linux.
# Copy pwd into clipboard using pbcopy
alias cpwd="pwd | tr -d '\n' | pbcopy && echo 'pwd copied into clipboard'"
git() {
if [ "$1" = "cd" ]; then
shift
cd "./$(command git rev-parse --show-cdup)$*"
else
command git "$@"
fi
}
This lets you run git cd
to go to the root of your repo, or git cd foo/bar
to go to a path relative to that root. You can't do it as an alias because it's conditional, and you can't do it as a git-cd
command because that wouldn't affect the current shell.
Polls for potential zombie processes:
# Survive the apocalypse
function zombies () {
ps -elf | grep tsc | awk '{print $2}' | while read pid; do
lsof -p $pid | grep cwd | awk '{printf "%-20s ", $2; $1=""; print $9}'
done
}
export -f zombies
alias zeds="watch -c -e -n 1 zombies"
My desktop text editor has an autosave feature, but it only works after you've manually saved the file. All I wanted is something like the notes app on my phone, where I can jot down random thoughts without worrying about naming a new file. So here's the script behind my text editor shortcut, which creates a new text file in ~/.drafts, names it with the current date, adds a suffix if the file already exists, and finally opens the editor:
#!/bin/bash
name=/home/defacto/.drafts/"`date +"%Y%m%d"`"_text
if [[ -e "$name" || -L "$name" ]] ; then
i=1
while [[ -e "$name"_$i || -L "$name"_$i ]] ; do
let i++
done
name="$name"_$i
fi
touch -- "$name"
pluma "$name" #replace pluma with your editor of choice
Technically not an alias, because I just use nushell's history + autocompletion everytime I use it, but one could alias it. I think I might even write a custom command for it, with path
argument, some day. Anyway, here it goes:
rsync -aPh -e "ssh -p 2222" test@172.16.0.86:/storage/emulated/0/PicturesArchive/ ~/PicturesArchive/
I run an ssh daemon on my phone, and use this snippet to back up my photos.
I don't have anything too fancy. I use [theFuck(https://github.com/nvbn/thefuck) to handle typos, and I have some variables set to common directories that I use.
I try to organise my data in the cleanest way possible, with the less double possible etc... I end up using a lot of symbolic links. When doing maintenance, sometimes I want to navigate in the "unlogical" way the data are organized, but the PWD variable is not necessarily very cooperative. This alias is really useful in my case :
alias realwd='cd -P .'
Here is an example :
$ echo $PWD
/home/me
$ cd Videos/Torrents/
$ echo $PWD
/home/me/Videos/Torrents
$ realwd
$ echo $PWD
/home/me/data/Torrents/Video
I also do some X application, compositor and WM development, and I have a few aliases to simplify tasks like copying from an Xorg session to an Xnest (and the other way around), or reload the xrandr
command from my .xinitrc
without duplicating it.
alias screenconf='$(grep -o "xrandr[^&]*" ~/.xinitrc)'
alias clip2xnext='xclip -selection clip -o -display :0 | xclip -selection clip -i -display :1'
alias clip2xorg='xclip -selection clip -o -display :1 | xclip -selection clip -i -display :0'
I have an alias for using MPV+yt-dlp with my firefox cookies :
alias yt="mpv --ytdl-raw-options='cookies-from-browser=firefox'"
I can't stand too long lines of text on my monitor, particularly when reading manpages, so I set the MANWIDTH env variable.
# Note : if you know that *sometimes* your terminal will be smaller than 80 characters
# refer to that https://wiki.archlinux.org/title/Man_page
export MANWIDTH=80
I use null-pointers a lot, with a shorthand.
# Note: env.sh actually provide other helpful aliases on their homepage
function envs.sh() {
if [ $# != 1 ]; then
1>&2 printf "Error, need one argument.\n"
return 1
fi
curl -F'file=@'"$1" https://envs.sh/
}
The usual fake editor in my path, so that browsers and other applications open Vim the correct way.
#!/bin/sh
# st_vim.sh - executable in my ~/.local/bin
# for example in firefox's about:config :
# - view_source.editor.path : set to the value of $(which st_vim.sh)
# - view_source.editor.external : set to true
st -- $EDITOR "$*"
My .xinitrc
is quite classical, I still have this in it (setup for dwm's title bar, people usually install much complicated programs) :
while true; do xsetroot -name "$(date +"%d %H:%M")"; sleep 60; done &
I also have a lot of stupid scripts for server and desktop maintenance, disks cleaning etc... those are handy but are also very site-specific, let me know if your interested.
# grep search the current directory
function lg() {
ls -alt | grep $1
}
Currently using this to resize screenshots in a Word doc
#Requires AutoHotkey v2.0
^+1:: { Send "{RButton}z{Tab 3}4{Enter}" }
I have a few:
loginserver
dcompose(d/pull) - docker compose (down/pull)
3 scripts that are just docker compose up/down/pull, as scripts (remind me in 6 hours and I will post the scripts) so that it will CD to my compose folder, execute the command (with option for naming specific containers or blank for all) and then CD back to the directory I started in.
git() {
if [ "$1" = clone ]; then
shift
set -- clone --recursive "$@"
fi
command git "$@"
}
Is this just meant to make git clone always clone recursively?
Can't you do this with aliases in your .gitconfig?
yes it is. idk😄 i have a similar one for github-cli
Similar to yours OP I copy many URLs and then run my script that takes the number of URLs I copied eg 5,and downloads them with yt-dlp
and GNU parallel
to ~/Videos
I use CopyQ to hold the clipboard history.
#Create predefined session with multiple tabs/panes (rss, bluetooth, docker...)
tmux-start
#Create predefined tmux session with ncmpcpp and ueberzug cover
music
#Comfort
ls = "ls --color=auto"
please = "sudo !!"
#Quick weather check
weatherH='curl -s "wttr.in/HomeCity?2QF"'
#Download Youtube playlist videos in separate directory indexed by video order in playlist -> lectures, etc
ytPlaylist='yt-dlp -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s"'
#Download whole album -> podcasts primarily
ytAlbum='yt-dlp -x --audio-format mp3 --split-chapters --embed-thumbnail -o "chapter:%(section_title)s.%(ext)s"'
# download video -> extract audio -> show notification
ytm()
{
tsp yt-dlp -x --audio-format mp3 --no-playlist -P "~/Music/downloaded" $1 \
--exec "dunstify -i folder-download -t 3000 -r 2598 -u normal %(filepath)q"
}
# Provide list of optional packages which can be manually selected
pacmanOpts()
{
typeset -a os
for o in `expac -S '%o\n' $1`
do
read -p "Install ${o}? " r
[[ ${r,,} =~ ^y(|e|es)$ ]] && os+=( $o )
done
sudo pacman -S $1 ${os[@]}
}
# fkill - kill process
fkill() {
pid=$(ps -ef | sed 1d | fzf -m --ansi --color fg:-1,bg:-1,hl:46,fg+:40,bg+:233,hl+:46 --color prompt:166,border:46 --height 40% --border=sharp --prompt="➤ " --pointer="➤ " --marker="➤ " | awk '{print $2}')
if [ "x$pid" != "x" ]
then
kill -${1:-9} $pid
fi
}
For me it's pretty basic. It's mostly aliases for nix related commands, like rebuild-switch, updating, garbage collecting, because those nix commands are pretty lenghty, especially with having to point to your flake and everything. I'm thinking of maybe adding an alias for cyanrip (cli cd ripper), because i recently ripped my entire cd collection, but going forward if i buy another cd every now and then, i'll probably end up forgetting about which flags i used.
I replaced rm with trash-put, just in case I realize I need some files that I removed down the line.
alias rm='trash-put'
Official author don't recommend it due to different semantics. But honestly for my own personal use case its fine for me.
Also I like to alias xclip:
alias clippy='xclip -selection clipboard'
# cat things.txt | clippy
ganis
:
git add -A && sudo nixos-rebuild switch --impure -j$(nproc)
Everyone who uses nixos probably has a similar alias set x)
Because using docker can sometimes cause ownership issues if not properly configured in your docker-compose.yml, I just added an alias to ~/.zshrc to rectify that.
-edit- Only run this script in your user owned directories, e.g. anything from ~/ (or /home/<your_username>) you might otherwise cause ownership issues for your system.
## Set ownership of files/folders recursively to current user
alias iownyou="sudo chown -R $USER:$GROUP"