FAQ LinuxConsultez toutes les FAQ

Nombre d'auteurs : 54, nombre de questions : 240, dernière mise à jour : 9 novembre 2017  Ajouter une question

 

Cette FAQ a été réalisée à partir des contributions des membres du forum Linux de Developpez.com et de l'équipe de rédaction. Merci à eux !

Nous sommes perpétuellement à l'écoute de vos suggestions et corrections, n'hésitez pas à nous en faire part sur le forum.


SommaireLe ShellLes commandes de bases (17)
précédent sommaire suivant
 

Dans votre terminal, tapez la commande suivante :

Code : Sélectionner tout
help -d ''
Ainsi, vous obtiendrez le résultat suivant :

% - Resume job in foreground.
(( ... )) - Evaluate arithmetic expression.
. - Execute commands from a file in the current shell.
: - Null command.
[ - Evaluate conditional expression.
[[ ... ]] - Execute conditional command.
alias - Define or display aliases.
bg - Move jobs to the background.
bind - Set Readline key bindings and variables.
break - Exit for, while, or until loops.
builtin - Execute shell builtins.
caller - Return the context of the current subroutine call.
case - Execute commands based on pattern matching.
cd - Change the shell working directory.
command - Execute a simple command or display information about commands.
compgen - Display possible completions depending on the options.
complete - Specify how arguments are to be completed by Readline.
compopt - Modify or display completion options.
continue - Resume for, while, or until loops.
coproc - Create a coprocess named NAME.
declare - Set variable values and attributes.
dirs - Display directory stack.
disown - Remove jobs from current shell.
echo - Write arguments to the standard output.
enable - Enable and disable shell builtins.
eval - Execute arguments as a shell command.
exec - Replace the shell with the given command.
exit - Exit the shell.
export - Set export attribute for shell variables.
false - Return an unsuccessful result.
fc - Display or execute commands from the history list.
fg - Move job to the foreground.
for - Execute commands for each member in a list.
for (( - Arithmetic for loop.
function - Define shell function.
getopts - Parse option arguments.
hash - Remember or display program locations.
help - Display information about builtin commands.
history - Display or manipulate the history list.
if - Execute commands based on conditional.
jobs - Display status of jobs.
kill - Send a signal to a job.
let - Evaluate arithmetic expressions.
local - Define local variables.
logout - Exit a login shell.
mapfile - Read lines from the standard input into an indexed array variable.
popd - Remove directories from stack.
printf - Formats and prints ARGUMENTS under control of the FORMAT.
pushd - Add directories to stack.
pwd - Print the name of the current working directory.
read - Read a line from the standard input and split it into fields.
readarray - Read lines from a file into an array variable.
readonly - Mark shell variables as unchangeable.
return - Return from a shell function.
select - Select words from a list and execute commands.
set - Set or unset values of shell options and positional parameters.
shift - Shift positional parameters.
shopt - Set and unset shell options.
source - Execute commands from a file in the current shell.
suspend - Suspend shell execution.
test - Evaluate conditional expression.
time - Report time consumed by pipeline's execution.
times - Display process times.
trap - Trap signals and other events.
true - Return a successful result.
type - Display information about command type.
typeset - Set variable values and attributes.
ulimit - Modify shell resource limits.
umask - Display or set file mode mask.
unalias - Remove each NAME from the list of defined aliases.
unset - Unset values and attributes of shell variables and functions.
until - Execute commands as long as a test does not succeed.
variables - Common shell variable names and usage.
wait - Wait for job completion and return exit status.
while - Execute commands as long as a test succeeds.
{ ... } - Group commands as a unit.

Mis à jour le 22 avril 2016 LittleWhite

Pour exécuter un programme, il faut dans un premier temps que celui-ci possède le format adéquat (elf) et puisse être exécuté sur son architecture (i386, mips, sparc, etc.). Vous pouvez vérifier cela avec la commande file :

Code bash : Sélectionner tout
$ file nom_du_programme

Ensuite, il faut que le fichier possède les droits en exécution pour vous :
Code bash : Sélectionner tout
$ chmod u+x programme

Il ne vous reste plus qu'à l'exécuter en spécifiant le chemin absolu du fichier :
Code bash : Sélectionner tout
$ /usr/local/bin/xmms

Cela est assez fastidieux. Pour résoudre ce problème, il suffit de rajouter dans la variable PATH de votre Shell le chemin de l'exécutable. Pour le Shell sh/Bash :
Code bash : Sélectionner tout
$ export PATH="${PATH}:/usr/local/bin"

Pour les Shells csh, tcsh :
Code bash : Sélectionner tout
$ setenv PATH "${PATH}:/usr/local/bin"

Mis à jour le 22 décembre 2013 nyal ok.Idriss

Sans option, la commande export affiche la liste des variables d'environnement – tandis que, toujours sans option, la commande set, et en moins exhaustive, mais fonctionnant avec tous les Shells la commande env, affichent la liste des variables locales :

Code bash : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ export 
(...) 
declare -x HOME="/u/moi" 
declare -x PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin" 
declare -x LOGNAME="moi" 
declare -x SHELL="/bin/bash" 
declare -x MAIL="/mail/moi/inbox" 
declare -x USER="moi" 
declare -x HOSTNAME="moi.exemple" 
(...) 
$ set  # ou env 
(...) 
HOME=/u/moi 
HOSTNAME=moi.exemple 
HOSTTYPE=i686 
IFS=$' \t\n' 
INPUTRC=/etc/inputrc 
LD_LIBRARY_PATH=/usr/local/lib 
MAIL=/mail/moi/inbox 
(...)

Mis à jour le 22 décembre 2013 armatatuxa ok.Idriss

Ouvrez votre éditeur de texte et tapez les différentes commandes que le script exécutera :

Code bash : Sélectionner tout
1
2
3
4
#!/bin/bash 
echo "lancement d'un script simple.." 
# on lance mozilla 
mozilla&

La ligne #!/bin/bash (ou shebang) est une convention. Cela signifie que l'interpréteur de commande sera le Bourne Again Shell (bash). Si rien n'est précisé, il prendra le Shell par défaut de l'utilisateur.

Attention à ne pas confondre le shebang avec une ligne en commentaire (# ceci est un commentaire).

Pour exécuter le script vous devrez au préalable appliquer les permissions nécessaires :
Code bash : Sélectionner tout
1
2
$ chmod +x nomduscript.sh 
$ ./nomduscript.sh

Mis à jour le 23 octobre 2013 Francois Trazzi ok.Idriss

Code bash : Sélectionner tout
$ alias ll='ls -l'

Grâce à cet alias, lorsque vous taperez :
Code bash : Sélectionner tout
$ ll

Dans votre terminal, cela exécutera la commande :
Code bash : Sélectionner tout
$ ls -l

Pour voir la liste des alias activés, vous pouvez taper :
Code bash : Sélectionner tout
$ alias

Pour rendre cet alias persistant, vous pouvez l'ajouter au script par défaut lancé à démarrage d'une session Shell. Sous GNU/Linux avec Bash il s'agit généralement du fichier ~/.bashrc :
Code bash : Sélectionner tout
1
2
echo "alias ll='ls -l'" >> ~/.bashrc 
source ~/.bashrc

Mis à jour le 23 octobre 2013 Francois Trazzi ok.Idriss

Il existe plusieurs éditeurs de texte en console, mais le plus répandu est sans doute vi. Quelle que soit votre distribution, vous êtes sûr de pouvoir compter sur lui .

Utilisation :

Code bash : Sélectionner tout
$ vi fichier

Pour modifier le texte, appuyer sur « a » (curseur placé avant la lettre), « i » ou INSERT (curseur placé après). Une fois les modifications faites, appuyer sur ESCAPE, ensuite on donne les commandes à exécuter en tapant « : » (deux-points) suivi de la lettre qui correspond à la commande : en résumé, vi est simple et très complet. Notez qu'il existe aussi vim (pour vi improved), avec l'ajout notamment de la coloration syntaxique, et aussi gvim, en mode graphique...
  • :w pour sauver les modifications ;
  • :q pour quitter ;
  • :wq pour sauver et quitter.


Malheureusement, les éditeurs les plus « classiques » et « puristes » sous Linux sont aussi les plus complexes à utiliser, et sont fort déroutants pour les débutants. Il existe toutefois des éditeurs nettement plus simples comme nano ou pico (fort semblables), qui s'utilisent avec les touches normales et intuitives (flèches du clavier, touches home et end...). Par ailleurs, l'utilisation de nano est très simple :
Code bash : Sélectionner tout
nano monfichier.txt

Ouvrez le fichier monfichier.txt pour l'éditer, « nano » tout court va créer un nouveau fichier.

Dans le programme, Ctrl+W (w pour « write ») permet de sauver le fichier, et Ctrl+X quitte le programme (en vous demandant s'il faut enregistrer les modifications le cas échéant).

Une autre solution appréciée de bien des gens est le programme mc (midnight comander), le couteau suisse en mode console de Linux, équivalent au Norton commander de l'époque héroïque du DOS. Ce programme regroupe donc un gestionnaire de fichiers (avec la vue à deux panneaux classique), un éditeur de texte, des utilitaires de recherche, de copie de fichiers...

Mis à jour le 22 décembre 2013 ok.Idriss ovh zdra

Pour rajouter la coloration syntaxique :

Code bash : Sélectionner tout
vi /etc/vim/vimrc

Enlever le " devant :
Code : Sélectionner tout
" syntax on
Il est tout de même préférable d'utiliser le fichier ~/.vimrc pour rajouter la coloration syntaxique. En effet le fichier /etc/vim/vimrc impacte tous les utilisateurs.

Mis à jour le 23 octobre 2013 ggnore Luc Hermitte ok.Idriss

En mode console :
Alt+F1, Alt+F2, etc. où le chiffre représente la console désirée (il y en a quatre disponibles par défaut).

En mode graphique, tapez dans un Shell :

Code bash : Sélectionner tout
$ xterm &

Il est possible d'utiliser un autre terminal graphique que xterm en fonction de l'environnement de bureau que vous utilisez.

Sous Gnome :
Code bash : Sélectionner tout
$ gnome-terminal &

Sous KDE :
Code bash : Sélectionner tout
$ konsole &

Mis à jour le 23 octobre 2013 nyal ok.Idriss

La commande file vous renseigne sur le type et le format d'un fichier :

Code bash : Sélectionner tout
1
2
3
4
$ file code.c 
code.c: ASCII C program text 
$ file file.png 
file.png: PNG image data, 1014 x 704, 16-bit/color RGB, non-interlaced

Mis à jour le 23 octobre 2013 Francois Trazzi ok.Idriss

La commande cat permet d'afficher le contenu d'un ou plusieurs fichiers (à la suite dans le second cas) :

Code bash : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
$ cat fichier1 
contenu du fichier1 
$ cat fichier2 
contenu du fichier2 
$ cat fichier3 
contenu du fichier3 
$ cat fichier1 fichier2 fichier3 
contenu du fichier1 
contenu du fichier2 
contenu du fichier3

Pour afficher le contenu d'un fichier, d'autres solutions sont possibles et plus ou moins adaptées à des besoins spécifiques : more, less, tail...

Mis à jour le 22 décembre 2013 Francois Trazzi ok.Idriss

Exécutez le programme time avec la commande pour argument :

Code bash : Sélectionner tout
1
2
3
4
$ time commande  
real 0m15.953s  
user 0m14.500s  
sys 0m1.320s

Il faut savoir qu'un processus s'exécute dans plusieurs modes : user mode ou kernel mode. Le changement de mode s'effectue lorsque le processus utilise des appels du système. Ce sont des fonctions dans les programmes pour accéder à des fonctionnalités du noyau (comme écrire sur un terminal, ouvrir un fichier...). C'est ce que représentent les valeurs user et sys.

Vous devez maintenant vous poser la question suivante : l'addition des temps du user mode et du kernel mode ne me donne pas la valeur du temps total d'exécution.

Pourquoi ? C'est très simple : un système d'exploitation ne fait pas tourner en temps réel tous les processus (vous n'avez qu'un processeur). Il doit jongler entre les processus (on nomme cela un scheduler). Mais il fait cela tellement vite que vous avez l'impression que vos processus tournent en parallèle.

Vous avez donc compris que le temps total qui s'est écoulé représente : le temps d'exécution de votre processus + celui des autres processus qui se sont écoulés dans le même temps.

  • real : temps total qui s'est écoulé ;
  • user : temps du CPU qui s'est écoulé en user mode ;
  • sys : temps du CPU qui s'est écoulé en kernel mode.

Mis à jour le 23 octobre 2013 nyal ok.Idriss

La plupart des gens connaissent les rappels de commandes avec bash en utilisant simplement les touches « flèche haut » et « flèche bas ».

Mais il existe une série de rappels moins utilisés, plus ou moins connus :

  • !! : relance la dernière commande utilisée ;
  • !32 : relance la commande 32 de l'historique (history pour lire l'historique) ;
  • !ls : relance la dernière commande de l'historique qui commence par ls ;
  • !-2 : relance l'avant-dernière commande ;
  • !!s:/ls /ls -l/ : relance la dernière commande en modifiant ls par ls -l.

Mis à jour le 22 décembre 2013 becket ok.Idriss

Quand vous avez beaucoup d'utilisateurs sur votre machine Linux, il peut s'avérer intéressant de savoir qui est présent et quelle est son activité ? La commande :

Code bash : Sélectionner tout
who

Vous permet de savoir qui est connecté. Pour savoir s'ils sont actifs (utilisation du clavier), il vous suffit de faire un :
Code bash : Sélectionner tout
finger nom_du_user

Le temps « idle » correspond au temps entre la dernière pression du clavier et maintenant.

Mis à jour le 22 décembre 2013 Katyucha ok.Idriss

La commande wall permet de lancer un message en broadcast à toutes les personnes connectées à votre machine via un terminal.

Trois méthodes possibles :

  • soit vous écrivez un fichier et lancez :
    Code bash : Sélectionner tout
    wall mon_fichier
  • soit vous lancez "wall", tapez votre message et terminez par CTRL+D :
  • soit vous utilisez le pipe pour envoyer directement un message à partir de la commande echo :
    Code bash : Sélectionner tout
    echo "Message"|wall

Mis à jour le 22 décembre 2013 Francois Trazzi ok.Idriss

Pour faire taire les bruits « bips-bips » de la console qui ont lieu chaque fois que vous appuyez sur tab, éditez le fichier /etc/inputrc et ajoutez juste la ligne :

Code : Sélectionner tout
set bell-style none

Mis à jour le 22 décembre 2013

  • C-b Recule d'un caractère (idem flèche à gauche) ;
  • C-f Avance d'un caractère (idem flèche à droite) ;
  • C-a Va en début de ligne ;
  • C-e Va en fin de ligne ;
  • C-p Reprend la commande précédente (idem flèche montante) ;
  • C-n Reprend la commande suivante (idem flèche descendante) ;
  • C-d Détruit le caractère ;
  • C-k Détruit le reste de la ligne ;
  • C-u Efface la ligne.

C = touche CTRL

Mis à jour le 22 décembre 2013 Gnux ok.Idriss

Bash ne sait pas travailler avec les nombres réels. Pour faire une opération avec des nombres relatifs, bash suffit :

Code bash : Sélectionner tout
1
2
echo "3*2 = "$[ 3 * 2 ] 
echo "3*2 = "$(( 3 * 2 ))

Pour toute opération avec des réels, il faut utiliser bc. Exemple : combien fait 5/2 ?
Code bash : Sélectionner tout
echo "5/2"|bc -l

bc m'affiche 2.50000000000000000000, comment limiter le nombre de décimales ? Avec :
Code bash : Sélectionner tout
echo "scale=1;(5/2)"|bc -l

Affichera 2.5. « 1 » est le nombre de chiffres après le symbole décimal.

Mis à jour le 22 décembre 2013 Arnaud F. ok.Idriss

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2017 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
Contacter le responsable de la rubrique Linux