|
Table des matières
Commandes Linux - Partie 2Nota important sur les espaces et noms utilisés
ls "Dossier nouveau"
ls Dossier\ nouveau
Attention ! Les caractères accentués peuvent provoquer des erreurs d’interprétation. Ce problème apparaît régulièrement lors d’échanges de fichiers entre deux ordinateurs utilisant des tables de codages ASCII distinctes (PC Windows, Mac et Linux)… Navigation
cd # sans argument, ramène au répertoire personnel /home/login cd .. # pour remonter d'un cran dans l'arborescence cd / # pour remonter à la racine cd - # pour revenir au répertoire précédent. Avantage: indique le chemin absolu ensuite cd /repertoire/ss-répertoire/ss-ss-répertoire # adressage en navigation absolue (à partir de la racine) cd repertoire/ss-répertoire/ss-ss-répertoire # adressage en navigation relative (à partir du répertoire courant)
ls # pour avoir la liste simple du contenu d'un répertoire ls -l # pour afficher les propriétés des fichiers du répertoire ls -R # pour afficher l'arborescence de façon récursive ls -t # pour afficher pr ordre de date de modification Exemple de réponse drwxrwxr-x 2 guy Direction 4096 2007-09-04 10:45 Ces informations comportent: - d pour répertoire (directory), - pour un fichier - suivants: droits de lecture, d’écriture et d’exécution pour le propriétaire, le groupe et les autres utilisateurs (voir le § Attribution des droits du chapitre Serveur Linux) - un chiffre: 1 pour un fichier, supérieur à 1 pour un dossier - ensuite, le propriétaire, le groupe, la taille la date de dernière modification et le nom. ls -a # pour afficher l'ensemble des fichiers,y compris les cachés ls -la # pour afficher tous les fichiers avec leurs propriétés ls -1 # pour afficher un fichier par ligne
guy@porthos:~$ tree -d /var /var |-- backups |-- cache | |-- apache2 | | `-- mod_disk_cache | |-- apt | | `-- archives | | `-- partial | |-- cups | | |-- ppd | | `-- rss | |-- debconf | |-- hald
§cat mon_fichier def xyz abc §sort mon_fichier abc def xyz Chemin relatif/absoluPour naviguer, deux possibilités pour donner le chemin:
guy@Athos9:/boot/grub$ pwd /boot/grub # on est actuellement en /boot/grub guy@Athos9:/boot/grub$ cd /home/guy/ guy@Athos9:~$ pwd /home/guy # on est arrivé dans /home/guy
guy@Athos9:~$ ls Bureau Documents Images Public Telechargement Copies_Ecran examples.desktop Modèles Vidéos Desktop hud.workspace Musique guy@Athos9:~$ cd Documents/ guy@Athos9:~/Documents$ Pour remonter d’un répertoire (aller à son parent), on utilise “..” derrière certaines commandes comme cd, ls…. guy@Athos9:~$ pwd /home/guy # on est actuellement dans /home/guy guy@Athos9:~$ cd .. guy@Athos9:/home$ pwd /home # on est remonté d'un cran dans /home guy@Athos9:/home$ Recherche
sudo updatedb locate fichier-truc
find <chemin> -name <fichier>
grep <motif> fichier Pour rechercher dans la liste des fichiers ou répertoires du répertoire courant, utiliser “*”: grep Mathieu * Pour plus de précisions, consulter le chapitre Recherche Ubuntu Création d'un fichierLa commande touch permet de créer un fichier vide de même que le commande > dans certains shells. touch nouveau-fichier # ou > nouveau-fichier On peut écrire dans un nouveau fichier avec la commande echo suivie d’une redirection. echo toto > nouveau-fichier # va écrire "toto" dans nouveau-fichier Utilisé aussi pour enregistrer des informations ou créer un fichier log. last > last.log # pour garder une trace des derniers logs sur un ordinateur Affichage du contenu d'un fichier
cat /etc/fstab L’option -n affiche en même temps les numéros de ligne. cat -n /etc/fstab
more <nom_fichier> # permet de faire défiler page par page less <nom_fichier> # permet en plus de revenir en arrière On passe à la page suivante par la barre d’espace, on remonte par la flèche Page précédente. Les deux se quittent par q.
L’option -f (follow) affiche les lignes et réactualise ensuite. On peut ainsi observer les changements. tail -f /var/log/messages On peut paramétrer le nombre de lignes à faire apparaître avec l’option -nxxx ou -n xxx. Exemple: tail -n25 nmap.log # ou -n 25. Très utile pour avoir les n dernières informations d'un fichier log
head -n25 nmap.log # utile pour vérifier le fonctionnement
guy@Astserv:~$ nl /etc/fstab
1 # /etc/fstab: static file system information.
2 #
3 # Use 'vol_id --uuid' to print the universally unique identifier for a
4 # device; this may be used with UUID= as a more robust way to name devices
5 # that works even if disks are added and removed. See fstab(5).
6 #
7 # <file system> <mount point> <type> <options> <dump> <pass>
8 proc /proc proc defaults 0 0
9 # / was on /dev/sda6 during installation
10 UUID=dd8785e1-8e97-4c27-85eb-3f2b5a60e207 / ext3 relatime,errors=remount-ro 0 1
11 # /home was on /dev/sda7 during installation
12 UUID=46d8f89a-6dea-4ee4-87b8-ee37fe11567c /home ext3 relatime 0 2
13 # swap was on /dev/sda5 during installation
14 UUID=7173c442-20a9-4b74-bf2a-bd547a690251 none swap sw 0 0
Mais, s’il y a besoin d’éditer pour faire la correction, rien ne vaut Gedit avec affichage des numéros de ligne. Voir chapitre Edition Linux Si besoin, compléter par more pour faire défiler page par page. nl /etc/asterisk/extensions.conf | more Affichage du contenu d'un répertoire1- Pour lister un répertoire, utiliser ls ou dir. De nombreuses options sont disponibles: -t par ordre chronologique… ls /home/login/repertoire-1 # liste le contenu de repertoire-1 2- Pour lister le contenu d’un répertoire chargé (ici /dev), on utilise la commande ls avec l’opérateur pipe (ou “tube”), accessible par la combinaison de touches AltGr+6, accompagné de more ou de less. ls /dev | more # permettra de visualiser calmement le répertoire /dev Les options suivantes peuvent être utilisées:
guy@Athos:~$ ls -l /home/guy/Musique/ total 24152 drwxr-xr-x 2 guy guy 4096 2008-11-04 10:57 Concerto-n°27-Mozart -rw-r--r-- 1 guy guy 8962090 2007-08-26 21:43 Do_You_Know-E.Iglesias.mp3 -rw-r--r-- 1 guy guy 9484770 2007-08-27 16:14 Incubus - Love Hurts.mp3 drwxr-xr-x 2 guy guy 4096 2008-11-22 20:49 La_fete_polonaise -rw-r--r-- 1 guy guy 6211899 2007-08-27 16:25 Paralyser - Finger Eleven.mp3 -rw-r--r-- 1 guy guy 6447 2008-11-22 20:38 tm081103.aup~ drwxrwxr-x 3 guy guy 4096 2008-11-22 20:38 tm081103_data 3- Pour lister le contenu d’un répertoire, on peut aussi utiliser la commande dir (directory): guy@promoserv2~ >dir /var/www apache2-default index.html info.php munin ocsreports smokeping guy@Athos-U9:~$ dir -l total 36 drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Bureau drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Documents drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Downloads -rw-r--r-- 1 guy guy 357 2009-10-24 16:11 examples.desktop drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Images drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Modèles drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Musique drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Public drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Vidéos Type de fichierPour visualiser le type d’un fichier, utilser la commande file suivie du fichier (chemin relatif ou absolu). file /home/<login>/essai.doc /home/<login>/essai.doc: Microsoft Office Document Edition de texteL’édition permet de modifier un fichier, à condition de l’ouvrir avec les droits d’administration (sudo, gksu ou gksudo).
sudo nano /boot/grub/menu.lst On passe de page en page par les commandes correspondantes, on quitte par CTL+X, on enregistre par Y (yes) et Enter.
gksu gedit /boot/grub/menu.lst
L’option -f (follow) affiche les lignes et réactualise ensuite. On peut ainsi observer les changements. tail -f /var/log/messages On peut paramétrer le nombre de lignes à faire apparaître avec l’option -nxxx ou -n xxx. Exemple: tail -n25 nmap.log # ou -n 25. Très utile pour avoir les n dernières informations d'un fichier log
head -n25 nmap.log # utile pour vérifier le fonctionnement
Pour plus de précisions sur l’édition, consulter le chapitre Edition Linux Compter les lignesLa commande wc (Word Count) permet de compter le nombre de lignes d’un fichier, mais aussi le nombre de mots ou de caractères. Option -l pour les lignes: wc -l mon-fichier Cette commande va donner le nombre de lignes contenues dans le fichier mon-fichier. Pour avoir le nombre de mot l’option est -w (word), l’option -c compte le nombre de caractères. La commande wc sans option donne à la fois le nombre de lignes, le nombre de caractères et le nombre de mots. guy@Athos-U9:~$ echo -n toto | wc
0 1 4
Pour connaître le nombre de fichiers dans un répertoire, la commande sera donc : ls -1 | wc -l # on liste d'abord en colonne et on compte les lignes Statut d'un fichierLa commande stat montre les derniers changements sur un fichier. root@promoserv/var/www/freepbx/admin/cdr >stat call-log.php 15:45 #821 File: `call-log.php' Size: 42522 Blocks: 88 IO Block: 4096 regular file Device: 801h/2049d Inode: 475823 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 111/asterisk) Gid: ( 119/asterisk) Access: 2009-08-04 13:11:53.000000000 +0200 Modify: 2009-07-31 21:43:11.000000000 +0200 Change: 2009-08-04 08:25:02.000000000 +0200 Browser en ligne de commandeOpérations sur les fichiers/répertoiresNota important sur les baptêmes
CopieLa commande est cp. La copie d’un fichier se fait par cp fichier fichier-copy # en ajoutant si nécessaire le chemin du nouveau fichier-copy Pour copier plusieurs fichiers dans un même répertoire cp fichier1 fichier2 fichier3 /repertoire-arr Pour les répertoires, ajouter l’option -R pour copie récursive cp -R repert_n repert_n-copy # en ajoutant si nécessaire le chemin du nouveau repertoire-copy Renommer/DéplacerLa commande mv permet de:
mv fichier fichierc
mv repertoire1 repertoire2
cp fichier1 fichier2 fichier3 /repertoire_arr # les fichiers sont déplacés au nouveau répertoire Création de fichier videPour créer un fichier vide, deux commandes équivalentes:
touch dossier_1/fichier_x > dossier_1/fichier_x Suppression de fichiers/répertoires
sudo rm -i fichier Les options sont:
rm -ri repertoire # suppression des fichiers interactive rm -rf repertoire # sans message d'erreur, ni confirmation Création de répertoireLa commande mkdir (make directory) permet de créer un ou des répertoires: mkdir rep1 rep2 rep3 # créera les 3 répertoires L’option -p permet de créer l’arborescence: mkdir -p /rep1/rep2/rep3 # créera /rep1 et /rep1/rep2 s'ils n'existent pas et ensuite /rep1/rep2/rep3 Opérations sur les disquesMonter un périphériqueLa commande pour monter un périphérique est mount. sudo mount <Source> <MountPoint> Exemple: sudo mount /dev/sdb1 /media/sdb1 # il faut naturellement que le répertoire sdb1 existe déjà ou ait été créé dans /media par mkdir Mount lit le fichier /etc/fstab, la commande indique la source et le point de montage, nécessite le mode adminisrateur. sudo mount /dev/sdc /media/cdrom0 Pour connaître l’état des partitions montées, taper: sudo mount Pour démonter le périphérique, c’est la commande umount. Pour démonter le CD, on indique
sudo umount /dev/sdc
sudo umount /media/cdrom0 Le tiroir du CD est maintenant débloqué. Pour démonter l’ensemble des périphériques montés: sudo umount -a Nota En cas de problème avec umount (réponse: device is buzy):
sudo lsof | grep sdax xmms 4848 login 9r REG 3,6 3430341 login@ubuntu:login$ kill -KILL 4848 sudo umount /dev/sdax Formater un volumePlusieurs solutions utilisables:
sudo umount /dev/sda1 # pour démonter au préalable sda1 sudo mkfs -t ext3 /dev/sda1 # pour formater le disque externe USB sda1 en ext3 Ne pas oublier de l’ajouter dans le fichier /etc/fstab pour que partition de disque soit prise en compte au démarrage. Espace disponible
df -h # L'option -h (human) affiche les réultats sous forme plus compréhensible root@jeriserv/home >df -h 18:39 #99 Filesystem Size Used Avail Use% Mounted on /dev/hda1 19G 1,9G 16G 11% / varrun 474M 260K 474M 1% /var/run varlock 474M 0 474M 0% /var/lock procbususb 474M 104K 474M 1% /proc/bus/usb udev 474M 104K 474M 1% /dev devshm 474M 0 474M 0% /dev/shm /dev/hda3 210G 39G 161G 20% /home
guy@Athos:~$ df -kTh Sys. de fich. Type Tail. Occ. Disp. %Occ. Monté sur /dev/sdb3 ext3 39G 5,9G 32G 16% / tmpfs tmpfs 1,8G 0 1,8G 0% /lib/init/rw varrun tmpfs 1,8G 384K 1,8G 1% /var/run varlock tmpfs 1,8G 0 1,8G 0% /var/lock udev tmpfs 1,8G 2,9M 1,8G 1% /dev tmpfs tmpfs 1,8G 12K 1,8G 1% /dev/shm lrm tmpfs 1,8G 2,0M 1,8G 1% /lib/modules/2.6.27-11-generic/volatile /dev/sdb5 ext3 219G 82G 127G 40% /home /dev/sda1 fuseblk 167G 37G 130G 23% /media/DONNEES_200 /dev/sdb2 fuseblk 118G 108G 9,4G 93% /media/DONNEES_500 /dev/sdb1 fuseblk 59G 6,6G 53G 12% /media/Disque_C /dev/sdb6 ext3 28G 4,1G 23G 16% /media/U8.04 /dev/sda2 ext3 21G 14G 5,9G 70% /media/sdb2
du -ch # pour avoir les fichiers et le total sous forme parlante L’option -s ne fait apparaitre que la somme: On retrouve les 39 Go occupés sur /dev/hda3 qui est la partition du home (voir commande df -h).
Athos-U9% sudo parted -s /dev/sda print Modèle: ATA SAMSUNG HD501LJ (scsi) Disque /dev/sda : 500GB Taille des secteurs (logique/physique) : 512o/512o Table de partitions : msdos Numéro Début Fin Taille Type Système de fichiers Fanions 1 32,3kB 62,9GB 62,9GB primary ntfs démarrage 2 62,9GB 201GB 138GB primary ntfs 4 201GB 500GB 299GB extended lba 6 201GB 216GB 14,7GB logical ext4 7 216GB 231GB 15,2GB logical ext3 5 231GB 468GB 237GB logical ext3 8 486GB 498GB 11,4GB logical ext3 9 498GB 500GB 2517MB logical linux-swap Athos-U9% Vérification/Réparation d'une partitionLa commande fsck (File System CHeck) permet de vérifier le bon état d’une partition Linux et si besoin, réparer automatiquement les erreurs qu’elle y trouve. Elle est lancée automatiquement à chaque démarrage où le système a détecté un arrêt anormal. Il est obligatoire de démonter une partition avant de lancer fsck ou e2fsck. Options utiles:
sudo umount /dev/sda10 sudo fsck -r /dev/sda10 La commande tune2fs permet notamment de configurer la fréquence de lancement de fsck. sudo tune2fs -c 30 /dev/sda7 # pour une vérification de sda7 tous les 30 jours Pour plus de détails, consulter http://doc.ubuntu-fr.org/fsck Copie d'une partitionPour copier le contenu d’une partition sur une autre, entrer la commande: cp -dpr /source. /cible # ou commande cp -a qui est équivalente Exemple: voir Déplacer le /home Lien symbolique
ln -s chemin_origine chemin_alias
root@jeriserv:/var/www/freepbx# ln -s ../munin # on crée un lien avec le répertoire munin qui est à un niveau au-dessus root@jeriserv:/var/www/freepbx# ll total 28 drwxrwx--- 8 asterisk asterisk 4096 2009-09-15 21:14 admin drwxr-x--- 2 asterisk asterisk 4096 2009-07-21 14:27 _asterisk -rw-r--r-- 1 root root 602 2009-07-21 14:27 index.html lrwxrwxrwx 1 root root 8 2009-11-16 20:07 munin -> ../munin # on voit ici le lien créé drwxrwx--- 2 asterisk asterisk 4096 2009-07-21 14:41 panel drwxrwx--- 7 asterisk asterisk 4096 2009-07-21 14:27 recordings Réseaux
Généralités RéseauSe reporter également aux chapitres Connexion Linux, Réseau Linux et suivants… Protocole FTP
Pour démarrer une liaison FTP avec un ordinateur à adresse donnée sous un login déterminé lftp login@adresse_serveur # Répondre au mot de passe (Faire ensuite ls pour se situer) ls
Protocole SFTP
sftp serveur_distant # le serveur demande le mot de passe de l'utilisateur courant Si le nom d’utilisateur distant est différent de l’utilisateur local actuel mettre l’argument login@serveur sftp login@serveur_distant # répondre au mot de passe Pour afficher la liste des fichiers du répertoire courant, les commandes sont ls pour le distant et lls pour le local. Pour afficher le répertoire courant, les commandes sont pwd pour le distant et lpwd pour le local. Pour aller au répertoire <rep>, les commandes sont cd rep en distant et lcd rep en local. Réglage clavierSi par hasard on se retrouve en lignes de commande avec un clavier mal réglé, il y a moyen d’intervenir sur la configuration par la commande kbdrate. sudo kbdrate -s(silence) -r[rate, çàd caract/sec] -d[delay] Pour plus d’information sur les paramètres utilisés, faire un man kbdrate. Synchronisation du tempsLe protocole NTP permet de synchroniser par Internet des postes sur des serveurs de temps. L’application ntpdate assure cette fonction, elle est installée de base. Aide à la programmationechoLa commande echo permet d’imprimer à l’écran des informations, elle imprime ses arguments sur la sortie standard. § echo Bonjour, le monde Bonjour, le monde Options utilisables: -e Reconnaître les caractères d’échappement Ce qui permet d’utiliser des caractères d’échappement: - \n Retour à la ligne - \t Tabulation horizontale - \\ Anti-slash - \’ Guillemet simple - \” Guillemet double Exemple: guy@Athos:~$ echo -e 'auto lo\niface lo inet loopback\n\nauto eth0\niface eth0 inet dhcp' auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp teeSert à écrire des données intermédiaires dans un fichier. Exemple: echo -e 'auto lo\niface lo inet loopback\n\nauto eth0\niface eth0 inet dhcp' | sudo tee /etc/network/interfaces # met les nouveaux paramétres dans le fichier interfaces Pour ajouter un module ath5k (Wifi): echo ath5k | sudo tee -a /etc/modules # va ajouter une ligne dans le fichier Exécution automatique de commandescroncron est un service ou daemon pour programmer des actions à un moment défini. L’équivalent graphique est gnome-schedule. Ainsi, on peut facilement automatiser des tâches à effectuer de façon régulière en ajoutant une entrée dans le fichier crontab. Pour lister les tâches enregistrées, faire crontab -l. crontab -l Pour éditer le fichier crontab, faire crontab -e. crontab -e La syntaxe est de la forme: m h dom mon dow commande > <fichier_log> # pour créer un fichier log m h dom mon dow commande >> <fichier_log> # pour ajouter à la fin du fichier dans laquelle
Pour indiquer que la tâche s’effectue toutes les 15 minutes de 8h00 à 20h00 du lundi au vendredi, on écrit 0,15,30,45 8-20 * * 1-5 commande > <fichier_log> On peut mettre également @reboot (sans compléter le reste) pour une commande à exécuter au démarrage. Pour une synchronisation de l’horloge de l’ordinateur toutes les 3 heures sur le serveur de temps de l’Université de Nice, on utilise la commande ntpdate avec la ligne suivante au crontab: 30 9,15,21 * * * /usr/sbin/ntpdate -s ntp.unice.fr Il faut savoir que si l’ordinateur est utilisé par plusieurs personnes, la tâche cron est effectuée par la personne qui l’a écrite par la commande crontab -e. Pour qu’elle soit réalisée quelque soit le login, il faut éditer etc/crontab et ajouter la ligne: 0 18 * * * root ntpdate /usr/sbin/ntpdate pool.ntp.org # pour le faire en root anacronanacron offre l’avantage de pouvoir effectuer des tâches périodiquement. Il est particulièrement adapté pour des postes qui ne sont pas allumés en permanence. Pour anacron, on paramètre le fichier /etc/anacron. Très utile par exemple, pour faire des sauvegardes différentielles rdiff-backup ou des synchronisations par rsync ouGrsync. Divers
Symbôles supplémentairesPoint-virguleLe point-virgule ; marque la fin d’une commande et le commencement d’une autre. Les commandes seront éxécutées de manière inconditionnelle. La première qui échoue, n’empêche pas la suite d’être éxecutée. echo a; sleep 5; echo b Ici, on affiche a, on attend 5 secondes et on affiche b. Simple supérieurAprès chaque commande, la console réagit la plupart du temps avec un message de réponse type standard (canal STDOUT) ou un message d’erreur (canal STDERR). Il est possible de rediriger la sortie vers un fichier pour en garder trace avec le symbôle >. Si ce fichier n’existe pas, il est créé. S’il existe, il est écrasé. <commande> > fichier_sortie # crée ou écrase fichier_sortie Il est possible de rediriger la sortie d’une commande qui écrit l’erreur standard vers un fichier. <commande-c> 2> fichier_erreur # crée ou écrase fichier_erreur Pour rediriger à la fois la sortie standard et l’erreur standard vers des fichirs, deux solutions:
Double supérieurLe symbôle double supérieur » permet de rediriger à la fin du fichier de sortie, sans écraser le précédent. ps -A > /tmp/ps.log; dmesg >> /tmp/ps.log # stocke le résultat de ps -a puis ajoute celui de dmesg Pense-bête commandes LinuxLe tableau suivant constitue une bonne récapitulation de commandes courantes: http://media.biologeek.com/realisations/doc_ubuntu_fr/ubuntu_fr_carte_reference3.pdf Arrêt serveur XPour installer, par exemple, le pilote NVIDIA correspondant à une carte graphique GeForceFX5700, la procédure impose d’arrêter le serveur X qui pilote l’interface graphique de Linux: - A partir d’Ubuntu, faire Ctl+Alt+F1, l’affichage passe en console. - Passer en super-utilisateur et arrêter le daemon corrspondant: su /etc/init.d/gdm stop Le serveur X s’arrête, faire l’installation. - Relancer le serveur X par la commande inverse: /etc/init.d/gdm start Solution alternative Au lieu d’arrêter le serveur X, il suffit de ne pas le démarrer. Pour cela, au moment du démarrage, choisir dans le menu Grub, l’option Ubuntu (Recovery mode). On se retrouve alors en mode console pour procéder à l’installation. |