Main commands in Marbec-GPU Terminal

marbec-gpu
guides

Une liste rapide des principales commandes à utiliser dans le terminal Marbec-GPU. | A quick list of the main commands to use within the Marbec-GPU Terminal.

Authors

Auguste Verdier

Wencheng Lau-Medrano

Published

October 23, 2024

Image credits: Kajetan Sumila at Unplash

[FR] Principales commandes dans le Terminal de Marbec-GPU

La première chose à noter est que Marbec-GPU utilise Ubuntu, donc les commandes listées ci-dessous sont celles utilisées sur cet OS. Cet article présente une description des principaux modes d’utilisation de chaque commande. Cependant, si vous avez un besoin spécifique, vous pouvez toujours consulter des forums comme Stack Overflow ou utiliser l’aide intégrée à chaque commande en tapant son nom suivi de --help. Par exemple, pour afficher l’aide de la commande ls, il suffit d’exécuter ls --help dans le Terminal.

Majuscules et minuscules

Comme en R ou Python, l’utilisation des majuscules et minuscules est importante lors de l’exécution des commandes. Par exemple, ls -D n’est pas équivalent à ls -d, donc il faut être attentif.

Créer un dossier

  • Commande : mkdir
  • Utilisation : mkdir chemin/dossier

Lister les fichiers

  • Commande : ls
  • Utilisation : ls chemin/dossier

Principales options :

  • --all (ou -a) : Affiche tous les fichiers et sous-dossiers, y compris ceux qui sont cachés par le système.

Lister les fichiers/dossiers avec leur taille

  • Commande : du
  • Utilisation : du chemin/fichier-dossier.csv

Principales options :

  • --human-readable (ou -h) : Affiche les tailles avec des unités adaptées (Ko, Mo, Go) au lieu d’afficher tout en kilo-octets. Ceci est particulièrement utile pour les fichiers ou dossiers volumineux.

  • --summary (ou -s) : Affiche un résumé, c’est-à-dire uniquement les fichiers et sous-dossiers de premier niveau. Cela permet d’avoir un aperçu rapide sans afficher tous les sous-dossiers internes.

Pour obtenir la liste de tous les fichiers et dossiers d’un dossier avec leurs tailles respectives (ces trois commandes sont équivalentes) :

