Cours LINUX ?>

Cours LINUX

1 Les commandes de base sous une consolearton18

1.1 man

   La commande qui permet d’avoir de l’aide sur une autre commande. par exemple si vous voulez connaître la syntaxe exacte de la
commande ls (ci dessous), il suffit de taper : man ls

1.2 ls

   La commande qui permet de lister le contenu d’un répertoire. Pour ma part j’utilise ls avec quelques paramètres pour
pour avoir des couleurs différentes en fonction du type des fichiers (répertoire, lien symbolique…) et pour voir les fichiers cachés (fichiers qui commence par un ‘.’).
bash$ ls -a --color
.            .bash_history   .xinitrc

.. .gnome .xsession
.Xauthority .gnome_private .xsession-errors
bash$

1.3 rm

   La commande qui permet d’effacer un fichier. Voici un exemple a manipuler avec précaution. En effet, l’option -R permet d’effacer récursivement (c’est à dire tout ce qu’il y a dans les sous répertoire). indique tout simplement de tout effacer.
bash$ ls
dir1	       dir2	      fichier_bidon
bash$ rm -R *
bash$ ls
bash$

1.4 cd

   La commande qui permet de ce déplacer dans un autre répertoire.

1.5 mkdir

   La commande pour créer un nouveau répertoire.
bash$ ls
bash$ mkdir test_dir
bash$ ls
test_dir
bash$

1.6 rmdir

   La commande pour effacer un répertoire. Ce répertoire doit être
vide.
bash$ ls
test_dir
bash$ rmdir test_dir
bash$ ls
bash$

1.7 alias

   Une commande utile qui permet de faire correspondre à une commande un autre nom. La commande alias sans paramètres affiche la liste des alias qui existe pour l’instant. Voici un exemple d’utilisation de alias. Après cela, la commande rm demandera confirmation à chaque fichier à effacer et la commande dir (qui n’existait pas avant) affiche le contenu d’un répertoire en couleur avec les fichiers cachés ainsi que les droits, taille…
bash$ alias
bash$ alias rm='rm -i'
bash$ alias dir='ls -a -l --color'
bash$ alias
alias dir='ls -a -l --color'
alias rm='rm -i'
bash$

1.8 more

   Permet de faire défiler le contenu d’un fichier texte.

1.9 less

   Comme « more » sauf qu’avec cette commande, on peut revenir en arrière dans le défilement du fichier.

1.10 ps

   Permet de lister les processus actifs (voir les programmes qui sont actuellement lancés). Ici un exemple avec l’option pour voir tout les processus.
bash$ ps a
  PID TTY STAT TIME COMMAND
  363   1 S    0:00 -bash
  364   2 S    0:00 /sbin/mingetty tty2
  365   3 S    0:00 /sbin/mingetty tty3
  366   4 S    0:00 /sbin/mingetty tty4
  367   5 S    0:00 /sbin/mingetty tty5
  368   6 S    0:00 /sbin/mingetty tty6
  392   1 S    0:00 sh /usr/X11R6/bin/startx
  393   1 S    0:00 xinit /root/.xinitrc --
  396   1 S    0:00 sh /root/.xinitrc
  398   1 S    0:01 icewm
  399   1 S    0:00 gnome-session
  416   1 S    0:00 esd -nobeeps -as 30
  471   1 S    0:02 panel --sm-config-prefix /panel.d/Session-a04972/ --sm-clien
  513   1 S    0:00 gnome-terminal
  515   1 S    0:00 gnome-pty-helper
  516  p0 S    0:00 bash
  832  p0 S    0:02 nedit index.html
 5781   1 S    0:00 gnome-terminal
 5782   1 S    0:00 gnome-pty-helper
 5783  p1 S    0:00 bash
  418   1 S    0:01 xscreensaver -no-splash -timeout 20 -nice 10 -lock-mode -xrm
 9223  p1 S    0:00 su daniel
 9224  p1 S    0:00 bash
 9710  p1 R    0:00 ps a
bash$

