grep, la commande magique

août 25, 2013 · Posted in GNU/Linux · 1 Comment 

bash-tildeC’est dimanche, alors au lieu d’aller à la messe, on lance un terminal et on joue avec cette merveille de commande : grep !

 

 

 

 

 

Comment rechercher un terme dans tous les fichiers contenus dans un dossier et ses sous-dossiers ? (ici, je cherche le mot w00t)

– liste tous les fichiers avec les résultats :

$ grep -r "w00t" *

– liste juste le nom des fichiers qui contiennent le terme :

$ grep -rl "w00t" *

– liste tous les fichiers avec les numéros de lignes et les résultats :

$ grep -rn "w00t" *

– liste tous les fichiers avec les numéros de lignes, les résultats et ignore la casse :

$ grep -rni "w00t" *

– liste tous les fichiers avec les numéros de lignes, ignore la casse et met en couleur le terme cherché :

$ grep -rni --color "w00t" *

Comment compter le nombre de mots ou de lignes qui contiennent un terme en particulier ?

– donne le nombre de lignes qui contiennent le terme cherché :

$ grep -c "w00t" /ici/monfichier

– donne le nombre de lignes qui ne contiennent pas le terme cherché :

$ grep -v -c "w00t" /ici/monfichier

– donne le nombre de fois que le terme cherché est utilisé dans le fichier :

$ grep -o -w "w00t" /ici/monfichier | wc -w

Comment compter le nombre de fois qu’une lettre est utilisée ?

– dans un mot :

$ grep -o "[w|W]" <<< w00t | wc -l

– dans un fichier :

$ grep -o "[w|W]" < /ici/monfichier | wc -l

J’adore cette commande ! Il y a encore une multitude de possibilités avec grep, mais il ne faut pas abuser des bonnes choses !

La suite au prochain épisode !

Générateur aléatoire de mot de passe sous GNU/Linux

août 25, 2013 · Posted in GNU/Linux · Comment 

Hello à tous,

question du jour : comment générer des mots de passes aléatoires en ligne de commande, sous GNU/Linux ?

Réponse : facile !

Commencez par éditer votre .bashrc :

$ vi ~/.bashrc

Ajoutez ces quelques lignes (à la fin par exemple) :

1
2
3
4
5
genpasswd() {
	local l=$1
       	[ "$l" == "" ] && l=16
      	tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs
}
Sauvegardez et quittez le fichier.
"Rejouez" votre bash pour que les modifications soient prises en compte :
$ source ~/.bashrc
puis saisissez :
$ genpasswd
Et cerise sur le gâteau : si vous voulez un mot de passe de 9 (ou plus ou moins) caractères, il vous suffit de saisir :
$ genpasswd 9

Sinon il existe un petit package (sous Debian) qui fait ça très bien :

$ sudo apt-get install makepasswd

Une fois installé, vous avez juste à saisir la commande :

$ makepasswd
irh7EtoY

ou

$ makepasswd --char=12 --crypt-md5
7p8pWvWYWy6r   $1$IlDKZlvs$M.62QQb8JDtWgq1SFvB9G.

Il existe de nombreuses autres options à makepasswd…

$ man makepasswd

C’est pas beautiful ça mon buddy boy ?

Configurer Apache et Rsyslog

août 17, 2013 · Posted in GNU/Linux · 4 Comments 

Le problème d’Apache aujourd’hui, c’est que ses logs « access » ne peuvent pas être redirigés nativement vers un autre logger.

Vous allez me dire : ok, mais quel intérêt ?

Et bien si comme moi vous avez un mis en place des outils de corrélation de logs, vous souhaitez sans doute analyser tous les logs de vos différents serveurs WWW.

Pour remédier au problème d’Apache, voici une méthode à moi qui fonctionne plutôt pas mal.

Pour pouvoir envoyer ces logs vers une autre machine, je vais utiliser un « logger » externe.

Création du logger :

vi /usr/local/sbin/apache_syslog

Copiez/coller ce bout de code :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl
use Sys::Syslog qw (:DEFAULT setlogsock);
 
setlogsock('unix');
 
# creation du log socket
openlog('httpd', 'pid', 'local6');
 
# on log tout
while () {
syslog('info', $_);
}
 
# fermeture du log socket
closelog;

Enregistrez et fermez.

Pensez à faire

chmod +x /usr/local/sbin/apache_syslog

 

Redirection des logs « Error »

Par défaut, Apache log tout vers des fichiers. Les erreurs sont donc loggées vers error.log.

Ce qui nous intéresse ici, c’est de récupérer ces erreurs sur une machine distante.

Je vais donc remplacer, pour chaque virtualhost, la directive

ErrorLog ${APACHE_LOG_DIR}/error.log

par

ErrorLog |/usr/local/sbin/apache_syslog

 

Redirection des logs « Access »

Comme vous l’avez fait pour les logs Error, vous allez, pour chacun des virtualhost que vous hébergez, modifier la ligne

