user@linuxtrack:~ $ python -c 'print("Soyez les bienvenus !")'

Vous n'êtes pas identifié(e).

#1 13-01-2013 18:10:03

IceF0x
#! Gourou Linux

[tuto]initiation au terminal pour débutant

La navigation

Comment utiliser le terminal quand on débute, souvent cette idée fait peur lorsque l'on viens d'un environnement graphique comme Windows et puis l'éternelle question du pourquoi utiliser le terminal,
pourquoi se torturer.
La réponse est simple parce c'est léger et rapide et que l'ont peut cumuler plusieurs commandes.

En effet le temps que vous allier cliquer avec votre souris sur les bouton d'une action, votre terminal aura fini de travailler.

Et puis ça fait pro si quelqu'un de moins connaisseur encore que vous viens vous voir  :mrgreen: .

En général on peux accéder de plusieurs manière au terminal mais on va faire simple et prendre celui par défaut de Gnome, j'ai nommé gnome-terminal.
Pour le trouver on va en général dans le menu "Application > Accessoires > Terminal".
Un raccourcci clavier "Ctrl + Alt + T" ouvre également le Terminal gnome si ce n'est le cas vous pouver créer facilement le raccourci clavier dans les préférence de gnome.

Pour KDE, elle se nomme konsole et il faut se rendre dans le menu "K > Système > Konsole" pour la trouver.

Pour XFCE4 ou LXDE on retrouve xterm une particularité de xterm est qu'on la retrouve sur toutes les distribution Linux.

Chez moi elle ressemble à ceci:

1291651721.png

Mais peux importe le style elle on pratiquement toutes les même fonctions

Une fois dans votre terminal vous verrez ceci:

user@linux ~ $

Découpons ceci pour que vous ayez une idée de la signification de ce que vous voyez

  user: est le nom de votre session cela peut être votre pseudo ou votre prénom soit.

  @: sur

  linux: votre machine  parfois appelé user-desktop ou encore user-laptop

  ~: signifie l'emplacement ou  vous vous trouvez ~ signifie en gros home/répertoire personnel.

  $: signifie que vous être simple utilisateur et non pas administrateur ou "root".

  |: bien évidemment le petit curseur vous invitant à taper vos commandes.

Alors pourquoi toutes ces information et pas un simple curseur directement me direz vous ?

La réponse est simple elle permet de faire la différence en votre machine locale et une machine distante et également si vous avez des privilège administrateur ou pas, en effet il se peut que via le terminal vous vous connectiez sur une autre machine avec des droits administrateur ou simple utilisateur.

En effet si vous vous connectez sur une autre machine en ssh vous verrez non pas "user@linux" mais "others@away" par exemple et pour les droit si vous êtes admin vous ne verrez plus ce caractère "$" mais celui-ci "#"

Mais avant de vous parler de ssh on va tout d'abord apprendre à se déplacer dans le terminal.

Sur un ordinateur en général on se déplace de dossier en dossier ou répertoire c'est a dire par exemple de "documents" on vas dans le dossier "lettres" et dans celui-ci on se déplace encore dans le dossier "lettres-importante" par exemple.

donc pour se déplacer il suffit de lui dire change de répertoire suivi du chemin ou vous voulez aller.

Et c'est là que l'on est surpris d'apprendre qu'il suffit de lui dire ou aller,
et bien c'est presque aussi simple, le hic c'est que Mr Terminal ne parle pas français donc on lui demande en anglais, de plus Mr Terminal n'aime pas les espace et pour terminer,
si on devait à chaque fois marquer les mots complet on passerais son temps à écrire.

Alors Mr Terminal à simplifié il parle en initiales tout le monde sais bien sur ce que c'est les initiales ou en abrégé par exemple BB = brigite bardot ou bébé facile non!,
revenons a nos moutons.
Donc on sait qu'il faut lui parler anglais et par initiale et aussi lui dire le chemin, mais comment je le connait le chemin moi ??.
Si je vous dit avec une autre commande vous vous arrachez les cheveux.

