Commandes Unix
Cet article est une ébauche à compléter. Une ébauche est une entrée ayant un contenu (très) maigre et qui a donc besoin d'un auteur.
Voir aussi Commandes Windows Voir aussi Commandes Mac
Aide
man commande
- affiche une page aide
command -h command --help
- marche pour la plupart des programmes et commandes (mais pas toutes !!)
- Cette commande permet d'afficher l'aide d'une autre commande, elle liste toutes les options qui sont disponibles et explique ce que fait la commande.
Voir aussi Server Administration (EduTechWiki Anglais)
Fichiers et répertoires
La notion de chemin:
Il existe quatre sortes de "chemins" (pour vous):
- Les chemins absolus (depuis la racine du système, comme: /local/bin
- Les chemins d'utilisateurs, comme ~schneide/
- Les chemins relatifs (depuis l'endroit où vous êtes, comme: staf18/test
- Les liens symboliques qui s'identifient par un "@" attachée au nom du fichier lorsqu'on tape ls
Afficher le répertoire courant:
pwd
ls - lister tous les fichiers
Options:
- -a affiche tous les fichiers, même les fichiers cachés
- -l on affiche la taille, la date et les permissions des fichiers, le nombres de liens physiques, la taille et l'horodatage
- -h pareil que -l, sauf qu'il affiche la taille des fichiers avec un suffixe correspondant à l'unité (K, M, G)
- -R affichage du contenu des sous-répertoires
- -t trier selon la date
- -L affiche le contenu d'un répertoire lié avec lien symbolique
- -lct trie les fichiers et répertoire par date de modification croissante
- -r afficher dans l'ordre inverse
Exemples:
ls -la
- liste tous les fichiers
ls -lat *.text
- affiche tous les fichiers ayant l'extention .text dans un répertoire, triés selon la date.
mkdir - Créer un répertoire
Exemple:
mkdir public_html
- Crée un répertoire vide "public_html" à l'endroit ou vous êtes
rmdir - Détruire un répertoire
Exemples:
rmdir test
- détruit le sous-répertoire "test" à l'endroit où vous êtes. rmdir marche uniquement si le répertoire est vide
rm - Détruit un fichier
Exemple:
rm *.text
- tue tous les fichiers *.text
rm -r *.html
- tue toues les fichier *.html dans le répertoire courant et tous les sous-répertoires (danger)
rm -r test
- tue le répertoire et tous ses contenus (danger)
cd - Changer de répertoire
Exemples:
cd
- vous ramène dans votre "home". Equivalent à cd ~/
cd public_html/test
- vous ramène dans le répertoire public_html/test qui doit se trouver sous votre répertoire courrant
cd ~/public_html/test
- vous ramène dans le répertoire public_html/test qui doit se trouver sous votre répertoire home
cd /web/perso
- vous met dans le répertoire /web/perso. Notez qu'il s'agit ici d'un chemin "absolu", c.a.d. attaché à la racine du système.
cd -
- revient au répertoire précédent
cd ..
- revient au répertoire parent
cp - crée une copie d'un fichier
Exemple:
cp bla.txt bla.save
- cette commande va faire une copie du fichier bla.txt en bla.save
mv - Bouger et renommer un fichier
Exemple:
mv bla.text bon-sens.text
- renomme le fichier "bla.text" en fichier bon-sens.text"
mv bla.text junk/
- bouge le fichier "bla.text" vers le répertoire junk
ln : crée un lien physique ou symbolique vers un fichier
Exemple:
ln Rep1/Rep2/Monficher MonLien
- créé un lien symbolique MonLien dans le répertoire où on se trouve
find - Retrouver un fichier
Exemple:
find . -name bla.text -print
- cherche le fichier par son nom, a partir du répertoire courrant, le print sert à écrire le chemin où le fichier a été retrouvé.
find . -name `*.fm'-print
- cherche tous les fichiers *.fm.
find -iname bla.txt -print
- cherche un fichier par son nom en étant insensible à la casse.
find -atime -2
- recherche par date de dernier accès durant les deux derniers jours
find -mtime -2
- recherche par date de denière modification des deux derniers jours
exemple:
find /home/ -mtime -1 \! -type d
- Va rechercher les fichiers modifiés durant les dernières 24h
find -user nomUser
- Recherche de fichiers appartenant à l'utilisateur donné
find -group nomGroupe
- Recherche de fichiers appartenant à un groupe doné
Attention: n'utilisez pas cette commande à la racine de notre système. Ca peut durer.
Changer les permission pour certains types de fichiers:
cd dossier
- aller dans un dossier
find . -type d -exec chmod 755 {} +
- Ouvrir tous les dossier à la lecture
find . -type f -exec chmod 644 {} +
- Ouvrir tous les fichiers à la lecture, mais attention cela rend non-exécutable des fichiers exécutables ...
Commandes système
sudo: permet d'exécuter n'importe quelle commande en tant qu'administrateur
Cette comamnde demandera le mot de passe de la session après chaque exécution
chmod - Changer les permissions
id Afficher vôtre "user name" et les groupes auxquels il appartient
Exemples chmod
chmod a+r *
- donne l'access de lecture à tout le monde pour tous les fichiers dans le répertoire courrant
chmod g+w hoho.txt
- donne l'access d'écriture (détruire aussi!) au groupe pour le fichier hoho.text
chmod o-w hihi.txt
- enlève l'accès d'écriture pour le "monde", (c.a.d. les gens qui ne font partie d'un même groupe). Cela permet par exemple de poser un fichier dans le répertoire web et empêcher l'accès par le web.
find . -user andresg0 -type d -exec chmod 775 {} \;
- permet de changer l'accès à l'ensemble des dossiers pour un utilisateur spécifique. {je change les permissions pour tous les dossier (-type d) appartenant à andresg0}
find . -user andresg0 -type f -exec chmod 664 {} \;
- permet de changer l'accès à l'ensemble des fichiers pour un utilisateur spécifique {je change les permissions pour tous les fichiers (-type f) appartenant à andresg0}
Syntaxe alternative
chmod 664
- Donnes les permissions lire/écrire à vous et au groupe
chmod 777
- Donne les permissions lire/écire/exécuter à tout le monde (Danger)
chown : change le propriétaire d'un fichier
Exemple:
chown AutreUtilisateur MonFichier
free: affiche la mémoire disponible
passwd : permet de modifier le mot de passe d'un utilisateur
apt-get
- permet l'installation et le retrait de package en tenant compte des dépendances ainsi que le téléchargement des packages s'ils sont sur une source réseau.
apt-get update
- chargement des mises à jour des paquets disponibles en fonction des sources fournies
apt-get upgrade
- mets à jour les paquets déjà installés. À éxécuter après apt-get update
apt-get install nomPaquet
- installe le paquet voulu
apt-get remove nomPaquet
- supprime le paquet voulu
apt-get autoremove
- supprime le paquet voulu avec ses dépendances logicielles, mais en gardant les fichiers de configuration des paquets
apt-get clean
- efface la totalité des paquets présents dans /var/cache/apt/archives/
Ceci n'a aucun impact sur les paquets installés
apt-get autoclean
- permet de supprimer les paquets présents dans /var/cache/apt/archives , mais en conservant ceux qui ont un équivalent dans les dépôts; par exemple, si /var/cache/apt/archives contient plusieurs versions du même logiciel, les plus anciennes, plus présentes dans les dépôts, seront supprimées, mais la version à jour (ayant un équivalent dans le dépôt) sera conservée. Ceci vous permet de récupérer beaucoup d'espace disque, mais moins toutefois qu'avec clean.
apt-get purge nomPaquet
- supprime les paquets indiqués et leurs fichiers de configuration
Contenus de fichiers
touch - Créer un fichier
touch test.html
Crée un fichier vide. S'il existe déjà, la date de création sera changé.
less et more - lister le contenu
more test.html
- afficher le contenu d'un fichier test.html
less test.html
- même chose, mais plus puissant
cat - Créer un fichier avec un contenu
cat > test.text
- Vous pouvez ensuite taper du text, ligne par ligne, CTRL-D termine l'opération.
Les éditeurs
La plupart des systèmes Unix/Linux ont des éditeurs par défaut:
- vi - puissant et très difficile
- emacs - encore plus puissant et assez difficile
- nano - assez facile, mais n'est pas tjrs installé
- pico - même chose que nano
Les archives
unzip -l fichier.zip
- liste le contenu d'un zip
unzip fichier.zip
- dezippe un zip
Pipelines
Notice: Les programmes ci-dessous ne marchent pas sur une machine standarde ... vais les adapter un jour. Donc giftrans par exemple n'est pas installé.
Beaucoup d'utilitaires Unix sont conçus pour etre "couplés". Dans ce cas ce programmes peuvent lire depuis le standard input et font une sortie vers le standard output. Sans autre indication standard input et output corresspondent à votre terminal. Par exemple,
ls -la
- affiche le contenu du répertoire courrant sur votre terminal. Maintenant on peut rajouter un filtre qui prend directement cette sortie (standard output).
ls -la | more
- "couple" le programme "more" à ls. Le signe "|" dénote une pipe line, c'est à dire organise un flux de données de "ls" vers "more". "More" est un simple utilitaire pour afficher du texte, il met par exemple en attente la sortie à chaque fois que votre écran est rempli.
On peut enchainer autant de programmes que l'on veut comme le montre l'exemple suivant:
picttoppm mac.pict | ppmtogif | giftrans -t#FFFFFF > transparent.gif
- produit un fichier gif transparent à partir d'un fichier *.pict.
On peut également rediriger la sortie d'un programme vers un fichier. Par exemple: ls -la > temp.t
- redirige la sortie de la commande "ls" vers le fichier temp.t. Inversement,
more < temp.t
- redirige le contenu du fichier temp.t vers "more". Notez que dans cas la simple commande "more temp.t" aurait fait la meme chose. Ainsi, pour beaucoup d'autres commande le fichier input se donne comme simple argument.
Certains logiciels offrent aussi des options pour définir d'ou va une sortie. Souvent, il s'agit de l'opion "-o" Par exemple,
giftrans -o nouveau.gif ancien.gif'
- est égal à `giftrans ancien.gif > nouveau.gif'
htmltoc -toc nouveau.html ancien.html'
- est égal à htmltoc ancien.html > nouveau.html'
Notez aussi que les options viennent avant le nom du fichier input. Faites attention à toujours lire la doc pour un progamme inconnu, parfois un logiciel peut envoyer une sortie sur l'imprimante ou modifier l'ancien fichier au lieu de l'afficher sur le terminal!
Performances
- CPU
top
- Disque (exemple)
iostat -dx /dev/sda8
Pour s'amuser
sl
Cette commande vous permet d'afficher une locomotive dans la console. il faut d'abbord insraller sl:
apt-get install sl
puis écrire sl dans le terminal pour voir apparaitre la locomotive
figlet
figlet hello
- va afficher hello écrit avec des # dans le terminal
fortune
- Cette commande est comme un biscuit chinois, mais sous forme de terminal.
apt-get install fortune
rev
- Cette commande permet d'inverser l'ordre des mots entrés
rev salut
cowsay
- Cette commande fait apparaître une vache en ASCII dans votre terminal.
cowsay salut
Liens
- Abrégé Unix
- Synthèse sur les bases UNIX, Stéphane Lattion