CustomLog ${APACHE_LOG_DIR}/access.log combined

par

CustomLog |/usr/local/sbin/apache_syslog combined

Une fois terminé, pensez à redémarrer Apache.

Désormais, vos logs access et error sont dans syslog.

Deux options s’offrent à vous : les laisser là, ou les envoyez sur une autre machine qui vous sert de corrélateur.

 

Rediriger ces logs vers une machine distante

C’est très simple :

Dans /etc/rsyslog.d/, créez un fichier qui se nomme

10-apache.conf

et ajoutez les lignes suivantes :

1
2
:programname,contains,"httpd" @ip_address_distante
& ~

Enregistrez, fermez et relancez rsyslog

service rsyslog restart

Désormais, tous vos logs d’Apache sont envoyés à la machine dont l’adresse ip est celle que vous avez renseignée.

Simple, rapide et efficace !

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 !

 

 

Unix is Sexy

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

who|grep -i blonde|date; cd ~; unzip; touch; atrip; finger; mount; gasp; yes; uptime; umount; sleep

 

 

Happy birthday Linux !

août 27, 2011 · Posted in GNU/Linux · Comment 

Le 25 août était un jour très spécial pour Linux, car c’est il ya 20 ans que Linus Torvalds s’est assis devant son ordinateur et a posté sur Usenet, dans le newsgroup « comp.os.minix », un message, maintenant entré dans l’histoire, disant qu’il avait créé un système d’exploitation Unix…

En voici le contenu :

Hello everybody out there using minix –

I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I’ll get something practical within a few months, and I’d like to know what features most people would want. Any suggestions are welcome, but I won’t promise I’ll implement them :-)

Linus (torvalds@kruuna.helsinki.fi)

PS. Yes – it’s free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that’s all I have :-(.

—Linus Torvalds

En 1991, GNU/Linux a été développé pour un seul type d’ordinateur.
En 2011, les machines propulsées par GNU/Linux peuvent être trouvées partout : ordinateurs personnels, distributeurs de billets, consoles de jeux, montres, micro-ondes, voitures…

Jetez un oeil sur le document produit par La Linux Foundation, qui image parfaitement la progression de notre OS favori…

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 !!!!!!

OpenOffice.org chez Apache : une gifle à la Document Foundation

juin 29, 2011 · Posted in GNU/Linux · Comment 

Extrait de l’article de « Le MagIT« 

Oracle a finalement choisi la fondation Apache pour encadrer le code d’OpenOffice.org.

Ecartant d’un revers de la main la Document Foundation et son fork LibreOffice qui du coup devront batailler ferme pour nouer un dialogue avec Apache.

Oracle a définitivement écarté une union entre LibreOffice et OpenOffice. La firme de Larry Ellison a officiellement confié le code d’OpenOffice.org à la néanmoins très sérieuse fondation Apache. La suite bureautique Open Source acquise avec Sun intègre ainsi l’incubateur à projets de l’organisation (http://wiki.apache.org/incubator/OpenOfficeProposal), rompant les liens qui unissent la suite bureautique avec la Document Foundation dont on aurait pu espérer qu’elle devienne le havre de paix idéal pour l’application, depuis la décision d’Oracle d’abandonner la commercialisation de la suite en avril dernier.

IBM sort enfin de sa réserve

Mais l’un des points les plus importants de cette annonce est la déclaration d’IBM, qui s’est empressé de publier un communiqué de presse pour annoncer son soutien au projet. A la création de The Document Foundation, nous nous étions étonnés de ne pas voir Big Blue prendre position, devant la naissance de LibreOffice. Et ce alors même qu’IBM utilise le socle OpenOffice.org pour développer sa propre suite Symphony. Ce silence est aujourd’hui rompu : “IBM fournira des ressources humaines pour collaborer avec la communauté Apache durant la période d’incubation du projet afin de faire évoluer le standard Open Document Format.” Sans toutefois préciser l’ampleur de cet apport de compétences. Cela pourrait cependant bien sous-entendre que la Document Foundation souffre encore aujourd’hui de sa jeunesse et manque de crédibilité aux yeux d’IBM…

Extrait de l’article de « Le MagIT« 

 

Silicon Empire, outil de gravure/copie de CD, DVD et Blu-Ray

juin 28, 2011 · Posted in GNU/Linux · Comment 

Silicon Empire est une application pour GNU / Linux qui permet d’enregistrer et de gérer les CD, DVD et Blu-Ray.

Ecrite en Qt, l’application est dotée d’une interface graphique très sympa.

Silicon Empire utilise cdrtools et nous donne la possibilité de copier, de graver et de monter des images ISO.

Silicon Empire  est livré avec un lecteur de musique (MiniTuner) et même un visualiseur d’images.

Pour installer ce petit soft, rendez-vous sur le site du projet.

Bonne gravure !

Page suivante »