{ * info-rmatique ! }

Commandes Bash

  • aide du terminal
    « man comand » pour connaitre opérateurs.
    Recherche dans « man » -> « /… »
    -h ou –help pour aide
    appuyer 2 foios sur TAB pour infos sur completions possibles
  • cat /etc/shells
    connaitre l’interpréteur de commandes installé
  • « cd nom_dir » se deplacer dans dir enfant, sinon cd /path/
    cd ..permet de revenir au répertoire parent.
    cd – permet de revenir au précédent répertoire.
    cd (=cd ~) déplace dans votre répertoire personnel.
    cd revenir à la racine
  • « ls » : Affiche la liste des fichiers présents dans le répertoire courant.
    Les options :
    -a : voir les fichiers cachés,
    -l : voir la liste des fichiers sous la forme longue
    -R : récursive affiche sous rep
    ls -la -R /chemin/Dossier
    -t : classer par date de dernère modif
    lshw (infos hardware) / lscpu (infos cpu)
  • « echo » « … » : afficher chaine
    -n sur la même ligne
    -e interprète les caractères d’échappement (\n -> retour à la ligne)
  • « touch » : créer un fichier
    -p : ne créer aucun fichier
    -m : ne changer que la date de dernière modif
    -a : ne changer que la date de dernier accès
  • « cp » pour copier
    -r : récursive
    -a : copie complète des fichiers et des répertoires -i : demander confirmation
  • « rm », pour supprimer (rmdir si dossier vide)
    Les options courantes :
    « -i » : demande confirmation avant d’effacer un fichier
    « -r » : efface récursivement les fichiers d’un répertoire
  • « mkdir », Créer un répertoire
    Créer des sous-répertoires (arborescence) avec l’option -p :
    mkdir -p repertoire1/repertoire2/repertoire3 (veut aussi dire que si existe déjà, ne la créé pas)
    -m mode pour gérer permissions (ex: -m 700 /home/flo/Coffre)
  • « rmdir » supprimer dossier VIDE
    -p : effacer les répertoires parents
  • « cat » : afficher un fichier à l’écran sans le modifier (uniquement les 24 dernières lignes max)
    -n : affiche n° de ligne
  • « more » affiche page par page et « less » on peut remonter pour consulter le début
  • « mv » pour déplacer ou renommer
  • « nano » : éditer fichier
  • « pwd » : renvoie path du dossier courant
  • « read » : demander saise utilisateur
    read prenom -> « prenom » sera defini comme une variable
    -p : afficher msg
    -n : limiter le nb de caracteres
    -t : limiter le temps autorise
    -s : ne pas afficher la saisie
  • « grep » : permet d’afficher le texte associé à une chaîne de caractères spécifiée. Elle s’utilise ainsi : « grep chaîne nom_du_fichier »
    grep « Invalid » /var/log/auth.log
    -v : ce qui ne correspond pas
    -i : ignorer la casse
    -c : compter le nombre de correspondance
    -o : n’affiche que la partie correspondante de la ligne
  • « kill » : permet d’éteindre un programme. Utile si un programme ne fonctionne pas correctement.
    « kill numéro_de_PID » : le numéro du PID est obtenu en utilisant la commande ps
    kill -9 numero_de_PID #forcer l’arret avec n°PID
    pkill -9 vlc #forcer l’arrêt immédiat d’un processus avec son nom
  • « uname -a » : vérifier version OS
  • « find » chercher
    find [emplacement] -name [nom fichier] -print
    find . option #rechercher dans tous le système -iname -> insenssible à la casse
    find /usr -iname « tra?h. » -print #on ne connaît pas le nom exact du fichier
    find . -name « samba » -print 2> /dev/null #rediriger la sortie d’erreurs (stderr) sur /dev/null (par ex pb de permissions) -type f (file) -type d (dossier) find /var/log/ -type d -name « sm* » #chercher les répertoires dont le nom contient sm
    find ~/Téléchargements -size +20M -size -40M
    find /var/log/samba/ -atime -1 # »atime » -> dernière date d’accès
    -atime / -mtime /ctime :
    -0 / -1 / -2 -> nb de jours depuis aujourd’hui
    -exec : permet d’exécuter une action, doit être la dernière option et finir avec « {} \; »
    find / -uid 500 -exec chown adrien {} \;
    find /tmp -type d -perm /o+w -exec ls -ld {} \; # »other » peuvent écrire (ici dans /tmp) et lister leurs permissions
    « – » : au moins les droits indiqués
    « + » : au moins l’un des droits indiqués
  • « wc » compter
    -l : lignes
    -w : mots
    -c : caractères
    cat [mon_fichier] | wc -l #compter les lignes du fichier
    wc -l < fichier.ext
  • « tail » (ou « head) affiche les 10 dernières lignes du fichier
    tail nom_fichier
    -n spé nombre de ligne
    -f examiner un fichier à la recherche de variations, couramment utilisée pour suivre les fichiers journaux en temps réel
  • « sort » trier ligne d’un fichier
    -d : ordre alphabétique
    -r inverse
    -n ordre croissant
    -h : taille (espace disque) croissant
    -b : ignorer blancs en début de ligne -f : ignorer la casse
    -o : spécifier un fichier de sortie qui écrit le résultat du tri -> « sort -o fichier_sortie fichier_entrée »
  • « ps » : afficher des informations sur les processus en cours d’exécution
    -A afficher tous les proces
    -f permet d’afficher plus d’informations
    -u lister tous les processus d’un utilisateur
    -e listez les processus de tous les utilisateurs du système
    -C filtrer la sortie sur une commande particulière (ex bash)
    -q rechercher un processus par son pid
    -ax montre les processus qui ne vous appartiennent pas
  • « ln » : link, lien synbolique
    ln -s /path nom_donné
  • métacaractères
    * Toute chaîne de caractère, même une chaîne vide
    ? Un caractère quelconque, mais présent
    [xyz] Tout caractère correspondant à l’un de ceux contenus
    [x-y] Tout caractère compris entre « x » et « y »
    [!x-y] Tout caractère qui n’est pas compris entre « x » et « y »
    $ Contenu d’une variable
    « … » Neutralisation de certains métacaractères placés à l’intérieur
    ‘ ‘ Neutralisation de tous les métacaractères placés à l’intérieur
    \ Neutralisation de tout métacaractère placé après
    ( ) Groupement de commandes
    ; Séparateur de commande (permet d’en placer plusieurs sur une ligne)
    < Redirection en entrée à partir d’un fichier
    << Redirection en entrée à partir des lignes suivantes
    > Redirection en sortie vers un fichier
    >> Redirection en sortie vers un fichier en mode « ajout »
    | Redirection vers une commande (pipe mémoire)
    & Lancer simultanément 2 cmd
    && lancer cmd2 si e.s.si cmd1 s’est correctement terminée
    || lancer cmd2 si e.s.si cmd1 code retour dift de 0 (code 0 = ok)
  • globbing
    ls -l pied????.doc (tous fichiers commençant par pied + 4 caract)
    ls -l meilleur.???
    ls -l .pl ls -l a.* (tous fichiers/d commençant par a)
    ls -l [ ps ] * (tous fichiers/d commençant par dont nom contient p,q,r,s)
    ls -l [ 1 – 5 ] *
    grep ‘er$’ /tmp/french.utf8 ($ indique donc la fin de ligne)
    grep ‘^absol’ /tmp/f… (^ indique le début d’une ligne)
    grep ‘^[PR]’ liste.txt (lignes du fichier list.txt qui commencent par P ou Q ou R)
    grep ‘[^AC]’ liste.txt (surbrillance les lignes du fichier list.txt qui commencent par A ou B ou C)
    grep [!4-8] liste.txt (afficher les lignes du fichier list.txt qui commencent par n’importe quel chiffre de 4 à 8)
    ^=!
    grep a$ liste.txt (lignes du fichier list.txt qui se terminent par « a »)
    ls -l {?????.sh,*st.txt} (fichiers dont les noms comportent 5 caractères et l’extension est « sh » ou dont les deux derniers caractères sont « st » et l’extension est « txt »)
    ls a * + ( .bash | .sh ) (rechercher les noms de fichiers qui commencent par le caractère « a » et ont l’extension « bash » ou « sh »
  • « awk » afficher (-F : spé séparateur)
    awk -F , « {print $ 1,$ 2} fichier.csv
    cat /etc/passwd | awk -F : ‘{print $ 1}’
  • « tee » récupère le résultat de la cmd précédante, peut être utilisé avec les privilèges sudo
    sudo cmd1 | sudo tee .Ressources
  • « test »
    ex : test -f /etc/group
    echo $?
    0 #le fichier group existe et est un fichier ordinaire
    test sur fichier
    -e fichier renvoie 0 si fichier existe.
    -d fichier renvoie 0 si fichier existe et est un répertoire.
    -f fichier renvoie 0 si fichier existe et est un fichier ‘normal’.
    -w fichier renvoie 0 si fichier existe et est en écriture.
    -x fichier renvoie 0 si fichier existe et est exécutable.
    f1 -nt f2 renvoie 0 si f1 est plus récent que f2.
    f1 -ot f2 renvoie 0 si f1 est plus vieux que f2
    comparaison numérique
    $A -lt 5 renvoie 0 si $A est strictement inférieur à 5
    $A -le 5 renvoie 0 si $A est inférieur ou égal à 5
    $A -gt 5 renvoie 0 si $A est strictement supérieur à 5
    $A -ge 5 renvoie 0 si $A est supérieur ou égal à 5
    $A -eq 5 renvoie 0 si $A est égal à 5
    $A -ne 5 renvoie 0 si $A est différent de 5
  • « sed » remplacer
    echo « du texte » | sed ‘s/(qui)/(parquoi)’
    echo « jean.durand@gmail.com » | sed ‘s/@/ at /’ | sed ‘s/\./ pOiNt /’
    renvoie:
    jean pOiNt durand at gmail.com
    On remplace le « . » par  » pOiNt  » et le « @ » par  » at « , on voit ici que l’on a mis « \ » devant le « . », le « \ » est le caractère d’échappement : le « . » est alors considéré comme le caractère « . ».
    De même si on veut remplacer « / » par « slash », on utiliserait
    s/\// slash /
    sed ‘s/kikoo/#kikoolol/g’ /etc/config.txt
    Sur fichier : ceci remplace toute occurrence de « kikoo » par « #kikoolol » dans le fichier /etc/config.txt mais ne le modifie pas, le résultat est donné sur la sortie standard. Pour modifier le fichier il faut ajouter l’option -i à sed.
    On peut enfin spécifier l’occurrence à remplacer :
    echo « moimoimoi » | sed ‘s/moi/toi/3’ Donne : moimoitoi
    Utilisation de variables avec sed ce qui permet d’échanger, de déplacer des parties d’une chaîne de caractères. Exemple :
    echo « jean.durand » | sed -r ‘s/(.*).(.*)/\2.\1/’
    (.*) représente l’affectation des variables et \n la n-ième variable, ici on met donc ce qu’il y a avant le point (« \. ») dans \1 et ce qu’il y a après dans \2 puis on met \2 devant \1, on obtient :
    durand.jean
  • « top » : gestion des ressources et processus
  • « mount » : mapper un disque réseau
    mount -t [type] -o [options] //adIP/dossier chemin/dossier/local
  • « curl »
    Permet le transfert de données entre le serveur et l’hôte
    curl –write-out %{http_code} –silent –output /dev/null adIPsrv
  • « date »
    full date ‘%F’ si en premier ‘+’ / heure ‘%T’
    date +%F\ %T
    $(date + »%Y%m%d_%H%M%S »)= $(date +%F\_%T)
    $(date ‘+%Y-%m-%d à %H:%M:%S’)
  • « rsync –version » : verifier si un programme/paquet est bien installé