Linux (debian) Tips & tricks

Amelioration de la sortie de la commande "ps" (processus):

exemple voir si mysql tourne, taper : ps -ef | grep mysql

* Infos disques dur:

- pour connaitre les plus gros répertoire sur votre machine, tapez la commande suivante : du -S | sort -n

*CHAINE:

- pour rechercher une chaîne de caractère sur tout le dd, tapez la commande suivante : find / -name '*' | xargs grep -l chaîne à rechercher

* comment utiliser find

Voici par exemple comment rechercher la chaine "Hello World" dans une arborescence de fichier .c
find -name *.c -exec grep "Hello World" {}\;

copier tous les .jpg d'un disk dur dans le répertoire /img/
find -name *.jpg -exec cp {} /img/ \;

mettre les droits sur certains répertoires pour l'utilisateur jean
find -exec chown jean {} \;
find -exec chgrp jean {} \;
find -type d -exec chmod 775 {} \;
find -type f -exec chmod 664 {} \;

*UDMA:

- pour tester l'UDMA, tapez la commande suivante : dmesg | grep -i -e dma

*.HCI:

- pour voir les *.hci: cat /usr/src/linux/.config | grep -i hci

*.CAT:-

pour copier un fichier 1 sur un fichier2: cat fichier1 >> fichier2
- pour copier un fichier 1 et fichier2 sur un fichier3: cat fichier1 fichier2 > fichier3

*PPP:

- pour vérifier que la connexion est bien établie: ps aux | grep ppp*

*PARTITIONS:

- pour lister les partitions: sfdisk -l

*HdParm:

- pour verifier le "Timing buffer": hdparm -Tt /dev/hda

*DISQUETTE DE BOOT /

Pour formater une disquette de boot 1.44Mo de 3.1/2" taper : fdformat /dev/fd0H1440 mkbootdisk --device /dev/fd0 2.2.14-15 Le 2.2.14-15 ce qui permet de créer une disquette boot avec une copie de /boot/vmlinuz-2.2.14-15

*FICHIERS CORE /

Ces fichiers servent pour le debugage. Pour les supprimer tous de l' arborescence: find / -name core -exec rm -f "{}" ';'

*RAM

Pour déclarer la ram éditer le fichier lilo.conf qui se trouve dans le répertoire /etc vi(ou n'importe quel editeur de text) /etc/lilo.conf. Ensuite ajouter la ligne : append="mem=128M" Finir en tapant lilo -v pour que les nouvelles informations soient prises en compte.

*IMAGE ISO /

Utiliser la commande mount : mount -r mon_image.iso /mnt/cdrom -t iso9660 -o loop=/dev/loop0 Remplacer /mnt/cdrom par un répertoire de son choix.

*Suppression du contenu d'un fichier

La manip suivante permet de supprimer le contenu d'un fichier tout en préservant son nom et ses permissions.

> nomfichier

On obtient ainsi un fichier vide (taille 0).

* Utilisation de "tar"

tar est un archiveur, c'est- à -dire qu'il permet de sauver plusieurs fichiers (par exemple une arborescence) dans un seul et même fichier. Par la grâce de la version GNU, il permet aussi de le compresser/décompresser.
Désarchiver une archive

tar zxf fichier.tar.gz

Cela décompresse ("z") et extrait ("x") les fichiers depuis le fichier ("f") fichier.tar.gz
Lister les fichiers d'une archive

tar tzf fichier.tar.gz

Cela affiche ("t") seulement la liste des fichiers contenus dans fichier.tar.gz.
Archiver un répertoire et tout son contenu

tar zcvf fichier_destination.tar.gz répertoire_source

Cela crée ("c") un fichier ("f") fichier_destination.tar.gz compressé avec gzip ("z") contenant le répertoire répertoire_source et tout son contenu.

Le "z" est remplacé par un "j" quand on traite un fichier compressé avec bzip2 (fichier .bz2) au lieu de gzip (fichier .gz).

On ajoute habituellement un "v" dans les options, pour dire à tar d'afficher la liste des fichiers traités.

Il arrive parfois que des fichiers .tar.gz downloadés aient été décompressés par le navigateur sans que celui-ci ne change son nom. On a donc un fichier .tar.gz qui en fait est simplement un .tar. On peut voir cela grâce à la commande « file », qui permet de déterminer la nature d'un fichier. Il suffit de renommer le fichier .tar.gz en .tar le cas échéant.

* Synchronisation de l'heure avec un serveur de temps (NTP)

Installer << ntpdate>>:

# apt-get install ntpdate

et synchroniser avec un serveur public de temps chaque fois que nécessaire:

# ntpdate nom_du_serveur_de_temps

exemple:

# ntpdate time.chello.be

OU

Installer << ntp-simple >>:

# apt-get install ntp-simple

et répondre aux questions debconf.A la fin de l'installation, le service tourne et veille à maintenir l'heure à l'identique avec son serveur.La dernière solution est d'installer un serveur de temps qui pourra éventuellement servir à d'autres machines dans l'entreprise à son tour. Il s'appelle aussi << ntpd >>:

# apt-get install ntp

* Installer un serveur DHCP pour une distribution Debian

Pour attribuer automatiquement une adresse IP et la configuration réseau à un client dès qu'il le demande vous devez installer un serveur DHCP (Dynamic Host Configuration Protocol) sur votre réseau.
Installer le package DHCP:

# apt-get install dhcp

Ajouter le nom de l'interface réseau sur laquelle le serveur DHCP doit répondre
ligne INTERFACES="" dans le fichier /etc/default/dhcp. Ex.:

INTERFACES="eth1"

Configurer le fichier /etc/dhcpd.conf .
Demarer le serveur DHCP :

# /etc/init.d/dhcp start

* Tuer tous les processus portant un certain

# killall programme

Où programme est le nom du processus à tuer, pas son PID. Ex:

$ killall mozilla-bin

* OpenSSH ou comment se logger par echange de clefs

Voici la procédure complète pour se logger sans mot de passe (par échange de clefs donc) entre machines par SSH .
Créer sa paire de clefs SSH :

$ ssh-keygen -t dsa

Copier sa clef publique dans le fichier adéquat du serveur de destination:

$ scp ~/.ssh/id_dsa.pub dest:

où dest est le serveur de destination.
Se logger sur le serveur de destination par SSH et modifier ou créer le fichier /.ssh/authorized_keys:
sous windows dans le profil de l'utilisateur avec lequel on veut se connecter creer un répertoire .ssh dans lequel on placera sa clef publique et installer cygwin

$ ssh dest
$ cat ~/id_dsa.pub >> ~/.ssh/authorized_keys

Tester.
Attention, il faut s'assurer que le package ssh est installé en suid root. Donc, dans debconf ( à l'installation de ssh) il faut avoir répondu 'oui' à la question:

Do you want /usr/lib/ssh-keysign to be installed SUID root?

Si ce n'est pas le cas, reconfigurer le package:

# dpkg-reconfigure ssh