du chemin/du/dossier/* --human-readable --summarize
du chemin/du/dossier/* -h -s
du chemin/du/dossier/* -hs

Copier-coller

Pour cela, la méthode la plus simple consiste à utiliser la commande cp en combinaison avec les commandes de navigation mentionnées précédemment (par ex. .. pour indiquer un dossier précédent). La syntaxe de base est : cp chemin/source chemin/destination, mais plusieurs cas sont possibles :

  • Copier un fichier dans le même dossier avec un nom différent (créer un duplicata) : cp fichier1.csv fichier1-dup.csv

  • Copier un fichier vers un autre dossier : cp chemin/fichier1.csv dossier/destination

  • Copier plusieurs fichiers vers un autre dossier : cp chemin/fichier1.csv chemin/fichier2.csv dossier/destination

  • Copier un dossier dans un autre dossier : cp chemin/dossier1 chemin/dossier2 --recursive ou cp chemin/dossier1 chemin/dossier2 -r

Note

Par défaut, cp écrasera tout fichier portant le même nom. Pour éviter cela, il est possible d’ajouter l’option -n de la manière suivante : cp chemin/fichier1.csv dossier/destination -n

Couper-coller (et aussi renommer)

Le fonctionnement est similaire au précédent, mais avec la commande mv :

  • Renommer un fichier (dans le même dossier) : mv fichier1.csv fichier2.csv

  • Déplacer un fichier vers un autre dossier : mv chemin/fichier1.csv dossier/destination

  • Déplacer plusieurs fichiers vers un autre dossier : mv chemin/fichier1.csv chemin/fichier2.csv dossier/destination

  • Déplacer un dossier vers un autre dossier : mv chemin/ancien/dossier chemin/nouveau/dossier

Supprimer

Pour cela, nous utiliserons la commande rm comme suit :

  • Supprimer un fichier : rm chemin/fichier.csv

  • Supprimer un dossier (et tout son contenu) : rm chemin/dossier -r

Action irréversible

Bien que dans le Terminal, il soit toujours possible d’annuler une commande en utilisant le raccourci Ctrl+C (ou Cmd+C sur MacOS), une fois la commande rm exécutée, il est impossible de récupérer les fichiers supprimés, car il n’existe pas de corbeille. Soyez donc très prudent en l’utilisant.

Afficher les processus en cours

  • Commande : top

Lors de son exécution, un mode interactif s’affichera dans le Terminal, montrant les processus en cours d’exécution ainsi que les ressources utilisées par chacun (similaire au Gestionnaire des tâches). Pour quitter ce mode interactif, il suffit d’appuyer sur la touche q.

Arrêter l’exécution d’un processus

Si nous souhaitons forcer l’arrêt ou l’annulation d’un processus en cours, nous pouvons utiliser le raccourci Ctrl+C (ou Cmd+C sur MacOS). Il est important de noter que forcer l’arrêt d’un processus impliquant la gestion de fichiers ou dossiers (création, copie, etc.) peut rendre ces fichiers inutilisables.

Afficher un fichier texte

Par défaut, deux outils sont disponibles dans le Terminal : vi et nano. La syntaxe pour les ouvrir est aussi simple que vi chemin/fichier1.txt ou nano chemin/fichier1.txt, où fichier1.txt peut être n’importe quel fichier texte (par ex. un script en R ou Python). Les raccourcis de navigation sont différents dans chaque environnement, mais leur documentation est abondante sur Internet. Choisissez celui qui vous convient le mieux.

Créer un lien symbolique (commande ln)

La création de liens symboliques (symlinks) est cruciale pour une gestion efficace du flux de travail, car ils permettent aux utilisateurs de référencer des fichiers et des répertoires sans dupliquer les données, ce qui permet d’économiser un espace de stockage précieux. Ils simplifient également l’organisation des fichiers en permettant un accès facile aux ensembles de données ou aux installations logicielles fréquemment utilisés dans différents répertoires. Ceci est particulièrement utile lors de la gestion de simulations à grande échelle ou de ressources partagées, en assurant la cohérence et en minimisant la redondance dans le cadre du HPC.

Prenons un exemple : Imaginez que vous travaillez sur Marbec-GPU et que votre projet nécessite un accès fréquent à un grand ensemble de données stocké dans /shared/storage/datasets/big_data.csv. Au lieu de taper ce long chemin à chaque fois ou de copier le fichier dans votre répertoire de travail (ce qui gaspille de l’espace de stockage), vous pouvez créer un lien symbolique dans votre répertoire personnel :

ln -s /shared/storage/datasets/big_data.csv ~/big_data.csv`

Maintenant, vous pouvez simplement faire référence à ~/big_data.csv dans vos scripts, ce qui rend votre flux de travail plus efficace. Si le jeu de données est mis à jour, le lien symbolique pointe toujours vers la dernière version sans qu’aucune modification ne soit nécessaire.


[EN] Main commands in Marbec-GPU Terminal

The first thing to keep in mind is that Marbec-GPU has Ubuntu installed, so the commands listed below will be the same as the ones used in that OS. This article will show a description of the main usage modes for each command, but if you have any additional requirements, you can always search in forums like Stackoverflow or check the help for each command, which consists of placing the command name followed by --help. For example, if I want to know the help for the ls command, just run ls --help in the Terminal.

Upper and lower case

As in R or Python, the use of upper or lower case when indicating an option does matter. For example, ls -D is not equivalent to ls -d, so be carefull.

Browsing within folders

  • Command: cd
  • Usage: cd path/folder

To indicate a previous position (folder), you will use the statement .. as follows: ../path/folder1 (this indicates that there is a folder called path from the folder where you are, and that that has a folder called folder1 as well).

Create a folder

  • Command: mkdir
  • Usage: mkdir path/folder

Get the content of a folder as a list

  • Command: ls
  • Usage: ls path/folder/

Main options:

  • --all (o -a): Displays all files and subfolders, including those protected (hidden) by the system.

Generate a list of files/folders and display the size of each item

  • Command: du
  • Usage: du path/to/file.csv o du path/to/folder

Main options:

  • --human-readable (o -h): changes the units dynamically to avoid displaying all Kb. This is especially useful when you have large objects (subfolders or files).

  • --summary (o -s): displays a summary table, i.e. it only includes the subfolders and files present at the first search level. This is useful when we just want to take a quick look and avoid displaying a complete listing of ALL internal subfolders.

If I want to get a list of all the files and folders inside a folder with their respective sizes (the three options are equivalent):

du ruta/de/folder/* --human-readable --summarize
du ruta/de/folder/* -h -s
du ruta/de/folder/* -hs

Copy-paste

For this, the simplest way is through the cp command and making use of the navigation commands cited in this post (e.g. .. to indicate a previous folder). The basic syntax is the following: cp path/origin /path/destination, but there are different possible cases:

  • Copy a file into the same folder, but with a different name (create duplicate): cp file1.csv file1-dup.csv.

  • Copy a file to another folder: cp path/file1.csv path/destination.

  • Copy more than one file to another folder: cp path/file1.csv path/file2.csv folder/destination

  • Copy a folder to another folder: cp path/folder1 path/folder2 --recursive or cp path/folder1 path/folder2 -r.

Note

By default, cp will overwrite any file with the same name. To avoid this, it is possible to add the -n option as follows: cp path/from/file1.csv path/destination -n.

Cut-paste (and also rename)

It will be very similar to the above, but through the mv command:

  • Rename a file (within the same folder): mv file1.csv file2.csv

  • Move a file to another folder: mv path/file1.csv path/to/destination

  • Move one file to another folder: mv path/file1.csv path/file2.csv path/destination

  • Move one folder to another folder: mv path/old/folder path/new/folder

Delete

For this, we will use the rm command as follows:

  • Delete a file: rm path/to/file.csv

  • Delete a folder (and all its contents): rm path/to/folder -r

No turning back

While inside Terminal it is always possible to cancel a command using the shortcut Ctrl+C (or Cmd+C on MacOS), once the rm command completes its work, there is no way to revert the deletion or recover it from a recycle garbage can, so be very careful when using it.

Display current processes

  • Command: top

When you run it, it will show in interactive mode in Terminal the processes that are running, as well as the resources used by each of them (basically like a Task Manager). To exit this interactive mode, just press the q key.

Stop a process

If we want to force the closing or the cancellation of a process already started, we can use the shortcut Ctrl+C (or Cmd+C in MacOS). It is important to keep in mind that forcing the closing of a process that had in progress the handling of files or folders (creation, copy, etc.) can leave the generated files unusable.

Viewing a plain text file

By default, there are two tools available from Terminal: vi and nano. The syntax for their execution is as simple as vi path/file1.txt or nano path/file1.txt, where file1.txt can be any plain text file (e.g. an R or Python script). The navigation shortcuts within each of these environments are different, but documentation is abundant on the Internet. Choose the one you like best.