Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 05/12/2005, à 13:58

Uggy

Partagez vos alias et function (fichier .bashrc)

Voici une petite sélection d' "alias" et de "function" placées dans le fichier .bashrc

Si vous en avez d'autres, merci de les ajouter..
(eventuellement avec un commentaire décrivant l'utilité)
Ce qui serait sympa pour faciliter la lecture du thread, c'est de simplement ajouter ceux non listés dans les posts précédents plutot que de copier tout votre .bashrc...merci...

Je ne suis biensur pas l'auteur de la totalité (que les auteurs originaux me pardonnent de ne pas pouvoir les citer)


alias bip='putty -load Nom &'
alias path='echo $PATH'
alias ba='vi ~/.bashrc;source ~/.bashrc'
alias ccze='ccze -A'
alias cgrep='grep --color=always'
alias ls='ls --color=always'
alias dir='dir --color=always'
alias ll='ls -alh'
alias log='tail -f /var/log/mail.log|ccze -A'
alias lsd='ls -d */'
alias lll='ls -la | less'
alias cd..='cd ..'
alias md='mkdir'
alias tt='telnet'
alias up='sudo apt-get update && sudo apt-get upgrade'
alias se='sudo apt-cache search'
alias ins='sudo apt-get install'
alias ee='exit'
alias q='exit'
alias in='sudo vi /etc/network/interfaces'
alias re='sudo /etc/init.d/networking restart'
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias c='clear'
alias du='du -kh'
alias dud='du --max-depth=0'
alias df='df -kTh'
alias stat="echo ' ' && uname -a && echo ' '&& uptime &&echo ' '&& df && echo ' '"
alias ps='ps aux'
alias build='./configure && make && sudo make install'
alias grepc='grep -v \^#'
alias g='grep'
alias G='grep -i'
alias im='import /home/user/Desktop/toto.png'
alias so='sudo vi /etc/apt/sources.list'
alias cp='cp -i'
alias mv='mv -i'
alias svi="sudo vi"
alias sless="sudo less"
alias stail="sudo tail"
alias h='history'
alias path='echo -e ${PATH//:/\\n}'
alias lm='ls -al |most'
alias xs='cd'
alias vf='cd'
alias mm='ll'
alias myps='/bin/ps -u "$USER" -o user,pid,ppid,pcpu,pmem,args|less'
alias hgrep='history | grep --color=always'
alias which='type -all'
alias eterm='Eterm -Ox --scrollbar no --buttonbar no --font-fx none -f white Eterm -g 120x30+100+100 --shade 50'
alias cd-='cd -'
alias removeemptylines="sed -i -e '/^$/d'"
alias s='sudo'
alias ccal='var=$(cal -m); echo "${var/$(date +%-d)/$(echo -e "\033[1;31m$(date +%-d)\033[0m")}"'
alias t='tail'
alias tf='tail -f'
alias +x='chmod +x'
alias epoch='date +%s'
alias mark='echo =============================='
function load {        ######## change la couleur du load en fonction de sa valeur
    Load=`cat /proc/loadavg | awk '{print $1}'`
    IntLoad=`echo $Load | cut -f1 -d.`
    if [ $IntLoad -le 0 ] ; then
        LoadColor=
    elif [ $IntLoad -le 1 ] ; then
        LoadColor=$MAGENTA
    elif [ $IntLoad -le 4 ] ; then
        LoadColor=$RED
    else
        LoadColor=$DARKRED
    fi

    echo -e " 
     [$LoadColor$Load$BLACK]
"
}





# This addpath adds a path only if it's not already in $PATH and it's a dir.
function myaddpath () {
    case :$PATH: in *:$1:*) ;; *) [ -d $1 ] && PATH="$PATH${PATH:+:}$1" ;; esac
}

#liste les alias et functions
function listba(){
cat .bashrc|egrep "alias|function"|grep -v "^#"|most
}

#Cree le repertoire et va dedans
function mkcd() {
mkdir $1 && cd $1
}


