My Bash-Aliases
Saturday, February 26th, 2011Hi folks!
Of course I like GUIs and I like KDE and graphical configuration-applications etc. But I am using the CLI (with bash and Yakuake) for many tasks like file-management, compilation, etc. Sometimes it may be even less effective than Dolphin or something like that, but it is quite useful and I got used to it. I am using a lot of aliases (or one-line-bash-script) I want to share with you. I admit that I do not use all of them, but I try to.
Archives
alias ntar="tar -cf" alias gz="tar -zcvf" alias bz="tar -jcvf" alias zp="zip" alias ugz="tar -zxf" alias ubz="tar -jxf" alias utar="tar -xf" alias uzp="unzip" alias ltar="tar -tf" alias lbz="tar -jtf" alias lgz="tar -ztf" alias lzp="unzip -l" alias llz="tar --lzma -tf" alias ulz="tar --lzma -xf" alias lz="tar --lzma -cvf"
Show the entries of archives and create or unpack them, easier to memorize than “tar r
#!/bin/bash LANG=en_EN.UTF-8 g++ -c -Q $2 --help=optimizers > /tmp/O3-opts LANG=en_EN.UTF-8 g++ -c -Q $1 --help=optimizers > /tmp/O2-opts diff /tmp/O2-opts /tmp/O3-opts | grep enabled rm /tmp/O2-opts /tmp/O3-opts
Process management
alias pr="ps -A | grep $1" # all processes matching the parameter alias out="\$@ 2>&1" # print stderr to stdout alias en="LANG=en_EN.UTF-8 \$@" # sometimes I do not want to have German translations, especially for bug-reports etc.
Some commands are too “complicate” for an alias:
quiet (suppress output):
#!/bin/bash $@ &> /dev/null
mute (start an application in the background silently):
#!/bin/bash echo "$@" "$@" &> /dev/null &
mk (start an application using kdeinit4_wrapper):
#!/usr/bin/env ruby pwd = Dir.pwd cmd = "kdeinit4_wrapper " + ARGV[0] for i in 1..(ARGV.size - 1) if ARGV[i][0] != "/"[0] && ARGV[i][0] != "~"[0] a = pwd + "/" + ARGV[i] ARGV[i] = a if File.exists? a end cmd += " \"" + ARGV[i].gsub('"', '\"') + "\"" end puts cmd system(cmd)
quitapp (quit an application):
#!/bin/sh ps -A | grep $1 echo "Try to quit using DBus..." echo `kquitapp $1` > /dev/null sleep 4 echo "Try to terminate..." echo `killall -SIGTERM $1` &> /dev/null sleep 1 echo "KILL!" echo `killall -SIGKILL $1` &> /dev/null
restart (restart an application):
#!/bin/bash ~/.script/quitapp.sh $1 ~/.script/mute.sh kdeinit4_wrapper $@
suppress (continue execution after a failure):
#!/bin/bash echo `$@`
File management
alias s=less # show alias e="mk kwrite" # editor, I noticed that I was using vi just because of the short command, that is why I have added s and e alias d="du -sh" # size alias cs='cd $1 && ls' alias ms='mkdir $1 && cd $1' alias kc=kioclient alias ke="kfmclient exec " # open the files using the default application alias g.="cd .." alias g..="cd ../.." alias g...="cd ../../.."
et:
#!/bin/bash touch $1 mk.rb kwrite $1
dl:
#!/bin/bash echo $@ to trash kioclient mv $@ trash:/
swap:
cp $1 /tmp/tempswap$(basename $1) cp $2 $1 mv /tmp/tempswap$(basename $1) $2
lg:
#!/bin/bash ls -a | grep $@
System
alias adjusttime="sudo /usr/sbin/sntp -P no -r pool.ntp.org && echo \"New date: \`date\`\"" alias reset-networkmanager="sudo rm /var/lib/NetworkManager/NetworkManager.state"
chrootx (that is how chroot should work):
#!/bin/bash mount -o bind /proc $1/proc mount -o bind /dev $1/dev mount --bind /etc/hosts $1/etc/hosts mount --bind /etc/resolv.conf $1/etc/resolv.conf chroot $1 /bin/bash
Hibernation:
#!/bin/sh sudo echo "Hibernate!" kscreenlocker --forcelock & sleep 3 sudo s2disk /dev/sda2
I had found options for kdmctl for shutting down the system, have to look them up again…
Fun
Try it yourself (alsa active, jack not active, espeak installed):
alias randsound="cat /dev/urandom | espeak --stdout | aplay" alias randsoundde="cat /dev/urandom | espeak --stdout -v german | aplay" alias reallyrandsound="cat /dev/random | espeak --stdout | aplay" alias randreallysound="sudo cat /dev/urandom > /dev/dsp"
Have fun!
The User