Linux: Commandes courantes

Commandes les plus utiles sur linux




SCP, ou la copie d'une machine a une autre juste avec ssh :)

scp -p user@hots1:file user@host2:file

Find, pour retrouver ses fichiers perdus:

mysqladmin -u root -p password
mysql_install_db --user=mysql
Voici les différentes options possibles:
  • -name : recherche sur le nom du fichier
  • -perm : recherche sur les droits d'accès du fichier
  • -links : recherche sur le nombre de liens du fichier
  • -user recherche sur le propriétaire du fichier,
  • -group recherche sur le groupe auquel appartient le fichier,
  • -type recherche sur le type (d=répertoire, c=caractè re,f=fichier normal),
  • -size recherche sur la taille du fichier en nombre de blocs (1 bloc=512octets),
  • -atime recherche par date de dernier accès en lecture du fichier,
  • -mtime recherche par date de dernière modification du fichier,
  • -ctime recherche par date de création du fichier.

Split:

split -l 5 file prefix
Découpe le fichier file en -l lignes qui se nommeront file, avec un suffixe qui permet de les trier dans l'ordre (aa, ab, ac...)

Mysql, comment gerer son premier demarrage:

cp /etc/my-small.cnf /etc/my.cnf
mysql_install_db --user=mysql
mysqladmin -u root -p password ou mysql_secure_installation

Afficher les requettes en live: demarrer mysql avec "-l" et tail -f sur le fichier de log mysql

Afficher un message sur toute les consoles:

wall .... tapper le message ... ctrl d
ou en version scriptable:
echo coucou | wall

Apache benchmark:

Apache Benchmark permet de donner des statistiques de temps de réponse d'une page web.
Les options n et c sont le nombre de requettes et la concurrence (nombre de connexions simultanées)
Il est possible de sortir le resultat au format HTML et donc d'écrire le tout dans un fichier facilement lisible
ab -c 150 -n 200000 -k -w http://192.168.10.2:8888/ > /Users/cck/Desktop/ab.html

Historique du shell

pour regarder dans l'historique de ses commandes: ctrl r
pour l'editer: cat history

vi

  • Ecrire : i
  • Sortir de l'ecriture : echap
  • Annuler: u
  • Supprimer la ligne courante: dd
  • Supprimer sous le curseur: x
  • Enregistrer : :w
  • Quitter : :q
  • Forcer une commande : ! ex: :q! quitte sans sauvegarder

Monter une image iso:

mount -r test.iso /mnt/cdrom -t iso9660 -o loop=/dev/loop0

Monter une partition NTFS

Pour dépanner l'imanquable ami, ou personne de la famille sous Windows ;)
Cette astuce n'est valable que sur un système ou le driver ntfs-3g est dispo (testé sur knoppix 5.1)
sudo mount -t ntfs-3g /dev/sda1 /mnt/hd -o force

Compiler sur debian:

apt-get install gcc
apt-get install libc-dev
apt-get install make

Iptables:

Dropper
iptables -I INPUT -s IP -j DROP
Un_Dropper
iptables -D INPUT -s IP -j DROP
Lister
iptables -L -n (-n pour non resolve dns)

DNS

/etc/hosts sert à définir les noms des machines locales, il est utilisé par dnsmasq et donc, si placé sur un firewall permet que toute les machines se reconaissent par leur p'tit nom.
La declaration est l'ip suivie de tout les alias de la machine, ex:
192.168.1.1 dryades.org serveur serveur.dryades.org

/etc:resolv.conf indique quel serveur de dns utiliser sur la machine ex:
nameserver 208.67.222.222
nameserver 208.67.220.220
domain YOUR_DOMAIN

Faire taire les bips systeme

Quoi de plus enervant que ces bips a chaque autocompletion ?!
Methode temporaire, au prochain reboot ils seront a nouveau présent
rmmod pcspkr
Pour que cela reste à chaque reboot, on peut le mettre dans son rc.local (ou equivalent selon votre distrib)
Il existe une methode pour désactiver les bips système dans les preferences de sa console, mais ca ne fonctionne que pour un user ...

Faire un tunnel ssh

CLI=adresse du client
SRV=adresse du serveur

Si on est sur le serveur la commande :
ssh -R 3999:SRV:80 CLI
permet à quelqu'un sur le client de se connecter au web par le tunnel ssh ‚en tappant dans un naviguateur http://localhost:3999.

