Quelques alias BASH bien utiles…

décembre 19, 2012 · Posted in Divers, GNU/Linux, Linux Commandes · 1 Comment 

Hello World!

Ce matin, un lapin… Euh non…

Ce matin, je vais vous présenter quelques alias bien utiles pour votre Shell BASH.

Première étape : connaître la liste actuelle de vos alias en tapant la commande :

alias

Pour créer ou éditer vos alias, un simple :

vi ~/.bashrc
Et voici quelques-uns de mes préférés :
## Couleurs sur la sortie de ls ##
alias ls='ls --color=auto'
 
## Listing au format long ##
alias ll='ls -la'
 
## Montrer les fichiers cachés ##
alias l.='ls -d .* --color=auto'
 
## Naviguer dans l'arborescence ##
alias ..='cd ..'
alias ...='cd ../../../'
alias ....='cd ../../../../'
alias .....='cd ../../../../'
alias .4='cd ../../../../'
alias .5='cd ../../../../..'
 
## Divers ##
alias path='echo -e ${PATH//:/\\n}'
 
## Naviguer dans l'arborescence ##
alias now='date +"%T'
alias nowtime=now
alias nowdate='date +"%d-%m-%Y"'
 
## Vérifier les ports en écoute ##
alias ports='netstat -tulanp'
 
## Vérifier les règles du firewall ##
alias iptlist='sudo /sbin/iptables -L -n -v --line-numbers'
alias iptlistin='sudo /sbin/iptables -L INPUT -n -v --line-numbers'
alias iptlistout='sudo /sbin/iptables -L OUTPUT -n -v --line-numbers'
alias iptlistfw='sudo /sbin/iptables -L FORWARD -n -v --line-numbers'
 
## Infos Système ##
### Info Mémoire
alias meminfo='free -m -l -t'
### Process gourmands en mémoire
alias psmem='ps auxf | sort -nr -k 4'
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
### Process gourmands en cpu
alias pscpu='ps auxf | sort -nr -k 3'
alias pscpu10='ps auxf | sort -nr -k 3 | head -10'
### Info CPU
alias cpuinfo='lscpu'
### Info GPU 
alias gpumeminfo='grep -i --color memory /var/log/Xorg.0.log'
Et voilà. A vous de jouer maintenant !

Bons hacks

Antonin

Swappiness, ou comment augmenter la vélocité du système

janvier 24, 2011 · Posted in Linux Commandes · 1 Comment 

Dans le cadre d’une utilisation « bureau » de Linux (par opposition à « serveur »), on peut augmenter la vélocité du système en réduisant sa propension à utiliser le fichier d’échange.

Il aura ainsi plutôt tendance à utiliser la mémoire vive (beaucoup plus rapide).
A noter que cette possibilité n’existe pas dans les noyaux 2.4.

Pour afficher la valeur courante de la swappiness :

cat /proc/sys/vm/swappiness.

La valeur par défaut est de 60.

Pour changer cette valeur à chaud :

sysctl -w vm.swappiness=10.

Pour rendre le changement permanent, rajouter la ligne

vm/swappiness=10

dans le fichier /etc/sysctl.conf.

Attention aux dragons ! Ne jouez pas aux apprentis sorciers !
Antonin

[Tips Code] Les Magic Keys

janvier 24, 2011 · Posted in Linux Commandes · Comment 
Introduction

Il arrive parfois que le système se gèle et ne réponde plus du tout à aucune sollicitation (clavier/souris), et la seule solution qui vient à l’esprit (réflexe Windowsien sûrement), c’est de presser la touche « reset ».

Mais comme nous allons le voir, il existe tout une série de combinaison de touches qui permettent (la plupart du temps) d’arrêter notre système avec un minimum de risque, et à la limite, de restreindre la perte de données. C’est ce qu’on appelle les « Magic Keys« .

Pré-requis

Bien entendu pour pouvoir mettre en pratique ces combinaisons magiques, il faut que cette option soit compilée dans le noyau. Commençons donc par vérifier cette condition.
Ouvrez un terminal et taper la commande suivante :

grep "CONFIG_MAGIC_SYSRQ" /boot/config-$(uname -r)
La sortie doit ressembler à :

CONFIG_MAGIC_SYSRQ=y
Vous l’avez deviné, « y » pour « yes » (oui en français ;-)) )
Cette option n’étant pas toujours activée par défaut, il faut donc s’en assurer. Pour ce faire, taper dans un terminal :

cat /proc/sys/kernel/sysrq
qui doit retourner la valeur « 1 ».
Dans le cas contraire (retour de la valeur « 0 »), procéder comme suit pour l’activer (en tant que « root ») :

echo "1" > /proc/sys/kernel/sysrq
On peut aussi utiliser la commande sysctl au lieu d’echo

sysctl -w kernel.sysrq="1"
Il y a pourtant un inconvénient.
La modification effectuée avec echo ou sysctl sera perdu au redémarrage du système.

Pour que la configuration soit permanente il faut éditer le fichier /etc/sysctl.conf soit en utilisant un editeur de texte et ajouter la ligne

