Linux
- Grep
- changer d'alternative
- installer un module perl via le reseau
- repomper une partie d'un site http en local
- changer de theme gtk
- changer les icônes du kmenu
- Montrer la liste des symboles d'une bibliothèque partagée
- Monter un fichier image
- linuxconf
- Mandrake
- Synchronisation de l'horloge sur internet
- Messagerie
- configure
- Profiles
- Shell
- Séquence de démarage
- Configure
- Mémoires de masse
- Compatibilité
Grep
- rechercher un motif dans les fichiers d'une arborescence
>grep -r $motif $repertoire
- retourner une liste de noms de fichiers
>grep -r -l $motif $répertoire
- inverser le critère de recherche
>grep -v $motif $fichiers
- alternative a grep avec sed
>sed -p '/$motif/p'
changer d'alternative
(géré par rpm)
>update-alternative --config gcc
installer un module perl via le reseau
>perl -MCPAN -e 'install $module'
repomper une partie d'un site http en local
>wget -r -nH --cut-dirs=n --relative --no-parent URL
changer de theme gtk
suivant la version de GTK, remplacer gtk par gtk-2.0, et gtkrc par gtkrc-2.0 copier le fichier gtkrc du répertoire de theme dans ~/.gtkrc, ou insérer la ligne "include /usr/share/themes/$theme/gtk/gtkrc" dans ~/.gtkrc
changer les icônes du kmenu
menudrake permet de revenir au menu par defaut de KDE ou d'éditer le menu Mandrake
Montrer la liste des symboles d'une bibliothèque partagée
>objdump -T /usr/lib/libldap.so | grep Base | tr -s '[:blank:]' ' ' | cut -f7 -d' '
Monter un fichier image
>mount image repertoire -t iso9660 -o loop
linuxconf
- fichier de configuration dans /etc/conf.linuxconf
- fichier de profiles dans /etc/linuxconf/profile
Mandrake
- enlever le xconsole au démarrage de X: créer un script shell vide /usr/bin/kdmdesktop
- enlever l'icone removable media de mandrake sur le bureau de KDE: mettre en commentaire les lignes concernées du fichier /usr/bin/kdesktop-links ou dans enlever l'option
Synchronisation de l'horloge sur internet
(paquetage ntp)
- par le daemon ntp
éditer /etc/ntp.conf
|server ntp.tuxfamily.net |server ntp1.tuxfamily.net |server ntp2.tuxfamily.net |server ntp.univ-lyon1.fr >/etc/init.d/ntp start
- de manière ponctuelle
>ntpdate ntp.univ-lyon1.fr
Messagerie
- test d'un serveur pop
>telnet host 110 |user user_name |pass password
pour voir la liste des messages|list
pour voir les première ligne du premier message|top 1
pour quitter|quit
- test d'un serveur imap (login en clair)
>telnet host 143 |a001 login user_name password |a002 select inbox
pour quitter|a003 logout
configure
- Création d'un script configure à partir d'un fichier configure.ac (autoconf)
- copy du fichier aclocal.m4
>aclocal
- création de liens vers scripts config.guess, config.sub, ltmain.sh
>libtoolize
- génération du script configure
>autoconf
- création de install-sh, mkinstalldirs, missing, INSTALL, depcomp
génération de Makefile.in
>automake -c -a
- copy du fichier aclocal.m4
Profiles
Description
Un profil contient un ensemble de fichier de configuration, et permet de selectionner le contexte de démarrage de l'ordinateur (ex. Maison ou Bureau). Les profiles sont gérés par linuxconf, et les fichiers sont archivés, restaurés au démarrage /etc/rc.d/rc.sysinit. Les profiles sont activés grâce à un parametre Noyau
- prof=nom utilisé par le script /etc/rc.d/rc.sysinit, ou alors
- PROFILE=nom utilisé par le script /etc/init.d/switchprofile (SysVInit 2.83) Le nom du profile reprend celui utilisé sous linuxconf
On peut récupérer le nom du profile pour l'utiliser dans des scripts en lisant la ligne de paramètres du noyau (/proc/cmdline). éditer à la fin de /etc/rc.local
|profile=$(sed -n 's/.*PROFILE=\([^ ]*\).*/\1/p' /proc/cmdline) |if [ -z $profile ]; then | profile=$(sed -n 's/confver.current \([^ ]*\)/\1/p' /etc/conf.linuxconf) |fi |echo $profile >/etc/sysconfig/profile
Création
dans linuxconf->Administration->Profile
On peut récupérer le nom du profile pour l'utiliser dans des scripts
- en lisant la ligne de paramètres du noyau (/proc/cmdline) - necessite d'être root
- en insérant un script (sysvinit) qui place le nom du profile dans un fichier (ex. /etc/sysconfig/profile)
- en lisant la variable prof ou PROFILE (suivant la méthode vue plus haut)
Shell
- vérifier la correction syntaxique d'un script shell
>bash -n
- Réaliser des calculs
- avec bash
>echo $[1 + 1]
- avec bc (changement de base)
>bc |ibase=16 |A+B |21 |quit
- avec bash
- Substitution bash
>test=file.mp3 >echo ${test%%.mp3} file >echo ${test##file.} mp3
- Redirections : redirige le descripteur de fichier 2 (sortie d'erreur) vers la
sortie standard
>cmd 2>&1 | less
- Convertion d'encodage
>iconv --from-code=8859_1 --to-code=UTF-8 $file >$new_file
- Arguments
Séquence de démarage
SysV
ensemble de scripts regroupés sous /etc/init.d. Chaque script est associé à un ou plusieurs contextes d'execution (numéroté de 1 à 5), et a des priorités de démarrage et d'arrêt (de 0 à 99). Le système de fichier reflete ces relations:
- un répertoire /etc/rc$niveau.d par niveau, contenant des liens vers les scripts de /etc/init.d associé à ce $niveau
- l'odre lexicographique sur les noms des liens induit l'ordre d'execution au sein d'un contexte
- niveaux de démarrages
- 3: Console
- 5: X11
- 6: reboot/halt
- structure des scripts
Les associations sont indiquées au niveau de chaque script par la ligne commentaire chkconfig
|# chkconfig: $niveaux $priorité_demarrage $priorité_arrêt
- manipulation des scripts
pour enlever ou retirer (sans les effacer) des scripts de la séquence de démarage, on utilise le programme chkconfig
>chkconfig --add $nom_script >chkconfig --del $nom_script
- Patron de script /etc/init.d
|#!/bin/sh |# Init template |#--------------------------------------------------------------- |# chkconfig: 35 29 10 |# description: |#--------------------------------------------------------------- | |# Source function library. |. /etc/rc.d/init.d/functions | |ret=0 | |case $1 in | start) | gprintf "Performing various initialisations: " | ... | success "initialisations ok" | ret=$? | echo | if [ $ret = 0 ]; then | touch /var/lock/subsys/conf | fi | ;; | | stop) | ;; | | status) | status conf | ;; | | reload) | ;; | | restart) | $0 stop | $0 start | ret=$? | ;; | *) | gprintf "Usage: %s\\n" "$(basename $0) {start|stop|restart|status}" | exit 0 | ;; |esac | |exit $ret | |# conf ends here
Shell
Scripts /etc/profile.d d'extensions .sh ou .csh, dont le contenu est éxécuté à chaque instantiation d'un shell bash ou csh. Les fichiers ne doivent pas comporter d'entête '#!/bin/sh', pour que leur interprétation puisse étendre l'environnement d'execution.
- Prompt
editer ~/.bashrc
|case $TERM in | xterm*) | TITLEBAR='\\[\\e]0;\\w\\a\\]' | ;; | *) | TITLEBAR='' | ;; |esac |PS1="${TITLEBAR}\\[\\e[1;31m\\]\\w\\[\\e[1;34m\\]>\\[\\e[m\\]" |PS2='\\[\\e[1;34m\\]more\\[\\e[1;31m\\]>\\[\\e[m\\]'
- Recherche dans l'historique avec touches pavé numéric
éditer ~/.inputrc
|# Bind keypad keys to functions. |"\\e[1~": beginning-of-line |"\\e[2~": paste-from-clipboard |"\\e[3~": delete-char |"\\e[4~": end-of-line |"\\e[5~": history-search-forward |"\\e[6~": history-search-backward
X11
Scripts sous /etc/X11/xinit.d
KDE
Le répertoire .kde/Autostart contient des fichier .desktop permettant d'executer diverses tâches à l'ouverture du bureau Séquence de démarage KDE qui prend en compte le profile (voir linuxconf)
- créer des répertoires dans .kde/Autostart portant le noms des profiles
- insérer une entrée dans .kde/Autostart
|Desktop Entry] |Comment[fr]= |Encoding=UTF-8 |Exec='/home/burghard/scripts/kde_profile.sh' |Icon= |MimeType= |Name[fr]=KDE Profile |Path= |ServiceTypes= |SwallowExec= |SwallowTitle= |Terminal=false |TerminalOptions= |Type=Application |X-KDE-SubstituteUID=false |X-KDE-Username=
permettant d'appeler le script suivant|#!/bin/sh |# Execute un ensemble de scripts au démarrage de kde en fonction |# du profile selectionné au démarrage de la machine. |# Eric BURGHARD |# |eval $(sed -n 's/.*\\(PROFILE=[^ ]*\\).*/\\1/p' /proc/cmdline) |if [ -z $PROFILE ]; then | exit 1; |fi |# execute tous les fichiers dans le répertoire |if [ -d ~/.kde/Autostart/$PROFILE ]; then | for file in ~/.kde/Autostart/$PROFILE/* ; do | if [ -f $file ]; then | $file | fi | done |fi
Configure
- MPlayer
-
>./configure --prefix=/usr --enable-gui --enable-freetype --with-livelibdir=/usr/lib/live\ --with-extraincdir=/usr/include/dvdcss/:/usr/include/dvdnav/:/usr/include/dvdread/:/usr/X11R6/include \ --with-csslibdir=/usr/lib/ --with-libdvdnav=/usr/lib/ --with-xanimlibdir=/usr/X11R6/lib/xanim/mods/ \ --enable-qtx-codecs --with-reallibdir=/usr/lib/win32
copier le répertoire libavcodec (dans le rep de mplayer)
- Net-SNMP
-
>./configure --prefix /usr --with-mib-modules="host disman/event-mib smux"
Mémoires de masse
- Capacité d'un cd 1 secteur = 2352 octets (audio) et 2048 octet (data)
minutes secteurs CD-ROM CDDA 21 94,500 184.6MB 212.0MB 63 283,500 553.7MB 635.9MB 74 333,000 650.3MB 746.9MB 80 360,000 703.1MB 807.4MB 90 405,000 791.0MB 908.4MB 99 445,500 870.1MB 999.3MB - Capacité d'un memorystick 64MB = 15835 blocks de 4096 octets
Compatibilité
- extraire les fichiers d'une archive .chm
>hh -decompile rep fichier.chm
- extraire les fichiers d'une archive .rar
>unrar x archive
- extraire les fichiers d'une archive .ace
>unace x archive
- convertir une image cd .nrg en iso
>nrg2iso image.nrg image.iso
- convertir une image cd .bin/.cue en iso
>bchunk image.bin image.cue image