![]() |
|
![]() |
LINUX est un système d'exploitation (au même titre que Windows XP, 7, ... ) qui permet de ``dialoguer'' avec l'ordinateur. Ce système est très puissant et très stable (contrairement à Windows). Bien qu'au premier abord il puisse paraître un peu austère, on s'y habitue très vite.
Ceci se fait dans une fenêtre dite terminal1 via un langage le shell. Il existe, sous LINUX, 3 principaux shell : le Bourne shell (sh) qui est le plus ancien et sans doute le plus utilisé, le C shell (csh) très utilisé et le Korn shell (ksh) qui est un peu un mélange des deux autres. Hormis ces shells, il existe des versions un peu plus conviviales : ce sont par exemple le bash (sh amélioré) et le tcsh (csh amélioré).
Pour vous connecter sur une machine LINUX vous avez besoin d'un login, c'est-à-dire un nom d'utilisateur et d'un mot de passe. Chaque utilisateur appartient à un groupe, ce qui permet de donner certains privilèges (possibilité d'écrire, lire ou exécuter un programme dans une certaine zone) communs à tous les utilisateurs de ce groupe. Il existe cependant un utilisateur particulier, nommé root qui a tous les privilèges.
Il est important de savoir que les fichiers sont classés dans l'ordinateur (sur le disque magnétique ou dans une mémoire flash) selon une structure arborescente. Chaque nœud de l'arborescence s'appelle un répertoire ou directory (en anglais). Dans ces répertoires se trouvent des fichiers (ou file en anglais).
Par exemple /home/phys/aaa/zorro.c signifie que le fichier zorro.c se trouve dans le répertoire aaa qui se trouve lui même dans le répertoire phys, qui se trouve lui même dans home qui est dans /. Le répertoire racine est /.
Toutes les commandes ``Linux'' que nous utiliserons sont des commandes sont à tapper dans une fenêtre terminal (gnome-terminal, xterm, ...). Avant de regarder les commandes plus en détail, il y a deux commandes dont vous aurez besoin rapidement: man et passwd. La première vous sera très souvent utile car elle permet d'avoir un aide en ligne sur les autres commandes et même sur certaines fonctions C/C++. On tape
man commande
La seconde permet de changer votre mot de passe ; on tape
passwd
et on suit les instructions... Un mot de passe doit avoir
8 caractères (lettres, chiffres, ...).
Remarques :
![]() | |
![]() |
![]() | |||||||||
![]()
| |||||||||
![]()
| |||||||||
![]() | |||||||||
![]()
| |||||||||
![]() | |||||||||
![]() | |||||||||
![]() | |||||||||
![]() | |||||||||
![]() |
![]()
|
![]()
|
Comme nous l'avons déjà souligné, pour créer ou visualiser un fichier,
on utilise généralement un éditeur. Il existe un grand nombre d'éditeurs
différents ; citons Word5, vi6, emacs7,
gedit et enfin nedit qui permet de
faire beaucoup de choses, qui est assez conviviale et instinctif.
Nous utiliserons donc nedit pour tous nos
exemples. On le lance en tapant nedit ou nedit
filename pour éditer le fichier filename. Vous trouverez
ici
un petit aperçu de nedit
![]() |
![]()
alias sans argument donne la liste des alias déjà existant et unalias mon_alias annule la commande alias. Cette commande très utile est à utiliser avec beaucoup de précaution (imaginer l'effet de commande comme : alias ls cd ) | |||||||||
![]()
| |||||||||
![]()
| |||||||||
![]() chmod ugo nom : ugo sont 3 nombres correspondant à un privilège donné au fichier/répertoire pour le USER (u) le groupe auquel appartient le USER (g) et les autres (o) ; ils correspondent aux lettres rwx obtenu lors de la commande ls -als. Les valeurs possible pour ces nombres sont :
Exemple: chmod 754 fic permet au USER d'avoir tous les privilèges (7=1+2+4), aux membres de son groupe de lire et exécuter le fichier fic (5=4+1) et aux autres, uniquement une lecture de fic. On peut aussi utilisé la commande chmod u+w ficpour donner au user les droits d'écriture sur le fichier fic ou chmod o-r fic, pour enlever les droits de lecture aux autres ou chmod a+x fic pour donner les droits d’exécution à tout le monde (user, groupe et les autres) et ainsi de suite... | |||||||||
![]()
| |||||||||
![]()
| |||||||||
![]() |
Il est possible de taper sur une même ligne plusieurs commandes indépendantes qui seront exécutées séquentiellement en les séparant par un point virgule.
Exemple:
Essayer de taper cette ligne :
Exemple:
Essayer de taper:
ls | grep fic
ls | grep 1
![]() | |
![]() |
Nous avons déjà vu que le symbole ``&'' permet de lancer en background (i.e., en gardant la main dans une fenêtre terminal) un exécutable (par exemple, un éditeur). Cependant on a parfois oublié de mettre ce symbole et on souhaite récupérer la main : on tape alors Ctrl+z ; cela suspend l'exécution de la commande ; on peut alors l'envoyer en background en tapant bg. Essayer avec nedit.
Il est parfois nécessaire d'interrompre l'exécution d'un programme ; pour cela on peut utiliser dans la fenêtre où il a été lancé les touches Ctrl+c. Ceci termine violemment l'exécution. Bien sûr, Ctrl+c ne peut être effectif que si l'exécutable ne tourne pas en background. Si c'était le cas, il est possible de le ``tuer''. La commande ps donne le nom des exécutables qui tournent et le numéro qui leur a été attribué (PID). Soit X ce numéro ; on arrête l'exécution du programme en tapant kill -9 X. Essayer avec nedit.
Nous donnerons à titre indicatif certaines syntaxes propres à sh (ou bash). Le shell est comme nous l'avons dit un moyen de communiquer avec l'ordinateur. Outre les instructions de bases que vous avez déjà vues, celui-ci permet d'utiliser des variables. Ces variables sont de 2 types ; il y a les variables standardset les variables d'environnement.
Ce sont des variables que l'utilisateur se définit ; elles sont généralement utilisées dans des scripts ou programmes écrits dans un shell (csh ou sh). Elles ne ``vivent'' que dans le shell courant et sont perdues si on lance un nouveau shell. Leur affectation dépend du shell utilisé :
![]() | |||||
![]()
|
On peut afficher la valeur d'une variable par la commande echo
Exemples:
Essayer :
var2=cela aussi
echo voici la variable var1: $var1 et la variable var2 : $var2
b=2
let c=$a+$b
echo $a + $b = $c
Les variables d'environnement sont particulières dans la mesure ou elles sont utilisées par le shell lui même. Certaines sont déjà définies et sont indispensables, d'autres ne servent que dans certaines circonstances. Contrairement aux variables standards, elles ``s'exportent'' d'un shell au shell fils. Leur affectation dépend également du shell utilisé :
![]() | |
![]() |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() |
Si votre shell est le bash, à chaque fois qu'une terminal est ouverte, bash lance par défaut un certain nombre de script ; le dernier de ceux-ci est, s'il existe, le ~/.bashrc9. Si ce fichier n'existe pas vous pouvez le créer en vous inspirant du modèle ci-dessous :
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export EDITOR=nedit
PS1='\h[\W] \!: ' #command prompt.
ulimit -s unlimited #may be useful for some codes
#
# Alias section
#
alias lpq=lpstat -o
alias rm=rm -i
alias dir=ls -alsh
alias ls=ls --color=auto
alias cls=clear
alias h=history
alias pss=ps -edlaf | grep $USER
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin # where to look for executables
export PATH=${PATH}:~/bin:.
Si votre shell est le csh, à chaque fois qu'une terminal est ouverte, csh lance par défaut un certain nombre de script ; le dernier de ceux-ci est, s'il existe, le ~/.cshrc. En faisant ls -als dans votre home directory vous verrez que ce fichier n'existe pas. Vous allez en créer un suivant le modèle suivant :
if ( $?prompt ) then # shell is interactive.
set history=40 # previous commands to remember.
set savehist=40 # number to save across sessions
set system=`hostname|cut -d. -f 1` # name of this system.
set prompt='%m[%c1] \!: ' # command prompt.
alias xterm xterm -sl 1000 -sb -n $HOST &
alias dir ls -als
alias cls clear
alias pss ps waux | grep $USER
alias lpq lpstat -o
alias rm rm -i
alias cp cp -i
alias mv mv -i
endif
Nous allons utiliser un langage évolué de programmation afin d'écrire des programmes un peu plus compliqués que les scripts shell. Ce langage est le C++ (analogue au C).
La première des choses est de taper le programme (en utilisant nedit).
Voici un exemple que vous taperez dans un directory tp1
using namespace std;
int main()
{
cout«Bonjour ca va?«endl;
}
Il faut ensuite le compiler, c'est-à-dire transformer le code compréhensible par vous en un code compréhensible par l'ordinateur. Pour cela on se place dans le répertoire tp1 et on tape
g++ -o essai essai.cxx
Cela a pour effet de créer un nouveau fichier exécutable appelé essai, à partir de votre programme C++ essai.cxx (-o signifie output name). Si vous oubliez -o xxx, l'exécutable créé aura pour nom a.out.
![]() | |
![]() |
Exécutez votre programme en lançant la commande essai dans
la fenêtre terminal.
This document was generated using the LaTeX2HTML translator Version 2021 (Released January 1, 2021)
The command line arguments were:
latex2html -split 1 -html_version 3.2,math -no_navigation unix.tex
The translation was initiated on 2025-03-11