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".

#101 Le 09/05/2009, à 17:10

Marzikill

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

Une fonction qui me plait drôlement :

function scrpt() {
echo "#!/bin/bash " >$1 ; echo " " >>$1 ; echo " " >>$1 && vim $1 && chmod +x $1
}

Elle créé un fichier, insert le fameux #!/bin/bash, et l'ouvre avec vim, en le rendant exécutable. Le pied pour faire des petits scripts bash.

(j'ai été obligé de recourir à une drôle de manière pour faire apparaitre deux retours à la ligne après la première ligne, car pour une raison inconnue, echo -e \n ne semble pas fonctionner...

Hors ligne

#102 Le 11/05/2009, à 11:50

Luc Hermitte

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

Utilise printf alors.

Hors ligne

#103 Le 11/05/2009, à 12:10

darkangel6669

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

Shrat a écrit :

J'ai trouvé un truc absolument génial pour zsh :

preexec () {print -Pn "\e]0;%/ %# $1\a"}

A mettre dans le .zshrc. Je vous laisse découvrir ce que ça donne.

Je n'ai pas compris à quoi ça sert. hmm

Hors ligne

#104 Le 11/05/2009, à 20:59

Shrat

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

darkangel6669 a écrit :
Shrat a écrit :

J'ai trouvé un truc absolument génial pour zsh :

preexec () {print -Pn "\e]0;%/ %# $1\a"}

A mettre dans le .zshrc. Je vous laisse découvrir ce que ça donne.

Je n'ai pas compris à quoi ça sert. hmm

Bah essaie...

Hors ligne

#105 Le 11/05/2009, à 21:43

Seth_

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

Shrat a écrit :
darkangel6669 a écrit :
Shrat a écrit :

J'ai trouvé un truc absolument génial pour zsh :

preexec () {print -Pn "\e]0;%/ %# $1\a"}

A mettre dans le .zshrc. Je vous laisse découvrir ce que ça donne.

Je n'ai pas compris à quoi ça sert. hmm

Bah essaie...

Bah à part ne pas retourner d'erreur ça ne fait pas grand chose chez moi non plus...

Hors ligne

#106 Le 11/05/2009, à 22:39

Shrat

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

Peut-être que cela ne fonctionne qu'avec rxvt (la version unicode pour ma part). Cela change le titre de la console.

Hors ligne

#107 Le 12/05/2009, à 22:54

Yannick_LM

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

s'troo cool, ça cool

Merci tongue


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

Hors ligne

#108 Le 15/05/2009, à 08:33

darkangel6669

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

Shrat a écrit :

Peut-être que cela ne fonctionne qu'avec rxvt (la version unicode pour ma part). Cela change le titre de la console.

Ok ! bizar ça ne fonctionne pas chez moi

Hors ligne

#109 Le 15/05/2009, à 13:54

Shrat

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

Le rxvt dans les packages ubuntu est un peu foireux, je te conseille de le compiler si c'est ton émulateur favori. En fait ma commande inscrit la dernière commande executée dans le titre de la fenêtre. Dans mon wm c'était difficile de se retrouver entre urxvt(1) urxvt(2) ... urxvt(n).

Quelque chose m'interpelle, je suis sur arch, on dirait que yannick aussi. Pourtant, pour pondre cette ligne, je me suis inspiré de la documentation officielle de zsh... Rapport de bug? Je ne suis pas sur Ubuntu donc je ne peux pas confirmer. Désolé pour ceux à qui j'ai fais perdre du temps.

Dernière modification par Shrat (Le 15/05/2009, à 13:54)

Hors ligne

#110 Le 16/05/2009, à 13:46

Yannick_LM

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

je suis sur arch, on dirait que yannick aussi

hu, hu, démasqué...

(l'avatar doit y être pour quelque chose)


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

Hors ligne

#111 Le 22/05/2009, à 15:35

Vermouth

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

Cool ce petit topic !

J'ai créer une fonction d'installation qui utilise les notifications, mais bizarrement cette fonction ne marche pas dans mon .bashrc mais marche quand je la rentre dans le terminal:

installer()
{
sudo apt-get install $1
if [ "$?" = "1" ]; then
{
notify-send -i /usr/share/icons/gnome/scalable/apps/gnome-terminal.svg "Installation terniné" $1" à été installé avec succè"
}
else
{
notify-send -i /usr/share/icons/gnome/scalable/apps/gnome-terminal.svg "Erreur d'installation" $1" n'a pas été installé"
}
fi
}

Une idée du problème ?


Android !
\_/°<

   coin coin...

Hors ligne

#112 Le 22/05/2009, à 21:05

Totor

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

Vermouth a écrit :

Cool ce petit topic !

J'ai créer une fonction d'installation qui utilise les notifications, mais bizarrement cette fonction ne marche pas dans mon .bashrc mais marche quand je la rentre dans le terminal:

Qu'entends-tu par [...]ne marche pas dans mon .bashrc [...] ?
La fonction n'est pas trouvée et/ou rien ne s'affiche  ... ?


-- Lucid Lynx --

Hors ligne

#113 Le 22/05/2009, à 22:31

Vermouth

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

ah oui j'ai pas préciser lol

Si la fonction est dans le bashrc:
Le apt-get est lancer me demande mon mot de pass etc.
Mais c'est après que ça ne marche pas, les notification ne s'affiche pas hmm !
Si je met des echo a la place il s'affiche en console.

Si je la rentre en console:
Tout fonctionne, les notification s'affiche etc...

Voilà.


Android !
\_/°<

   coin coin...

Hors ligne

#114 Le 23/05/2009, à 13:43

Totor

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

Etrange, cela fonctionne sous Jaunty.
Exception faite sur ton test du statut qui est inversé.

installer()
{

sudo apt-get install "$1" &&  msg=("Installation terminé" "$1 à été installé avec succès.") || msg=( "-u" "critical" "Erreur d'installation !" "$1 n'a pas été installé.")
notify-send -i /usr/share/icons/gnome/scalable/apps/gnome-terminal.svg "${msg[@]}"
}

A tout hasard, rajoute un echo de la variable DISPLAY. Il est possible qu'il ne la trouve pas .. mais ça me parait peut probable.


-- Lucid Lynx --

Hors ligne

#115 Le 23/05/2009, à 13:59

Vermouth

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

Ta fonction non plus ne fonctionne pas.
J'ai tester uniquement dans le bashrc car le terminal ne veut pas la prendre, il capte pas la fin de la fonction on dirai (des ">" quand on appuie sur entrée, et ce indéfiniment).

Apparemment il trouve la variable DISPLAY:

~$ echo $DISPLAY
:0.0

Android !
\_/°<

   coin coin...

Hors ligne

#116 Le 23/05/2009, à 14:10

Totor

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

Vermouth a écrit :

Ta fonction non plus ne fonctionne pas.
J'ai tester uniquement dans le bashrc car le terminal ne veut pas la prendre, il capte pas la fin de la fonction on dirai (des ">" quand on appuie sur entrée, et ce indéfiniment).

je viens de tester à nouveau, t'as certainement oublié quelque chose ! (guillemet, parenthèse...)


lance la fonction comme suit pour en savoir plus :

bash -x installer <package>

Vermouth a écrit :

Apparemment il trouve la variable DISPLAY:

~$ echo $DISPLAY
:0.0

le echo est à mettre dans la fonction, pas dans le terminal sinon, pas d'intérêt ! roll


-- Lucid Lynx --

Hors ligne

#117 Le 23/05/2009, à 17:40

Vermouth

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

je viens de tester à nouveau, t'as certainement oublié quelque chose ! (guillemet, parenthèse...)

Avec un copier coller c'est dur d'en oublier.

Mais là elle marche O_O !
mais les notification ne s'affiche pas ! (me souvient plus si je parlait uniquement de ça poste 115)

J'ai vérifier et je voit rien.
J'ai aussi essayer de fermé ce qui peut éventuellement être rester ouvert mais regarde:

~$ installer()
> {
> sudo apt-get install "$1" &&  msg=("Installation terminé" "$1 à été installé avec succès.") || msg=( "-u" "critical" "Erreur d'installation !" "$1 n'a pas été installé.")
> notify-send -i /usr/share/icons/gnome/scalable/apps/gnome-terminal.svg "${msg[@]}"
> }
> 
> 
> )]}"'
> aù*$ms*f
>

