Bonsoir,
J'aime bien utiliser mon shell, mais pas seulement. J'aime bien aussi mon interface graphique. Pour moi, le meilleur vient lorsqu'on mélange les deux. Je vous propose donc mes petits scripts et alias que j'ai développé pour cela:
Mais d'abord un résumé :
E — lance mon éditeur favori (kwrite) en arrière plan et le détache du terminal
EE — lance mon éditeur favori au premier plan
EEsudo — équivalent en mieux de sudo -e (copie le fichier lorsqu'il est modifié. Permet donc de tester les modifications sans avoir à quitter son éditeur de texte (car kwrite met du temps à démarrer)
Esudo — pareil que EEsudo mais lance en arrière plan
P — utilise kwrite comme pager
bsudo — équivalent de sudo -b
delbakfile — supprime les fichiers *~ du répertoire courant
fb — lance mon navigateur de fichier (nautilus --browser ou thunar)
fm — lance mon gestionnaire de fichier en mode visuel (nautilus ou thunar)
prename — perl rename [http://www.perlmonks.org/?node_id=303814]
s — (start) lance une commande en arrière plan et la détache du shell. Redirige toutes les sorties dans /dev/null
term — lance mon émulateur de terminal favori (gnome-terminal) en arrière plan (et le détache)
Maintenant mes alias
dfh='df -h'
duh='du --si'
l=ls
la='ls -ha'
ll='ls -lh'
lla='la -lha'
ls='ls --color=auto'
mplayer-fb='mplayer -vo fbdev2 -vf scale=1024:768 -quiet'
rm='rm -i'
Et maintenant le code source pour chacun de mes petits outils:
E
#! /bin/sh
if [ -z "$DISPLAY" ]; then
exec nano "$@"
else
EE "$@" &
disown 2>/dev/null
fi
exit 0
EE
#! /bin/bash
if [ -z "$DISPLAY" ]; then
exec nano "$@"
fi
exec kwrite "$@" >/dev/null 2>&1
EEsudo
#! /bin/sh
if [ -z "$DISPLAY" ]; then
do_sudo(){
sudo "$@"
return "$?"
}
else
do_sudo(){
gksudo -- "$@"
return "$?"
}
fi
#sudo -v
if [ -z "$DISPLAY" ]; then
EDITOR=E exec sudo -e "$@"
else
while [ "$#" -gt 1 ]; do
"$0" "$1" &
shift;
done
orig="$1"
file_pattern="`basename "$orig"`"
file="`mktemp -t "$file_pattern.XXXXXXXXXX"`" || exit 1
file_timestamp="`mktemp -t "$file_pattern.timestamp.XXXXXXXXXX"`" || exit 1
#do_sudo sh -c 'cat "$0" > "$1"' "$orig" "$file"
touch "$file_timestamp"
do_sudo sh "`dirname $0`/EEsudo.root" "$orig" "$file" "$file_timestamp" "$$" &
wait=true
stop(){
wait=false
#echo "Stop sleep"
}
notify(){
echo "EEsudo: Save $file into $orig"
}
trap notify USR1
trap stop HUP
while $wait; do
#echo "Sleep pid=$$"
sleep 0.1s
done
EE "$file" &
eepid="$!"
while ! wait "$eepid"; do true; done
rm "$file_timestamp"
#echo "Wait for saving process to finnish"
wait
rm -f "$file" "$file_timestamp"
fi
Esudo
#! /bin/sh
if [ -z "$DISPLAY" ]; then
EDITOR=E exec sudo -e "$@"
else
EEsudo "$@" >/dev/null 2>&1 &
disown 2>/dev/null
fi
exit 0
P
#! /bin/sh
if [ -z "$DISPLAY" ]; then
exec less
else
kwrite --stdin >/dev/null 2>/dev/null <&0 &
disown 2>/dev/null
fi
exit 0
bsudo
#! /bin/sh
# background sudo
gnome-sudo 'echo -n' 2>/dev/null
/usr/bin/sudo -b "$@" >/dev/null 2>&1
exit $?
delbakfile
#! /bin/bash
filelist="`ls *~`"
#echo $filelist
[ -z "$filelist" ] && exit 0
ls *~
echo -n "Delete these files ? (y/N)"
read -n 1 ans
echo
if [ "$ans" = y -o "$ans" = Y ]; then
rm -f *~
else
echo "Canceled."
fi
fb
#! /bin/sh
fb="nautilus --browser"
# launch filemanager (browser)
$fb ./ >/dev/null 2>&1 &
res=$?
disown 2>/dev/null
exit $res
fm
#! /bin/sh
# launch filemanager
fm=nautilus
dir="./"
if [ -d "$1" ]; then
dir="$1"
fi
$fm "$dir" >/dev/null 2>&1 &
res=$?
disown 2>/dev/null
exit $res
s
#! /bin/sh
# s : start a command line in background
# without annoying me with anything.
"$@" >/dev/null 2>&1 &
res=$?
disown 2>/dev/null
exit $res
term
#! /bin/sh
gnome-terminal "$@" & >/dev/null 2>&1
disown >/dev/null 2>&1
Typiquement, j'utilise énormément E, Esudo, s et fb que je trouve très pratiques. Et vous ?
J'ai aussi beaucoup d'autres scripts qui me servent notament à initialiser ma session (le fichier ~/.xsession). A ce moment là, je définis des variables d'environnement, je lance ssh-agent et d'autres broutilles, et je prompte avec xmessage (je sais que zenety existe mais je prefère xmessage) pour demander sur quelle session je vais démarrer (GNOME, KDE, xfce, ...) ou si je veux stopper la session.
Et encore un script qui me permet de gérer les liens symboliques de tout mes fichiers de config perso (~/.*) vers ~/.local/config/. Je ne met dans ~/.local/config que les fichiers de config importants et je sais que les autres, je peux les détruire. Évidamment, les trucs comme gconf ne fonctionnent pas.
Et vous, comment vous faites ?
# delbakfile plus simple :)
Posté par homer242 (site web personnel) . Évalué à 1.
find . -name "*~" -exec rm {} \;
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.