Je vous explique en gros votre système est découpé ainsi il commence toujours par un slash "/"   donc pour indiquer le chemin on peut commencer par un slash par exemple,
on sais qu'on se trouve dans sa sessions dans son home, donc on peux par exemple lui dire slash maison ma session mes documents,
mais là comme il n'aime pas les espace il va pas obéir, mais quel capricieux ce Mr Terminal dis donc ! :mrgreen:

donc pour séparer les répertoires on utilise encore des slash (encore ?) (oui encore !)

ce qui pourrais donner "slash maison slash ma session slash documents" ,

là il aime déjà mieux mais bon ce n'est pas encore tout à fait ça, il veux de l'anglais Mr terminal donc on traduira:

change repertoire slash maison slash session slash documents 

par

cd /home/user/Documents

vachement plus court non

donc petit rappel

  cd = change directory (change de répertoire en anglais).

  et "/" pour marquer la racine de votre système et le passage de dossiers en dossiers.

  et entre les slash le nom des dossier par lesquels on passe en faisant attention de respecter les minuscule et les majuscules.

Hé mais comment je sais le nom de mes dossier moi ?

avec une autre commande aussi simple que cd

en bref on voudrais voir ce qui se trouve dans le répertoire ou l'ont se trouve on a envie de lui dire liste moi ça en anglais donc list et l'initiale de list est donc l

donc on tape l (L)
et il affichera tout ce qui se trouve dans le  dossier les sous dossier seront différencié d'un slash pour vous dire qu'il sont des sous dossier histoire de pas essayer de se déplacer dans un fichier.

exemple:

user@linux ~$ l
dossier1/ dossier2/ dossier3/ etc/ fichier1 fichier2 fichier3 executable1*

il est même capable de vous dire si un fichier est exécutable grâce à un astérisque *, il est trop fort ce Mr Terminal

Bon et bien maintenant on va optimiser tout ça, parce que savoir se déplacer c'est bien beau mais c'est pas spécialement plus rapide que de cliquer dans une navigateur de fichier.

donc on sais que pour naviguer on utilise la commande "cd" mais en quoi est ce plus rapide via le terminal ?

et bien le fait de pouvoir aller en une fois là ou on veux, par exemple si je veux aller directement à la racine de mon disque je fait simplement un cd slash

cd /

mais comment je retourne dans mon home, je ne vais quand même pas taper cd /home/user, non non souvenez vous du début quand j' disait que ~ voulais dire que vous étiez dans votre dossier personnel de votre home donc il suffit de taper "cd ~" et on se retrouve directement de là ou l'on a commencé,
gagnons encore du temps, pour vous prouver que Mr Terminal fait bien les choses, si vous voulez revenir dans votre dossier "home" un simple "cd" tout court suffit

cd

De plus si on ce déplace dans un sous répertoire il est inutile de lui indiquer le chemin depuis la racine de votre système qui est slash mais directement par le nom de celui-ci.
dans le cas de votre dossier document vous ne ferez pas:

cd /hom/user/Documents

mais

cd Documents

Autocomplétion

Il existe une fonction dans le terminal qui s'appelle l'auto complétions, mais késako me direz vous,
hé bien c'est simple c'est une fonction pour les fainéant du clavier, ce qui reviens à compléter un mot par la touche tabulation ou [TAB] du clavier.
Par exemple si vous voulez aller dans votre dossier Documents, vous n'écrirez pas

cd Documents 

mais

cd D + [TAB]    ce qui complétera le mot pour vous

Mais si plusieurs sous-dossier commence par D me direz-vous comment on fait ?

Simple on appuie 2 fois sur [TAB] pour avoir la liste des dossier qui commence par D exemple:

cd D + [TAB] + [TAB]
Document    DossierX  

Il vous listera les possibilité et alors pour corriger la commande il suffit de corriger jusqu'à la lettre qui différencie les 2 sous-dossier, ici Documents et DossierX on en commun le D et le o donc on ajoute la troisième lettre qui est le c pour différencier DossierX de Documents donc

cd Doc + [TAB]  = cd Documents