Je met n'importe quoi il ne me met pas d'erreur !


Avec la fonction dans mon bashrc:

~$ bash -x installer nothing
bash: installer: Aucun fichier ou dossier de ce type

Une autre idée ^^ ?


Android !
\_/°<

   coin coin...

Hors ligne

#118 Le 23/05/2009, à 19:05

Vermouth

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

En faite je crois qu'il y as un gros soucis chez moi.

Cette fonction simple:

test(){
notify-send -i /usr/share/icons/gnome/scalable/apps/gnome-terminal.svg Salut "Comment ça va ?"
}

Affiche la notification si je l'ai rentré dans le terminal mais pas si je la met dans mon bashrc hmm !


Android !
\_/°<

   coin coin...

Hors ligne

#119 Le 23/05/2009, à 21:30

Totor

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

Vermouth a écrit :

je viens de tester à nouveau, t'as certainement oublié quelque chose ! (guillemet, parenthèse...)

Avec un copier coller c'est dur d'en oublier.

si, tu peux oublier de copier une/plusieurs caractères wink mais bon, passons, ce n'est pas le plus important.

Vermouth a écrit :

mais les notification ne s'affiche pas ! (me souvient plus si je parlait uniquement de ça poste 115)

si, c'était ton soucis.

Vermouth a écrit :

