Du bist nicht angemeldet.
Kannst auch so machen
ls -a /var/log
dann wechselt er aber nicht in das verzeichnis /var/log , sondern zeigt nur dessen inhalt an...
Offline
Etwas dazugekommen in letzter Zeit.
# Check for an interactive session
[ -z "$PS1" ] && return
# Autologin on tty1, start X-Server
if [ "$(tty)" = "/dev/tty1" ]; then
startx
# logout
fi
# Autologin on tty2, start screen-session
if [ "$(tty)" = "/dev/tty2" ]; then
screen -r 2>&1 >/dev/null || screen
logout
fi
# Bash completion
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
# Dont check /var/spool/mail/tom
if [ -n "$MAILCHECK" ]; then
unset MAILCHECK
fi
# Prompt
PS1error='$(ret=$?; test $ret -gt 0 && echo "\[\e[0;31m\][$ret] \[\e[0m\]")'
PS1="\[\033[0m\]\n\[\033[1;34m\]\u \[\033[0m\]\w\n$PS1error\$ "
# Alias
alias ls='ls --file-type --group-directories-first --color=auto'
alias ll='ls -lhX --file-type --group-directories-first'
alias la='ls -A --file-type --group-directories-first'
alias cd..='cd ..'
alias .='cd ..'alias ..='cd ../..'
alias ...='cd ../../..'
alias xpdf='xpdf >/dev/null 2>&1'
alias antiword='LANG=de_DE antiword'
alias nopaste='curl -F "content=<-" npaste.de'
alias feh='feh -g 1400x1050 -F -d'
# Functions
function mergepdf() {
if [ ! "$2" ]; then
echo ":: Not enough input files"
return 1
else
gs -sDEVICE=pdfwrite -sOutputFile=merged.pdf -dBATCH -dNOPAUSE "$@"
return 0
fi
}
function proxywww() {
export http_proxy=http://proxy.cs.fh-nuernberg.de:3128
w3m "$1" &&
export http_proxy=
}
function spelltex() {
LANG=de_DE xterm -fg '#babdb6' -bg '#111111' -e "aspell -d de_DE -t --dont-tex-check-comments --encoding=utf-8 -c $1" &
}
function dos2unix() {
if [ "$#" -lt "2" ]; then
echo ":: Not enough input files"
echo ":: Usage: dos2unix input output"
return 1
else
tr -d '\r' < $1 > $2 && mv $2 $1
iconv -f ISO-8859-1 -t UTF-8 $1 > $2 && mv $2 $1
fi
}
function copycd() {
mkisofs -R -T -V CDROM /dev/sr0 | cdrecord -v speed=8 dev=0,1,0 -
}
function unpack() {
if [ -f $1 ]; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.tgz) tar xzf $1 ;;
*.tar) tar xf $1 ;;
*.bz2) bunzip2 $1 ;;
*.gz) gunzip $1 ;;
*.rar) unrar e $1 ;;
*.zip) unzip $1 ;;
*) echo "'$1' cannot be extracted via unpack()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
function biggestProgs() {
echo "-----+---------+---------------------------"
echo " POS | SIZE MB | NAME "
echo "-----+---------+---------------------------"
pacman -Qs | awk '/local/{print substr($3,2)" "substr($1,7)}' | sort -rn | head -$1 | awk '{printf "%4d | %7s | %s\n",NR,$1,$2}'
}
# Exports
PATH=$PATH:/home/tom/bin
VISUAL=/usr/bin/vim
export VISUAL
export PATH
#export OOO_FORCE_DESKTOP=gnome
set show-all-if-ambiguous on
complete -cf su
complete -A directory mkdir rmdir
complete -f -o default -X '*.+(zip|ZIP)' zip
complete -f -o default -X '!*.+(zip|ZIP)' unzip
complete -f -o default -X '*.+(gz|GZ)' gzip
complete -f -o default -X '!*.+(gz|GZ)' gunzip
complete -f -o default -X '*.+(bz2|BZ2)' bzip2
complete -f -o default -X '!*.+(bz2|BZ2)' bunzip2
complete -f -o default -X '!*.+(ps|PS)' gs ghostview ps2pdf
complete -f -o default -X '!*.+(dvi|DVI)' dvips dvipdf xdvi
complete -f -o default -X '!*.+(pdf|PDF)' xpdf ps2pdf
complete -f -o default -X '!*.tex' tex latex pdflatex
# EOF
Beitrag geändert von custom (08.04.2010 21:14:59)
Offline
Ich erwähne mal nur ein paar, die man nicht so oft sieht (zsh):
# List only directories and symbolic
# links that point to directories
alias lsd='ls -ld *(-/DN)'
# List only files beginning with "."
alias l.='ls -ldh .*'
# cd by ... or .... or mv file ....
alias -g ...='../..'
alias -g ....='../../..'
alias -g .....='../../../..'
# allow + and - for switching between dirs
alias -- +='pushd +0'
alias -- -='pushd -1'
alias -- ++='pushd +1'
alias -- --='pushd -2'
alias -- +++='pushd +2'
alias -- ---='pushd -3'
setopt pushdtohome pushdsilent pushdignoredups autopushd pushdminus
alias e=emacsclient
Beitrag geändert von danlei (17.12.2009 18:38:12)
Offline
alias -g .....='../../../..'
RU SERIOUS?
Offline
Army schrieb:Kannst auch so machen
ls -a /var/log
dann wechselt er aber nicht in das verzeichnis /var/log , sondern zeigt nur dessen inhalt an...
Aber dann kann ich mir gleich mit entsprechendem alias, was noch im bau ist, die gesuchte logdatei anzeigen lassen, wenn ich nach /var/log wechsel. Es erleicht allgemein das weitere Arbeiten. (auch wenn ich dafür nicht nach /var/log muss)
und noch die neuen:
alias ebashrc='gedit ~/.bashrc'
alias umntstck='sudo umount /dev/sdc1'
alias umnthandy='sudo umount /dev/sdc'
alias root='sudo -s'
Man, ich liebe bash und die rc
Was würde ich nur ohne machen ...
Beitrag geändert von CrAc (17.12.2009 21:19:34)
Offline
alias umntstck='sudo umount /dev/sdc1' alias umnthandy='sudo umount /dev/sdc'
Sicher dass das so immer stimmt? Wenn du mal ein anderes Gerät vorher einsteckst, dann ist es halt nimmer sdc1, sondern sdd1 oder so. Bei festen Zuweisungen empfielt es sich generell, die fstab zu benutzen. Dann wird daraus einfach ein
umount /mnt/handy
oder so ähnlich, je nachdem, was du für nen Pfad angibst. Aber es bleibt auf jeden Fall immer die gleiche Befehlszeile, egal, ob das Handy jetzt sdc oder sdd oder sonstwas ist.
In der fstab kann das dann zB so aussehn
UUID=6536-3936 /media/handy vfat rw,user,noauto,flush,shortname=mixed,uid=1000,utf8,umask=077
Die UUID findest du mit dem Kommando blkid heraus.
Nur so als Anregung
Beitrag geändert von Army (17.12.2009 21:27:40)
Offline
Aber wenn ich das ganze in die fstab haue, wird das ganze schon am start geckeckt, das hält auf. Und so muss ich nirgends rumspielen
(Ich kann im laufenden Betrieb nichts aus der fstab mounten)
Und andere Geräte habe ich nicht
Achja:
Wäre nett, wenn mir wer verrät, was falsch ist:
alias greplog='cat /var/log/*.log | grep -i "$1" | less'
Das mit der Variable scheint zu haken.
Beitrag geändert von CrAc (18.12.2009 12:59:26)
Offline
[...]
Achja:
Wäre nett, wenn mir wer verrät, was falsch ist:
alias greplog='cat /var/log/*.log | grep -i "$1" | less'Das mit der Variable scheint zu haken.
alias führt eine simple Textersetzung durch, $1 wäre aber ein Argument, was an eine Funktion oder ein Programm übergeben wird
greplog() { grep -i "$1" /var/log/*.log | less } wäre hier die richtige Alternative (beachte "useless use of cat")
Offline
Zu nett
Nur, wie nutze ich diese funktion?
weder greplog, greplog() lala, noch greplog(lala) haben funktioniert
Offline
Zu nett
Nur, wie nutze ich diese funktion?
weder greplog, greplog() lala, noch greplog(lala) haben funktioniert
na, sicherlich genau so wie du sie verwenden willst:
$ greplog test
...
<ganz ganz lange liste>
Offline
Einige meiner aliase
alias ren="vim -c ':Renamer'"
alias vimrc='vim $HOME/.vimrc'
alias bashrc='vim $HOME/.bashrc && source $HOME/.bashrc'
alias winid="xwininfo | grep id: | sed -e 's/[^0]*//' -e 's/ .*//g'"
alias info="info --vi-keys"
alias tvim="gvim --servername vimtex -S"
und die am meisten genutzten funktionen:
pdfconc () {
[ $# -lt 2 ] && echo "usage: pdfconc outfile infile(s)" && return
out="$1"
shift
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="$out" "$@"
}
ll() {
ls -lh --color $* | more;
}
www () {
w3m "${1:--B}";
}
lz () {
mv "$1" "${1//\ /_}";
}
mkbash() {
echo "#!/bin/bash" > "$1" && chmod 700 "$1" && vim -c "set ft=sh" "$1"
}
pacs () {
pacman -Ss $1 | less
}
concol() {
[ $TERM != linux ] && echo "Keine Linux-Konsole" && return 0
case $1 in
-w) setterm -foreground black -background white -store -clear ;;
-b) setterm -foreground white -background black -store -clear ;;
*) echo "usage: concol -w|-b" && return 0 ;;
esac
}
Offline
CrAc schrieb:Zu nett
Nur, wie nutze ich diese funktion?
weder greplog, greplog() lala, noch greplog(lala) haben funktioniertna, sicherlich genau so wie du sie verwenden willst:
$ greplog test ... <ganz ganz lange liste>
fehler gefunden:
greplog () {
grep -i "$1" /var/log/*.log | less
}
Das Leerzeichen nach dem funktionsname
Danke
Beitrag geändert von CrAc (18.12.2009 23:20:53)
Offline
Hi,
das hier ist mein erster Beitrag, ich hoffe das ich das richtig mache...
Ich habe ein paar aliase und ein paar nützliche Funktionen in meiner .bashrc:
# Check for an interactive session
[ -z "$PS1" ] && return
alias .='cd ../'
alias ..='cd ../../'
alias ...='cd ../../../'
alias ....='cd ../../../../'
alias cp='rsync --progress -h -8'
alias pacman='sudo pacman'
alias ls='ls -l --color=auto'
alias system-update='pacman -Syu'
alias myip='curl http://www.whatismyip.org; echo'
alias ping='ping -c 5'
alias less='less -r'
alias vim-syntax='vim -c ":syntax on"'
alias mount='sudo mount'
alias umount='sudo umount'
function pastebin() {
if [ -z $1 ]; then
echo "pastebin [USER] [EXPIRY] [DATA] [FORMAT]"
echo " USER = Your username"
echo " EXPIRY = d(day), m(month), f(forever)"
echo " DATA = Your text"
echo " FORMAT = Text format, for example(text, bash)"
else
if [ "$4" = "" ]; then
FORMAT="text"
else
FORMAT=$4
fi
curl -i -d "poster=$1&expiry=$2&code2=$3&format=${FORMAT}&paste=Send" "http://pastebin.com/pastebin.php" 2>/dev/null | grep -i "Location:"
fi
}
function mkbash() {
echo "#!/bin/bash" >$1 && chmod 700 $1 && vim -c ":syntax on" $1
}
function psgrep() {
ps aux | grep $1 | grep -v "grep"
}
function unpack() {
if [ -f $1 ]; then
case $1 in
*.tar.bz2|*.tbz2)
tar xvfj $1
;;
*.tar.gz|*.tgz)
tar xvfz $1
;;
*.bz2)
bzip2 -d $1
;;
*.rar)
unrar x $1
;;
*.gz)
gzip -d $1
;;
*.tar)
tar xvf
;;
*.zip)
unzip $1
;;
*.Z)
compress -d $1
;;
*.7z)
7z x $1
;;
*)
echo "Cannot extract \"$1\" via unpack()"
;;
esac
else
echo "\"$1\" is not a valid file"
fi
}
function pack() {
ERROR=true
if [ -d $2 ]; then
ERROR=false
fi
if [ -f $2 ]; then
ERROR=false
fi
if [ "$ERROR" = "false" ]; then
case $1 in
*.tar.bz2|*.tbz2)
tar cvfj $1 $2
;;
*.tar.gz|.*tgz)
tar cvfz $1 $2
;;
*.bz2)
bzip2 --stdout $2 >$1
;;
*.gz)
gzip -r --stdout $2 >$1
;;
*.tar)
tar cvf $1 $2
;;
*.zip)
zip -r $1 $2
;;
*.Z)
compress --stdout $2 >$1
;;
*.7z)
7z a $1 $2
;;
*)
echo "Cannot pack \"$1\" with pack()"
esac
else
echo "Cannot pack \"$2\" with pack()"
fi
}
function gosleep() {
if [ -z $1 ]; then
echo "gosleep [WAKEUPTIME]"
echo " WAKEUPTIME = For exmaple: 14:00, 2010-01-17 14:00"
else
sudo rtcwake -u -m mem -t `date -d "$1" +%s`
fi
}
PS1='[\u@\h \w]\$ '
Viele Grüße
Maxi
Offline
Mal meine paar Zeilen die wieder dazugekommen sind seit Bash-4.0.
stty -ctlecho
shopt -s checkwinsize
shopt -s cdspell
shopt -s dirspell
shopt -s dotglob
shopt -s globstar
shopt -s extglob
shopt -s autocd
Offline
Meine sudo-Variante:
function sudo() {
su -c "$*"
}
Offline
danlei schrieb:alias -g .....='../../../..'
RU SERIOUS?
Um so etwas zu vermeiden, finde ich diese Lösung ganz nett:
global-alias-dot() {
if [[ $LBUFFER = *.. ]]; then
LBUFFER+=/..
else
LBUFFER+=.
fi
}
zle -N global-alias-dot
bindkey '.' global-alias-dot
so werden die .. gleich angezeigt, wenn man einen zusätzlichen Punkt macht. Ist zwar kein richtiger alias aber sehr nützlich.
Offline
Sehr praktisch die Lösung.
Offline
Wundert mich eigentlich, dass das hier noch von niemandem gezeigt wurde:
pacsearch () {
echo -e "$(pacman -Ss $@ | sed \
-e 's#current/.*#\\033[1;31m&\\033[0;39m#g' \
-e 's#extra/.*#\\033[0;32m&\\033[0;39m#g' \
-e 's#community/.*#\\033[1;35m&\\033[0;39m#g' \
-e 's#^.*/.* [0-9].*#\\033[0;36m&\\033[0;39m#g' )"
}
Ich mag nicht mehr ohne
Der git-Prompt ist auch hilfreich. Befindet man sich in einem Git-Repository zeigt er an welcher Branch gerade aktiv ist und ob Änderungen vorgenommen wurden:
# git
function parse_git_dirty {
[[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "*"
}
function parse_git_branch {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/*\(.*\)/[\1$(parse_git_dirty)]/"
}
export PS1='\u@\h \w\[\033[1;31m\]$(parse_git_branch)\[\033[0m\]$ '
Offline
Der git-Prompt ist auch hilfreich. Befindet man sich in einem Git-Repository zeigt er an welcher Branch gerade aktiv ist und ob Änderungen vorgenommen wurden:
Hier sollte man auch erwähnen, dass die Zsh solch eine Funktionalität schon von Haus aus mitbringt und das nicht nur für git. Florian Kriener hat dazu einen sehr guten Artikel geschrieben.
Beitrag geändert von pSub (02.09.2010 11:52:56)
Offline
Hallo!
Als ersten Beitrag von mir erstmal ein paar Aliase (;
.bash_aliases:
alias ls="ls --color=auto"
alias l="ls -l"
alias la="ls -la"
alias ll="ls -1"
alias lr="ls -R"
alias grep="grep --color=auto"
alias upgrade="sudo pacman -Syu"
alias install="sudo pacman -S"
alias search="pacman -Ss"
alias remove="sudo pacman -Rs"
alias da='date "+%A, %B %d, %Y [%T]"'
aus der .zshrc:
alias -s html=$BROWSER
alias -s org=$BROWSER
alias -s com=$BROWSER
alias -s net=$BROWSER
alias -s png=feh
alias -s jpg=feh
alias -s gif=feg
alias -s gz=tar -xzvf
alias -s bz2=tar -xjvf
alias -s java=$EDITOR
alias -s txt=$EDITOR
alias -s PKGBUILD=$EDITOR
alias -s torrent=rtorrent
alias -s avi=mplayer
alias -s mpg=mplayer
alias -s mp4=mplayer
alias -s flv=mplayer
alias -s pdf=epdfview
alias -g L=' | less'
alias -g G=' | grep'
Grüße
Chris
Offline
the_isz schrieb:Cooler Thread. Hab mir paar abgeschaut. Das für die IP Adresse hab ich bißchen abgewandelt, damit wirklich nur die IP Adresse rauskommt:
alias myip="wget -q -O - http://www.whatismyip.de | grep '<title>' | sed -e 's/^[^[:digit:]]*\([[:digit:]\.]*\).*$/\1/'"
Geht das echt bei dir? Bei mir gehts net! Besser / einfacher ist
curl www.whatismyip.org
oder in "cool"
curl -s http://www.whatismyip.de | grep -o '\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}'
Offline
oder in "cool"
Eher in „umständlicher", oder?
Offline
dermarlo schrieb:oder in "cool"
Eher in „umständlicher", oder?
Achwas. Der Weg ist das Ziel.
Will auch mal.
alias l='ls -Fal --si -s --color=auto --group-directories-first'
alias v='vim -p'
alias g='git'
alias gk='gitk'
alias gka='gitk --all'
alias tt='mt /tmp/tmp; l'
ll()
{
l --color=always "$@" | less
}
mt()
{
mkdir -p -- "$@" && cd -- "$@"
}
tl()
{
tree -FC "$@" | less
}
tla()
{
tree -FCa "$@" | less
}
paste_to_script()
{
xclip -o > "$1"
chmod u+x "$1"
v "$1"
}
new_script()
{
touch "$1"
chmod u+x "$1"
v "$1"
}
curless()
{
url="${1:-$(xclip -o)}"
curl -s --location "$url" 2>&1 | less
}
rgrep()
{
# Ermöglicht Angabe von Argumenten für find und für grep. Beispiel:
#
# rgrep foo bar -- baz bam
# ------- -------
# grep find
#
# Es ist jedoch so nicht möglich, ein "--" an grep zu übergeben.
grepargs=()
for i
do
# Beeinflusst $i nicht, sondern nur den Inhalt von "$@" nach der
# Schleife.
shift
# Am Trenner abbrechen, ansonsten das Argument für grep
# übernehmen.
[[ "$i" == "--" ]] && break
grepargs+=("$i")
done
# In "$@" sind jetzt nur noch die Argumente für find. Mindestens ein
# Suchbegriff ist aber notwendig.
(( "${#grepargs[@]}" == 0 )) && \
echo "Usage: rgrep <term> [grep-args...] [-- [find-args...]]" && \
return 1
# find-Aufruf mit kulminiertem grep-Aufruf.
find "$@" -exec grep --color=auto "${grepargs[@]}" '{}' '+'
}
tempshell()
{
sh="${1:-csh}"
su - "$(whoami)" -s "$(which "$sh")"
}
Offline
dermarlo schrieb:oder in "cool"
Eher in „umständlicher", oder?
Stimmt - war auch nicht ganz ernst gemeint
Der Vollständigkeit halber noch auszugsweise mein aliase (zsh):
alias c='clear &&'
alias l='ls -l --color=auto'
alias ls='ls --color=auto'
alias sl='ls --color=auto'
alias grep='grep --color=auto'
alias cal='cal -m -3'
alias -s 'pdf=evince'
alias -s 'txt=vim'
alias -s 'png=eog'
alias -s 'jpg=eog'
alias -s 'jpeg=eog'
alias -s 'odt=soffice'
alias -s 'doc=soffice'
alias -s 'ods=soffice'
Offline
Was ich immer öfter verwende in letzter Zeit:
encrypt() {
gpg -r 0x17DE3BFD --sign --encrypt ${1}
}
decrypt() {
gpg -o ${1%\.gpg} --decrypt ${1}
}