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

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

tricks BASH

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