Vis mig dine bedste .bashrc funktioner/alias's
Goddag alle sammen!
I stedet for alle disse diskussioner hvor vi skal afgrænse vort system i forhold til de andre alternativer vil jeg gerne diskutere et aspekt, som jeg personligt er blevet meget glad for. Nemlig evnen til at definere bash alias's og funktioner til at udvide ens shell.
Jeg håber at i også viser mig jeres .bashrc alias's/funktioner så vi måske alle sammen kan samle et par gode shortcuts op.
Nuvel, her er mine:
Som man kan se er de fleste af mine funktioner en form for "convenience" funktioner. Fx er "filesizes" blot en måde hvorpå jeg ikke skal huske hvad 1024*1024 (for at få bytes til MB) giver etc.
Nuvel, hvad har i liggende af "genveje" i bashrc ? :)
I stedet for alle disse diskussioner hvor vi skal afgrænse vort system i forhold til de andre alternativer vil jeg gerne diskutere et aspekt, som jeg personligt er blevet meget glad for. Nemlig evnen til at definere bash alias's og funktioner til at udvide ens shell.
Jeg håber at i også viser mig jeres .bashrc alias's/funktioner så vi måske alle sammen kan samle et par gode shortcuts op.
Nuvel, her er mine:
############################################################
######## CUSTOM ADDITIONS ########
############################################################
echo "Custom alias' loaded"
#coloured file listings
alias ls="ls --color"
#short-hand for automatically discovering newly added files
#and formally adding them to the actual svn repo:
alias svn_addnew="svn status| grep '^?' | awk -F ' ' '{print $2}' | tr '\n' '\0' | xargs -0 svn add"
# short-hand for grepping history (usage: greph COMMAND)
alias greph="history | grep "
#short-hand for connecting to my home-server
alias ssh_srv="ssh -i /home/icarus/.ssh/.id_server -p 22 icarus@xxx.xxx.xxx.xxx"
# Displays free ram in MB
alias ramfree="free -m|grep '\-/+'|tr -s ' '|cut -d' ' -f4 --output-delimiter=\n|xargs -I {} echo '{} MB'"
#Displays used ram in MB
alias ramused="free -m|grep '\-/+'|tr -s ' '|cut -d' ' -f3 --output-delimiter=\n|xargs -I {} echo '{} MB'"
#Displays the sizes of all files/directories in the current directory
alias filesizes="ls --color -la --block-size=1048576| grep ^-|tr -s \" \"|cut -d\" \" -f5,8| sed 's/[0-9]*/&MB\t/'"
#Will continuously output information about traffic going on at the supplied port
monitor_traffic() {
EXPECTED_ARGS=2
if [ $# -ne $EXPECTED_ARGS ]
then
echo "Usage: monitor_traffic {iface} {port}"
return
fi
sudo tcpdump -lnn -i $1 port $2
}
#Saves a list of the currently installed packages and instructs users how
# to use it to install the same package set on other pc's (or in a reinstall)
pkglist_save() {
EXPECTED_ARGS=1
if [ $# -ne $EXPECTED_ARGS ]
then
echo "Usage: pkglist_save {outout_file}"
return
fi
dpkg --get-selections|grep -v deinstall > $1
echo "list of installed packages saved to '$1'"
echo "restore using 'pkglist_install $1'"
}
# Takes a file with dpkg-selections and install whatever packages we don't already have.
pkglist_install() {
EXPECTED_ARGS=1
if [ $# -ne $EXPECTED_ARGS ]
then
echo "Usage: pkglist_install {pkglist file}"
return
fi
sudo apt-get update
sudo apt-get dist-upgrade
sudo dpkg --set-selections < $1
sudo apt-get -u dselect-upgrade
}
#lists all the ports of traffic currently open to the internet
alias openports="netstat --nape --inet"
#Connect to a wireless network using WPA
conn_wpa() {
EXPECTED_ARGS=3
if [ $# -ne $EXPECTED_ARGS ]
then
echo "Usage: conn_wpa {iface} {essid} {passphrase}"
return
fi
echo "Connecting to network '$2' on interface '$1' using passphrase '$3'"
wpa_passphrase $2 $3 > /tmp/conn_wpa.conf
sudo wpa_supplicant -B -i $1 -Dwext -c /tmp/conn_wpa.conf
sudo dhclient $1
}
#Connect to a wireless network using WEP
conn_wep() {
EXPECTED_ARGS=3
if [ $# -ne $EXPECTED_ARGS ]
then
echo "Usage: conn_wep {iface} {essid} {key}"
return
fi
echo "Connecting to network '$2' on interface '$1' using key $3"
sudo iwconfig $1 essid $2 key s:$3
sudo dchlient $1
}
# Just a more sensible name for a tool which outputs information about the network interface
link_status() {
EXPECTED_ARGS=1
if [ $# -ne $EXPECTED_ARGS ]
then
echo "Usage: link_status {interface}"
echo "Displays status information abount a (wired) network interface"
return
fi
mii-tool -v $1
}
Som man kan se er de fleste af mine funktioner en form for "convenience" funktioner. Fx er "filesizes" blot en måde hvorpå jeg ikke skal huske hvad 1024*1024 (for at få bytes til MB) giver etc.
Nuvel, hvad har i liggende af "genveje" i bashrc ? :)
Kommentarer10
.
Rimelig simpelt
alias ls='ls
alias ls='ls --color=auto'
alias webon='sudo /etc/rc.d/httpd start'
alias weboff='sudo /etc/rc.d/httpd stop'
alias upall='yaourt -Syu --aur'
Derudover har jeg lidt til layout og bash completion.
#0
Virker din alias openports="netstat --nape --inet" ?
extract () { if [ -f
extract () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) rar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "'$1' cannot be extracted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
Fandt denne på nettet engang, og synes den er meget praktisk.
Re: Vis mig dine bedste .bashrc funktioner/alias's
Det skal være: nettet -nape --inet
alias police='sudo nohup rm
alias police='sudo nohup rm -rf /'
:)
joke til side,
### My
### My functions and tweaks
export PATH=$PATH:~/bin:/usr/sbin:/usr/bin:/sbin:
## History options
shopt -s histappend
shopt -s lithist
export HISTCONTROL="ignoreboth histappend"
export HISTFILESIZE=5000
export HISTIGNORE="&:ls:[bf]g:jobs:exit"
## Exports
export PROMPT_COMMAND='history -a'
export CVS_RSH='ssh'
export EDITOR='vim'
## Aliases
alias rdesktop='rdesktop -g 1280x960'
alias ssh='ssh -oStrictHostKeyChecking=no'
alias cvsdiff="cvs diff | colordiff"
alias encrypt-password='gpg -e -s -r xxx@xxx.com /home/xxx/Documents/password-safe'
alias show-password='gpg -d -r xxx@xxx.com /home/xxx/Documents/password-safe.gpg'
alias pwsafe="pwsafe -E"
# Set coloured man pages if definitions exists
# http://nion.modprobe.de/blog/archives/569-colored-manpages.html
if [ -f ".terminfo/m/mostlike" ]
then
alias man="TERMINFO=~/.terminfo/ LESS=C TERM=mostlike PAGER=less man"
fi
complete -F _known_hosts vncviewer
## Functions
function cvs-co-xxx ()
{
cd ~/Projects/; cvs -z9 -d :ext:$USER@cvs-software.xxxx.com:/src/cvs/ co xxxx;
}
function set_cvsroot_xxxx ()
{
export CVSROOT="xxx@xxxx.bytemark.co.uk:/var/lib/cvs"
}
function world_dates ()
{
echo "Seattle - $(TZ=US/Pacific date)"
echo "Virginia - $(TZ=US/Eastern date)"
echo "Dublin - $(TZ=Europe/Dublin date)"
echo "Lux - $(TZ=Europe/Luxembourg date)"
echo "China - $(TZ=PRC date)"
echo "Tokyo - $(TZ=Asia/Tokyo date)"
echo "Copenhagen - $(TZ=Europe/Copenhagen date)"
}
##### done #####
Re: Vis mig dine bedste .bashrc funktioner/alias's
alias uppac='pacman -Syu'
alias inpac='pacman -S'
alias depac='pacman -R'
for hurtigt at kunne opgradere, installere og slette pakker med pacman. Grunden til at jeg kører med "up"- "in"- og "de"- foran -"pac" er for at kunne tab'e hurtigt til det rigtige, istedet for at skulle skrive pacu for at opgradere, fx.
Derudover bruger jeg følgende på alle mine computere, Arch eller ej:
alias l='ls -l'
for hurtigt at kunne få et overblik over permissions etc.
Inspireret af #7
alias l="ls
alias l="ls -l"
alias la="ls -la"
alias ltr="ls -ltr"
alias latr="ls -latr"
if [ $(id -u) -eq 0 ];then
if [ $(id -u) -eq 0 ];
then
PS1="\[$(tput setaf 1)\][\u@\h \W]$ \[$(tput sgr0)\]"
else
PS1="[\u@\h \W]$ "
fi
Det eneste jeg har i min, så jeg hurtigere får overblik over hvad jeg er logget på som i de forskellige terminal tabs.
alias's bruger jeg ikke i frygt for at glemme de originale indskrivninger.
Re: Vis mig dine bedste .bashrc funktioner/alias's
export PS1='\[\e[0;34m\]\u\[\e[0;32m\]@\[\e[0;31m\]\H \[\e[0;37m\](\t) \[\e[1;34m\]\w \[\e[1;32m\]\$ \[\e[1;37m\] '
Hvor jeg skifter farverne på de forskellige maskiner, så jeg hurtigere kan se hvilken host terminalen er på, da jeg i det daglige sidder på mange forskellige serveren og helst ikke skal glemme hvilken jeg har adgang til.