====== 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