Recherche…


Bonjour le monde

Tapez le code suivant dans votre terminal, puis appuyez sur Entrée :

echo "Hello World"

Cela produira la sortie suivante:

Hello World

Manipulation de fichiers

Les fichiers et répertoires (un autre nom pour les dossiers) sont au cœur de Linux. Il est donc très important de pouvoir créer, afficher, déplacer et supprimer ces fichiers depuis la ligne de commande. Ces commandes de manipulation de fichiers vous permettent d'effectuer les mêmes tâches qu'un explorateur de fichiers graphiques.

Créez un fichier texte vide appelé myFile :

touch myFile

Renommez myFile en myFirstFile :

mv myFile myFirstFile 

Afficher le contenu d'un fichier:

cat myFirstFile

Visualiser le contenu d'un fichier avec pager (un écran à la fois):

less myFirstFile

Affichez les premières lignes d'un fichier:

head myFirstFile

Afficher les dernières lignes d'un fichier:

tail myFirstFile

Modifier un fichier:

vi myFirstFile

Voir quels fichiers se trouvent dans votre répertoire de travail actuel:

ls

Créez un répertoire vide appelé myFirstDirectory :

mkdir myFirstDirectory

Créer un répertoire multi-chemins: (crée deux répertoires, src et myFirstDirectory)

mkdir -p src/myFirstDirectory

Déplacez le fichier dans le répertoire:

mv myFirstFile myFirstDirectory/

Vous pouvez également renommer le fichier:

user@linux-computer:~$ mv myFirstFile secondFileName

Remplacez le répertoire de travail actuel par myFirstDirectory :

cd myFirstDirectory

Supprimer un fichier:

rm myFirstFile

Déplacer dans le répertoire parent (qui est représenté comme .. ):

cd ..

Supprimer un répertoire vide:

rmdir myFirstDirectory

Supprimer un répertoire non vide (c.-à-d. Contient des fichiers et / ou d'autres répertoires):

rm -rf myFirstDirectory

Notez que lors de la suppression de répertoires, vous supprimez ./ not / qui effacera tout votre système de fichiers.

Détails du fichier / répertoire

La commande ls a plusieurs options qui peuvent être utilisées ensemble pour afficher plus d'informations.

Détails / Droits

L'option l indique les autorisations de fichier, la taille et la date de la dernière modification. Donc, si le répertoire racine contenait un répertoire appelé test et un fichier someFile la commande:

user@linux-computer:~$ ls -l

Produirait quelque chose comme

-rw-r--r-- 1 user users   70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4096 Jul 21 07:18 test

Les autorisations sont au format drwxrwxrwx . Le premier caractère représente le type de fichier d s'il s'agit d'un répertoire - sinon. Les trois rwx sont les autorisations de l'utilisateur sur le fichier, les trois suivantes sont les autorisations du groupe sur le fichier et les trois dernières sont les autorisations de tout le monde sur le fichier.

Le r de rwx signifie que si un fichier peut être lu, le w représente si le fichier peut être modifié, et le x représente si le fichier peut être exécuté. Si aucune permission n'est accordée, un - sera à la place de r , w ou x .

Donc, de dessus, l' user peut lire et modifier someFile.txt mais le groupe n'a que des droits en lecture seule.

Pour changer les droits, vous pouvez utiliser la commande chmod ### fileName si vous avez des droits sudo. r est représenté par une valeur de 4, w est représenté par 2 et x est représenté par un 1. Donc si seulement vous voulez pouvoir modifier le contenu dans le répertoire de test

Owner rwx = 4+2+1 = 7
Group r-x = 4+0+1 = 5
Other r-x = 4+0+1 = 5

Donc toute la commande est

chmod 755 test

Faire maintenant un ls -l montrerait quelque chose comme

drwxr-xr-x 2 user users 4096 Jul 21 07:20 test

Taille lisible

Utilisée conjointement avec l'option l option h affiche des tailles de fichiers lisibles par l'utilisateur. Fonctionnement

user@linux-computer:~$ ls -lh

Serait sortie:

total 4166
-rw-r--r-- 1 user users   70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4.0K Jul 21 07:18 test

Caché

Pour afficher les fichiers cachés utilisent a option. Par exemple

user@linux-computer:~$ ls -a

La liste pourrait

.profile
someFile.txt
test

Taille totale du répertoire

Pour afficher la taille du répertoire actuel, utilisez l'option s (l'option h peut également être utilisée pour rendre la taille plus lisible).