1.11 top

   Permet de voir les processus le plus gourmand en consommation processeur. En effet les processus sont classés et on ne visualise que les plus gourmands en ressource.

1.12 kill

   Très utile car cette commande permet de d’arrêter un processus (programme) ce qui peut s’avérer nécessaire si celui-ci a planté.
bash$ nedit &
[1] 9450
bash$ ps
  PID TTY STAT TIME COMMAND
 9223  p1 S    0:00 su daniel
 9224  p1 S    0:00 bash
 9450  p1 S    0:00 nedit
 9458  p1 R    0:00 ps
bash$ kill -9 9450
bash$ ps
  PID TTY STAT TIME COMMAND
 9223  p1 S    0:00 su daniel
 9224  p1 S    0:00 bash
 9498  p1 R    0:00 ps
[1]+  Killed                  nedit
bash$

1.13 df

   Permet de voir combien d’espace disque dur est utilisé/libre sur chaque partition monté et où sont montées les partitions.
bash$ df
Filesystem         1024-blocks  Used Available Capacity Mounted on
/dev/hda3            3199501 1467699  1566333     48%   /
bash$

avec l’option -h le résultat est exprimé en Ko / Mo … la commande complète:

df -h

1.14 mount

   Comme vous l’aurez compris, cette commande permet de monter une partition derrière un répertoire (seul le root peut faire cela sauf si des droits supplémentaire ont été rajoutés aux utilisateurs).
[root@daniel]# mount /dev/fd0 /mnt/floppy/ -t vfat
mount: block device /dev/fd0 is write-protected, mounting read-only
[root@daniel tp_GTR]#

1.15 umount

   Pour démonter / éjecter.
[root@daniel tp_GTR]# umount /dev/fd0
[root@daniel tp_GTR]#

1.16 free

   Permet de voir combien de mémoire est utilisé/libre et de voir combien de swap (mémoire sur le disque dur) est utilisé.
bash$ free
             total       used       free     shared    buffers     cached
Mem:         63140      56028       7112      44812       3332      29708
-/+ buffers/cache:      22988      40152
Swap:       104416          0     104416
bash$

1.17 id

   Permet de savoir qui on est (le groupe et l’utilisateur). Dans l’exemple ci-dessous, je suis l’utilisateur user1 (uid) dans le group users (gid) et j’appartient aux groupes users et root (groups) en effet un utilisateur peut avoir les droits de plusieurs groupes
autres que son groupe « principale ».
[user1@daniel src]$ id
uid=500(user1) gid=100(users) groups=100(users),0(root)
[user1@daniel src]$

1.18 fuser

   Lorsque l’on veut démonter un système de fichier, il se peut qu’un utilisateur l’utilise. Dans ce cas, on ne peut pas démonter le système de fichier. Il est alors utile de savoir qui est quelle commande est responsable. Pour cela on peut utiliser la commande fuser. Voici un exemple qui nous permet de voir qui utilise /mnt/cdrom et tous les fichiers est sous répertoires qu’il contient.
[daniel@daniel src]$ fuser -vm /mnt/cdrom

USER PID ACCESS COMMAND
/mnt/cdrom daniel 542 ..c.. bash
[daniel@daniel src]$

1.19 ifconfig

   Pour connaître la configuration IP des interfaces réseaux, on peut utiliser la commande ifconfig -a. Souvent cette commande ce trouve dans le répertoire /sbin qui n’est généralement pas dans le PATH des utilisateurs autres que root. Ce qui veut dire que si on ne se trouve pas sur le compte root, il peut être nécessaire d’indiquer le chemin complet où trouver la commande dans le shell.
[daniel@daniel ~]$ /sbin/ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:C0:6D:12:1F:B5
          inet addr:172.16.0.2  Bcast:172.16.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:4 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 b)  TX bytes:11386 (11.1 Kb)
          Interrupt:10 Base address:0xe400

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:168 errors:0 dropped:0 overruns:0 frame:0
TX packets:168 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12177 (11.8 Kb) TX bytes:12177 (11.8 Kb)

[daniel@daniel ~]$