et il complètera la commande, et ainsi vous n'aurez plus qu'a confirmer par enter pour effectuer l'action.

maintenant il existe une petite astuce pour revenir dans le répertoire précédent d'un dossier, il ne vous faudra pas taper le chemin complet mais juste deux point,
comment 2 point seulement,
oui 2 point, exemple:

cd ..

et vous vous retrouverez dans le dossier précédent ou supérieur, c'est tout simplement magique non

rappel:

Pour trouver le chemin d'un fichier/dossier, 2 possibilités s'offre à vous:
- la première est d'utiliser un chemin relatif, c'est à dire de rentrer le nom du fichier par rapport au dossier où vous êtes, (cf la première ligne ).
- et la deuxième est le chemin absolu, c'est à dire que vous rentrez le nom du dossier, à partir de la racine de votre disque dur, si ce fichier est dans votre dossier personnel, vous utiliserez cd /home/user/ledossier

note:

:!:  pour ceux chez qui la commande "l" (L) donnerait comme réponse "commande introuvable", il suffit de dé-commenter ou d'ajouter en fin de fichier .bashrc la commande

alias l='ls -CF'


Voilà j'espère qu'après cette initiation, la navigation via le terminal n'aura plus trop de secret pour vous.

cours 2: lister les fichiers et dossiers.

Lister les fichiers

Dans le cours précédent, je vous ai expliquer comment naviguer dans votre système, mais à présent, je vais vous indiquer comment lister les fichiers présent sur votre système et en obtenir des information grâce à la commande "ls".

La commande "ls" est une commande simple et fort utile qui veut simplement dire "list segment", c'est un peu l'équivalent de "dir" (directory) pour ceux qui ont connu le "MS-DOS" ou l'invite de commande sous Windows.

la commande de base est "ls" et si vous la taper dans votre terminal vous verrez ceci

coyotus@Debian ~ $ ls
attente  audio.wav  Bureau  colorpng.sh  crackme32  Documents  dwhelper  Images  mame  Musique  Public  Python-3.1.2  Téléchargements  tmp  Vidéos  vmware
coyotus@Debian ~ $ 

Dans le cours précédent on a vu qu'on pouvait lister avec simplement "l" (L) mais en fait il s'agit d'un alias utilisé par défaut sur certaine distribution, généralement basée sur Ubuntu.
En fait "l" est un alias de "ls -CF" vous remarquerez que sur ubuntu que vous fassiez "l" ou "ls -CF" donne exactement la même réponse, c'est pourquoi si vous en avez la possibilité rajoutez l'alias dans votre .bashrc si elle n'y est pas par défaut.

Pour rappel l'option "-F" permet d'ajouter un caractère à chaque nom de fichier pour indiquer son type:

"/" pour les dossiers
"*" pour les exécutables

il y a deux options intéressantes dans la commande "ls" la première est l'option "-a" et la seconde l'option "-l".

l'option "-a" signifie "--all" traduit de l'anglet "tout" qui permet d'afficher les fichiers et dossiers caché, plus rapide que d'aller en graphique dans le dossier et de cocher l'option afficher les fichiers et dossier caché.
les fichiers caché sont généralement représenté avec un point devant leurs noms (.) ce qui permet de les différencier par rapport au dossiers normaux.

la seconde option "-l" liste les fichier sous format de listing, la grande force de cette option c'est qu'elle donne des informations sur le fichier tel que la taille en octet, le propriétaire du fichier, les droit du fichier, et la date de la dernière modification du fichier.
Cette option est donc plus rapide que de faire un clic droit sur le fichier et ensuite de cliquer sur propriétés.

exemple

coyotus@Debian ~ $ ls -a
.  dossier .dossier-caché fichier .fichier-caché
.. dossier1 .dossier-caché fichier1 .fichier-caché
coyotus@Debian ~ $ ls -l
drwxr-xr-x  8 coyotus coyotus    4096 2010-12-09 06:35 Bureau

Pour l'option "-a" vous verrez "." et "..". , cela peux vous intriguer, mais rappeler vous l'utilisation des deux point avec la commande "cd".
Le premier représente en fait le dossier actuel, et ".." représente le dossier parent, c'est-à-dire le dossier précédent ou supérieur dans l'arborescence.