On peut faire directement la même chose depuis le client avec la commande :
ssh -L 3999:SRV:80 SRV
A noter que l'on peut également faire cela depuis Windows avec PuTTy‚dans la rubrique Tunnels mettre Source port 3999 et Destination SRV:80, faire Add‚puis retourner dans session mettre l'adresse du serveur, port 22, sauvegarder la config et faire Open pour créer le tunnel et se connecter au serveur.
Les utilisations sont nombreuses, cela permet de faire passer des applications non sécurisées (pop, ftp ...) par un tunnel crypté.

Test d'un serveur avec virtualhost juste avec son ip

Il peut arriver d'avoir besoin de tester le bon fonctionnement de virtuallhosts apache, sans qu'ils soient fonctionnels (dns non propagés par ex)
Voici la methode avec telnet:
telnet IP 80
GET / HTTP/1.1
HOST:www.virtualhostatester.com

Debugger un serveur SMTP en ligne de commande

$ telnet x.x.x.x 25
	Trying x.x.x.x...
	Connected to host.domain.com.
	Escape character is '^]'.
	220 host.domain.com ESMTP Sendmail 8.9.3+Sun/8.9.3; Mon, 12 Sept 2005 12:18:01-0500 (CDT)
$ HELO me@localhost
	250 host.domain.com Hello me [x.x.x.x], pleased to meet you
$ MAIL FROM:< me@domain >
	250 < me@domain >... Sender ok
$ RCPT TO:< you@domain >
	250 < you@domain >... Recipient ok
$ DATA
	354 Enter mail, end with "." on a line by itself
$ Hi You!
$ .
	250 QAA00316 Message accepted for delivery
QUIT
	221 host.domain.com closing connection
	Connection closed by foreign host.

Debugger un serveur imap en ligne de commande

telnet x.x.x.x 143
	Trying x.x.x.x...
	Connected to host.domain.com.
	Escape character is '^]'.
	* OK [CAPABILITY IMAP4REV1 LOGIN-REFERRALS STARTTLS AUTH=LOGIN] host.domain.com IMAP4rev1 2003.338rh at Mon, 12 Sep 2005 14:12:44 -0500 (CDT)
a LOGIN USERNAME PASSWORD
	a OK [CAPABILITY IMAP4REV1 IDLE NAMESPACE MAILBOX-REFERRALS BINARY UNSELECT SCAN SORT THREAD=REFERENCES THREAD=ORDEREDSUBJECT MULTIAPPEND] User USERNAME authenticated
a EXAMINE INBOX
	* 46 EXISTS
	* 0 RECENT
	* OK [UIDVALIDITY 1093716296] UID validity status
	* OK [UIDNEXT 610] Predicted next UID
	* FLAGS (NonJunk Junk $MDNSent NotJunk $NotJunk JunkRecorded $Junk $Label4 $Label1 $Label2 $Label3 $Label5 \Answered \Flagged \Deleted \Draft \Seen)
	* OK [PERMANENTFLAGS ()] Permanent flags
	* OK [UNSEEN 27] first unseen message in /var/spool/mail/xxxxxxx
	a OK [READ-ONLY] EXAMINE completed
a FETCH 1 BODY[TEXT]
	...
a LOGOUT
	* BYE host.domain.com IMAP4rev1 server terminating connection
	a OK LOGOUT completed
	Connection closed by foreign host

Debugger un serveur pop en ligne de commande

$ telnet host.domain.com 110
	Trying x.x.x.x ...
	Connected to host.domain.com (x.x.x.x).
	Escape character is '^]'.
	+OK POP3 host.domain.com v2003.83rh server ready
USER USERNAME
	+OK User name accepted, password please
PASS PASSWORD
	+OK Mailbox open, 48 messages
LIST
	+OK Mailbox scan listing follows
	1 3894
	2 11761
	3 5499
	4 13448
	5 10451
RETR 5
	...
QUIT

Version de son noyau

uname -r

Sauvegarde / Reinstallation des paquets d'une debian

Il est plutot pratique de garder une copie de la liste des applis installées sur une debian, pour pouvoir tout reinstaller rapidement en cas de formattage.
Voici la marche à suivre.

Sauvegarde:
debconf-get-selections > debconfsel.txt
dpkg --get-selections "*" > selections.txt
“*” inclut aussi les noms des paquets à purger dans myselections.

Restauration:
dselect update
debconf-set-selections < debconfsel.txt
dpkg --set-selections < selections.txt
apt-get -u dselect-upgrade

Voila :)