kernel.sysrq=1
soit en utilisant la commande

echo 'kernel.sysrq=1' >> /etc/sysctl.conf
Avant d’en arriver là

Lorsque le système se gèle (on supposera qu’on est dans une session X) et avant de mettre en oeuvre l’emploi des touches magiques, si toutefois votre clavier est encore actif, essayez d’abord de :
  • Tuer le serveur X grâce à la combinaison de touches « CTRL + ALT + BACKSPACE »
  • Switcher sur une autre console « CTRL + ALT + Fn » (n=1-6)
  • Si un réseau local existe, essayer de vous connecter par « ssh » depuis une autre machine et de reprendre la main sur votre poste de travail
  • Essayer de tuer le serveur X (en tant que root) :
kill -15 $(pidof X)
kill -9 $(pidof X)
Si toutes ces tentatives ont échoué, alors il est temps de faire appel aux « Magic Keys ».
Les Magic Keys
Les Magic Keys (ou touches SysReq) requièrent l’emploi d’une combinaison de trois touches à la fois.
La touche « ALT » (à gauche de la barre d’espacement, à ne pas confondre avec la touche « ALT Gr »), la touche « SysRq » (System Request), cette touche n’est rien d’autre que la touche appelée et désignée par « Impr écran syst » (en haut à droite des touches F1 à F12), et enfin d’une troisième touche parmi les lettres suivantes :

  • R : Raw Met le clavier en mode « raw » (brut). Essayez d’accéder à nouveau à votre clavier.
  • E : tErm SIGTERM. Envoie un signal de terminaison à tous les processus, sauf à init.
  • I : kIll SIGKILL. Envoie un signal de fin à tous les processus, sauf à init.
  • S : Sync Synchronisation du disque. Essaie d’écrire toutes les données non sauvegardées.
  • U : Umount Remonte tous les systèmes de fichiers en mode lecture seule. Empêche une vérification du système de fichiers au redémarrage
  • B : reBoot Redémarre le système. Plus propre que l’appui sur « reset ».
  • O : Out Arrête le système.
  • L : kilL SIGKILL. Envoie un signal de fin à tous les processus, y compris à init.
  • K : Key Envoie un signal de fin à tous les processus de la console virtuelle courante.
  • P : Print Affiche le contenu des registres et des drapeaux (flags) dans la console.
  • M : Memory Affiche le contenu de la mémoire dans la console.
  • T : Task Affiche le contenu des tâches en cours d’exécution et des informations qui les concernent.
  • 0-9 : Number Paramètre le niveau de la console de log.
  • H : Help Affiche une aide sur les codes touches.
Il faut bien comprendre que l’emploi des Magic Keys constitue une séquence, que ces combinaisons de touches doivent être employées dans un ordre bien précis :

Raw, tErm, kIll, Sync, Umount, reBoot (REISUB)
Passage du clavier en mode « brut »
  • Raw
Synchronisation des disques
  • tErm
Envoie d’un signal d’arrêt aux processus
  • kIll
Montage des systèmes de fichiers en lecture seule
  • Sync
Envoie d’un signal de terminaison aux processus
  • Umount
Reboot du système
  • reBoot
Note : Voici une phrase mnémotechnique pour se rappeler l’ordre de la séquence (en anglais) : « Raising Elephants Is So Utterly Boring ».
Amusez-vous bien.
Antonin

[Tips Code] Tests sur variables numériques

janvier 24, 2011 · Posted in Linux Commandes · Comment 

Dans la série des trucs et astuces, voici des bouts de code que j’utilise quand j’en ai besoin.
Dans un environnement shell, les variables sont, par défaut, de type chaîne de caractères.
Voici quelques astuces pour tester la valeur numérique d’une variable.
Avec grep
#!/bin/bash
 
var=$1
if [ "$(echo $var | grep "^[ [:digit:] ]*$")" ]
then
 echo "La chaîne est numérique"
fi
Avec expr
#!/bin/bash
 
var=$1
expr $var + 0 1>/dev/null 2>&1
statut=$? 
if test $statut -lt 2 
then 
 echo "$var" numérique 
fi
Avec test
On évalue à l’aide de la commande « test » (représentée ici par les crochets « [ » et « ] ») si la valeur de la variable « $var » est égale à zéro (0), puis on évalue le code retour ($?) pour ses 2 états de sortie (vrai ou faux, autrement dit 0 ou 1), qui dans un cas comme dans l’autre serait donc de type entier. Dans tout autre cas, code retour supérieur à 1, échec de l’évaluation.
#!/bin/bash
 
var=$1
[ $var -eq 0 ] 2> /dev/null
if [ $? -eq 0 -o $? -eq 1 ]
then
 echo "La chaîne est numérique"
fi
Avec le type entier
La création d’une variable de type entier doit au préalable être déclarée à l’aide de la commande « typeset -i » ou « let ».
Voici donc un exemple implémentant la commande « let » pour déterminer si une variable est bien de type « entier »
#!/bin/bash
 
var=$1
 
if let $var 2>/dev/null 
then
 echo "$var numérique"
else
 echo "$var non numérique"
fi