user@linux-computer:~$ ls -s

Les sorties

total 4166
someFile.txt      test

Vue récursive

Disons que test répertoire test a un fichier anotherFile et que vous voulez le voir depuis le dossier racine, vous pouvez utiliser l’option R qui listera l’arbre récursif.

user@linux-computer:~$ ls -R

Les sorties

.:
someFile.txt    test

./test:
anotherFile

Utilitaires Linux de base

Linux a une commande pour presque toutes les tâches et la plupart d'entre elles sont intuitives et faciles à interpréter.

Obtenir de l'aide sous Linux

Commander Facilité d'utilisation
man <name> Lisez la page de manuel de <nom>.
man <section> <name> Lisez la page de manuel de <nom>, liée à la section donnée.
man -k <editor> Affiche tous les logiciels dont les pages de manuel contiennent le mot-clé <editor>.
man -K <keyword> Affiche toutes les pages de manuel contenant <keyword> à l'intérieur.
apropos <editor> Affiche toutes les applications dont la description d'une ligne correspond à l' éditeur de mots. Si vous ne parvenez pas à rappeler le nom de l'application, utilisez cette commande.
help Dans le shell Bash, cela affichera la liste de toutes les commandes bash disponibles.
help <name> Dans le shell Bash, cela affichera les informations sur la commande <name> bash.
info <name> Afficher toutes les informations sur <nom>.
dpkg -l Affiche une liste de tous les paquets installés sur un système basé sur Debian.
dpkg -L packageName Va lister les fichiers installés et les détails du chemin pour un paquet donné sur Debian.
dpkg -l | grep -i <edit> Renvoyer tous les paquets installés avec .deb avec <edit> indépendamment des cas.
less /var/lib/dpkg/available Renvoie les descriptions de tous les packages disponibles.
whatis vim Énumérez une description d'une ligne de vim.
<command-name> --help Afficher les informations d'utilisation sur le <nom-outil>. Parfois, la command -h fonctionne également, mais pas pour toutes les commandes.

Identification de l'utilisateur et qui est qui dans le monde Linux

Commander Facilité d'utilisation
hostname Affiche le nom d'hôte du système.
hostname -f Affiche le nom de domaine complet du système.
passwd Changer le mot de passe de l'utilisateur actuel.
whoami Nom d'utilisateur des utilisateurs connectés au terminal.
who Liste de tous les utilisateurs actuellement connectés en tant qu'utilisateur.
w Affiche l'état actuel du système, l'heure, la durée, la liste des utilisateurs actuellement connectés sur le système et d'autres informations utilisateur.
last Qui a récemment utilisé le système.
last root Quand était la dernière fois que root a ouvert une session en tant qu'utilisateur.
lastb Affiche toutes les tentatives de connexion incorrectes dans le système.
chmod Changer les permissions - lire, écrire, exécuter un fichier ou un répertoire.

Informations relatives au processus

Commander Facilité d'utilisation
top Énumérer tous les processus triés selon leur utilisation actuelle des ressources système. Affiche un affichage continuellement mis à jour des processus (par défaut 3 secondes). Utilisez la touche q pour quitter le haut.
ps Liste des processus en cours d'exécution sur la session shell en cours
ps -u root Liste tous les processus et commandes root est en cours d'exécution
ps aux Liste tous les processus par tous les utilisateurs du système actuel

Commandes de gestion de fichiers

Linux utilise certaines conventions pour les répertoires présents et parent. Cela peut être un peu déroutant pour les débutants.

Chaque fois que vous êtes dans un terminal sous Linux, vous serez dans le répertoire de travail en cours . Souvent, votre invite de commande affiche soit le répertoire de travail complet, soit la dernière partie de ce répertoire. Votre invite peut ressembler à l'un des éléments suivants:

