Commandes fondamentales
Commandes utilitaires : passwd, who,
date, cal, echo, groups, finger, quota, du, script
Fichiers : pwd, ls, cd, mkdir, rmdir, cat, more, tee, less, head, tail, wc, sort, rm, cp, mv, touch, grep, find, cmp, diff
Droits : chmod, umask
Processus : ps, kill, &, jobs,
fg, bg
Filtres : sort, more, less, grep,
cut, tr, sed
Connexion et transfert : nslookup,
telnet, ftp
Lancement d'un programme
en différé : batch, at, atq, cancel
Compression, encodage : compress,
uncompress, zcat, zgrep, gzip, gunzip, uuencode, uudecode, tar, sh
Editeur vi
Introduction aux commandes
-
Documentation générale
-
En tout premier lieu consulter les HOWTO dans /usr/doc/HOWTO
S'ils n'ont pas été installés, monter le CD, et
installer le paquetage Mandrake/RPMS/howto-html ....rpm
-
Rechercher la doc sur les paquetages installés regoupée dans
/usr/doc
-
Consulter le "Man" (= manuel) : en ligne de commande, man commande
-
La syntaxe générale :
commande [options] paramètres
En général, les options sont précédées
du symbole - et peuvent être groupées (ex : rpm -ivh
<nom-package>)
Les paramètres précisent les fichiers concernés.
-
Historique des commandes :
les touches flèches haut et bas permettent de parcourir les
dernières commandes de l'utilisateur, stockées dans le rép.
personnel dans le fichier /home/stagex/.bash_history
-
Rôle des alias
-
Grâce aux alias des commandes, l'utilisateur peut créer des
noms de commandes, construites bien sûr par combinaison des commandes
standard, et même renommer les commandes de base (ne pas en abuser
!)
-
Exemples d'alias, destinés à simplifier la vie, comme ll
à la place de ls -l), ou à mieux accueillir
les nouveaux venus à Linux (qui ont encore la nostalgie du DOS)
comme cd.. à la place de cd ..
-
Pour voir leur définition (Mandrake 6.x), éditer les scripts
/etc/profile.d/alias.sh
et /etc/bashrc
-
Pour en voir la liste, commande alias
-
Pour en ajouter en cours de session, par exemple : alias x="startx"
-
Voir le chapitre shell-bash,
pour apprendre à ajouter des alias permanents.
Importance des options
[stagex@p0x ] cd se placer dans son rép personnel
Comparer les effets de :
ls
ls -l liste avec les attributs des fichiers
ls -a liste complète, y compris les fichiers cachés, qui commencent par un point
ls -la
ls -R liste "récursive" des contenus des sous-rép.
ls --help pour tout savoir !
Parcours et gestion des répertoires
Voir dans le chapitre sur les systèmes
de fichiers
( lien HS sur le site )
A noter que la commande mkdir permet de créer
plusieurs niveaux de répertoires :
mkdir -p docs/notes crée docs s'il
n'existe pas, et le sous-rép. notes
Créer et consulter des fichiers textes
-
touch fich1 fich2 crée les 2 fichiers vides
-
On peut lire, créer ou modifier des fichiers de textes (par ex.
des scripts, des fichiers de configuration) avec vi, l'éditeur
apparemment rustique mais irremplaçable, qui reste le préféré
de beaucoup d'administrateurs Unix.
-
Pour seulement consulter un fichier texte, le plus simple consiste à
utiliser les commandes cat (texte court) ou less (texte long)
Par exemple, examiner le fichier d'initialisation par less /etc/inittab
-
En mode graphique, sous X-KDE (lancer startx), l'éditeur
kedit
est automatiquement appelé quand on ouvre un fichier texte dans
l'explorateur kfm
-
On peut saisir directement un fichier texte à la console avec cat
et l'opérateur de redirection >.
Pour finir la saisie taper Ctrl-d.
Saisie directe à
la console.
Il s'agit de créer quelques lignes de texte saisies et sauvegardées
dans le fichier essai.txt du rép. personnel.
cd pour aller dans son rép. personnel
touch essai.txt pour créer ce fichier vide
cat essai.txt pour vérifier
cat > essai.txt cat créerait le fichier s'il n'existait pas !
Je suis heureux d'apprendre
à travailler avec LINUX
Ctrl-d pour terminer et enregistrer
cat >> essai.txt pour ajouter du texte à la suite
enfant libre et gratuit d'Internet.
Ctrl-d
cat essai.txt pour afficher
Connaitre les utilisateurs
La commande fondamentale est id qui donne (par défaut
d'options)
l'uid (N° identifiant), le gid (N° de son groupe primaire),
et la liste de tous ses groupes.
[stage1@p01 ]id
uid=501(stage1) gid=501(stage1) groups=501(stage1), 504(stagiaire)
id toto renseigne sur toto
id -u donne l'uid
id -gn donne le nom de login
Recherche de fichiers
-
whereis commande pour rechercher les fichiers exécutables,
les fichiers de configuration, les sources et les pages de manuel de commande.
La recherche s'effectue dans /bin, /usr/bin, /etc ...
Les options -b, -m limitent à la recherche des fichiers exécutables,
des pages de manuel.
-
find rep -name expression permet de rechercher les
fichiers dans le rép (ou à défaut dans le rép.
courant) avec une expression pour sélectionner.
Exemples
whereis w
---> w: /usr/bin/w /usr/man/man1/w.1
whereis ftp
whereis -b ftp
find -name smb* recherche d'un fichier de configuration find /usr
-name pine localiser une application find / -name grasp*
Commandes utilitaires
Edition et manipulation de fichiers
pwd
Affiche le nom du répertoire courant.
ls
Liste le nom des fichiers.
ls -l édition du catalogue
des fichiers du répertoire courant
ls -la édition de tous les fichiers
du répertoire courant
(y compris les fichiers "cachés" commençant par un .)
ls -lt édition du catalogue par date
(récente > ancienne)
ls -lR lecture de la hiérarchie complète
des fichiers
cd <répertoire>
Permet de se placer dans un répertoire donné.
cd /usr/bin pour aller dans le répertoire /usr/bin
cd
retour au répertoire d'accueil
cd ~
retour au répertoire d'accueil
cd seq
changement de répertoire relatif (descente)
cd ..
retour au répertoire père
Le symbole .. représente le répertoire parent.
Le symbole . représente le répertoire courant.
Le symbole ~ représente le répertoire d'accueil (home
directory).
Le tilde "~" et le point point ".." peuvent être utilisés
dans les chemins d'accès.
mkdir <répertoire>
Crée un répertoire (Make directory).
rmdir <répertoire>
Supprime un répertoire (vide) (Remove directory).
cat <fichier>
Edition complète du fichier au terminal en mode déroulant.
cat mm.seq édite le fichier mm.seq
more <fichier>
Edition du fichier au terminal en mode page.
Pour obtenir l'aide en ligne : h
Pour éditer la page suivante : barre-espace
Pour éditer la ligne suivante : Return
Pour rechercher une chaîne de caractères : /chaîne
Pour remonter d'une page : b
Pour quitter : q
tee
Copie l'entrée standard vers la sortie standard.
telnet | tee ma_session.txt enregistre la session
de travail telnet dans un fichier nommé ma_session.txt
less <fichier>
Edition du fichier au terminal en mode page (équivalent de more).
Pour obtenir l'aide en ligne : h
head -n <fichier>
Affiche les n 1ères lignes du fichier.
tail -n <fichier>
Affiche les n dernières lignes du fichier.
wc -l -w -c <fichier>
Retourne le nombre de lignes, de mots, de caractères dans le
fichier indiqué.
sort <fichier>
cp <file1> <file2>
Copie le contenu de <file1> dans <file2>, en détruisant
<file2> s'il existait.
On distingue 2 usages :
-
cp [option] source destination
copie d'un seul fichier, en précisant le chemin et le nom du
fichier destination
-
cp [option] ens-fichiers-source répertoire
copie l'ensemble des fichiers dans le rép. spécifié,
en gardant les noms
-
Principales options :
-R , recopie récursive, permet de copier toute
une arborescence
-i avertit l'utilisateur de l'existence d'un fichier
du même nom et lui demande s'il veut le remplacer.
-p effectue une copie en gardant le propriétaire
et le groupe d'origine.
-v affiche en clair le nom des fichiers copiés.
-
Exemples
cp -R /home /root/tmp, crée une copie dans /root/tmp/home
Dans la doc (man cp), on recommande d'utiliser -R et non -r
mv <file1> <file2>
Renomme ou déplace <file1> en <file2> (Move).
mv mm.seq aa.seq : renomme mm.seq en aa.seq
mv <file1> <répertoire>
Déplace (et éventuellement renomme) <file1> dans <répertoire>.
mv mm.seq ~/data : déplace le fichier mm.seq dans le
répertoire préexistant data
mv mm.seq ../liens/bar : renomme mm.seq en bar et le déplace
dans le répertoire préexistant liens
Principales options :
-b (b=backup) effectue une sauvegarde des fichiers
avant de les déplacer. La copie porte le même nom suivi d'un
tilde.
-i (i=interactive) demande confimation avant pour chaque
fichier.
-u (u=update) pour ne pas supprimer le fichier si sa
date de modification est postérieure à celle du fichier remplaçant.
touch <fichier>
rm <fichier>
Supprime le fichier (Remove).
rm mm.seq supprime le fichier mm.seq
rm afl*.seq supprime tous les fichiers commençant
par afl et terminant par .seq
rm -i *.seq supprime tous les fichiers
ayant le suffixe .seq, en demandant préalablement confirmation de
destruction pour chacun d'eux.
rm -i -- -b.dat supprime un fichier dont le nom
contient un caractère "interdit" (ici, par exemple, le caractère
"-" dans le nom "-b.dat"). L'option "--", en effet, inhibe la fonction
des caractères qui suivent.
rm -r <répertoire>
Supprime un répertoire, ainsi que rous les sous-répertoires
et les fichiers qu'il contient (Remove récursively).
rm -f ... : force (ne demande pas de confirmation)
grep <chaîne> <fichier>
Recherche une chaîne de caractères (pattern) dans un fichier
donné et édite les lignes la contenant.
grep GDB * recherche la chaîne GDB dans tous les fichiers
du répertoire courant
grep cours -i *.txt recherche la chaîne gdb trouvée
indifféremment
en minuscules ou majuscules dans tous les fichiers .txt du répertoire
courant
grep error -v *.txt édite toutes les lignes, exceptées
celles contenant le mot error
grep "valeur de la variable" arc.for : recherche la chaîne
valeur de la variable dans le fichier arc.for
grep 'caractère "A"' table.txt : recherche la chaîne
caractère "A" dans le fichier table.txt
find <répertoire> -name <fichier>
-print
Recherche le fichier dans toute l'arborescence (fichiers et sous-répertoires)
issue du répertoire indiqué.
find . -name mm.seq -print; recherche le fichier
mm.seq depuis le répertoire courant
find ~ -name a.out -print; recherche le fichier
a.out depuis le home directory
cmp <file1> <file2>
cmp (compare) édite le numéro des lignes différentes
entre deux fichiers.
diff <file1> <file2>
Edite les lignes différentes entre deux fichiers.
Droits d'accès aux fichiers
Dans tout système UNIX, les répertoires et fichiers ont
des droits d'accès. Ceux ci sont indiqués par la commande
"ls -la" (voir "man ls"). Par exemple :
-rw-rw-r-- 1 mathis mathis 347264 oct 12 11:33 Livret_99-2000.DOC
drwxrwxr-x 3 mathis mathis 1024 avr 6 2000 Loisirs
-rw-rw-r-- 1 mathis mathis 3931 oct 12 17:04 Luka.ml
drwx------ 2 mathis mathis 1024 jui 6 09:47 Mail
-rwx------ 1 mathis mathis 653 nov 6 09:54 Memo
chmod <droits> <fichier>
Commande qui permet de changer les droits d'accès d'un fichier.
Les droits peuvent être désignés de deux manières
possibles :
chmod <utilisateurs>+/-<droits> <fichier> ou
chmod <droits (octal)> <fichier>
Sous UNIX, on distingue trois catégories d'utilisateurs :
-
u : le propriétaire (user)
-
g : le groupe
-
o : les autres (others)
ainsi que trois types de droits, donnés sur 3 colonnes (rwx)
:
-
r : lecture (read)
-
w : écriture (write)
-
x : exécution
-
- : aucun droit
Pour un fichier les droits sont exprimés par une chaîne de
10 caractères : tuuugggooo
t= type du fichier
-
- : fichier ordinaire
-
d : répertoire (directory)
-
l : lien symbolique
-
c ou b : fichier spécial
et
-
uuu : droits du propriétaire
-
ggg : droits du groupe
-
ooo : droits des autres
Pour modifier le droit d'accès d'un fichier donné,
utiliser la commande chmod (voir man chmod).
EX : chmod u+r toto donne le droit de lire le fichier toto à l'utilisateur (vous-même)
chmod g+w toto autorise une personne du même groupe que vous à lire le fichier
chmod o+x toto autorise n'importe qui à executer le fichier
Droits d'accès et sa correspondance en octal
:
-
--- : 0
-
--x : 1
-
-w- : 2
-
r-- : 4
-
-wx : 3
-
r-x : 5
-
rw- : 6
-
rwx : 7
On peut, ainsi, définir par chmod, les droits en octal.
Exemples :
chmod 600 * attribuera : rw------- à tous les fichiers
chmod 644 * attribuera : rw-r--r-- à tous les fichiers
chmod 750 * attribuera : rwxr-x--- à tous les fichiers
umask <valeur>
La commande umask suivie d'une valeur (3 chiffres en octal)
définit le mode de création de fichiers ou de catalogues
.
On peut notamment fixer cette valeur en ajoutant la commande umask
au fichier du home directory nommé .profile
Par défaut, les droits d'accès d'un compte sont définis
par umask 027 : cela signifie que la lecture des fichiers et leur
exécution ne peuvent se faire que par l'utilisateur et ceux associés
à son groupe (personne a priori), et que l'écriture ne peut
se faire par personne d'autre.
La valeur de umask (masque au sens informatique) est soustraite aux
droits par défaut des fichiers (666) et des repertoires (777) à
leur création.
EX: umask 027 modifie les droits de la manière suivante :
-
les fichiers 666 deviennent 640
-
les répertoires 777 deviennent 750
Processus
Le système UNIX est un système d'exploitation multi-utilisateurs
et multi-tâches. Le calculateur partage son temps entre tous
les processus présents à un moment donné.
Le multitâches est réalisé par l'élection
d'un processus parmi d'autres, pour un temps déterminé. Le
calculateur exécute pendant une tranche de temps les instructions
de ce processus.
L'aspect multiutilisateurs est une extension du multitâches,
qui permet à plusieurs utilisateurs de faire exécuter leurs
processus respectifs par le calculateur.
Processus du noyau :
-
lorsque le calculateur est mis en service, le processus 1, nommé
init,
est crée : il est responsable des demandes de login sur chaque terminal.
-
le scheduler alloue du temps CPU alternativement à
tous les processus actifs du système.
-
le swapper est activé lorsque plusieurs processus
sont exécutés et que le noyau n'a plus de place en RAM (mémoire
courante). Il possède le numéro 0. Il détermine, suivant
des critères variés, le processus qui doit être déporté
sur le disque.
-
le pagedaemon est activé lorsqu'un processus recquiert
une page non présente en RAM.
Le processus 1 est l'ultime Parent de tous les processus.
Les processus peuvent engendrer d'autres processus (processus enfants).
Chaque processus possède un numéro d'identification,
le process id ou pid. Ce pid est attribué séquentiellement,
débutant de 0, et est incrémenté à chaque création.
Un utilisateur ne peut contrôler un processus s'il n'en est pas propriétaire.
ps
Affiche les informations sur les processus en cours
ps -eauf
liste complète de tous les processus
Signification des champs retournés :
UID nom de l'utilisateur
PID numéro d'identification du processus
PPID numéro d'identification du processus père
STIME heure à laquelle le processus a été lancé
TIME temps CPU utilisé par le processus
CMD commande
%CPU en % les ressources du microprocesseur utilisées par le processus
%MEM en % les ressources en mémoire vive utilisées par le processus.
RSS mémoire réellement utilisée en ko par le processus.
START l'heure à laquelle le processus a été lancé.
<ctrl-c>
Termine le processus premier-plan courant
<ctrl-z>
Stoppe l'exécution du processus premier-plan courant (qui pourra
être relancé par bg).
kill -9 <numéro_de_PID>
Arrête le processus désigné.
<commande> &
Lance un programme en arrière plan.
sort -r ~/words > ~/edit/dico/words &
xterm & lance une nouvelle fenêtre xterm
jobs
Affiche les jobs (et leur numéro) stoppés et/ou passés
en arrière-plan.
fg %<numéro_job>
Ramène le job courant de l'arrière-plan au premier plan
(foreground).
bg %<numéro_job>
Relance un job stoppé et le place en arrière-plan (en
tache de fond, background).
Commandes de filtre
sort tri
more, less
pagination
grep recherche
d'une ligne dans un fichier texte
cut
effectue la projection d'un fichier selon une colonne
tr
effectue des remplacements de caractères
sed
effectue des modifications sur les ligne du fichier
Voir le chapitre Introduction
aux filtres
( lien HS sur le site )
Connexion et transfert
Un site du réseau Internet peut accéder à un autre
site du réseau par les commandes telnet (connexion interactive)
et ftp (transfert de fichiers). Les sites sont identifiés
par des adresses IP et des noms.
nslookup <nom_du_site>
Retourne l'adresse IP du site
nslookup kis.u-strasbg.fr
telnet <adresse_host>
Etablit la connexion interactive avec un autre ordinateur sur le réseau
Internet. La commande tee permet d'enregistrer
une session de travail telnet dans un fichier.
telnet kis.u-strasbg.fr
ou telnet 130.79.90.60
ftp <adresse_host>
Etablit la connexion en transfert de fichiers avec un autre ordinateur
sur le réseau Internet. Retourne un prompt ftp>
ftp malis.u-strasbg.fr
ou ftp 192.52.226.4
Un ensemble de commandes sont accessibles à ce niveau :
Aide
help
help <nom_commande>
Affichage d'un répertoire :
dir
affiche le contenu d'un répertoire d'une machine distante VAX
ls
affiche le contenu d'un répertoire d'une machine distante UNIX
ldir identique
à ls mais pour un répertoire de la machine locale
Changement de répertoire :
cd <répertoire> change de répertoire
sur la machine distante
lcd <répertoire> change de répertoire
sur la machine locale
pwd
affiche le nom du répertoire de la machine distante
Transfert de fichiers :
get <fichier> rappatrie
un fichier vers la machine locale
mget <fichiers> get multiple sur plusieurs
fichiers (*)
prompt
permet d'éviter la demande de confirmation lors du lancement d'un
mget.
put <fichier> dépose
un fichier vers la machine distante
mput <fichiers> put multiple sur plusieurs fichiers
(*)
Type de transfert (à spécifier avant le transfert):
ascii
transfert en ascii (défaut)
binary transfert en mode
binaire pour fichiers non texte
Lancer une commande unix :
!commande_unix exécute
une commande Unix
! permet de revenir
temporairement sur le site local (exit pour retourner dans la session ftp)
quit fin de session ftp
Lancement d'un programme
en différé
Compression, encodage, archivage
Editeur vi
L'éditeur vi est un peu complexe à utiliser
(man vi pour tous les détails). Trois modes aux fonctionnalités
différentes sont disponibles sous vi : mode commande (commandes
par des caractères spéciaux), mode insertion (saisie du texte)
et mode ligne (commandes saisies en bas du fichier).
vi <fichier>
Ouvre un fichier. On se trouve alors en mode commande.
Si le fichier n'existe pas, vi le crée.
Pour passer d'un mode à un autre :
automatique caractère
------> ------>
Mode LIGNE Mode COMMANDE Mode INSERTION
<------ <------
: <ESC>
Mode INSERTION (invisible)
i insère avant le curseur
a insère après le curseur
o ouvre une nouvelle ligne en dessous
O ouvre une nouvelle ligne au dessus
ESCape quitte le mode insertion et retourne au mode commande
ESCape : quitte le mode insertion et passe au mode ligne
Mode COMMANDE (invisible)
effacement :
x délétion de caractère
r remplacement du caractère courant
dw supprime le mot courant
dd supprime la ligne courante
ndd supprime n lignes
d0 efface jusqu'au début de ligne
dG efface jusqu'en fin de ligne
J unit la ligne suivante à la ligne courante
u annule la dernière fonction d'édition
. répète la dernière fonction d'édition
déplacement :
les flèches permettent de se déplacer.<CTRL U> et <CTRL D> pour monter et descendre.
^,$ pour se déplacer en début, en fin de ligne.
G position en fin de fichier (équivalent à :$)
nG position sur la ligne n
copie (copY) et insertion de texte (Paste) :
Y sélectionne une ligne
5Y sélectionne 5 lignes
p dépose la sélection après le curseur
P dépose la sélection avant le curseur
sh accès temporaire au shell (retour par exit)
Mode LIGNE
:100 positionne sur la ligne 100
/chaîne recherche une chaîne de caractères
:3,8d annule les lignes 3 à 8
:w nom_fichier écrit dans un autre fichier
:wq ou x termine en sauvant
:q! quitte (impérativement) sans sauver
:set nu affiche les numéros de lignes
:set all montre les options
:set nonu supprime une option