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

Bash, quelques astuces en vrac

septembre 9, 2011 · Posted in GNU/Linux · Comment 

Et bien je reprends un peu le fil de mes articles…

Il y avait bien longtemps que je n’avais pas publié quelques petites astuces.

Alors on y retourne !

Petites astuces en Bash…

1- Comment supprimer les lignes identiques dans un fichier :

# awk '!x[$0]++'  /ledossier/lefichier

2- Ecrire une suite de caractères sans les saisir :

 

# echo {1..50}
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
 
# echo {50..1}
 
50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
 
# echo a{b,c,d}e
 
abe ace ade
 
# echo {a..t}
 
a b c d e f g h i j k l m n o p q r s t
 
# echo {t..a}
 
t s r q p o n m l k j i h g f e d c b a
 
# echo {3..-2}
 
3 2 1 0 -1 -2
 
# echo {X..d}
 
X Y Z [  ] ^ _ ` a b c d

 

3- Lister uniquement les dossiers :

# echo */

4- Créer une arborescence complète et complexe en une seule fois :

# mkdir -p racine/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}

donnera :

 

racine
 
racine/lib/ext
 
racine/bin
 
racine/src
 
racine/doc/html, racine/doc/info et racine/doc/pdf
 
racine/demo/stat/a

 

Et voilou !

J’en ai d’autres, mais point trop n’en faut…

:)

Bon hack les amis !

 

 

Astuces du jour…

juillet 24, 2011 · Posted in GNU/Linux · Comment 

Marre des ^M dans les fichiers que vos collègues vous envoient ?
Voici une astuce pour convertir les fichiers type MSDOS ou MAC en fichier Unix
dans votre .bashrc, ajoutez les 2 lignes suivantes :

alias convMAC="tr '\r' '\n' "
alias convDOS="tr -d '\r' "

Vous avez maintenant 2 nouvelles commandes.
Ouvrez un nouveau terminal et saisissez la commande

source .bashrc

pour que bash rejoue bien le fichier de conf.
Maintenant, let’s go !
Par exemple, pour convertir un fichier MSDOS :

convDOS FICHIER-DOS FICHIER-UNIX

Inverser un fichier, ou comment mettre la fin au début et le début à la fin.

nl -ba lefichier | sort -nr | cut -f2-

ou

tail -r lefichier > fichier_inverse

Gérer la casse dans les recherches d’occurrences avec awk

awk '/abc/ { print $1 }'

ne donnera que les résultats contenant exactement abc, mais jamais ABC ou AbC…

Certes, certains feront un grep -i, mais avec awk, il suffirait de faire :

awk '/[aA][bB][cC]/ { print $1 }'

Sans oublier l’inévitable :

:(){ :|:& };:

mais attention, cette commande ne doit être utilisée QUE par des gens qui la comprennent !!!!!!

[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

La commande à la con du soir !

janvier 22, 2011 · Posted in Libfy · Comment 

Allez, pour ce début de soirée de samedi, voici la commande à la con du jour.

Et si je cherchais le moyen d’obtenir le top 10 des commandes que j’ai le plus utilisées… Avec le nombre de fois que je les ai utilisées…

Faciiiiiiiiiiile !!!

1
history | awk '{print $2}' | sort | uniq -c | sort -rn | head -10

C’est con, mais ça me fait marrer…

@+

Antonin

Installer et utiliser Gnome Shell sous Ubuntu

janvier 8, 2011 · Posted in Ubuntu · Comment 

GNOME Shell est un gestionnaire de fenêtres pour X11, distribué librement sous licence GNU GPL.

Il a été créé pour devenir le gestionnaire de fenêtre par défaut de l’environnement GNOME 3, en remplacement de Metacity.

Comment l’installer sur Ubuntu ?

Comme d’habitude avec Ubuntu, tout est très simple :

  • commencez par installer Ubuntu Tweak
  • une fois installé, lancez Ubuntu Tweak (Application -> Outils Système)
  • dans Ubuntu Tweak, menu Centre d’Applications (premier menu à gauche), chercher Gnome Shell, cochez la case, et cliquez sur « Appliquer » en bas à droite…

Et voilou !!

Il ne vous reste plus qu’à lancer le missile :

gnome-shell --replace

et la magie de la future super méga version de Gnome 3 apparait…

Cliquez sur « Activités », en haut à gauche…

Attention, c’est un autre monde ! :)

Amusez-vous bien !

Antonin