Linux: Commandes courantes
Commandes les plus utiles sur linux
- SCP
- Find
- Split
- Mysql, initialisation
- Wall, Messages sur toute les consoles
- Apache Benchmark
- Historique du shell
- vi, editeur de texte
- Monter une image ISO
- Monter une partition NTFS
- Compiler sur debian
- Iptables
- DNS
- Supprimer les bips systeme
- Tunnels SSH
- Tester un VirtualHost via telnet
- Tester un SMTP via telnet
- Tester un IMAP via telnet
- Tester un POP via telnet
- Connaître la version de son noyau
- Sauvegarde et Restauration de ses paquets debian
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 passwordVoici les différentes options possibles:
mysql_install_db --user=mysql
- -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 prefixDé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 rpour 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:
Dropperiptables -I INPUT -s IP -j DROPUn_Dropper
iptables -D INPUT -s IP -j DROPLister
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 pcspkrPour 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 clientSRV=adresse du serveur
Si on est sur le serveur la commande :
ssh -R 3999:SRV:80 CLIpermet à 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 SRVA 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“*” inclut aussi les noms des paquets à purger dans myselections.
dpkg --get-selections "*" > selections.txt
Restauration:
dselect update
debconf-set-selections < debconfsel.txt
dpkg --set-selections < selections.txt
apt-get -u dselect-upgrade
Voila :)