1.20 netstat

   Netstat est une commande importante pour obtenir des informations sur le réseau IP.

Cette commande peut par exemple nous renseigner sur le routage
utilisé par la machine :

[daniel@daniel ~] netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
172.16.0.0      0.0.0.0         255.255.255.0   U        40 0          0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U        40 0          0 lo
0.0.0.0         172.16.0.254    0.0.0.0         UG       40 0          0 eth0
[daniel@daniel ~]
   Elle peut aussi nous renseigner sur les connections en cours :

 

[daniel@daniel ~] netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:swat                  *:*                     LISTEN
tcp        0      0 *:netbios-ssn           *:*                     LISTEN
tcp        0      0 *:sunrpc                *:*                     LISTEN
tcp        0      0 *:6000                  *:*                     LISTEN
tcp        0      0 *:ndmp                  *:*                     LISTEN
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 *:ipp                   *:*                     LISTEN
tcp        0      0 daniel:ssh              daniel:filenet-rpc      ESTABLISHED
tcp        0      0 daniel:filenet-rpc      daniel:ssh              ESTABLISHED
udp        0      0 daniel:netbios-ns       *:*
udp        0      0 *:netbios-ns            *:*
udp        0   3108 daniel:netbios-dgm      *:*
udp        0      0 *:netbios-dgm           *:*
udp        0      0 *:ndmp                  *:*
udp        0      0 *:sunrpc                *:*
udp        0      0 *:ipp                   *:*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ACC ]     STREAM     LISTENING     2103   /tmp/.ICE-unix/1282
unix  2      [ ACC ]     STREAM     LISTENING     1498   /tmp/orbit-daniel/orb-3
512171761674798179
...
unix  2      [ ]         DGRAM                    829
unix  2      [ ]         STREAM     CONNECTED     582
[daniel@daniel ~]
   Sur l’état des interfaces réseaux et les packets transmit :
[daniel@daniel ~] netstat -i
Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR   TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0   1500   0       0      0      0      0       0      4      0      0 BMRU
lo    16436   0     812      0      0      0     812      0      0      0 LRU
[daniel@daniel ~]
   Ou bien encore les statistiques sur les différents protocoles :
[daniel@daniel ~] netstat -s
Ip:
    885 total packets received
    0 forwarded
    0 incoming packets discarded
    879 incoming packets delivered
    888 requests sent out
Icmp:
    5 ICMP messages received
    1 input ICMP message failed.
    ICMP input histogram:
        destination unreachable: 3
        echo requests: 1
        echo replies: 1
    4 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        destination unreachable: 3
        echo replies: 1
Tcp:
    7 active connections openings
    0 passive connection openings
    0 failed connection attempts
    0 connection resets received
    2 connections established
    807 segments received
    808 segments send out
    0 segments retransmited
    0 bad segments received.
    2 resets sent
Udp:
    73 packets received
    0 packets to unknown port received.
    0 packet receive errors
    73 packets sent
TcpExt:
    ArpFilter: 0
    3 TCP sockets finished time wait in fast timer
    6 delayed acks sent
    7 packets directly queued to recvmsg prequeue.
    3 packets directly received from prequeue
    196 packets header predicted
    TCPPureAcks: 8
...
    TCPMemoryPressures: 0
[daniel@daniel ~]

 

1.21 lsof

   Un peu dans la même lignée que fuser mais en beaucoup plus précis, lsof permet de savoir quels sont les fichiers ouvert par les différents utilisateurs de la machine et par les différents programmes. Cette commande ce trouve rarement par défaut sur les machines, il convient alors de la rajouter sur le système.

Exécuté sous le compte d’un utilisateur, on peut seulement voir les fichiers ouvert par cet utilisateur (ou par les programmes
qu’il utilise). Sous le compte root, on peut voir les fichiers ouvert par n’importe qui. La notion de fichier est prise au sens large Unix (fichier, pipe, socket, device…). Le programme est souvent installé dans /usr/sbin et rarement dans le PATH des utilisateurs autres que root. Cette commande et toutefois le plus souvent utile pour connaître l’état des connections TCP sur la machine. Dans ce cas, il faut être sous le compte root et utiliser la commande comme suit :

