Table des matières

Commandes systèmes UNIX

Commande options arguments

Les commandes de bases :

Ls = affiche le contenu d’un répertoire

-l = affichage des détails
-a = affichage des éléments cachés

Le chemin absolu est le chemin complet c’est-à-dire à partir de la racine du système /. Le chemin relatif est un chemin qui ne commence pas forcement par la racine.

Le répertoire « . » désigne le répertoire qui le contient, et le répertoire « .. » désigne le répertoire parent.

Cd = permet de changer de répertoire de travail

- = retourne au répertoire précèdent

Pwd = affiche le chemin absolu du répertoire actuel

Mkdir = permet de créer un répertoire

-p = créer les répertoires parents si ils n’existent pas
-v = affiche un message pour chaque création

Rmdir = supprime des répertoires

-p = supprime la totalité du chemin

Cp = copie des fichiers

-i = confirmation d’écrasement
-r = autorisation de copie sans confirmation
-p = la copie garde les mêmes propriétés que la source

Mv = déplace ou renomme un fichier

-i = confirmation d’écrasement
-f = autorisation l’écrasement sans confirmation

Pour renommer un fichier il faut changer que le nom mais pas le chemin.

Rm = supprime des fichiers

-i = demande de confirmation
-f = annule les demandes de confirmation
-r = supprime toute l’arborescence (pour supprimer un dossier pleins)

Ln = créer un lien

-s = création d’un lien symbolique

Un lien physique est un autre nom pour le même fichier que la source. Un lien symbolique est un fichier spécial qui contient le chemin du fichier qu’il « pointe ».

Du = calcul la taille des fichiers ou répertoires

-a = affiche la taille de tous les fichiers rencontrés

Quota = connaitre la limite de son occupation disque (pas d’arguments)

Les Droits :

- Les droits pour un fichier : Lecture = lire le contenu ou redirection sur sortie standard Ecriture = modifier le contenu ou sortie, pas d’incidence sur la suppression Exécution = il faut les droits de lecture et d’écriture

- Les droits pour un répertoire : Lecture = consulter son contenu Ecriture = ajout, suppression et renommage, il faut aussi le droit d’exécution Exécution = autorise l’accès au répertoire et donc de le traverser (ls, cd…)

Chmod = modifier les permissions de fichiers

-R = applique les modifications à l’arborescence

Mode absolu :

1er chiffre = propriétaire	Lecture (r) = 4
2nd chiffre = groupe		Ecriture (w) = 2
3éme chiffre = autres		Exécution (x) = 1

Mode symbolique :

u = propriétaire		= = fixer exactement
g = groupe			+ = ajouter
o = autres			- = supprimer
a = tous

Umask = enlever des permissions par défaut pour le shell en cours

Il est construit comme le chmod absolu, cependant les chiffres désignent les permissions à ne pas accorder.

-S = affichage du umask sous forme symbolique

Chgrp = modifier le groupe du fichier

-f = pas de messages d’erreur
-R = récursivité sur les répertoires et leurs contenus

(chgrp groupe reference)

Chown = modifier le propriétaire et le groupe d’un fichier

-f et -R = comme chgrp

(chgrp user groupe reference)

Aide :

Type = obtenir la nature d’une commande

-a = demande toutes les correspondances

Cette commande permet notamment de savoir si c’est une commande interne ou externe.

Interne = commandes fournies par Bash

Externe = commandes contenu ailleurs dans le système référencer dans le PATH

Help = aide sur les commandes internes de Bash

-S = affiche seulement le synopsis de la commande

Man = le manuel en ligne

- Affichage de la pagination :

Arrêter la commande = « q »
Défiler la page d’une ligne = « Entrée »
Afficher la page suivante = « Espace »
Afficher la page précédente = « b »

Concaténation et redirections :

Les caractères spéciaux de Bash :

