====== TERMINAL & COMMANDES BASH/LINUX ======
Ici une page mémo rassemblant quelques commandes de bases pour les débutants, notamment utile pour configurer une RPI.\\
à compléter…
=== lister le contenu d'un dossier "truc" ===
$ ls truc
=== se déplacer dans un dossier ===
$ cd dossier
=== créer un dossier ===
$ mkdir nouveaudossier
=== créer un fichier test.txt ===
$ touch test.txt
=== chercher et deplacer des fichiers par leur extension dans un dosser "destination" existant ===
mv $(find -iname *.wav) /chemin/desitnation/
=== copier tous les fichiers.wav de plusieurs dossiers vers un dossier "destination" ===
cp */*.wav /destination
=== deplacer les .WAV de plusieurs sous-dossiers vers un dossier "destination" ===
find */ . -name "*.WAV" -print0 | xargs -0 -I {} mv {} /dest/
=== nano ===
Pour éditer un fichier (ici hostname & hosts) :
sudo nano /etc/hosts
sudo nano /etc/hostname
(pour les commandes en bas de console, "^" signifie la touche contrôle "ctrl")
=== SSH ===
Accès à distance d'un ordi (ici un RPI dont le nom -hostname- est "rpi2", et "pi" le nom d'utilisateur)
ssh pi@rpi2.local
-X : Accès à distance avec interface graphique.
ssh -X pi@rpi2.local
Comme cette connexion peut être instable, préferer ouvrir d'abord une connexion ssh, puis ds un nouvel oungle du terminal, une seconde ssh -X
=== gestion du compte ===
si mdp perdu, switch user to root :: su sans user name apres
~$ su
changer le password
~$ passwd "username"
quitter le root
~$ ctrl d
=== tricks BASH ===
Lister les programmes en executions
~$ ps -ax
Suspendre un programme (background)
~$ ctrl z
rappeler un programme suspendu (de bg a fg)
~$ fg
BG : passer un processus en cours en arriere plan
~$ bg
lancer un processus en arrière plan avec "&"
~$ mon_application &
Copier un fichier vers une destination
~$ scp id@hostname:/home/pi/file-to-copie id@hostnamedest:/home/folder/
Aller en début de ligne
~$ ctrl A
Aller en fin de ligne
~$ ctrl E
Lister les opérations en cours
~ $ top
# ou
ps -ax (process en cours)
# ou
pidof pd (pour recuperer un numéro de process)
Supprimer une opération en cours (réperer son numéro)
~ $ kill NB
=== flux , chemins, log... ===
affiche le contenu d'un fichier
~$ cat nom_du_fichier
affiche uniquement la fin d'un fichier (utile pour les longs fichiers type logs)
~$ tail nom_du_fichier
chercher une string qui
~$ grep letrucachercher lefichierdslequeloncherce
~$ grep -r letrucachercher ledossierdslequeloncherce
(cf man grep)
print working directory
~$ pwd
=== renommer récursivement ===
un petit script python3 qui peut être pratique pour renommer récursivement fichiers et dossier
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
import os, glob
dossier_a_traiter = "/exemple" # absolu ou relatif au chemin du script
mot_a_remplacer_fichier = "SEQ derush" # dans les fichiers
remplacer_par_fichier = "" # peut rester vide pour enlever le mot à remplacer
mot_a_remplacer_dossier = " "
remplacer_par_dossier = "" # peut rester vide pour enlever le mot à remplacer
def renameFiles(path) :
for name in glob.glob(path + "/*") :
if os.path.isdir(name) :
if name.count(mot_a_remplacer_dossier) :
os.rename(name, name.replace(mot_a_remplacer_dossier, remplacer_par_dossier))
print(name + " -> " + name.replace(mot_a_remplacer_dossier, remplacer_par_dossier))
name = name.replace(mot_a_remplacer_dossier, remplacer_par_dossier)
renameFiles(name)
elif os.path.isfile(name) and name.count(mot_a_remplacer_fichier):
os.rename(name, name.replace(mot_a_remplacer_fichier, remplacer_par_fichier))
print(name + " -> " + name.replace(mot_a_remplacer_fichier, remplacer_par_fichier))
renameFiles(dossier_a_traiter)
==== CLONAGE SDCARD OSX ====
/* clone SDCARD OSX */
diskutil list
sudo dd if=/dev/disk1 of=~/Desktop/raspberrypi.dmg
/* restaure SDCARD OSX */
diskutil list
diskutil unmountDisk /dev/disk1
sudo newfs_msdos -F 16 /dev/disk1
sudo dd if=~/Desktop/raspberrypi.dmg of=/dev/disk1
==== AUDIO====
/* lister les interfaces audio */
aplay -l