Commande |
Action |
who -s |
Utilisateurs connectés et leur station |
man |
Obtenir de l'aide sur une commande Unix |
man -k |
Chercher de l'aide sur un mot clé |
exit |
Se délogger |
pwd |
Obtenir le chemin actif |
ps -A |
Obtenir la liste des jobs actifs |
|
Paginer une commande (arrêt fin écran) |
kill -9 |
Arrêter un job |
ls ('LS' minuscule) |
Liste des fichiers du répertoire courant |
shutdown Attendre la question 'do you.. continue' Répondre 'y' Au redémarrage, attendre 'BOOT' Appuyer sur [ENTER] Puis [CTRL]+[D] |
Arrêt serveur |
su nom_utilisateur |
Changer de profil utilisateur |
cp fichier_source fichier_destination |
Copier un fichier |
LS -L (en minuscules, ça suffit) |
Commande équivalent au DIR du DOS |
CAT nom_fich |
Commande équivalente au TYPE du DOS. Utiliser MORE pour paginer |
|
Redirection des sorties vers un fichier |
Commande |
Action |
hostname |
Nom de la station sur laquelle on est conncté |
uname |
Nom de l'utilisateur courant |
date |
renvoie la date |
cal |
calendrier |
logname |
nom de login courant |
id |
renvoie les UID et GID de l'utilisateur courant |
more |
permet de paginer une sortie écran |
clear |
efface l'écran |
echo |
visualise une chaine ou variable |
man |
aide d'UNIX |
env |
visualise les variables d'environnement |
whereis |
localise une commande sur les disques |
apropos |
recherche des rubriques connexes de l'aide |
grep |
recherche une chaine |
tty |
donne le nom du périphérique de sortie standard |
mkdir |
créer un répertoire |
mv |
déplace un fichier/répertoire |
cp |
copie un fichier/répertoire |
touch |
crée un fichier vide ou met à jour les flags d'un fichier |
df |
donne l'utilisation des disques |
cd ~ ou cd |
replace dans le $HOME de l'utilisateur courant |
whoami |
donne le nom de login de l'utilisateur courant |
mkdir -p |
crée une arborescence |
rm -r |
supprime une arborescence |
ls -R |
équiv. au tree |
su - loginname |
cette commande permet de changer de login et en plus de lire l'environnement complet de l'utilisateur |
cat fich1 fich2 >fich3 |
concaténation de fichiers |
tail -f |
visualise la fin d'un fichier |
Commande |
Action |
sort |
Tri standard |
uniq |
élimine les lignes identiques consécutives |
head |
extrait le début d'un fichier |
tail |
extrait la fin d'un fichier (tail +2 pour sauter une entête par exemple) |
split |
découpage en paquets |
cut |
extraction d'une partie d'un fichier, colonnes, caractères, etc |
grep |
recherche une chaine et extrait les lignes correspondantes |
paste |
colle ligne à ligne deux fichiers |
join |
réalise une jointure entre deux fichiers de type base de données |
wc |
compte le nombre de lignes ou de mots |
Commande |
Action |
read var |
attend une saisie au clavier et positionne var |
echo |
affiche à l'écran |
echo -e |
affiche avec codes de contrôle étendus |
tput |
locate + invertion vidéo |
|
|
on peut faire des calculs en utilisant l'instruction 'let'. Exemple : let 'i = $i + 1'
Pour retrouver le répertoire par défaut d'un utilisateur Unix:
· Se logger avec le profil en question et son mot de passe
· ouvrir un shell
· taper: echo $HOME
Le répertoire par défaut de l'utilisateur s'affiche.
Lorsqu'un utilisateur se connecte, son fichier .cshrc, contenu dans son répertoire par défaut ($HOME) est exécuté. Est exécuté ensuite son fichier .login
s'il existe.
Dans le fichier .cshrc se trouvent toutes les déclarations de variables unix, les alias définits pour cet utilisateur.
Dans le fichier .login se trouvent les informations concernant la configuration du terminal et de l'environnement.
Le shell comprend les caractères étendus suivants:
' ' |
permet de spécifier une chaine dont le contenu ne sera PAS interprété par le shell |
' ' |
permet de spécifier une chaine dont le contenu sera interprété par le shell (peut contenir des variables $ qui seront interprétées) |
* |
tous les fichiers |
? |
remplace un caractère dans le nom d'un fichier |
[ ] |
spécifie une liste |
; |
permet d'enchainer des commandes (attention, différent du pipe) |
& |
lancer un processus en arrière-plan |
# |
commentaire |
` ` |
récupére le résultat d'une commande |
$ |
= contenu de |
|
bit ' type' |
bit 'user' |
bit 'group' |
bit 'others' |
répertoires |
d |
rwx |
rwx |
rwx |
fichiers |
- |
rwx |
rwx |
rwx |
lien logique |
l |
rwx |
rw |
rwx |
Pour les répertoires :
le 'r' veut dire que l'on peut lire le fichier-répertoire, c'est-à-dire que l'on peut lister les fichiers qu'il contient
le 'w' veut dire que l'on peut écrire dans le fichier-répertoire, c'est-à-dire que l'on peut créer des fichiers dans ce répertoire
le 'X' veut dire que l'on peut se déplacer dans le répertoire
Pour les fichiers :
le 'r' veut dire que l'on peut lire le fichier
le 'w' veut dire que l'on peut y écrire
le 'x' veut dire que l'on peut l'exécuter (script ou programme compilé par exemple)
La commande permettant de changer ces droits est 'chmod'. Par exemple, si on veut rendre un fichier exécutable (et que ce fichier nous appartient), il faut écrire :
chmod u+x
Si on veut donner le droit à tout le monde de lire ce fichier, il faut entrer :
chmod a+x
Si on veut donner aux utilisateur de mon groupe le droit de modifier et lire ce fichier, il faut entrer :
chmod g+wr
Lorsqu'on crée un fichier, le bit 'user' est positionné sur notre UID, les informations de groupe du fichier sont positionnés en fonction de notre GID. Si on veut temporairement endosser les ID d'un autre groupe, on entre :
chgrp
Si on veut changer l'UID d'un fichier :
chown
On rappelle qu'un répertoire est en fait un fichier contenant la liste des fichiers contenus dans ce répertoire.
Note: Si on ne donne que le droit 'w' à un fichier, on peut modifier ce fichier sans le lire, par exemple avec un echo 'xxxxxxxxx'>>
On peut visualiser la liste des processus actifs par ps. On peut également utiliser la commande
jobs
Si on veut passer au premier plan un process lancé avec '&', il suffit d'écrire :
fg %
Si on veut passer en arrière-plan un job stoppé :
bg %
Options de kill des jobs :
kill -1
kill -9
kill -15
kill -19
Toute commande UNIX peut être redirigée vers un fichier par l'utilisation de l'opérateur de redirection '>'.
Les erreurs peuvent elles-aussi être redirigées vers un fichier par l'utilisation de l'opérateur '2>'.
Si on ne veut pas garder trace, on peut rediriger une sortie vers la poubelle d'UNIX: /dev/null.
Par exemple :
find ~ -name ' ..' >resultats 2>/dev/null
UNIX utilise différentes variables dont certaines sont standard :
$HOME |
renvoit le chemin vers le répertoire de base de l'user |
$PS1 |
est le texte correspondant au prompt n°1 du shell. |
$? |
renvoie 0 ou 1 selon que la commande précédente du shelle a été correctement exécutée ou non |
affiche le plus gros fichier d'un répertoire :
ls -l | sort +4nbr | head -n 1
renvoie le nombre d'utilisateurs connectés :
who | wc -l
lister les répertoires :
ls -l | grep '^d'
renvoyer le premier champ d'un who :
who | cut -f 1 -d' '
Liste des utilisateurs connectés :
who | awk '{print $1}' | sort | uniq
ou
who | cut -f 1 -d' ' | sort | uniq
Pour écrire un script, il suffit d'éditer un fichier et d'entrer des commandes shell.
Il faut ensuite spécifier en première ligne de ce script l'interpréteur de commandes qu'il faudra utiliser pour exécuter le fichier (typiquement, sur le shell en écrivant par exemple #!/bin/bash ou #!/bin/csh en fonction du shell utilisé)
Il faut enfin rendre le fichier exécutable en lançant chmod u+x
Si on veut débugger l'exécution du script, il faut ajouter le commutateur '-x' sur la ligne du shell à lancer. A ce moment-là, chaque ligne sera affichée avant et après exécution :
#!/bin/bash -x
Exemple de script de sauvegarde :
#!/bin/bash
# Script de sauvegarde du HOME
JOUR=`date +%d`
MOIS=`mois +%m`
ANNEE=`date +%D`
REP='/tmp/$ANNEE/$MOIS'
FICH=${JOUR}.tar
mkdir -p $REP
cd $REP
tar cf $FICH $HOME
NBFICHS=`tar tvf $FICH | wc -l`
echo '$NBFICHS ont été sauvegardés dans le répertoire $REP'
compress -f $FICH
echo 'Fin du travail'
cd
on peut faire des calculs en utilisant l'instruction 'let'.
Exemple: let 'i = $i + 1'
Deux exemples:
if cmde
then
else
fi
if [ test ]
then
else
fi
où test peut être : [ $# -ge 3 ]
pour le nombre de paramètres >3. METTRE DES ESPACES PARTOUT car le shell interprète chaque opérateur comme un paramètre.
[ -f fichier]
si 'fichier' est de type fichier classique.
Lorsqu'une session est demandée en ouverture sur un système UNIX, par exemple à partir d'un telnet sur une machine windows, il y a tout d'abord autentification de l'utilisateur et saisie de son pwd;
La liste des utilisateurs déclarés se trouve dans /etc/passwd
corrélativement, les mots de passe sont stockés sous forme codés dans/etc/shadow
de même les informations d'appartenance de groupe se trouvent dans /etc/group
le format du fichier /etc/password est le suivant :
login:x:UID:GID:nomprénom:homepath:shell //login est le nom de login de l'utilisateur
UID: ID d'utilisateur
GID: ID de groupe de l'user
nomprénom: est le libellé détaillé de l'user
homepath: est le chemin absolu de son $HOME
shell: path est le shell utilisé pour l'user
L'utilitaire de création des utilisateurs est ADDUSER.
les commandes courantes de sauvegarde/restauration sont :
- sauvegarde :
tar cvf
si on sauvegarde un chemin absolu, la restauration ne pourra être qu'absolue. Il est fortement conseillé de vérifier le contenu du fichier tar en effectuant un affichage : tar tvf
- restauration :
tar xvf
- compression :
compress
- décompression :
uncompress -v
VI est l'éditeur standard d'UNIX. Il a été créé au XVIIè siècle est fonctionne à priori sur toutes les plateformes.
Il faut savoir que VI fonctionne sur deux modes: le mode commande et le mode édition. On passe de l'un à l'autre par [ESC].
Commandes courantes:
i |
insérer du texte |
o |
insérer une ligne au-dessous de la ligne courante |
O |
insérer une ligne au-dessus de la ligne courante |
A |
insérer du texte à la fin de la ligne courante |
a |
insérer du texte au début de la ligne courante |
x |
supprimer le caractère courant |
:q |
quitter VI |
:wq |
enregistrer et quiter |
:w [nom] |
enregistrer [sous nom] |
nG |
aller à la ligne n |
dd |
supprimer la ligne courante |
yy |
copier la ligne courante |
p |
coller (placer) la ligne copiée au-dessous de la ligne courante |
P |
coller (placer) la ligne copiée au-dessus de la ligne courante |
:!q |
quitter sans sauvegarder |
R |
remplacer |
UNIX donne la possibilité d'exécuter des scripts ou des commandes en schedulé. On utilise pour cela la commande 'at' pour planifier l'exécution unique ou 'crontab' pour l'exécution récurente d'un programme ou script.
crontab s'utilise avec le nom d'un fichier 'cron' qui a le format suivant:
minute |
heure |
jour |
mois |
jour semaine |
commande |
0-59 |
0-24 |
0-31 |
0-12 |
0-7 |
|
exemples :
tous les vendredi à 20h :
minute |
heure |
jour |
mois |
jour semaine |
commande |
0 |
20 |
* |
* |
5 |
commande |
tous les jours à 20h sauf le vendredi :
minute |
heure |
jour |
mois |
jour semaine |
commande |
0 |
20 |
* |
* |
1-4 |
commande |
Tous les premier lundi du mois à 21h30 :
minute |
heure |
jour |
mois |
jour semaine |
commande |
30 |
21 |
1-7 |
* |
1 |
commande |
Lorsqu'on exécute une commande, le shell commence par se cloner et passe la commande à son clone, si bien que toutes les variables du clone sont locales au clone.
Pour exécuter le script ou la commande dans le shell courant et non à un clone (par exemple pour redéfinir des variables d'environnement de ce shell) il faut utiliser l'opérateur point '.':
. script
exécutera 'script' dans le shell courant.
Si d'autre part on veut qu'une variable contenue dans un script devienne disponible à toutes les occurrences de shell (c'est-à-dire dans le shell courant) il faut utiliser la commande 'export'.
export var=valeur
La variable 'var' devient donc disponible dans le shell courant et tous les clones futurs. C'est typiquement l'utilisation des fichiers de configuration.
Quand |
Qui |
shell 'sh' |
shell 'ksh' |
shell 'bash' |
à la connexion |
tout le système |
/etc/profile |
/etc/profile |
/etc/.login |
|
chaque utilisateur |
$HOME/.profile |
$HOME/.profile |
$HOME/.login |
Au lancement d'un nouveau shell |
chaque utilisateur |
|
$HOME/.kshrc si on a un export ENV=$HOME/.kshrc dans le .profile |
$HOME/.cshrc |
A la sortie du shell |
chaque utilisateur |
|
|
$HOME/.logout |
pour relire son fichier de configuration à un instant t :
. .profile
La déclaration des variables d'environnement .profile du $HOME. Ne pas oublier d'exporter les variables de sorte qu'elles soient disponibles pour le shell !
Par exemple le changement du prompt par défaut, si on veut que figure le chemin de travail :
PS1='w'
Passage de paramètres entre commandes : commande arg1 arg2 arg3
les variables se récupèrent dans la commande en utilisant les variables suivantes :$1, $2, paramètres 1, 2,
$# est le nombre d'arguments passés
$* est la liste constituée des différents arguments
$0 est le nom de la commande lancée
Rappelons-nous que l'on peut utiliser les quotes et guillemets si l'on veut passer des paramètres multiples qui, respectivement, ne seront pas ou seront interprétés par le shell.