Avec la fonction dans mon bashrc:

~$ bash -x installer nothing
bash: installer: Aucun fichier ou dossier de ce type

Autant pour moi, on ne peux pas lancer une fonction de la sorte.

Vermouth a écrit :

Une autre idée ^^ ?

Essaie-ceci :

installer()
{
set -x
echo "DISPLAY=${DISPLAY}"
 sudo apt-get install "$1" &&  msg=("Installation terminée" "$1 à été installé avec succès.") || msg=( "-u" "critical" 'Erreur d'installation !' "$1 n'a pas été installé.")
 notify-send -i /usr/share/icons/gnome/scalable/apps/gnome-terminal.svg "${msg[@]}"
set +x
}

Par ailleurs, peux-tu retourner le résultat de ceci :

[ "${SHELL}" = "/bin/bash" ] && { set -o;shopt; }

-- Lucid Lynx --

Hors ligne

#120 Le 23/05/2009, à 21:49

Vermouth

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

Avec ta nouvelle fonction;

~$ bash
*bash: /home/guillaume/.bashrc: line 130: Caractère de fin de fichier (EOF) prématuré lors de la recherche du « " » correspondant
bash: /home/guillaume/.bashrc: line 135: Erreur de syntaxe : fin de fichier prématurée

Poutant pas trouver d'erreur !
Et dans le terminal même problème; des ">" indéfiniment...

~$ [ "${SHELL}" = "/bin/bash" ] && { set -o;shopt; }
allexport      	off
braceexpand    	on
emacs          	on
errexit        	off
errtrace       	off
functrace      	off
hashall        	on
histexpand     	on
history        	on
ignoreeof      	off
interactive-comments	on
keyword        	off
monitor        	on
noclobber      	off
noexec         	off
noglob         	off
nolog          	off
notify         	off
nounset        	off
onecmd         	off
physical       	off
pipefail       	off
posix          	off
privileged     	off
verbose        	off
vi             	off
xtrace         	off
cdable_vars    	off
cdspell        	off
checkhash      	off
checkwinsize   	on
cmdhist        	on
compat31       	off
dotglob        	off
execfail       	off
expand_aliases 	on
extdebug       	off
extglob        	on
extquote       	on
failglob       	off
force_fignore  	on
gnu_errfmt     	off
histappend     	off
histreedit     	off
histverify     	off
hostcomplete   	off
huponexit      	off
interactive_comments	on
lithist        	off
login_shell    	off
mailwarn       	off
no_empty_cmd_completion	off
nocaseglob     	off
nocasematch    	off
nullglob       	off
progcomp       	on
promptvars     	on
restricted_shell	off
shift_verbose  	off
sourcepath     	on
xpg_echo       	off

T'a une idée là je le sens ^^ !


Android !
\_/°<

   coin coin...

Hors ligne

#121 Le 24/05/2009, à 10:47

Totor

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

Vermouth a écrit :

Avec ta nouvelle fonction;

~$ bash
*bash: /home/guillaume/.bashrc: line 130: Caractère de fin de fichier (EOF) prématuré lors de la recherche du « " » correspondant
bash: /home/guillaume/.bashrc: line 135: Erreur de syntaxe : fin de fichier prématurée

C'est ma faute, j'ai changé des "  pour des ' pour encadrer la chaine Erreur d'installation !. Sauf qu'elle contient une '.

Vermouth a écrit :

T'a une idée là je le sens ^^ !

Une piste, mais je ne saisie pas vraiment pourquoi même si j'y avais pensé avant que tu me fournisses le résultat.
Le problème viendrait de l'option extglob qui est activée dans ton cas (par défaut, elle ne l'est pas). Elle permet l'utilisation des fonctionnalités étendues de recherche de nom. Il y a 4 syntaxes pour ces fonctionnalités étendues dont celle-ci

