Commandes Unix

De EduTech Wiki
Révision datée du 4 mai 2016 à 09:33 par Andrés Gomez (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

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