[root@daniel ~] lsof | grep TCP
portmap    539   root    4u  IPv4        796               TCP *:sunrpc (LISTEN)
sshd       621   root    3u  IPv4        895               TCP *:ssh (LISTEN)
xinetd     643   root    3u  IPv4        920               TCP *:swat (LISTEN)
cupsd      656   root    0u  IPv4       1022               TCP *:ipp (LISTEN)
smbd       932   root    5u  IPv4       1228               TCP *:netbios-ssn (LI
STEN)
miniserv.  967   root    4u  IPv4       1277               TCP *:ndmp (LISTEN)
X         1042   root    1u  IPv4       1372               TCP *:6000 (LISTEN)
ssh       1696   root    3u  IPv4       6864               TCP daniel:filenet-rp
c->daniel:ssh (ESTABLISHED)
sshd      1697   root    4u  IPv4       6865               TCP daniel:ssh->danie
l:filenet-rpc (ESTABLISHED)
telnet    1848 daniel    3u  IPv4      27074               TCP daniel:32773->dan
iel:ssh (ESTABLISHED)
sshd      1849   root    4u  IPv4      27075               TCP daniel:ssh->danie
l:32773 (ESTABLISHED)
[root@daniel ~]

1.22 rpm

   Cette commande sert a installer, supprimer ou créer des packages (fichier se terminant par .rpm) RPM. Ces packages permettent
l’installation de n’importe quoi (et donc des programmes) sous les distributions de Linux de RedHat et de Mandrake (principalement).
   Pour installer un package, il faut d’habitude être sous le compte de l’utilisateur root. Le fichier du package peut être passé en paramètre en relatif ou en absolue. L’installation d’un package ce fait comme suit (chemin relatif dans le répertoire courant) :
[root@daniel /mnt/cdrom/Mandrake/RPMS2] rpm -ivh xrally-1.1-1mdk.i586.rpm
xrally                      ##################################################
[root@daniel /mnt/cdrom/Mandrake/RPMS2]
   Pour supprimer un package, il faut d’habitude être sous le compte de l’utilisateur root. Le nom du package correspond (en gros) au nom du fichier sans le .i586.rpm (i586 indique que ce package est fait pour des machines compatible avec les Pentium). La suppression d’un package ce fait comme suit (pas besoin du fichier du package) :
[root@daniel ~] rpm -e xrally-1.1-1mdk
[root@daniel ~]
   Pour lister les packages installés sur la machine, il faut procéder comme suit (ici, pas besoin d’être sous le compte root) ATTENTION, il y a souvent beaucoup de packages installés :
[~] rpm -q -a
libtermcap2-2.0.8-28mdk
setup-2.1.9-42mdk
info-install-4.0-20mdk
...
auth_ldap-1.4.7-1mdk
traceroute-1.4a5-14mdk
[~]

2 Configuration de la machine

   C’est dans le répertoire /etc/ que l’on trouve la plus part des fichiers de configuration de la machine. On peut cependant utiliser des logiciels pour configurer la machine. Je conseille linuxconf si il est installé. Pour le lancer, il suffit de taper dans une console : linuxconf.

3 Les commandes de base sous XWindow (mode graphique)

   Pour la configuration du serveur X (mode graphique), tout ce trouve dans le fichier /etc/X11/XF86Config pour en connaître la syntaxe, il suffit de taper sous une console : man XF86Config. Mais le plus pratique reste encore d’utiliser une logiciel qui s’occupe de générer ce fichier comme par exemple : XF86Setup, xf86config ou Xconfigurator (le plus simple).

Pour démarrer le serveur X il suffit de taper : startx dans une console.

Encore une chose. Il se peut que l’ordinateur démarre directement en mode graphique il ne faut pas alors taper la commande startx.

Un petit truc. Pour ne pas avoir le BIP lorsque l’on fait une erreur, il suffit de taper la commande xset -b dans une console.

 

Les commentaires sont clos.