#Whois sans les commentaires
function ww() {
whois $1 | grep -v "^%"|most
}



# gpg
function sgpg { gpg --keyserver pgp.mit.edu --search-key "$1"; }

# Quels sont les fichiers arrivés
function lsml () {
clear && ssh login@server "ls -lha --color=always /var/mldonkey/incoming/files/"
}



#chope l'adresse IP publique
function pub()
{
wget -O - -q http://www.whatismyip.com | grep -i "<TITLE>Your IP" | awk '{print $4}'
}
#lynx --dump http://www.whatismyip.com/|grep Your|awk '{print $4}'


#chope l'adresse IP (privee)
function priv()
{
ifconfig eth0|grep "inet adr"|awk '{print $2}'|awk -F ':' '{print $2}'
}


# Temperature a Paris (en dessous de 0 pas glop en moto)
function tempe
{
lynx -dump http://fr.weather.yahoo.com/FRXX/FRXX0076/index_c.html|grep -A1 "Aujourd'hui"|grep -v "Aujourd'hui"|awk '{
print $1}'
}

# repeat n times command
function repeat()       
{
    local i max
    max=$1; shift;
    for ((i=1; i <= max ; i++)); do
        eval "$@";
    done
}




## killps pour tuer un process
function ask()
{
    echo -n "$@" '[y/n] ' ; read ans
    case "$ans" in
        y*|Y*) return 0 ;;
        *) return 1 ;;
    esac
}
function killps()       # Kill process by name
{                       # works with gawk too
    local pid pname sig="-TERM" # default signal
    if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then
        echo "Usage: killps [-SIGNAL] pattern"
        return;
    fi
    if [ $# = 2 ]; then sig=$1 ; fi
    for pid in $(my_ps | nawk '!/nawk/ && $0~pat { print $2 }' pat=${!#}) ; do
        pname=$(my_ps | nawk '$2~var { print $6 }' var=$pid )
        if ask "Kill process $pid <$pname> with signal $sig ? "
            then kill $sig $pid
        fi
    done
}





# Find a file with a pattern in name - dans le rep local:
function ff() { find . -type f -iname '*'$*'*' -ls ; }

# Find a file with a pattern in name - dans /:
function ffslash() { sudo find / -type f -iname '*'$*'*' -ls ; }

#n'a pas l air de fonctionner... ?
function fstr() # find a string in a set of files localement
{
    if [ "$#" -gt 2 ]; then
       echo "Usage: fstr \"pattern\" [files] "
       return;
    fi
    SMSO=$(tput smso)
    RMSO=$(tput rmso)
    find . -type f -name "${2:-*}" -print | xargs grep -sin "$1" | \
    sed "s/$1/$SMSO$1$RMSO/gI"
}


#n'a pas l air de fonctionner... ?
function fstrslash() # find a string in a set of files de /
{
    if [ "$#" -gt 2 ]; then
       echo "Usage: fstr \"pattern\" [files] "
       return;
    fi
    SMSO=$(tput smso)
    RMSO=$(tput rmso)
    sudo find / -type f -name "${2:-*}" -print | xargs grep -sin "$1" | sed "s/$1/$SMSO$1$RMSO/gI"
}




# swap 2 filenames around
function swap()
{
    local TMPFILE=tmp.$$
    mv "$1" $TMPFILE
    mv "$2" "$1"
    mv $TMPFILE "$2"
}



# move filenames to lowercase
function lowercase()
{
    for file ; do
        filename=${file##*/}
        case "$filename" in
        */*) dirname==${file%/*} ;;
        *) dirname=.;;
        esac
        nf=$(echo $filename | tr A-Z a-z)
        newname="${dirname}/${nf}"
        if [ "$nf" != "$filename" ]; then
            mv "$file" "$newname"
            echo "lowercase: $file --> $newname"
        else
            echo "lowercase: $file not changed."
        fi
    done
}


function fncorrect_lowercase()       # Correct filenames to lowercase
{
        if [ "$#" = 0 ]
        then
                echo "Usage: fncorrect_lowercase [filenames...]"
                return 0
        fi

        for arg in "$@"
        do
                filename=`basename "$arg"`
                dirname=`dirname "$arg"`
                oldname=`echo "$filename" | sed -e "s/ /\\\\ /"`
                newname=`echo "$filename" | tr A-Z a-z`
                if [ ! -e "$dirname/$oldname" ];
                then
                        echo "$dirname/$oldname does not exists."
                elif [ "$oldname" = "$newname" ]
                then
                        echo "$dirname/$oldname needs no change, skipping..."
                elif [ -e "$dirname/$newname" ]
                then
                        echo "$dirname/$newname exists, skipping..."
                else
                        mv "$dirname/$oldname" "$dirname/$newname"
                        echo "$dirname/$oldname => $dirname/$newname"
                fi
        done
}
#[yannick@yop ~] fncorrect_lowercase TuTgFdSFqdqsdSDQDdfsdfhKJHsdfsdfKJH 
#./TuTgFdSFqdqsdSDQDdfsdfhKJHsdfsdfKJH => ./tutgfdsfqdqsdsdqddfsdfhkjhsdfsdfkjh








function fncorrect_spaces()       # Correct spaces in filenames
{
        if [ "$#" = 0 ]
        then
                echo "Usage: fncorrect_spaces [filenames...]"
                return 0
        fi

        for arg in "$@"
        do
                filename=`basename "$arg"`
                dirname=`dirname "$arg"`
                oldname=`echo "$filename" | sed -e "s/ /\\\\ /"`
                newname=`echo "$filename" | sed -e : -e s/\ /_/ -e s/%20/_/ -e s/%28/[/ -e s/%29/]/ -e s/%5B/[/ -e s/
%5D/]/ -e t`
                if [ ! -e "$dirname/$oldname" ];
                then
                        echo "$dirname/$oldname does not exists."
                elif [ "$oldname" = "$newname" ]
                then
                        echo "$dirname/$oldname needs no change, skipping..."
                elif [ -e "$dirname/$newname" ]
                then
                        echo "$dirname/$newname exists, skipping..."
                else
                        mv "$dirname/$oldname" "$dirname/$newname"
                        echo "$dirname/$oldname => $dirname/$newname"
                fi
        done
}
#[yannick@yop ~] fncorrect_spaces totot\ tottot\ \ t\ sdf\ sdf\ \ fh\ sfh\ ss\ fj\ s\ fshf\ \ sdfs/
#./totot tottot  t sdf sdf  fh sfh ss fj s fshf  sdfs => ./totot_tottot__t_sdf_sdf__fh_sfh_ss_fj_s_fshf__sdfs






# greps the running process list for the value of $1
psgrep() {
   local name=$1
   ps aux | grep "${name}" | sed '$d'
   unset $name
   }







# gojo - tries to unarchive anything thrown at it
gojo() {
        ##### Probably done more robustly with file(1) but not as easily
        local FILENAME="${1}"
        local FILEEXTENSION=`echo ${1} | cut -d. -f2-`
        case "$FILEEXTENSION" in
                tar)
                    tar xvf "$FILENAME";;
                tar.gz)
                    tar xzvf "$FILENAME";;
                tgz)
                    tar xzvf "$FILENAME";;
                gz)
                    gunzip "$FILENAME";;
                tbz)
                    tar xjvf "$FILENAME";;
                tbz2)
                    tar xjvf "$FILENAME";;
                tar.bz2)
                    tar xjvf "$FILENAME";;
                tar.bz)
                    tar xjvf "$FILENAME";;
                bz2)
                    bunzip2 "$FILENAME";;
                tar.Z)
                    tar xZvf "$FILENAME";;
                 Z)
                    uncompress "$FILENAME";;
                 zip)
                    unzip "$FILENAME";;
                 rar)
                    unrar x "$FILENAME";;
        esac
    }





#envoyer le bashrc sur un autre server
function sendbashrc()
{
    scp ~/.bashrc $1:~/.bashrc.$HOST
}



# from http://www.everythingsysadmin.com/archives/000054.html#more, finds machines sending abnormal amounts of arp re
quests
lARPing() {
        sudo /usr/sbin/tcpdump -l -n arp | egrep 'arp who-has' | head -100 | awk '{ print $NF }' |sort | uniq -c | so
rt -n
    }

Hors ligne

#2 Le 05/12/2005, à 18:05

bruno

Re : Partagez vos alias et function (fichier .bashrc)

Merci c'est bourré d'idée intéressantes smile

Hors ligne

#3 Le 05/12/2005, à 22:33

Bobbybionic

Re : Partagez vos alias et function (fichier .bashrc)

Bonsoir
Moi j'aime bien celui là :

alias bonjour="echo Bonjour Maître Vénéré."

Je blague je ne suis pas démago au point de l'avoir créé ;-)


Non à la vente liée. Non au monopole Windows.
Tous ensemble, refusons les logiciels préinstallés et tournons nous vers le libre.

http://bobbybionic.wordpress.com

Hors ligne

#4 Le 07/12/2005, à 14:22

jdloic

Re : Partagez vos alias et function (fichier .bashrc)

# Calendrier du mois avec le jour en cours en rouge:
alias cal='var=$(/usr/bin/cal -m); echo "${var/$(date +%-d)/$(echo -e "\033[1;31m$(date +%-d)\033[0m")}"'

# les 10 plus gros fichiers/répertoires du réperoitre en cours
alias topten='du -sk $(/bin/ls -A) | sort -rn | head -10'

# change le titre de la fenêtre de la console
t () {
    echo -ne "\\e]2;$1\\a"
    }

Hors ligne

#5 Le 15/02/2006, à 16:17

rnod

Re : Partagez vos alias et function (fichier .bashrc)

j'arrive jamais a me souvenir des options tar, j'me suis fais ces 2 là :

alias untargz='tar -zxvf'
alias untarbz2='tar -jxvf'

Hors ligne

#6 Le 15/02/2006, à 18:31

szdavid

Re : Partagez vos alias et function (fichier .bashrc)

comment utilises tu la fonction t ?

Hors ligne

#7 Le 16/02/2006, à 10:21

bobuse

Re : Partagez vos alias et function (fichier .bashrc)

Chacun ses habitudes, voilà mes commentaires

Uggy a écrit :

alias path='echo $PATH'

pour info, il y a déjà pwd ;-)

Uggy a écrit :

alias ee='exit'
alias q='exit'

Un Ctrl+D me suffit :-)

Uggy a écrit :

alias c='clear'

de même Ctrl+L

Uggy a écrit :

alias build='./configure && make && sudo make install'

Je préfère le configure avec l'option --prefix=/usr/local/

Uggy a écrit :

alias hgrep='history | grep --color=always'

Ctrl+R permet de faire une recherche dans l'historique, Ctrl+S pour aller en avant

Voilà ce que j'avais ajouter. Sinon il y en a des pas mal dans ta liste, mais déjà que j'ai du mal à me souvenir des miens ... ;-)

voilà quelques-uns des miens :

# list only hidden files
alias l.='ls -d .[[:alnum:]]* 2> /dev/null || echo "No hidden files here..."'
# pasque je suis machot de mes 10 doigts ;-)
alias gerp='grep'
alias rsync_test='rsync -n -e 'ssh' --progress --delete -vau'
alias rsync_run='rsync -e 'ssh' --progress --delete -vau'
alias kplop='kdialog --msgbox "PLOP"'

Hors ligne

#8 Le 16/02/2006, à 10:28

szdavid

Re : Partagez vos alias et function (fichier .bashrc)

echo $PATH et pwd ne sont pas la même chose :

szdavid@David:~/scriptsSauvegarde$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games:/usr/mono-1.1.6/bin:/home/szdavid/mono-1.1.6/bin
szdavid@David:~/scriptsSauvegarde$ pwd
/home/szdavid/scriptsSauvegarde

le second, c'est où je suis, le premier, c'est là où je cherche mes logiciels (en gros), je crois

Hors ligne

#9 Le 16/02/2006, à 10:29

Uggy

Re : Partagez vos alias et function (fichier .bashrc)

ok pour Ctrl+L et Ctrl+D.. c'est ce que j'utilise aussi..mais comme on parlait d'alias.. wink
Pour le path et pwd je ne vois pas trop le rapport wink

Hors ligne

#10 Le 16/02/2006, à 11:18

bobuse

Re : Partagez vos alias et function (fichier .bashrc)

Uggy a écrit :

Pour le path et pwd je ne vois pas trop le rapport wink

normal big_smile
je m'a trompé

Hors ligne

#11 Le 21/02/2006, à 16:27

severino

Re : Partagez vos alias et function (fichier .bashrc)

alias tree="find . | sed 's/[^/]*\//|   /g;s/| *\([^| ]\)/+--- \1/'"
alias del='rm -R'
alias tele='vlc http://mafreebox.freebox.fr/freeboxtv/playlist.m3u'

Qui commence la page wiki "alias" ?

Dernière modification par severino (Le 21/02/2006, à 19:23)

Hors ligne

#12 Le 20/05/2006, à 23:42

*Serval

Re : Partagez vos alias et function (fichier .bashrc)

super tout ceci smile smile smile

jdloic a écrit :

# les 10 plus gros fichiers/répertoires du réperoitre en cours
alias topten='du -sk $(/bin/ls -A) | sort -rn | head -10'

il aime pas les fichiers avec des espaces ton alias tongue

Hors ligne

#13 Le 27/05/2006, à 19:23

Bertrand2

Re : Partagez vos alias et function (fichier .bashrc)

Redéfinition de cd=cd+ls                    + système d'historique

http://lesfilsdegaia.free.fr/blog/?2005/11/13/85-bash-navigateur-avance-sous-console

J'avais depuis amélioré le programme, mais je l'ai perdu dans un format...

#14 Le 27/05/2006, à 19:47

Bertrand2

Re : Partagez vos alias et function (fichier .bashrc)

Uggy > Modification de ta fonction repeat :

function repeat() {
    local period
    period=$1; shift;
    while (true); do
        eval "$@";
	sleep $period;
    done
}

Premier argument, le nombre de secondes qu'il s'écoule entre deux appels de la fonction ; deuxième argument, la fonction.

Ici il faut faire ctrl+x pour le quitter, mais on pourrait fusionner ta fonction avec la modification que j'en ai faite, et mettre 3 arguments : le nombre d'appel, la période en seconde, et la commande ...

#15 Le 28/05/2006, à 06:23

ArianeV

Re : Partagez vos alias et function (fichier .bashrc)

Bonjour tout le monde

C mon premier post linux, quel pied!

Plus sérieusement je voudrais savoir (en tant que nb), si on peut faire un alias qui fait de la redirection : en fait je voudrais que le man soit automatiquement redirigé dans more, pcq je voudrais pouvoir le quitter avec Ctrl+C.
j avais essayé un truc type " alias man='man|more' ", mais evidemment ca ne marche pas car il manque dans ce cas le nom du fichier...

Est-ce que vous pourriez me dire si c'est faisable, et surtout comment on fait si ca l'est.

Merci bien

Hors ligne

#16 Le 28/05/2006, à 07:26

cep_

Re : Partagez vos alias et function (fichier .bashrc)

Bonjour,

Plus simplement tu paux changer le pager par défaut en répondant à la question  :

:~$ sudo update-alternatives --config pager
Password:

There are 4 alternatives which provide `pager'.

  Selection    Alternative
-----------------------------------------------
      1        /bin/more
      2        /usr/bin/w3m
*+    3        /usr/bin/less
      4        /usr/bin/pg

Press enter to keep the default[*], or type selection number:

Pour vérifier quel est le pager par défaut :

:~$ update-alternatives --display pager

Pour utiliser more occasionnellement :

man -Pmore  la_page_à_consulter

#17 Le 28/05/2006, à 07:47

ArianeV

Re : Partagez vos alias et function (fichier .bashrc)

Merci beaucoup !!!
c'est vrai que c'est plus simple. smile

Par contre, ca répond pas à la question de l'alias, finalement, c'est possible ou pas?

Hors ligne

#18 Le 28/05/2006, à 08:03

cep_

Re : Partagez vos alias et function (fichier .bashrc)

Tu as essayé un alias avec man -Pmore  ?

#19 Le 28/05/2006, à 08:51

ArianeV

Re : Partagez vos alias et function (fichier .bashrc)

euhhh, non je n'ai pas essayé, car ce que tu m as donné fonctionne a merveille.

En fait, je parlais de faire un alias dans le cas général, cad prendre un programme (qui a un parametre) et le redriger dans un autre, tout ceci en alias.

Il me semble en effet que l option -P fasse changer le prog dans lequel on affiche le man, mais dans le cas général il faut faire autrement...

voila

Hors ligne

#20 Le 28/05/2006, à 09:45

szdavid

Re : Partagez vos alias et function (fichier .bashrc)

je sais plus pourquoi mais pour le man, ça ne marchait pas, j'étais obligé de passer d'abord par une fonction...

Mais en dehors de ce cas, ça peut se faire sans problème. Que ce soit la commande ls ou un programme plus complexe, c'est pareil...

par exemple, chez moi, j'ai
alias du=`du -h`

Hors ligne

#21 Le 28/05/2006, à 09:55

goodluck

Re : Partagez vos alias et function (fichier .bashrc)

Salut,

Devant la richesse j'ai peut-être loupé celui-là

alias='echo $PATH | tr ":" "\n" '


Amicalement, Gerard ;)
http://counter.li.org/cgi-bin/certificate.cgi/302199
http://www.worldcommunitygrid.org/

Hors ligne

#22 Le 28/05/2006, à 10:00

cep_

Re : Partagez vos alias et function (fichier .bashrc)

Je viens d'essayer :

alias man='man -Pmore'

et il fonctionne sans problème

#23 Le 28/05/2006, à 14:14

Uggy

Re : Partagez vos alias et function (fichier .bashrc)

goodluck a écrit :

Salut,

Devant la richesse j'ai peut-être loupé celui-là

alias='echo $PATH | tr ":" "\n" '

il était sous cette forme... mais pas de pb wink

alias path='echo -e ${PATH//:/\\n}'

Dernière modification par Uggy (Le 28/05/2006, à 14:14)

Hors ligne

#24 Le 28/05/2006, à 17:03

Uggy

Re : Partagez vos alias et function (fichier .bashrc)

depuis http://www.madboa.com/geek/sort-addr/

function sortip() {
sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 $1
}

> cat adresses
129.95.30.40
5.24.69.2
19.20.203.5
1.2.3.4
19.20.21.22
5.220.100.50

>  sortip adresses
1.2.3.4
5.24.69.2
5.220.100.50
19.20.21.22
19.20.203.5
129.95.30.40

Hors ligne

#25 Le 29/05/2006, à 21:09

joel tarlao

Re : Partagez vos alias et function (fichier .bashrc)

Uggy a écrit :
alias path='echo -e ${PATH//:/\\n}'

J'avais fait cet alias, mais depuis, ça me donne ça :

[joel@ubuntu ~] $path
/usr/local/bin
/usr/local/sbin
/sbin
/usr/sbin
/bin
/usr/bin
/usr/bin/X11
/usr/games
/documents/scripts
bash: lu: command not found
bash: 1: command not found
bash: 8: command not found
bash: 15: command not found
bash: 22: command not found
bash: 29: command not found

J'ai pas mal cherché d'où sortaient les dernières lignes, qui ressemblent vaguement à une date, en vain.

Une idée ?

Hors ligne

Haut de page ↑