__ ___ _ _ _ ____ / / ___ / _ \__ _ _ _ ___ __| |_ _ | || ||___ \ / / / _ \ / /_)/ _` | | | / __| / _` | | | | | || |_ __) | / /__| __/ / ___/ (_| | |_| \__ \ | (_| | |_| | |__ _/ __/ \____/\___| \/ \__,_|\__, |___/ \__,_|\__,_| |_||_____| |___/
$> ls -l
-rwrw-rw- 1 db0 db0 62.1 Ko 2015-03-30 19:37 Impatient C
-rwrw-rw- 1 db0 db0 3.5 Ko 2015-03-30 19:37 Impatient SCM
-rwrw-rw- 1 db0 db0 3.0 Ko 2015-03-30 19:37 Impatient Emacs
-rwrw-rw- 1 db0 db0 2.4 Ko 2015-03-30 19:37 Impatient Man Pages
-rwrw-rw- 1 db0 db0 10.5 Ko 2015-03-30 19:37 Impatient Perl
-rwrw-rw- 1 db0 db0 17.3 Ko 2015-03-30 19:37 Impatient Python
-rwrw-rw- 1 db0 db0 13.6 Ko 2015-03-30 19:37 Impatient Shell Debutant
-rwrw-rw- 1 db0 db0 16.4 Ko 2015-03-30 19:37 Impatient Shell Script
-rwrw-rw- 1 db0 db0 3.4 Ko 2015-03-30 19:37 Impatient Shell
-rwrw-rw- 1 db0 db0 1.8 Ko 2015-03-30 19:37 Impatient Vim
Impatient Shell Debutant
Sommaire
- La terrifiante boite noire...
- Terminal/Shell, quelle difference ?
- Comment ca fonctionne ?
- Ou suis-je ?
- Les fichiers/dossiers
- Commandes importantes
- Jouer avec les fichiers/dossiers
- Gestions d'utilisateurs / Droits
- L'environnement
- Installer des programmes
- Manipuler des fichiers
- Aller plus loin avec le shell
La terrifiante boite noire...
- Sur Ubuntu : Applications / Accessoires / Terminal (ou Applications / Accessories / Terminal)
- Sur OSX (mac) : Applications / Utilitaires / Terminal
- Sur Mandriva : Outils / Terminal Konsole
Terminal/Shell, quelle difference ?
Le terminal, c'est grosso-modo le logiciel qui vous permet de communiquer entre le clavier, l'ecran, et vous afficher une jolie boite.
Le shell, c'est le programme dedant, qui va lire les commandes et les executer.
(J'ai un peu de mal a expliquer ces deux notions, si quelqu'un a mieux --> commentaires)
Le Terminal par defaut Ubuntu est Gnome Terminal (sous Gnome, bureau par defaut).
Le shell par defaut est bash.
(Testez aussi zsh, tcsh, ksh,...!)
Comment ca fonctionne ?
En haut a gauche apparait un petit texte : le prompt.
En francais, on l'appelle l'invite de commande, car, comme son nom l'indique, il nous invite a taper des commandes.
Il devrait ressembler a ca :
Ca marche de maniere tres simple :
- Un "prompt" (ou "invite de commande") apparait.
- Je tape le nom de la commande
- J'appuie sur entree pour valider
- La commande s'execute
- Une fois que la commande se termine, un nouveau prompt apparait
- Et rebelotte
Ou suis-je ?
A chaque instant, dans notre shell, on se trouve virtuellement a un endroit.
Par endroit, j'entends un "dossier", dans l'arborescence des fichiers et dossiers.
On appelle la home, ou la racine du compte le dossier principal de l'utilisateur (chaque utilisateur a le sien).
Ca correspondrait sur Windows au fameux "Mes documents".
Il se trouve en general sur ubuntu dans /home/nom_user (remplacer nom_user )
On peut parfois remplacer le chemin de la home par ~.
On appelle le chemin (ou path) la suite des dossiers qu'il faut parcourir pour arriver a notre dossier.
Exemple de chemins (path) :
- /home/db0/Pictures/ (= ~/Pictures/)
- /usr/bin/
- /
- /root/
- /home/db0/Pictures/image.jpg (= ~/Pictures/image.jpg)
Les fichiers/dossiers
Dans chaque dossier se trouvent des dossiers qui se nomment "." et "..".
- "." = dossier courant.
- ".." = dossier parent.
Les fichiers et dossiers caches ont des noms qui commencent par un ".".
Les extensions (.jpg, .doc, .png, .c, .pl, ...) n'ont aucune importance sur un systeme linux et ne sont la qu'a titre indicatif pour l'utilisateur.
Sur un systeme Unix/Linux, tout est fichiers (dossiers, fichiers, peripheriques, drivers), mais ca, c'est une autre histoire.
Commandes importantes
- pwd
Pour savoir ou on se trouve a tout instant :pwdOu, selon la configuration du shell, directement dans le prompt. Si vous regardez l'exemple de prompt de tout a l'heure, il contenait un ~, qui correspondait a l'endroit ou vous vous trouvez. - cd
Pour changer de dossier (se deplacer) :cd DIRECTORYEn remplacant DIRECTORY par le dossier dans lequel on veut aller.
Si je veux aller dans /home/db0/Pictures,
je peux faire :- cd /home/db0/Pictures
- cd ~/Pictures
- cd Pictures(uniquement si je suis dans ~)
- Revenir au dossier que l'on vient de quitter :
cd -
- Aller au dossier parent :
cd ..
- Aller dans la home (~) :
cd
- ls
Lister le contenu d'un dossier :ls DIRECTORY- Pour le contenu du dossier dans lequel je suis :
ls
- Pour avoir des details sur les fichiers (date, droits, a qui ils appartiennent, taille) :
ls -l
- Pour voir aussi les fichiers et dossiers caches (qui ont un nom commencant par un ".") :
ls -a
- On peut combiner les options :
- ls -l -a
- ls -la
- Pour le contenu du dossier dans lequel je suis :
Jouer avec les fichiers/dossiers
- mkdir
Creer un dossier :mkdir CHEMIN_DOSSIER(si on est dans le bon dossier, le nom suffit, pas besoin du chemin complet. et c'est pareil pour toutes les commandes) - touch
Creer un fichier :touch CHEMIN_FICHIER - cat
Affichier le contenu d'un fichier :cat CHEMIN_FICHIER - cp
Copier-Coller :cp FICHIER NOUVEAU_FICHIER - mv
Deplacer, renommer :mv ANCIEN_CHEMIN NOUVEAU_CHEMIN - rm
Supprimer un fichier :rm FICHIER - rmdir
Supprimer un dossier (s'il est vide) :rmdir DOSSIER - rm -r
Supprimer recursivement (dossiers, sous-dossiers, fichiers, etc) :rm -r CHEMIN/!\ Soyez tres prudent avec cette commande !!
Gestions d'utilisateurs / Droits
Les fichiers/dossiers appartiennent a des utilisateurs, sur Linux.
Lorsque vous creez un fichier, il vous appartient.
Lorsque vous listez le contenu d'un dossier, vous pouvez voir votre nom d'utilisateur sur vos fichiers.
Les utilisateurs sont tries par groupe.
Les droits des utilisateurs sur les fichiers sont les suivants :
- Lecture (r comme read) : Voir le contenu des dossiers/fichiers
- Ecriture (w comme write) : Modifier le contenu des dossiers/fichiers
- Execution (x comme execution) : Executer le programme (si c'en est un), se deplacer dans un dossier
La commande ls -l nous donne les details des droits de chaque fichiers. Exemple :
drwxr-xr-x 2 db0 db0 4096 2010-10-15 12:07 dossier1 drwxr-xr-x 2 db0 db0 4096 2010-10-15 12:07 dossier2 drwxr-xr-x 2 db0 db0 4096 2010-10-15 12:07 dossier3 -rw-r--r-- 1 db0 db0 0 2010-10-15 12:06 fichier1 -rw-r--r-- 1 db0 db0 0 2010-10-15 12:07 fichier2 -rwxr--r-- 1 db0 db0 0 2010-10-15 12:07 fichier3 -rw-r--r-- 1 db0 db0 0 2010-10-15 12:07 fichier4 -rw-r--r-- 1 db0 db0 0 2010-10-15 12:07 fichier5 -rw-r--r-- 1 db0 db0 0 2010-10-15 12:07 fichier6
Le premier caractere indique quel type de fichier c'est :
- - = fichier banal
- d = dossier
- l = lien symbolique (grosso modo equivalent aux raccourcis sur windows)
- c, b, f = fichiers "speciaux" (fifo, peripherique, etc)
- r ou - = droits de lecture ou pas
- w ou - = droits d'ecriture ou pas
- x ou - = droits d'execution ou pas
Et enfin, les trois derniers sont pour tout les autres.
Pour changer les droits d'un fichier, il faut faire un peu de calcul :
- r = 4
- w = 2
- x = 1
Prenons un fichier au hasard qui aurait les droits suivant :
- Droits user = rwx = 4 + 2 + 1 = 7
- Droits groupe = rw- = 4 + 2 + 0 = 6
- Droits tout le monde = r-- = 4 + 0 + 0 = 4 ---> Les droits se ce fichier sont donc : 0764.
- chmod
Pour changer les droits d'un fichier :chmod DROITS FICHIEREn remplacant DROITS par le code calcule comme precedemment. - chown
Pour changer le proprietaire d'un fichier :chown NOUVEAU_PROPRIETAIRE:GROUPE FICHIER(:GROUPE est facultatif) - ACL
Il existe un systeme de droit plus "puissant" : les acl. Ils se modifient avec la commande :fs setacl
Sur Linux, il existe un systeme de Super Utilisateur.
Cet utilisateur est tout puissant. Il a tout les droits sur votre machine.
S'il il veut, il peut tout supprimer et detruire votre OS ! Niark niark niark.
Cet utilisateur s'appelle le root.
C'est assez dangereux d'utiliser son ordinateur en tant que root, donc on le fait que quand on doit faire des actions tres particulieres.
- su
Pour obtenir un shell en tant que root :su(comme super user) - sudo
Pour lancer une seule commande en tant que root :sudo COMMANDE(comme super user do) - su
Pour se connecter en tant qu'un autre utilisateur (pas forcement le root) :su NOM_USER
Environnement
A faire...
UPInstaller des programmes
-
Rechercher un programme :
aptitude search NOM
-
Installer un programme :
sudo aptitude install NOM
-
Installez emacs, gcc, irssi :
sudo aptitude install emacs gcc irssi
Modifier des fichiers
Utilisez emacs en le lancant avec :
Si vous n'aimez pas emacs, il existe un autre editeur de texte appele vim : Lien.
UPAller plus loin avec le shell
Des commandes : Lien.
Faire des Scripts Shell : Lien.
UPCommentaires | Ajouter un commentaire