:!: si les point de l'option "-a" vous troublent, sachez que vous pouvez utiliser l'option "-A" avec le a en majuscule qui donnera la même réponse mais sans les point si dérangeant.

Pour l'option "-l" vous ne verrez rien de plus que ce qu'il est précisé plus haut.

   1. Droits sur le fichier.
   2. Nombre de liens physiques.
   3. Nom de la personne propriétaire du fichier.
   4. Groupe auquel appartient le fichier. En général nom du groupe est même que celui du propriétaire.
   5. Taille du fichier, en octets.
   6. Date de dernière modification.
   7. Nom du fichier (ou dossier).

l'option "-R" permet de lister récursivement le contenu des sous-répertoires, si vous le faite, vous aurez un énorme flood parce qu'il vous indiquera tout ce que contiens les répertoires et les sous-répertoires et les sous-sous-répertoires etc..
pour cette option il est parfois préférable d'envoyer la réponse dans un fichier texte avec cette commande:

ls -R > liste.txt

À présent on va exploiter la fonction "-l" pour en obtenir des informations plus détaillées, c'est a dire ajouter à l'option "-l" un "h" un "t" un "a" bref le mieux est de connaitre le manpage tant les possibilité sont nombreuses.
Le manpage est disponible en français à cette adresse: http://pwet.fr/man/linux/commandes/ls

la fonction "-h", --human-readable
    Ajouter une lettre indiquant l'unité de taille, comme M pour méga-octets.

et la fonction "-t", --sort=time
    Trier le contenu des répertoires en fonction de la date et non pas en ordre alphabétique. Les fichiers les plus récents sont présentés en premier.

et enfin la fonction "-a", --all
    Afficher tous les fichiers des répertoires, y compris les fichiers commençant par un `.'.

exemple:

coyotus@Debian ~ $ ls -laht
total 6,9M
-rw-------  1 coyotus coyotus 505K 2010-12-09 13:35 .xsession-errors
drwx------  2 coyotus coyotus 4,0K 2010-12-09 13:34 .gconfd
drwx------  8 coyotus coyotus 4,0K 2010-12-09 13:25 .purple
liste trop longue pour être quotée complètement.

Maintenant que vous avez une base d'utilisation de la commande "ls", je vais vous présenter la façon de lister des fichier en gagnant du temps.
En graphique pour lister les fichier présent dans un dossier, vous devez vous rendre dans ce dossier et ensuite sélectionner l'affichage en liste dans les option d'affichage ou scroller avec votre souris.
Avec la commande "ls", il suffit de lui indiquer le chemin du dossier à lister depuis là ou vous êtes.

exemple:

coyotus@Debian ~ $ ls /
bin  boot  cdrom  dev  etc  home  initrd.img  lib  lost+found  media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var  vmlinuz

sans oublier que vous pouvez toujours utiliser les option "-a" ,"-l", "-lh", "-lt" etc...

cours 3 créer des dossiers et des fichiers

créer des dossiers et des fichiers

Après avoir vu comment naviguer dans votre système et lister les fichiers et dossiers, nous allons explorer les différente manière de manipuler les fichiers et les dossiers.
nous allons tout d'abords commencer par la création de ceux-ci.

Pour créer des dossiers et des fichier nous allons utiliser plusieurs commandes comme, "mkdir", "touch", et "nano".

Explication des commandes:

mkdir: Crée un répertoire (make a directory en anglais) 

touch: est une commande Unix standard permettant de modifier le timestamp de dernier accès et de dernière modification d'un fichier. Cette commande permet également de créer un fichier vide.

Nano: est un éditeur de texte pour les systèmes Unix et dérivés

cp: permet de copier un fichier.

mkdir

Lorsque vous créer un répertoire, il aura par défaut les permission d'accès du créateur c'est a dire en général 777 ce qui équivaut à la lecture et l'écriture, de même que si vous créer un répertoire dans la partie de votre système demandant des droit administrateurs, il aura les même droit demandant d'être administrateur.
La commande est simple si vous voulez créer un répertoire dans celui ou vous vous trouvez, vous n'aurez qu'a taper la commande suivi du nom du répertoire.

Exmple:

mkdir nom_du_répertoire

et pour la partie de votre système demandant des droits administrateurs:

sudo mkdir nom_du_repertoire

il n'y as que 2 option a retenir pour "mkdir" c'est l'option "-p" et "-v" (verbal ou verbeux).

"-p" crée les répertoire parent si ils n'existe pas

"-v" rajoutera une notification écrite de ses action, par exemple:

coyotus@Debian ~ $ mkdir -v test
mkdir: création du répertoire «test»

touch

touch permet quand à elle de créer un répertoire vide, mais pas seulement, elle permet aussi de modifier l'horodatage d'un fichier.

Exemple pour créer un fichier vide, tapez simplement:

touch nom_du_fichier

et il sera créer dans le répertoire ou vous vous trouvez. naturellement pour créer le fichier ailleurs que dans le répertoire ou vous vous trouvez indiquez lui simplement le chemin:

touch /chemin/du/fichier

les option existante sons plus nombreuse que pour mkdir ici les option sont -a, -c, -d , -f, -m -r et -t

-a, --time=atime, --time=access, --time=use" Modifier uniquement l'heure d'accès.

-c, --no-create
    Ne pas créer les fichiers n'existant pas.
-d, --date date
    Utiliser la date indiquée (qui peut se présenter sous plusieurs formes) à la place de la date actuelle. La date peut contenir des mois littéraux, des indications de fuseau horaire, les abréviations `am' et `pm', etc...
-f
    Sans effet - uniquement pour assurer la compatibilité avec la version BSD de touch.
-m, --time=mtime, --time=modify
    Changer uniquement l'heure de modification.
-r, --file fichier-référence
    Utiliser les horodatages du fichier_référence à la place de l'heure actuelle.
-t MMJJhhmm[[SS]AA][.ss]
    Utiliser la date (Mois, Jour, Heure, Minute, éventuellement Siècle et Année, éventuellement Seconde) à la place de la date actuelle. Notez que cette option viole la syntaxe Posix.

Rassurez vous dans un premier temps, en tant que débutant vous n'utiliserez presque jamais la commande touch, mais elle s'avère très utile pour créer un fichier de configuration dans un script par exemple,
pour vous donner un exemple concret, on peux créer le fichier vide qui servira plus tard pour y écrire des option de configuration.

Un exemple simple:

coyotus@Debian ~ $ touch test
coyotus@Debian ~ $ echo chose > test

cet exemple crée le fichier test vide et ensuite écrit chose dedans.

On ne va pas s'attarder sur le changement de date et d'heure d'accès au fichier, on utilise très peux ces fonction lorsqu'on débute en ligne de commande,
mais elles valent la peine à être connues pour la suite de votre apprentissage.

nano

La commande "nano" vous sera plus utile lorsque vous débuter en ligne de commande, certes les confirmé vous diront des "vi" ou "vim" par ci des "emacs" par là mais pour débuter "nano" est idéal un peux plus lent que les autres voire moins pratique on vous dira mais il ne faut pas le négliger pour autant.

nano se présente comme ci dessous:

Nano_2.1.2-svn.png

l'usage est très simple, vous ouvrez ou vous créer le fichier à éditer avec la commande:

nano fichier

si le répertoire ou se trouve le fichier à éditer demande des droit "root" faite su ou rajouter sudo:

sudo nano fichier

une fois dans l'éditeur, utiliser les flêche de votre clavier pour vous placer dans la zone de texte à éditer et faite vos modification ou ajout,
une fois fait, vous enregistrer avec les commande suivantes

Ctrl + X

cette commande demande la sortie de l'éditeur, si le fichier n'a pas été modifié, vous quittez simplement l'éditeur.
Si le fichier à été modifier il vous sera demandé si vous accepter les modification, à laquelle vous répondrez par oui ou non

o

ou

n

en français, et

y

ou

n

en anglais.

