Archive for the ‘CLI’ Category

My Bash-Aliases

Saturday, February 26th, 2011

Hi 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