Invite de commande / prompt
Lecture du prompt
utilisateur@nomduserveur:emplacement_ds_arborescence$
…
~ = répertoire HOME (souvent
/home/*nomutilisateur*/)
Naviguer dans l’arborescence
Exemple d’arborescence
Naviguer
- pour savoir où on est :
pwd(renvoie le chemin complet du répertoire courant) - pour changer de répertoire :
cd(change directory)cd= retour à la maison (HOME)cd ..= aller au répertoire parentcd nomdurépertoire= aller dans le répertoire indiqué en argument
Le nomdurépertoire peut être donné de plusieurs manières
:
- de manière absolue : à partir de la racines,
exemple
/usr/local/bin - de manière relative : à partir du répertoire où on
est
../../usr/local/binoudossier/ssdossier
Lister le contenu
- pour lister le contenu d’un répertoire :
ls(répertoire courant) ouls nomfichier_ou_dossierls -l= affiche le détail du contenuls -al= affiche le détail + les fichiers / dossiers cachés (commence par .)ls -alh= pareil, mais avec des unités “humaines”
Pour être plus efficaces
- la touche
TABcomplète la commande, en une fois si aucune ambiguité - si ambiguité, le deuxième appui sur
TABindique les choix possibles compatibles avec ce qui a déjà été tapé - la flèche vers le haut rappelle les commandes déjà tapées (historique)
- Ctrl+R cherche dans l’historique, chaque ctrl+R remonte d’un cran
Gestion des fichiers
Créer / supprimer des fichiers et répertoires
touch nomdufichier= crée un fichier videmkdir nomdurépertoire= créer un répertoirerm nomdufichier= ReMove supprime un fichier
Pour supprimer un répertoire :
rmdir nomdurepertoiresupprime le répertoire si il est viderm -rf nomdurépertoiresupprime le répertoire et tout son contenu (DANGEREUX)
Renommer un fichier / déplacer un fichier :
mv anciennom nouveaunom: renomme le fichier de ancien nom vers nouveau nommv nomfichier nomrepertoire/: déplace le fichier (sans le renommer) vers le répertoire
Lire / gérer les permissions
Savoir lire toutes les informations d’un fichier :
ls -l nomdufichier
3 niveaux d’autorisations
- pour le propriétaire (u)
- pour un groupe (g)
- pour le reste du monde (o)
3 permissions
- lecture (r)
- écriture (w) : pour fichier = modifier / pour répertoire = créer fichier dedans
- exécution (x) : pour fichier = lancer le programme / pour répertoire = aller dedans
uuugggooo prop gpe
-rw-r--r-- 1 eleve eleve 1385 sept. 14 16:59 ligne-commande.md
Notation des permissions en octal : chaque permission sur 3 bits
exemples :
rwx------ = 111 000 000 = 700
r-xr-xr-- = 101 101 100 = 554
rw-rw-r-- = 110 110 100 = 664
331 = 011 011 001 = -wx-wx--x
753 = 111 101 011 = rwxr-x-wx
Exercice :
- Je veux faire un fichier lisible et exécutable par moi et par le
groupe, mais pas les autres =
r-xr-x--- = 550 - Je veux faire un fichier lisible par moi et le groupe, où moi et le
groupe pouvons écrire dedans, et rien les autres =
rw-rw---- = 660
Pour changer les droits d’un fichier :
chmod XXX nomdufichier (le propriétaire du fichier peut
toujours changer les droits du fichier, même si il s’est enlevé tous les
droits dessus)
Consulter et modifier un fichier
Pour afficher le contenu d’un fichier :
cat nomdufichier= affiche le contenu du fichiermore nomdufichier= affiche le contenu du fichier avec une pagination
Pour modifier un fichier : vi nomdufichier (présent sur
à peu près 100% des machines)
- passer en mode insertion : puis
- enregistrer : puis puis
- pour quitter :
- pour quitter en enregistrant : puis puis puis
- pour quitter sans enregistrer : puis puis puis
Les autres possibles : nano / emacs (selon
les systèmes)
Autres commandes utiles
Documentation
man commande= affiche page de manuel de la commandeapropos mot= liste toutes les pages de manuel qui contiennent ce mot
En passant : RTFM = Read The Fucking Manual
Gestion du système
sudo commande= exécuter une commande en tant que super-utilisateursudo apt update= recharger la listes des programmes disponiblessudo apt install nomduprogramme= installer un programmesudo apt remove nomduprogramme= désinstaller un programme
Exploiter des fichiers texte
wget 'URL'oucurl 'URL'= télécharge l’urlgrep PATTERN FILE...= recherche PATTERN dans FILEcut -d' ' -f1,3 FILE= sélectionne les champs 1 et 3 du fichier FILE, séparés par des espacessort FILE= trie les lignes du fichier FILEsort -u FILE= trie les lignes du fichier FILE en supprimant les doublonswc -l= compte les lignes
Divers
echo 'texte'= affiche le textedate= affiche la datecal= calendrier du mois en courscal mois annee= calendrier du mois / anneegzip fichier= compresse le fichier versfichier.gzgunzip fichier.gz= décompresse le fichier versfichier- (…) à compléter
Pipes et redirections
Redirections
La sortie d’une commande peut être envoyée dans un fichier
date > ladate
cat ladateOn peut aussi ajouter à la fin du fichier au lieu de l’écraser :
echo 'je suis en NSI le' > nsi
date >> nsi
cat nsiPipes
On peut aussi envoyer la sortie d’une commande vers un autre commande :
wget 'https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv'
cat titanic.csv | grep female | wc -l