Ensuite, il vous sera demandé d'appuyer sur la touche enter pour confirmer l'écriture, une fois que vous aurez appuyé sur enter il ne sera plus possible de revenir en arrière,
pensez donc à créer un fichier de sauvegarde avec l'option "-B" en majuscule qui veux dire backup.

petit rappel des commandes:
    * Ctrl + G : afficher l'aide
    * Ctrl + K : couper la ligne de texte (et la mettre dans le presse-papier)
    * Ctrl + U : coller la ligne de texte que vous venez de couper
    * Ctrl + C : afficher à quel endroit du fichier votre curseur est positionné (numéro de ligne...)
    * Ctrl + W : rechercher dans le fichier
    * Ctrl + O : enregistrer le fichier (écrire)
    * Ctrl + X : quitter nano

pour aller plus loin avec nano je vous invite à lire le tuto présent sur le site du zero qui approfondi encore plus l'utilisation de nano:

:arrow:  http://www.siteduzero.com/tutoriel-3-12791-nano-l-editeur-de-texte-du-debut…

ainsi que le manuel:

:arrow:  http://www.delafond.org/traducmanfr/man … ano.1.html

cp

La commande "cp" permet de copier des fichiers rapidement, c'est l'équivalent de la fonction copier coller,
la syntaxe est la suivante cp fichier d'origine chemin de destination.

Exemple.

cp fichier.doc Documents/dossier/quelconque/fichier.doc 

Pour copier un répertoire, il faut utiliser la commande récursivement, c'est a dire le dossier et tout ce qu'il contient.

-R, -r, --recursive
copie les dossier récursivement.

Exemple.

cp -r dossier Documents/dossier/ 

De même il est possible de préserver les attribut d'un fichier ou répertoire avec les options -p ou --preserve, afin de garder les droit du propriétaire du fichier (exemple timestamp).

icef0x@crunchbang ~ $  ls -l /etc/fstab
-rw-r--r-- 1 root root 1723 fév 28  2012 /etc/fstab
icef0x@crunchbang ~ $  cp -p /etc/fstab .
icef0x@crunchbang ~ $ ls -l fstab 
-rw-r--r-- 1 icef0x icef0x 1723 fév 28  2012 fstab
icef0x@crunchbang ~ $  rm fstab 
icef0x@crunchbang ~ $  cp /etc/fstab .
icef0x@crunchbang ~ $ ls -l fstab 
-rw-r--r-- 1 icef0x icef0x 1723 déc 30 09:11 fstab

Dans cet exemple ci-dessus on vois que la date de création du fichier est resté la même avec l'option -p


under construct


Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D

Hors ligne

#2 13-01-2013 22:45:11

arpinux
nakedev

Re : [tuto]initiation au terminal pour débutant

encore un excellent tuto .. que tu vas compléter des tes astuces introuvables tongue
pour une vue ultra condensée (et non explicative) des commandes GNU/Linux, un ptit lien vers mon wiki smile http://arpinux.org/x/doku.php/start:commandes (bah quoi .. pas le droit à la pub ? tongue )

Hors ligne

#3 14-01-2013 07:17:23

IceF0x
#! Gourou Linux

Re : [tuto]initiation au terminal pour débutant

arpinux a écrit :

(bah quoi .. pas le droit à la pub ? tongue )

il manque celle-ci http://arpinux.org/x/doku.php/start:gourmandise smile


Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D

Hors ligne

#4 10-09-2013 04:25:56

m3rl1
Membre

Re : [tuto]initiation au terminal pour débutant

je me servais d'un autre tuto mais celui-ci est super en effet...merci

http://wiki.linux-france.org/wiki/Les_c … s_de_Linux

Hors ligne

#5 28-02-2017 01:21:00

mavric
Membre

Re : [tuto]initiation au terminal pour débutant

Super sympa d'avoir fait se petit tuto qui est bien pratique en cas d'oubli.

Personnellement je préfère pour édité des fichier la commande vim. petit dérivé du fameux vi avec quelques couleur en plus si je ne me trompe pas.

Hors ligne

Pied de page des forums