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