Vous êtes sur la page 1sur 34

Filière Dev C-C++, Linux embarqué

Commandes Linux
du 19 au 21 février 2019

© Copyright 2019 AJC formation - Sébastien Huss


Installation de Debian
en VM

© Copyright 2019 AJC formation - Sébastien Huss


Table des matières 3/34

4. Introduction
4. Qu'est-ce qu'un shell ?
5. Présentation des différents shells
6. Comparaison des shells
7. Aide
7. En ligne
8. Internet
9. Variables
9. Introduction
10. Standard
11. Prompt
12. Substitutions
13. Autres substitutions
14. Commandes internes
14. Répertoires
15. Variables
16. Evaluation
17. Visibilité des variables

18. Processus
19. Divers
20. Commandes de base
20. Lecture de chiers
21. Compression
22. Impression
23. Gestion du temps
24. Administration de base
25. Combinaison
25. Flux
26. Tubes (pipe)
27. Redirection
28. Utilitaires
28. Texte
29. Comparaisons
30. Recherche
31. Conversion
32. divers
33. sed et regexp
34. awk

© Copyright 2019 AJC formation - Sébastien Huss


Introduction 4/34
Qu'est-ce qu'un shell ?

Une interface système ou coque logicielle (shell en anglais) est une


couche logicielle qui fournit l'interface utilisateur d'un système
d'exploitation. Il correspond à la couche la plus externe de ce dernier.
L'interface système est utilisée comme diminutif de l'interface
utilisateur du système d'exploitation.

© Copyright 2019 AJC formation - Sébastien Huss


Introduction 5/34
Présentation des différents shells

1971. Ken Thomson shell


1977. Stephen Bourne : sh
1978. Bill Joy : csh
1983. David Korn : ksh
1988. bash
1989. Kenneth Almquist : ash
1990. Paul Falstad : zsh

© Copyright 2019 AJC formation - Sébastien Huss


Introduction 6/34
Comparaison des shells

shell Job Alias Redirection Historique Modi cation Mode


de
commande
sh Non Non Oui Non Non N/A
csh Oui Oui Non Oui Non N/A
ksh Oui Oui Oui Oui Oui vi
bash Oui Oui Oui Oui Oui emacs
tcsh Oui Oui Non Oui Oui emacs
zsh Oui Oui Oui Oui Oui emacs

© Copyright 2019 AJC formation - Sébastien Huss


Aide 7/34
En ligne

-h ou --help
man
Les sections
1. Commandes utilisateur
2. Appels système
3. Fonctions de bibliothèque
4. Fichiers spéciaux
5. Formats de chier
6. Jeux
7. Divers
8. Administration système
9. Interface du noyau Linux

whatis
info

© Copyright 2019 AJC formation - Sébastien Huss


Aide 8/34
Internet

avec google man


stackover ow
#linux sur freenode (irc)

© Copyright 2019 AJC formation - Sébastien Huss


Variables 9/34
Introduction

Qu'est-ce qu'une variable ?


En shell, toujours précédée de $
Notation complète : ${VAL}
Notation légère : $VAL

© Copyright 2019 AJC formation - Sébastien Huss


Variables 10/34
Standard

$SHELL Shell actif /bin/bash


$PWD Répertoire courant /tmp/test
$USER Utilisateur courant seb
$LANG Langue d'af chage fr_FR.UTF-8
$HOME Répertoire personnel /home/seb
$PS1 Prompt seb@localhost:~$

© Copyright 2019 AJC formation - Sébastien Huss


Variables 11/34
Prompt

Simplement :
printf 'Entrer une valeur: '
read VAL
echo $VAL

Avec select :
select VAL in "homme" "femme";do
echo $VAL
break;
done

© Copyright 2019 AJC formation - Sébastien Huss