!(pattern-list)

Et je pense (mais absolument pas certain) que le point d'exclamation de la chaine Erreur d'installation ! est la source de ton problème.

Pour vérifier :

installer()
{
set -x
shopt -u extglob
echo "DISPLAY=${DISPLAY}"
 sudo apt-get install "$1" &&  msg=("Installation terminée" "$1 à été installé avec succès.") || msg=( "-u" "critical" "Erreur d'installation !" "$1 n'a pas été installé.")
 notify-send -i /usr/share/icons/gnome/scalable/apps/gnome-terminal.svg "${msg[@]}"
set +x
}

-- Lucid Lynx --

Hors ligne

#122 Le 27/05/2009, à 21:39

Shrat

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

Seth_ a écrit :
Shrat a écrit :
darkangel6669 a écrit :

Je n'ai pas compris à quoi ça sert. hmm

Bah essaie...

Bah à part ne pas retourner d'erreur ça ne fait pas grand chose chez moi non plus...

J'ai trouvé mieux, peut-être que cela fonctionnera chez toi :

preexec () {print -Pn "\e]0;$PWD > $1\a"}

Hors ligne

#123 Le 27/05/2009, à 23:12

Vermouth

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

Totor, devine quoi !
J'enlève les accents et ça marche -_-' .

Donc ta dernière fonction n'affiche pas les notifications ^^ !

~$ installer kjfdhdkjg
+ shopt -u extglob
+ echo DISPLAY=:0.0
DISPLAY=:0.0
+ sudo apt-get install kjfdhdkjg
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
E: Impossible de trouver le paquet kjfdhdkjg
+ msg=("-u" "critical" "Erreur d'installation !" "$1 n'a pas �t� install�.")
+ notify-send -i /usr/share/icons/gnome/scalable/apps/gnome-terminal.svg -u critical 'Erreur d'\''installation !' 'kjfdhdkjg n'\''a pas �t� install�.'
+ set +x

Donc sans accent c'est pas top quand même.
Une idée du problème ? (plus précis maintenant)

Au pire on peut pas mettre des codes avec des '\' pour voir ?


Android !
\_/°<

   coin coin...

Hors ligne

#124 Le 30/05/2009, à 15:53

YvanD

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

Désolé ne pas répondre à ton problème hmm (je ne suis pas assez connaisseur), je poste juste mes fonctions et mes alias (et coloration) pour les partager :

#!/bin/bash
# /etc/bash_aliases
# Complétion automatique, coloration syntaxique, alias et fonctions supplémentaires

export EDITOR='nano'


## Complétion automatique
if [ -f /etc/bash_completion ]; then
	. /etc/bash_completion
fi


## Couleurs pour le prompt
DEFAULT="\[\033[00m\]"
BLACK="\[\033[30m\]"
RED="\[\033[31m\]"
GREEN="\[\033[32m\]"
ORANGE="\[\033[33m\]"
BLUE="\[\033[34m\]"
MAGENTA="\[\033[35m\]"
CYAN="\[\033[36m\]"
WHITE="\[\033[37m\]"


## Exemples de prompts
#PS1='\d | \h | \u \n\t | \T | \@ \n\w | \W | \# | \n\$ '
#PS1="${DEFAULT}DEFAULT ${BLACK}BLACK ${RED}RED ${GREEN}GREEN ${ORANGE}ORANGE ${BLUE}BLUE ${MAGENTA}MAGENTA ${CYAN}CYAN ${WHITE}WHITE"
#PS1="$GREEN[$BLUE\u$GREEN:$MAGENTA\w$GREEN]\$ $DEFAULT"
#PS1="$GREEN[$BLUE\u@\h$GREEN][$MAGENTA\w$GREEN]$RED\$ $DEFAULT"
#PS1="$GREEN[$BLUE\u@\h$DEFAULT:$MAGENTA\W$GREEN]$ORANGE\$ $DEFAULT"


