du chemin/du/dossier/* --human-readable --summarize
du chemin/du/dossier/* -h -s
du chemin/du/dossier/* -hsImage 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.
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) :
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.csvCopier un fichier vers un autre dossier :
cp chemin/fichier1.csv dossier/destinationCopier plusieurs fichiers vers un autre dossier :
cp chemin/fichier1.csv chemin/fichier2.csv dossier/destinationCopier un dossier dans un autre dossier :
cp chemin/dossier1 chemin/dossier2 --recursiveoucp chemin/dossier1 chemin/dossier2 -r
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.csvDéplacer un fichier vers un autre dossier :
mv chemin/fichier1.csv dossier/destinationDéplacer plusieurs fichiers vers un autre dossier :
mv chemin/fichier1.csv chemin/fichier2.csv dossier/destinationDé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.csvSupprimer un dossier (et tout son contenu) :
rm chemin/dossier -r
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.
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.csvodu 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/* -hsCopy-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/destinationCopy a folder to another folder:
cp path/folder1 path/folder2 --recursiveorcp path/folder1 path/folder2 -r.
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.csvMove a file to another folder:
mv path/file1.csv path/to/destinationMove one file to another folder:
mv path/file1.csv path/file2.csv path/destinationMove 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.csvDelete a folder (and all its contents):
rm path/to/folder -r
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.
Creating a 📌symbolic link (command ln)
Creating symbolic links (symlinks) is crucial for efficient workflow management, because they allow users to reference files and directories without duplicating data, saving valuable storage space. They also simplify file organization by enabling easy access to frequently used datasets or software installations across different directories. This is particularly useful when handling large-scale simulations or shared resources, ensuring consistency and minimizing redundancy in the HPC setting.
Let’s do it using an example: Imagine you are working on Marbec-GPU, and your project requires frequent access to a large dataset stored in /shared/storage/datasets/big_data.csv. Instead of typing this long path every time or copying the file to your working directory (which wastes storage), you can create a symbolic link in your home directory:
ln -s /shared/storage/datasets/big_data.csv ~/big_data.csv`Now, you can simply refer to ~/big_data.csv in your scripts, making your workflow more efficient. If the dataset gets updated, the symlink still points to the latest version without requiring any changes.