Variables 12/34
Substitutions
$ VAL="/home/seb/projects/formations/ajc/embarque_2_commande.linux.html"
$ echo ${VAL}
/home/seb/projects/formations/ajc/embarque_2_commande.linux.html
$ echo ${VAL#/*/}
seb/projects/formations/ajc/embarque_2_commande.linux.html
$ echo ${VAL##*/}
embarque_2_commande.linux.html
$ echo ${VAL%.*}
/home/seb/projects/formations/ajc/embarque_2_commande.linux
$ echo ${VAL%%.*}
/home/seb/projects/formations/ajc/embarque_2_commande
$ echo ${VAL/a/#}
/home/seb/projects/form#tions/ajc/embarque_2_commande.linux.html*
$ echo ${VAL//a/#}
/home/seb/projects/form#tions/#jc/emb#rque_2_comm#nde.linux.html
$ echo ${VAL:6:4}
seb/
$ echo ${#VAL}
64

© Copyright 2019 AJC formation - Sébastien Huss


Variables 13/34
Autres substitutions
$ VAL="manuel"
$ echo ${VAL}
manuel
$ echo ${VAL^}
Manuel
$ echo ${VAL^^}
MANUEL
$ VAL="COUCOU"
$ echo $VAL
COUCOU
$ echo ${VAL,}
cOUCOU
$ echo ${VAL,,}
coucou
$ echo ${X:-"valeur"}
valeur
$ echo $X

$ echo ${X:="valeur"}
valeur
$ echo $X
valeur

© Copyright 2019 AJC formation - Sébastien Huss


Commandes internes 14/34
Répertoires

ls
cd
pwd
pushd
popd
dirs

© Copyright 2019 AJC formation - Sébastien Huss


Commandes internes 15/34
Variables

set
let
unset
typeset
declare

© Copyright 2019 AJC formation - Sébastien Huss


Commandes internes 16/34
Evaluation

de variable
$ A=10
$ echo 'Il y a $A enfants'
Il y a $A enfants
$ echo "Il y a $A enfants"
Il y a 10 enfants

des jokers et caratères spéciaux


$ echo *
$ ls -l *.??
$ echo "\$ \\"

© Copyright 2019 AJC formation - Sébastien Huss


Commandes internes 17/34
Visibilité des variables
#!/bin/bash
setVAR() {
local A=setVAR
B=setVAR
export C=setVAR
echo "A=$A B=$B C=$C"
}
echo "A=$A B=$B C=$C"
A=script
B=script
C=script

echo "A=$A B=$B C=$C"


setVAR
echo "A=$A B=$B C=$C"

© Copyright 2019 AJC formation - Sébastien Huss


Commandes internes 18/34
Processus

Lancement avec &


Utilisation de [ctrl]+[z] (souvent noté ^z)
jobs
bg et fg
nohup
wait
exec (substitution de processus)
ulimit
kill

© Copyright 2019 AJC formation - Sébastien Huss


Commandes internes 19/34
Divers

history et utilisation de !
alias et unalias
echo
source ou .

© Copyright 2019 AJC formation - Sébastien Huss


Commandes de base 20/34
Lecture de fichiers

cat
head et tail
more ou less
vi ou view

© Copyright 2019 AJC formation - Sébastien Huss


Commandes de base 21/34
Compression

Algorithme Compression Décompression Extention Notes


zip zip unzip .zip Compatible
avec winzip
rar rar unrar .rar Compatible
avec winrar
unix compress uncompress .Z Faible
compress compression
GNU zip gzip gunzip .gz
zcat
bzip2 bzip2 Meilleure
bunzip2 .bz2
compression
A noter : les outils de compression Unix ne compressent qu'un chier
à la fois. On utilise tar pour faire une archive
© Copyright 2019 AJC formation - Sébastien Huss
Commandes de base 22/34
Impression

lpr
lpq
CUPS

© Copyright 2019 AJC formation - Sébastien Huss


Commandes de base 23/34
Gestion du temps

sleep
date
cal

© Copyright 2019 AJC formation - Sébastien Huss


Commandes de base 24/34
Administration de base

dmesg : Message du kernel


journalctl : Accès aux logs
useradd, userdel, usermod, compgen -u
groupadd, groupdel, groupmod, groups, compgen -g
systemctl : gestion des services

© Copyright 2019 AJC formation - Sébastien Huss


Combinaison 25/34
Flux

Text terminal

#0 stdin Keyboard

Process #1 stdout
#2 stderr Display

© Copyright 2019 AJC formation - Sébastien Huss


Combinaison 26/34
Tubes (pipe)

$ cat /var/log/*log*|grep -i ERROR|more

© Copyright 2019 AJC formation - Sébastien Huss


Combinaison 27/34
Redirection

stdin stdout
$ grep -i ERROR </var/log/syslog $ echo "Ligne 1">/tmp/fichier

$ cat <<ENDMSG $ echo "Ligne n">>/tmp/fichier


Tout ce qui est ici
passe au travers de "cat" pour être affiché
Jusqu'au marqueur final
ENDMSG
stderr
$ rm /tmp/nonexist 2>/dev/null

"merge"
$ rm /tmp/nonexist 2>&1

© Copyright 2019 AJC formation - Sébastien Huss


Utilitaires 28/34
Texte

tr : "Translation" de caractères
nl : Af cher un chier en numérotant les lignes
sort et uniq
wc : Compter les caractères, mots et lignes
grep : Rechercher un mot clé dans du texte

© Copyright 2019 AJC formation - Sébastien Huss


Utilitaires 29/34
Comparaisons

diff
cmp
comm
paste

© Copyright 2019 AJC formation - Sébastien Huss


Utilitaires 30/34
Recherche

find
locate
updatedb

© Copyright 2019 AJC formation - Sébastien Huss


Utilitaires 31/34
Conversion

file
iconv Convertir d'un encodage à l'autre
od Af cher les octets d'un chier
convert Convertir une image (du package "ImageMagik")

© Copyright 2019 AJC formation - Sébastien Huss


Utilitaires 32/34
divers

basename et dirname
printf
seq
xargs
tee
touch
clear
nice et renice
ln

© Copyright 2019 AJC formation - Sébastien Huss


Utilitaires 33/34
sed et regexp

Remplacer head
$ sed 's/:/|/'</etc/passwd $ sed -n '1,10p' </etc/passwd
$ sed 's/:/|/g'</etc/passwd

$ ls -1 /usr/sbin/*|sed 's/\/usr\/sbin\//PREFIX
grep
$ ls -1 /usr/sbin/*|sed 's|/usr/sbin/|PREFIX-|'
$ sed -n '/BASH/Ip' </etc/passwd

Expressions régulières $ sed -n '/bash/!p' </etc/passwd

$ sed 's/:.*//' </etc/passwd


$ sed 's/:[^:]*$//' </etc/passwd

© Copyright 2019 AJC formation - Sébastien Huss


Utilitaires 34/34
awk

Rechercher Variables
$ awk '/smtp/'</etc/services $ awk -F: -v U=seb '$1==U{print $7}'</etc/passw
$ awk '$1=="smtp"'</etc/services $ awk -F: 'BEGIN{U="seb"}$1==U{print $7}'</etc/
$ awk '$1=="smtp"{print $2}'</etc/services

Expressions régulières sur un Début et n


champ $ awk 'BEGIN{c=0}{c++}END{print c}'</etc/passwd
$ awk 'END{print NR}'</etc/passwd
$ awk '$2~/udp$/{print $1}'</etc/services

Séparateur de champs head

$ awk -F: '$1=="seb"{print $7}'</etc/passwd $ awk 'NR<=10'</etc/passwd

grep
$ awk '/seb/||/root/'</etc/passwd

© Copyright 2019 AJC formation - Sébastien Huss

Vous aimerez peut-être aussi