## Afficher le prompt de root et $USER de manières différentes
if [ `whoami` = root ]; then
	PS1="$GREEN\u@\h$CYAN:\W$RED\$ $DEFAULT"
else
	PS1="$GREEN\u@\h$CYAN:\W$ORANGE\$ $DEFAULT"
fi


## Effets de texte (défaut, gras, souligné)
export DEF="\033[0;0m"
export BOLD="\033[1m"
export UNDER="\033[4m"


## Alias : coloration, amélioration, raccourcis, fonctions supplémentaires, gestion des paquets, (dés)archivage

alias dir='dir --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias ls='ls --color=auto'
alias vdir='vdir --color=auto'

alias cp='cp -v -i'
alias df='df -h -T'
alias du='du -h'
alias find='find -L'
alias mv='mv -v -i'
alias rm='rm -v'

alias ?='apropos'
alias ..='cd ..'
alias e='$EDITOR'
alias g='grep -i'
alias ll='ls -F -l -h'
alias l='ls -F -C'
alias md='mkdir -p -v'
alias se='sudo $EDITOR'
alias ss='sudo su'
alias s='sudo'
alias x='bash -x'
alias +x='chmod +x'

alias clean='find -name "*~" -delete'
alias compil='./configure && make && sudo checkinstall'
alias joke='echo "Bonjour $USER, nous sommes le `date +"%A %e %B %Y"`, et il est : `date +"%H"` h `date +"%M"`" | cowsay -f $(/bin/ls /usr/share/cowsay/cows -1 | head -n $(expr $$$(date +%s) % $(ls /usr/share/cowsay/cows | wc -w) + 1) | tail -n 1)'
alias topten='du -sk $(/bin/ls -A) | sort -rn | head -10'
alias trash='mkdir -p ~/.local/share/Trash/files && mv -t ~/.local/share/Trash/files --backup=t'

alias inpkg='sudo apt-get install'
alias rmpkg='sudo apt-get autoremove --purge'
alias sepkg='apt-cache search'

alias lstar='tar -tf'
alias mktar='tar -cvf archive.tar'
alias untar='tar -xvf'


## Fonctions : search, me, root, update

function search {
	for i in "$@"
	do
		find -iname "*$i*" | grep -i $i
	done
}

function me {
	sudo chown -R $USER $@
	sudo chgrp -R $USER $@
}

function root {
	sudo chown -R root $@
	sudo chgrp -R root $@
}

function up {
	echo -e "${BOLD}Suppresion des fichiers de sauvegarde inutiles (/home)...$DEF"
	sudo find /home -name "*~" -delete
	echo -e "${BOLD}Mises à jour de la base de donnée ...$DEF"
	sudo updatedb
	echo -e "${BOLD}Mises à jour des paquets ...$DEF"
	sudo dpkg --configure -a
	sudo apt-get install -f
	sudo apt-get check -qq
	sudo apt-get update -qq
	sudo apt-get upgrade
	sudo apt-get autoremove --purge
	sudo apt-get clean -qq
	sudo apt-get autoclean -qq
}

Certains alias ont été pris sur ce topic ...

Il s'agit en fait d'un fichier (/etc/bash_aliases) que mon ~/.bashrc exécute (pour éviter de le surcharger et permettre à tous les utilisateurs d'y avoir accès ...)

Dernière modification par YvanD (Le 30/05/2009, à 15:55)

Hors ligne

#125 Le 14/06/2009, à 12:26

Bladadator

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

Bonjour à tous,

Je suis nouveau sur ubuntu et je cherche à rediriger les erreurs de ma console dans un fichier et de les afficher dans la console. J'arrive tout à fait à les rediriger, mais je ne sais pas comment les rediriger et les afficher, de plus, je peux faire des redirection de message d'erreur, mais je dois faire un alias par comande (ce qui devient plutôt long)...

voici la commande que j'utilise pour la redirection (en prenant rm comme exemple) :

alias rm='rm 2>> /home/leo/error.log'

Quelqu'un pourrait me dire comment faire svp...

Dernière modification par Bladadator (Le 14/06/2009, à 12:30)

Hors ligne

Haut de page ↑