Linux commands, vi

Remplacement d'une chaîne de caractères avec vi

:g/chaîne_recherchée/s//chaîne_ remplacement/g

:g/pain/s//main/g

Process appartenant à un utilisateur :

ps -aux | grep $USER

ps xjf --user $USER

Tuer des procees en cours :

ps aux | grep chr | grep ftp | awk '{print "kill -9 " $2}'

puis copier coller les kill affichés par la commande ci-dessus pour les exécuter

lsof -p process

Comparaison de deux repertoires, fichiers :

meld rep1 rep2

tkdiff file1 file2

vi -d file1 file2

Envoyer la sortie standard (1) et les erreurs (2) d'un commande dans un meme fichier :

./launch_tests_with_coverage.sh > results_tests_on_scylla 2>&1

Version du noyau d'une machine : uname -a

Linux tioman.cerfacs.fr 4.15.12-201.fc26.x86_64 #1 SMP Thu Mar 22 19:24:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

sinon voir fichiers :
cat /proc/meminfo
cat /proc/cpuinfo

ou "uname -r"

Commande pour avoir la memoire d'une machine :

cat /proc/meminfo

IP d'une machine :

hostname -i

nslookup nom_machine

Pour savoir si une machine est connectée :

ping nom_machine

Pour savoir ensuite qui travaille sur une machine : se connecter

faire la commande 'w'

Version d'un compilateur pgf90 :

pgf90 -V

Version d'une librairie openmpi :

ompi_info

Netcdf : pour trouver les include et les libs sur une machine

[dast@ader ~]$ /usr/local/netcdf/4.4.1/bin/nf-config --fflags -I/usr/local/netcdf/4.4.1/include
[dast@ader ~]$ /usr/local/netcdf/4.4.1/bin/nf-config --flibs -L/usr/local/netcdf/4.4.1/lib -lnetcdff -Wl,-rpath,/usr/local/hdf5/1.8.16/lib -L/usr/local/hdf5/1.8.16/lib -Wl,-rpath,/usr/local/netcdf/4.4.1/lib -L/usr/local/netcdf/4.4.1/lib -lnetcdf -lnetcdf

Screen : permet de lancer un process en batch sur le noeud de login scylla et de se deloguer

screen -S cpl6273wx : pour creer le screen cpl6273wx

screen -r cpl6273wx : pour s'attacher au screen (et pouvoir lancer des commandes)

screen -d : pour se detacher du screen (mais il continue a tourner en background)

screen -ls
> There is a screen on: 14314.cpl6273wx (Detached)
1 Socket in /var/run/screen/S-cglo355.

Pour tuer le screen :

screen -r cpl6273wx

exit

Remove dead screens with 'screen -wipe' ID

ls -l /var/run/screen/S-coquart/

rm /var/run/screen/S-coquart/8718.era5_hfls

Memoire occupee par tous les fichiers (* et .*) dans un repertoire donne  (a utiliser notamment pour faire du menage sur le $HOME) :

du -sk * .??* | sort -nr

Imprimer un fichier texte :

paps file.txt > file.ps

evince file.ps    + choix de l'imprimante

Commande pour compter les fichiers :

find . -type f | wc -l

Commande pour compter les répertoires :

find . -type d  | wc -l

Commande pour trouver un fichier :

find . -type f -name toto

Creer un lien symbolique sur un fichier existant :

ln   -sf    fichier_original_existant     lien_symbolique

Commande pour convertir un fichier d'un format a un autre (ps to gif, png to pdf ...)

convert file.ps file.gif  ;  convert file.png file.pdf

Commande pour effacer des fichiers qui n'appartiennent pas au $USER dans un repertoire :

rm  -f   repertoire/*     (-f == force)

Sed :

To run multiple sed commands, you can use the -e option : sed -e 's/This/That/ ; s/test/another test/' ./myfile 

The g flag means global, which means a global replacement for all occurrences : sed 's/test/another test/g' myfile

The p flag prints each line contains a pattern match, you can use the -n option to print the modified lines only : sed -n 's/test/another test/p' myfile

Changement des droits sur des fichiers (pas des repertoires) :

pour changer  les permissions des fichiers en 644 dans le repertoire courant 
find . -type f -exec chmod 644 {} ;
pour changer  les permissions des repertoires en 755 dans le repertoire courant 
find . -type d -exec chmod 755 {} ;

Synchronisation de fichiers (rsync mieux que scp ou cp ou mv) :

rsync -av --copy-links /tmp/foo/ /tmp/bar : will transfer only all files INSIDE the specified source directory foo

ou

rsync -av --copy-links /tmp/foo /tmp/bar : will transfer the source directory foo itself with all files inside

Listing uniquement des repertoires (sans les fichiers dedans) :

ls -d  */   ou ls  -d  rep_nom*/

Processus en arrière plan :

L'option &, bien qu'assez couramment utilisée, a ce défaut non négligeable : le processus reste attaché à la console, ce qui veut dire que si la console est fermée ou que l'utilisateur se déconnecte, le processus sera automatiquement arrêté. Si on veut que le processus continue, il faut lancer la commande via nohup

Merger plusieurs fichiers pdf en un seul :

pdfunite fiel1.pdf file2.pdf file3.pdf  output.pdf

Connexion par clé ssh :

cd .ssh
ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/globc/coquart/.ssh/id_rsa): id_rsa_climserv
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_climserv.
Your public key has been saved in id_rsa_climserv.pub.

ssh -i id_rsa_climserv lcoquart@machine.fr

Published on  November 11th, 2023