« \ » permet de protéger le caractère qui le suit
« ? » représente n’importe quel caractère sauf « / » et « . »
« * » représente n’importe quelle suite de caractères sauf « / » et « . »
« [[   ] ensemble] représente un caractère appartenant à son ensemble, « ^ » est l’inverse
« ‘’ » est un constructeur de chaines avec aucune interprétation de caractère spécial
« «  » s’emploie comme la « ‘ » mais « $, `, ! » ne sont pas protégés

Echo = écrit sur la sortie standard

-e = demande d’interpréter certaines séquences commençant par « \ »

Cat = concaténer des fichiers

Less = affiche le contenu des fichiers en paginant

Affichage de la pagination :

Arrêter la commande = « q »
Défiler la page d’une ligne = « Entrée »
Afficher la page suivante = « Espace »
Afficher la page précédente = « b »

Redirections :

Redirection de l’entrée standard : < fichier d’entrée
Redirection de la sortie standard : > fichier sortie
Attention si l’on veut concaténer au lieu d’écraser : >>

Redirection de la sortie d’erreur : 2> fichier d’erreur

Redirection des sorties ensemble : &> fichier sorties ou > fichier sorties 2>&1
Attention si l’on veut concaténer au lieu d’écraser : >> fichier sorties 2>&1

Tty = connaitre son terminal

Les Pipes :

Ils permettent de former des chaines de traitement en cascadant des commandes, on utilise le « | » entre chaque commande. Pour rediriger la sortie d’erreur par le pipe entre deux commandes : c1 2>&1 | c2.

Actions sur les fichiers :

Les filtres :

Cat = reproduire l’entrée sur la sortie
Less = paginer l’entrée
Head = ne garder que les premières lignes en entrée
Tail = ne garder que les dernières lignes en entrée
Uniq = éliminer les lignes identiques
Sort = trier les lignes de l’entrée
Cut = extraire les colonnes sur les lignes en entrée

Wc = comptage des mots, lignes et octets des fichiers

-l = compter les lignes
-w = compter les mots
-c = compter les octets

S’il y a aucune option les 3 sont activées par défaut

-m = compter les caractères

Head = écrire le début de fichiers

Sans option la commande affiche les 10 premières lignes

-n = nombre de lignes
-c = nombre d’octets

Ces deux options sont séparées par « | »

-q = désactivé l’en-tête, il est forcé par –v

Tail = écrire la fin de fichiers

Même utilisation que « head »

Cut = écrire des parties de lignes

cut –c intervalles [--output-delimiter=odélim]
cut –f intervalles [-d délim] [--output-delimiter=odélim]
-c = demande de n’afficher que les caractères préciser  par les intervalles, où intervalles est une liste séparés par des virgules
--output-delimiter = demande d’afficher le caractère précisé par odélim entre les intervalles qui ne se chevauchent pas
-f = traiter chaque ligne comme une série de champs où le séparateur est de champ est défini par délim de l’option –d, le délimiteur par défaut est la tabulation

Les alias et fonctions :

Alias = créer un alias

Cela permet d’associer un identificateur a une ligne de commande. Alias ident=’ligne de commande’

Unalias = supprimer un alias

Function = créer une fonction

function nomfonctiom { } $1 jusqu’à $9 désigne les arguments de la fonction à partir du 10éme cela s’écrit ${10}, autrement $* désigne tous les arguments.

La variable d’environnement PATH :

Cette variable contient une liste de chemins consultés par bash pour rechercher les fichiers exécutables correspondant aux commandes externes.

Vider son contenu : PATH= «  » Ajouter le chemin chemin au début : PATH= « chemin :$PATH » Ajouter le chemin chemin à la fin : PATH= «$PATH : chemin »

Fichiers de personnalisations de Bash :

Commun à tous les users en modifiable par root : /etc/profile (environnement minimal de l’utilisateur exécuté par le login shell) et /etc/bash.bashrc (initialise l’invite de commande exécuté par un shell interactif) Propre à chaque utilisateur : .bash_profile (exécuté par le login shell, il définit les préférences de son environement) et .bashrc (exécuté par les shell interactifs, il concerne par exemple la création de fonction et d’alias) Login shell = shell de connexion ou d’ouverture de session Shell interactif = affiche le prompt, analyse les lignes de commandes… Shell non-interactif = exécution des scripts

Les processus :

Un processus est toujours créer par un autre, appelé processus père, excepté du init qui est le numéro 1. Le PID est le numéro de la tache exécuté et le PPID est le numéro de son père.

La plupart des commandes sont au premier plan, cependant pour lancer en arrière-plan il suffit de mettre « & » après la commande.

Jobs = lister les processus lancés par le shell

-l = demande l’affichage du numéro de processus (PID)

Ps = obtenir une liste de processus existants

Agir sur un processus :

CTRL + C : provoque la mort du processus (s’il le veut bien)
CTRL + \ : provoque la mort du processus (il n’a pas le choix)
CTRL + Z : provoque l’interruption du processus où l’on pourra déclencher la continuation avec fg (premier plan) ou bg (tache de fond)

Kill = envoyer un signal au processus

15 ou TERM = demande gentiment de terminer proprement le processus
2 ou INT = signal brutalement un arrêt immédiat du processus
9 ou KILL = provoque la mort sans condition du processus

Gestion des utilisateurs :

Les fichiers /etc/passwd et /etc/shadow contient une ligne par utilisateur : nom : mot de passe : uid : gid : infos : répertoire : shell

Useradd = créer un utilisateur

On peut utiliser aussi userdel ou usermod.

Passwd = changer son mot de passe local

Smbpasswd = changer son mot de passe avec Mamba

-r = spécifier le contrôleur de domaine qui gère le mot de passe

Gestion des groupes :

Les fichiers /etc/group et /etc/gshadow contient une ligne par groupe : nom : mot de passe : gid : membres

Groupadd = créer un goupe (comme useradd)

-r = demande la création d’un groupe système
-g = permet de spécifer le gid

Id = connaitre son identité effective et réelle

-g = pour le gid
-u = pour le uid
-r = demande l’identité réelle

Whoami = connaitre son nom d’utilisateur effectif

Groups = connaitre les groupes d’un utilisateur

Gpasswd = administrer un groupe

-A = ajoute en administrateur (par root)
-a = ajoute un utilisateur
-d = supprimer l’utilisateur
-R = interdire l’accès aux non-membres

Newgrp = nouveau shell en changeant de groupe

Les expressions régulières :

Motif ::= …
Les caractères suivants : ?, +, {, }, (, ) et | ont une signification spécial si ils sont précédés de « \ »
Le « . » remplace n’importe quel caractère
\n, remplacé par la niéme expression entre parenthèses
\+ = au moins une fois
\ ? = au plus une fois
^ et $ = aucun caractère

Grep = filtrer des lignes de fichiers

-i = ne pas distinguer les majuscules et les minuscules

Sed = éditer un flux de texte

Il permet d’écrire sur la sortie standard la transformation des lignes lues dans des fichiers ou l’entrée standard.

s/exp_reg/chaine_remp/[options] = modifie le tampon en remplaçant la chaine correspondant à l’expression regulière exp_reg par chaine_ramp.
y/source/dest/ = modifie le tampon en remplaçant chaque caractère de source par le caractère correspondant de dest.

Split = découper un fichier en plusieurs fichiers

-l = spécifier le nombre de lignes (n)
-b = spécifier la taille (n), qui peut étre suivi de b pour bloc de 512 octet, k pour bloc d’1 Ko et m pour bloc de 1 Mo. A la fin on peut mettre le préfixe commun des différents fichiers.

On recrée le fichier d’origine avec un cat (cat x* > cigale.txt)

Find = rechercher des fichiers

-print = (utilisé par défaut par find) affiche une référence de chaque fichier rencontré
-a = et
-o = ou
-type = f pour fichier et d pour répertoire
-user = nom
-group = groupe
-name = nom du fichier
-mtime [+|-]n = la modification remonte a + ou – n jours
-exec commande = si vrai => exécute la commande
-ok = comme –exec mais affiche un message pour demande s’il faut exécuter la commande

La compression :

Gzip = compression

Chaque fichier sera remplacé par son équivalent compressé avec le même nom mais une extension .gz.

-d = permet de décompresser
-c = affiche sur la sortie standard
-v = taux de compression ecrit sur la sortie d’erreur

Gunzip = décompression

Gunzip = gzip –d

Zcat = affiche le contenu d’un fichier (dé)compressé

Tar = archivage

-c = création d’archive
-x = extraction du contenu d’une archive
-t = affichage des entrées contenues dans l’archive
-z = (dé)compression par gzip
-Z = (dé)compression par compress

Retour...