Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#51 Le 13/08/2007, à 16:36

Yannick_LM

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

Pour les internationaux :

function dh {
TMP=/tmp/time
wget http://www.worldtimeserver.com/current_time_in_$1.aspx -q -O $TMP
grep 'The current' -A2 $TMP | xargs echo
grep -A2 'id="analog' $TMP | tail -n1 | sed -e 's/ //g'
rm -f $TMP 
}

Par exemple, dh FR vous donne l'heure en France, dh US à New-York, etc.

Pour rechercher le code d'une région horaire :

function dh_code {
	wget http://www.worldtimeserver.com/country.html -O - | \
	grep 'current_time'  | \
	sed -e 's/^.*_//g' | sed -e 's/\.aspx">/ : /g' | sed -e 's/<.*$//' |\
	grep $1
}

Je poste aussi ces deux-là, (complètement inutiles) on en avait parlé dans un topic quelque part il y a longtemps. (Si quelqu'un les retrouve) :

# Une ligne en bash ( affiche un alias au hasard )
alias alr='let "n= $RANDOM % `alias | wc -l` + 1" && alias | sed -n "$n"p'

# Une autre : cmd [-n] ( les n commandes les plus utilisées, en ne tenant pas compte du sudo )
function cmd {
	history | sed -e 's/sudo //' | cut -b8- | cut -d' ' -f1 | sort | uniq -c | sort -rg | head $1
}

EDIT :
Voilà, j'ai retrouvé le fil en question.

Et voilà ce qu'Eldaou avait dans son .bashrc, pour avoir l'alias du jour en couleur :

# !/bin/bash
awk '$1 ~ /alias/ {print $0 } ' .bash_aliases > list_alias.txt
RANGE=`cat list_alias.txt | wc -l`
nu_ligne=$RANDOM
let "nu_ligne = $nu_ligne % $RANGE + 1"
# Un peu de couleur pour faire resortir l'alias
echo " `printf '\033[01;32m'` Alias du jour : `printf '\033[01;34m'` `sed -n "$nu_ligne"p list_alias.txt` `printf '\033[00m'`"
rm list_alias.txt

Note : Vous pourrez noter que dans la version en couleurs, on ne recherche que les alias présents dans le .bash-alias , alors que dans l'autre, on recherche parmi tous les ailias existant au cours de la session.
La fusion des deux est laissée en exercice au lecteur ...

Sinon, pour le wiki, pourquoi pas, mais c'est vraiment énorme et peut-être pas très pédagogique.
Il vaut AMHA mieux savoir que ça existe, puis acquérir les compétences nécessaires pour se fabriquer ses propres alias.


EDIT2 :
Bug corrigé (si, si)

Dernière modification par Yannick_LM (Le 14/08/2007, à 17:46)


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne

#52 Le 13/08/2007, à 19:35

Uggy

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

tOkeshu a écrit :

ça passe outre le bashrc j'ai l'impression hmm "même si j'ai exactement le meme bashrc en root"

bahh moi ca marche..

exemple:
Dans /etc/bash.bashrc   je mets:
alias toto='rm /aaaa'

Ouvrir un nouveaux terminal puis

$ ll /aaaa
-rw-r--r-- 1 root root 0 2007-08-13 20:33 /aaaa
$ toto
rm: détruire un fichier protégé en écriture fichier régulier vide `/aaaa'? y
rm: ne peut enlever `/aaaa': Permission non accordée
$ sudo toto
$ ll /aaaa
ls: /aaaa: Aucun fichier ou répertoire de ce type
$

Hors ligne

#53 Le 14/08/2007, à 02:15

tOkeshu

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

Moi j'ai :

$ touch foo
touch: ne peut faire un touch sur `foo': Permission non accordée
$ sudo touch foo
$ ls foo
foo
$ rm foo
rm: détruire un fichier protégé en écriture fichier régulier vide `foo'? y
rm: ne peut enlever `foo': Permission non accordée
$ sudo rm foo
$ ls foo
ls: foo: Aucun fichier ou répertoire de ce type

Mais j'ai tout de même noté que tu parlais de /etc/bash.bashrc

Moi je n'ai modifié que /root/.bashrc et ~/.bashrc
Je ne connaissait même pas l'existence de /etc/bash.bashrc

J'ai fait une rapide recherche et je suis tombé sur ça

Malheureusement même en ajoutant

alias rm='rm -i'

dans /etc/bash.bashrc ça ne marche toujours pas T_T (et je vous assure que j'ai bien lancé un nouveau terminal)


Pourquoi faire simple quand on peu faire compliqué :
Moi j'aime bien utiliser cygwin dans une session windows émulée sous ubuntu... :P

Hors ligne

#54 Le 14/08/2007, à 13:59

ziouplaboum

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

Au fait pourquoi faire ___sudo___ apt-cache search.
Une recherche dans le cache des paquets ne nécessite pas les droits root. faire

alias se="apt-cache search"

est suffisant.

Hors ligne

#55 Le 19/08/2007, à 23:27

Uggy

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

tOkeshu a écrit :

Malheureusement même en ajoutant [...]
dans /etc/bash.bashrc ça ne marche toujours pas T_T (et je vous assure que j'ai bien lancé un nouveau terminal)

Au temps pour moi... en faisant cette commande précise ca ne fonctionne pas...
Il doit y avoir moyen au pire en remplacant le binaire rm par un script avec les options qui vont bien qui pointe vers le bon rm... ??

Hors ligne

#56 Le 07/01/2008, à 22:57

Yannick_LM

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

Bon, je remonte ce poste qui le mérite, en rajoutant un alias pour les adeptes de screen :

function sr {
    pgrep -x screen > /dev/null
    if [ $? -ne 0 ] ; then screen ; exit 0 ; fi
    echo $TERM
    if [ $TERM = "screen" ]
    then
        echo "screen"  
    else
        echo "screen -r"  
    fi
}

Deux trois explications :
pgrep -x renvoie les numéros des processus qui ont comme nom exactement
screen. Sinon, gnome-screensaver est sélectionné, c'est pas terrible.


Si aucun screen n'est lancé, on en lance un. (noter que la fenêtre d'o๠l'on lance le screen se fermera en même temps que celui-ci)

Si un screen est lancé, deux cas :
1. on est déjà  dans un screen (variable $TERM) : on ouvre une nouvelle fenêtre
2. on n'est pas dedans : on tente de se rattacher à  un screen déjà  existant
(note que ceci ne fonctionne que si vous n'avez qu'un screen d'ouvert et détaché.
Dans tous les autres cas, vous aurez un message d'erreur)

Ceci n'est utile que si vous souhaitez ne conserver qu'un seul screen lancé à  la fois, évidemment...

EDIT : bon je laisse ceci comme témoignage de ma stupidté ...

Vous pouvez utiliser celui-là :

alias sr="screen -raAd"

Bref neutral


J'en profite pour rajouter un truc utile pour screen : par défaut, tous les raccourcis commencent par ctrl + A
(c'est bête par ce que le raccourci : aller au début de la ligne, pour le shell c'est aussi ctrl - a.
Ca se règle dans .screenrc :
escape ^xx  par exemple.
(du coup, ça devient Ctrl-x c pour créer une nouvelle fenêtre)

Je sais, ça rentre aussi en conflit avec le crtl-x de nano, mais je ne l'utilise jamais.
Choisissez celui qui vous plaà®t.

Dernière modification par Yannick_LM (Le 26/01/2008, à 05:54)


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne

#57 Le 20/01/2008, à 00:49

Yannick_LM

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

Bon, comme je vous aime bien :

function rip {
        mencoder -profile rip -o "$1".avi dvd://
        }

avec un fichier ~/.mplayer.conf comme ça :

[rip]
ovc=xvid=1
xvidencopts=bitrate=1200
oac=mp3lame=1
lameopts=cbr=1:br=128
alang=en,eng,fr

vous mettez votre DVD dans le lecteur, vous tapez rip 'titre du film', et c'est fini.

EDIT : je vous rajoute un ch'tit truc bien pratique pour créer vos playlists avec mpd

function CreatePL {
MUSIQUE=$HOME/Musique
PLAYLISTS=$MUSIQUE/.mpd/playlists
        [[ -n $3 ]] && \
            find $1 -name $3 | sort | tee \
            $PLAYLISTS/"$2.m3u" \
            || \
            find $1 -name '*.ogg' -o -name '*.mp3' | sort | tee \
            $PLAYLISTS/"$2.m3u"
}

# Usage : 
# cd $MUSIQUE
# CreatePL Repertoire NomPlayliste [regexp]
# Crée une playliste pour mpd contentant tous les fichiers en mp3 ou ogg du 
# répertoire. Si regexp est donné, seules les pistes correspondantes sont 
# ajoutées
# Attention : si le nom de la PL comporte des guillemets, l'écrire avec ' '
# TODO : faire ça proprement avec des getopt

Dernière modification par Yannick_LM (Le 29/01/2008, à 11:30)


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne

#58 Le 27/04/2008, à 16:50

Ras&#039;

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

A pu d'alias dans hardy ?
J'ai créé un fichier .bash_aliases mais les alias marchent pas :\


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#59 Le 27/04/2008, à 18:18

rms804

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

yes! du bashrc smile

alias pid='ps aux'
alias pidk='kill -KILL'
alias edit='geany'
alias topten='du -sk $(/bin/ls -A) | sort -rn | head -10'

ibexement votre

Hors ligne

#60 Le 27/04/2008, à 22:20

Yannick_LM

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

@raskal: si je me souviens bien, y a une petit paragraphe à décommenter dans .bashrc
Sinon, tu mets un "source $HOME/.bash_aliases" à la fin de ton .bashrc, et ça roule


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne

#61 Le 28/04/2008, à 07:49

Ras&#039;

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

J'ai rajouté la ligne à la fin et ça marche nickel cool
Merki smile


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#62 Le 27/09/2008, à 14:21

smo

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

ola

je post un petit soft que j ai fait pour m essayer a python smile

petit gestionnaire d alias tout bete... celui ci soccupera dactiver els alias dans le .bashrc et creer le .bash_aliases dans lequel seront contenus vos alias smile

le code est certainement pas au top mais ca marche bien ...

pour test

wget http://phatandfresh.free.fr/galias_0.1_all.deb
sudo dpkg -i galias_0.1_all.deb

ptit screens

galias1.png

galias2.png

smile

++

Hors ligne

#63 Le 30/10/2008, à 12:17

Kiwi41

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

Afficher une chaine de caractère en couleur :

rouge () {
echo \\033[31m$* \\033[0m
}
Usage : rouge "chaine de caractère"

vert () {
echo \\033[32m$* \\033[0m
}
Usage : vert "chaine de caractère"

jaune () {
echo \\033[33m$* \\033[0m
}
Usage : jaune "chaine de caractère"

bleu () {
echo \\033[34m$* \\033[0m
}
Usage : bleu "chaine de caractère"

magenta () {
echo \\033[35m$* \\033[0m
}
Usage : magenta "chaine de caractère"

cyan () {
echo \\033[36m$* \\033[0m
}
Usage : cyan "chaine de caractère"

blanc () {
echo \\033[37m$* \\033[0m
}

Hors ligne

#64 Le 21/12/2008, à 23:24

alicia63

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

Voici un de mes alias :

alias maj='aptitude update && aptitude safe-upgrade && aptitude install transmission/unstable openoffice.org/experimental kopete/experimental gimp/experimental iceweasel/unstable icedove/testing'

Je suis sous debian stable (la priorité dans mon /etc/apt/preferences : stable > lenny > unstable > experimental)

Quel est la difference entre aptitude safe-upgrade et full-upgrade ?

Dernière modification par alicia63 (Le 21/12/2008, à 23:34)

Hors ligne

#65 Le 25/12/2008, à 05:20

Shalafi Xavier

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

Bonjour / Bonsoir

Je viens de lire les messages (et copiés / collés de grandes parties !!), et je cherche pour la couleur des invites de commandes.

Si la "couleur" est dans .bashrc_aliases, elle dépend de l'utilisateur, mais comment faire pour lancer la couleur de manière automatique ?

Et encore merci pour tous ces codes !


J'ai faim !

Hors ligne

#66 Le 25/12/2008, à 22:03

Jonon

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

Exellent post.
Merci pour les idées. :>


hype_ @ freenode|hyp3 @ twitter | Ceci n'est pas un Blag

Hors ligne

#67 Le 28/12/2008, à 13:57

alicia63

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

Que faut il modifier dans le /etc/bash.bashrc
Pour mettre la console administrateur en couleur ?

Hors ligne

#68 Le 29/12/2008, à 12:35

penkoad

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

Salut alicia63,

Si je comprends bien ta demande tu veux avoir des couleurs dans ton terminal quand tu fais un ls par exemple...
Je pense qu'il faut aller voir dans le .bashrc de l'utilisateur root.

 54 # enable color support of ls and also add handy aliases
 55 if [ "$TERM" != "dumb" ]; then
 56     eval "`dircolors -b`"
 57     alias ls='ls --color=auto'
 58     #alias dir='ls --color=auto --format=vertical'
 59     #alias vdir='ls --color=auto --format=long'
 60 fi

Si je peux me permettre, pour être à l'aise dans ma session root, j'ai fais deux liens symboliques depuis root vers le .bashrc et le .bash_aliases de mon utilisateur.
Ainsi mes alias me suivent sans avoir à maintenir deux environnements.

Le user root à un "root@hostname #" plutôt qu'un "$USER@hostname $" au niveau du prompt.


"Always do sober what you said you'd do drunk. That will teach you to keep your mouth shut."

Ernest Hemingway

Hors ligne

#69 Le 29/12/2008, à 14:02

YvanD

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

Mon ~/.bashrc

# Coloration du prompt
PS1='\[\033[00m\]\[\033[31m\]\u\[\033[00m\]@\[\033[35m\]\h\[\033[00m\]:\[\033[34m\]\w\[\033[00m\]\[\033[00m\]\$ '

# Couleurs
alias ls='ls --color=auto'
alias ll='ls -ahl --color=auto'
alias grep='grep --color=auto'

# Apt-get
alias up='sudo apt-get update && sudo apt-get upgrade'
alias ins='sudo apt-get install'

# Copier, déplacer, supprimer
alias cp='cp -iv'
alias mv='mv -iv'
alias rm='rm -iv'
alias trash="mv -t ~/.local/share/Trash/files --backup=t"

# Compresser/décompresser (tar)
alias mktar='tar -cvf'
alias untar='tar -xvf'

# Applications
alias totem='totem --enqueue'
alias nautilus='nautilus .'

# Autres
alias mkdir='mkdir -p'
alias clean='cd && sudo apt-get update > /dev/null && sudo apt-get -qq -y upgrade && sudo apt-get -qq autoremove && sudo apt-get clean && sudo apt-get -qq autoclean && sudo chown -R $USER * && sudo chgrp -R $USER * && rm -rf ~/.local/share/Trash/files/* ~/.local/share/Trash/info/* && find -name "*~" -delete'

ATTENTION au dernier alias, adaptez le pour vous. (aptitude au lieu de apt-get, enlever les -y, et surtout au chown et chgrp ...)


EDIT :
tar -> mktar (existait déjà)
nautiklus -> nautilus (erreur de frappe)
PS1='...\]$ ' -> PS1='...\]\$ ' (pour que cela marche chez root !!! (ajouter un "\"))

Dernière modification par YvanD (Le 29/12/2008, à 14:11)

Hors ligne

#70 Le 31/12/2008, à 06:31

Seth_

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

En dehors de pas mal de celles pré-citées, voici mes alias/fonctions

alias psg='ps | grep -i'

alias emacs='emacs -nw'
alias ln='ln -si'

alias wanip='wget -q http://checkip.dyndns.org -O- | cut -d: -f2 | cut -d\< -f1'

alias trim='sed -r "s/^[ \t]*|[ \t]*$//g"'
alias nettest='ping -c 1 google.com &> /dev/null && echo +OK || echo -KO'

# screen
alias sc='screen'
alias scdr='screen -dr'
alias irc='screen -S IRC -t irssi'
alias edit='screen -S EMACS -t emacs'

# Fun
alias topten="sed -e 's/^: [0-9]\{10\}:0;//' ~/.zshist | sed -e 's/sudo //' | \
	cut -d' ' -f1 | sort | uniq -c | sort -rg | head"

#functions
function ssh-sendkey {
    KEY=$(cat ~/.ssh/id_rsa.pub)
    ssh $1 "echo '$KEY' >> ~/.ssh/authorized_keys"
}

function center {
    local OPT
    local W=$COLUMNS
    getopts n: OPT
    [ $OPT ] && [ $OPT = "n" ] && W=$OPTARG
    shift $[$OPTIND-1]
    if [ $# -eq 0 ]
    then
	echo "Usage: center [-n N] STRING"
	return 1
    else
	local L=$(expr length "$*")
	printf "%$[($W+$L)/2]s\n" "$*"
    fi
}

function rpt {
    if [ $# -ne 2 ]
    then
	echo "Usage: rpt N STRING"
	return 1
    else
	local i=0
	local str
	while [ $i -lt $1 ]
	do
	    str="$2$str"
	    i=$[$i+1]
	done
	echo $str
    fi
}

Dernière modification par Seth_ (Le 31/12/2008, à 06:40)

Hors ligne

#71 Le 31/12/2008, à 11:43

sensini

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

mon mien :

# Source global definitions
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
#sauvegarde de l’historique
HISTFILE=${HOME}/.bash.d/history
#
#lignes identiques non sauvegardées
HISTCONTROL=ignoredups
#
#ajoute a la fin plutot que de reecrire
shopt -s histappend
#corrige quelques typos
#cd .bashd => cd .bash.d
#cd .Bash.d => cd .bash.d
shopt -s cdspell
#
export HISTFILE
export HISTCONTROL
#
# Source les variables d’environnement
if [ -f ${HOME}/.bash.d/env ]; then
. ${HOME}/.bash.d/env
fi
#
# Source le fichier definissant le prompt
if [ -f ${HOME}/.bash.d/prompt ]; then
. ${HOME}/.bash.d/prompt
fi
#
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
#
# Source les completions perso
if [ -f ${HOME}/.bash.d/completion ]; then
. ${HOME}/.bash.d/completion
fi
#
# Source le fichier definissant les aliases
if [ -f ${HOME}/.bash.d/aliases ]; then
. ${HOME}/.bash.d/aliases
fi
#

big_smile
plus ici


http://doc.ubuntu-fr.org/aptitude
http://bepo.fr
Pensez à chercher sur un moteur de recherche avant de demander http://google.fr/ ;)

Hors ligne

#72 Le 02/01/2009, à 13:03

Yannick_LM

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

function ssh-sendkey {
    KEY=$(cat ~/.ssh/id_rsa.pub)
    ssh $1 "echo '$KEY' >> ~/.ssh/authorized_keys"
}

Sinon y a ssh-copy-id pour ça, qui fait deux trois sympathiques en plus.
(du genre créer ~/.ssh sur l'hôte si le répertoire existe pas, et changer les permissions si nécessaires)

plus d'infos avec man ssh-copy-id wink


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne

#73 Le 02/01/2009, à 17:34

Seth_

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

@Yannick_LM
Merci pour l'info, je ne connaissais pas  smile

Hors ligne

#74 Le 02/01/2009, à 22:40

koflesinge

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

un petit rapide, pour ceux qui ont des netbook sans gnome et qui veulent faire l'éconmie de gksu:

alias gksu='su-to-root -X -c'

Hors ligne

#75 Le 04/01/2009, à 11:39

alicia63

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

c'est possible d'exécuter des alias avec cron ?

Dernière modification par alicia63 (Le 04/01/2009, à 12:56)

Hors ligne