user@host ~/somedir $
user@host somedir $
user@host /home/user/somedir $

qui dit que votre répertoire de travail actuel est /home/user/somedir .

Sous Linux .. représente le répertoire parent et . représente le répertoire en cours.

Par conséquent, si le répertoire en cours est /home/user/somedir , alors cd ../somedir ne changera pas le répertoire de travail.

Le tableau ci-dessous répertorie certaines des commandes de gestion de fichiers les plus utilisées

Commander Utilitaire
pwd Obtenez le chemin complet du répertoire de travail en cours.
cd - Accédez au dernier répertoire dans lequel vous travailliez.
cd ~ ou juste cd Accédez au répertoire de base de l'utilisateur actuel.
cd .. Aller dans le répertoire parent du répertoire courant (attention à l'espace entre cd et .. )

Liste des fichiers dans un répertoire

Commander Utilitaire
ls -l Répertoriez les fichiers et répertoires dans le répertoire actuel au format long (table) (il est recommandé d'utiliser -l avec ls pour une meilleure lisibilité).
ls -ld dir-name Liste des informations sur le répertoire dir-name au lieu de son contenu.
ls -a Liste tous les fichiers, y compris ceux cachés (les noms de fichiers commençant par un . Sont des fichiers cachés sous Linux).
ls -F Ajoute un symbole à la fin d'un nom de fichier pour indiquer son type ( * signifie exécutable, / signifie répertoire, @ signifie lien symbolique, = signifie socket, | signifie tube nommé, > signifie porte).
ls -lt Répertorie les fichiers triés par heure de dernière modification avec les fichiers les plus récemment modifiés affichés en haut (l'option souvenir -l fournit le format long qui a une meilleure lisibilité).
ls -lh Lister les tailles de fichier dans un format lisible par l'homme.
ls -lR Affiche tous les sous-répertoires de manière récursive.
tree Génère une représentation arborescente du système de fichiers à partir du répertoire en cours.

Fichier / répertoire créer, copier et supprimer

Commander Utilitaire
cp -p source destination Copiera le fichier de la source à la destination . -p signifie préservation. Il conserve les attributs d'origine du fichier lors de la copie, comme le propriétaire du fichier, l'horodatage, le groupe, les autorisations, etc.
cp -R source_dir destination_dir Copiera le répertoire source vers la destination spécifiée de manière récursive.
mv file1 file2 Sous Linux, il n’ya pas de commande de renommage en tant que telle. Par conséquent, mv déplace / renomme le fichier1 en fichier2.
rm -i filename Vous demande avant chaque suppression de fichier pour confirmation. SI VOUS ÊTES UNE NOUVELLE LIGNE DE COMMANDE UTILISATEUR À LINUX, VOUS DEVEZ TOUJOURS UTILISER rm -i . Vous pouvez spécifier plusieurs fichiers.
rm -R dir-name Va supprimer le répertoire dir-name manière récursive.
rm -rf dir-name Va supprimer le répertoire dir récursivement, en ignorant les fichiers inexistants et ne demandera jamais rien. ATTENTION, UTILISER CETTE COMMANDE! Vous pouvez spécifier plusieurs répertoires.
rmdir dir-name Supprime le répertoire dir-name , s'il est vide. Cette commande ne peut supprimer que les répertoires vides.
mkdir dir-name Créez un répertoire dir-name .
mkdir -p dir-name/dir-name Créez une hiérarchie de répertoires. Créez des répertoires parents si nécessaire, s'ils n'existent pas. Vous pouvez spécifier plusieurs répertoires.
touch filename Créez un filename , s'il n'existe pas, sinon changez l'horodatage du fichier en heure courante.

Autorisations et groupes de fichiers / répertoires

Commander Utilitaire
chmod <specification> filename Modifier les autorisations de fichier. Spécifications = u utilisateur, groupe g , o autre, + ajouter une autorisation, - supprimer, r lire, w écrire, x exécuter.
chmod -R <specification> dir-name Modifiez les autorisations d'un répertoire de manière récursive. Pour modifier l'autorisation d'un répertoire et de tout ce qui se trouve dans ce répertoire, utilisez cette commande.
chmod go=+r myfile Ajoutez une autorisation de lecture pour le propriétaire et le groupe.
chmod a +rwx myfile Autoriser tous les utilisateurs à lire, écrire ou exécuter myfile .
chmod go -r myfile Supprimez l'autorisation de lecture du groupe et des autres.
chown owner1 filename Changer la propriété d'un fichier à l' utilisateur owner1 .
chgrp grp_owner filename Modifiez la propriété du groupe principal du fichier filename en groupe grp_owner .
chgrp -R grp_owner dir-name Changement de propriétaire du groupe principal du répertoire dir-name à groupe grp_owner récursive. Pour modifier la propriété d'un groupe dans un répertoire et tout ce qui se trouve dans ce répertoire, utilisez cette commande.

Raccourcis utiles

Utiliser le terminal

Les exemples de ce document supposent que vous utilisez un shell compatible POSIX (tel que bash , sh , zsh , ksh ).

Une grande partie des fonctionnalités GNU / Linux est obtenue à l'aide du terminal. La plupart des distributions de Linux incluent des émulateurs de terminal qui permettent aux utilisateurs d'interagir avec un shell à partir de leur environnement de bureau. Un shell est un interpréteur de ligne de commande qui exécute les commandes entrées par l'utilisateur. Bash (Bourne Again SHell) est un shell par défaut commun parmi de nombreuses distributions Linux et est le shell par défaut pour macOS.

Ces raccourcis fonctionneront si vous utilisez Bash avec les raccourcis clavier emacs (définis par défaut):

Terminal ouvert

  • Ctrl + Alt + T ou Super + T

Mouvement du curseur

  • Ctrl + A Aller au début de la ligne sur laquelle vous tapez actuellement.
  • Ctrl + E Allez à la fin de la ligne sur laquelle vous tapez actuellement.
  • Ctrl + XX Déplacement entre le début de la ligne et la position actuelle du curseur.
  • Alt + F Déplace le curseur d'un mot sur la ligne en cours.
  • Alt + B Déplace le curseur d'un mot sur la ligne en cours.
  • Ctrl + F Déplacer le curseur d'un caractère sur la ligne en cours.
  • Ctrl + B Déplace le curseur en arrière d'un caractère sur la ligne en cours.

Manipulation de texte

  • Ctrl + U Couper la ligne de la position actuelle au début de la ligne, en l'ajoutant au presse-papiers. Si vous êtes au bout de la ligne, coupez la ligne entière.
  • Ctrl + K Couper la ligne de la position actuelle à la fin de la ligne, en l'ajoutant au presse-papiers. Si vous êtes au début de la ligne, coupez la ligne entière.
  • Ctrl + W Supprime le mot devant le curseur pour l'ajouter au presse-papiers.
  • Ctrl + Y Colle la dernière chose du presse-papiers que vous avez coupée récemment (annulez la dernière suppression à la position actuelle du curseur).
  • Alt + T Permutez les deux derniers mots avant le curseur.
  • Alt + L Met les minuscules du curseur à la fin du mot.
  • Alt + U Rendre les majuscules du curseur à la fin du mot.
  • Alt + C Capitaliser à la fin du mot commençant par le curseur (mot entier si le curseur est au début du mot).
  • Alt + D Supprimer jusqu'à la fin du mot commençant par le curseur (mot entier si le curseur est au début du mot).
  • Alt +. Imprime le dernier mot écrit dans la commande précédente.
  • Ctrl + T Permute les deux derniers caractères avant le curseur.

Accès à l'historique

  • Ctrl + R Vous permet de rechercher parmi les commandes précédemment utilisées.
  • Ctrl + G Quitter le mode de recherche d'historique sans exécuter de commande.
  • Ctrl + J Vous permet de copier la commande correspondante dans la ligne de commande sans l'exécuter, ce qui vous permet d'apporter des modifications avant d'exécuter la commande.
  • Alt + R Rétablit les modifications apportées à une commande que vous avez extraite de votre historique si vous l'avez modifiée.
  • Ctrl + P Affiche la dernière commande exécutée, c.-à-d. Parcourez l'historique des commandes (similaire à la flèche vers le haut).
  • Ctrl + N Affiche la prochaine commande exécutée, c.-à-d. Avancez dans l'historique des commandes (similaire à la flèche vers le bas).

Contrôle terminal

  • Ctrl + L Efface l'écran, similaire à la commande clear.
  • Ctrl + S Arrête toutes les sorties sur l'écran. Ceci est utile lors de l'exécution de commandes avec beaucoup de sortie longue. Mais cela n'arrête pas la commande en cours.
  • Ctrl + Q Reprend la sortie à l'écran après l'avoir arrêté avec Ctrl + S.
  • Ctrl + C Termine le processus en cours d'exécution et renvoie l'invite.
  • Ctrl + D Déconnectez-vous de la session shell en cours, similaire à la commande exit ou logout. Dans certaines commandes, agit comme un signal de fin de fichier pour indiquer qu'une fin de fichier a été atteinte.
  • Ctrl + Z Suspend (pause) le processus de premier plan en cours d'exécution, qui renvoie l'invite du shell. Vous pouvez ensuite utiliser la commande bg permettant à ce processus de s'exécuter en arrière-plan. Pour ramener ce processus au premier plan, utilisez la commande fg . Pour afficher tous les processus en arrière-plan, utilisez la commande jobs .
  • Onglet Compléter automatiquement les fichiers et les noms de répertoire.
  • Onglet Tab Affiche toutes les possibilités, lorsque les caractères saisis ne correspondent pas de manière unique à un nom de fichier ou de répertoire.

Caractères spéciaux

  • Ctrl + H Identique à Backspace.
  • Ctrl + J Identique à Return (historiquement Line Feed).
  • Ctrl + M Identique à Retour (historiquement retour chariot).
  • Ctrl + I Identique à Tab.
  • Ctrl + G Caractère de Bell.
  • Ctrl + @ Caractère nul.
  • Esc Deadkey équivalent au modificateur Alt .

Fermer le terminal

  • Ctrl + Maj + W Pour fermer l'onglet terminal.
  • Ctrl + Maj + Q Pour fermer tout le terminal.

Alternativement, vous pouvez passer aux raccourcis vi en bash en utilisant set -o vi . Utilisez set -o emacs pour revenir aux raccourcis emacs .

Recherche de fichiers par motifs dans le nom / contenu

Une tâche courante de quelqu'un qui utilise la ligne de commande Linux (shell) consiste à rechercher des fichiers / répertoires portant un certain nom ou contenant un certain texte. Vous devez vous familiariser avec 2 commandes pour accomplir ceci:


Rechercher des fichiers par nom

find /var/www -name '*.css'

Cela imprimera le chemin d'accès complet / nom de fichier à tous les fichiers sous /var/www qui se terminent par .css . Exemple de sortie:

/var/www/html/text-cursor.css
/var/www/html/style.css

Pour plus d'informations:

man find

Rechercher des fichiers contenant du texte

grep font /var/www/html/style.css 

Cela imprimera toutes les lignes contenant la font motif dans le fichier spécifié. Exemple de sortie:

font-weight: bold;
font-family: monospace;

Un autre exemple:

grep font /var/www/html/

Cela ne fonctionne pas comme vous l'aviez espéré. Vous obtenez:

grep: /var/www/html/: Is a directory

Vous devez grep récursivement pour le faire fonctionner, en utilisant l'option -R :

grep -R font /var/www/html/

Hé bien! Découvrez le résultat de celui-ci:

/var/www/html/admin/index.php:  echo '<font color=red><b>Error: no dice</b></font><br/>';
/var/www/html/admin/index.php:  echo '<font color=red><b>Error: try again</b></font><br/>';
/var/www/html/style.css:  font-weight: bold;
/var/www/html/style.css:  font-family: monospace;

Notez que lorsque grep correspond à plusieurs fichiers, il préfixe les lignes correspondantes avec les noms de fichiers. Vous pouvez utiliser l'option -h pour vous en débarrasser si vous le souhaitez.

Pour plus d'informations:

man grep


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow