LinuxInfo
Dezoom

Commandes

Mise à jour : Debian 9.1

4 types de commande sont pris en charge par le shell : 

A noter :

Références

1 - Identification du type

La commande type permet d'identifier le type de la commande

$ type aptitude
aptitude est /usr/bin/aptitude
$ type kill
kill est une primitive du shell
$ type quote
quote est une fonction
quote ()
{
local quoted=${1//\'/\'\\\'\'};
printf "'%s'" "$quoted"
}
$ type ls
ls est un alias vers « ls --color=auto »
$ type if
if est un mot-clé du shell

2 - Liste

2.1 - Liste de toutes les commandes

La liste de toutes les commandes (y compris les mots réservés du shell) est fournie par compgen -c :

$ compgen -c |head -20
bureau
documents
grep
home
ls
mkmd5
mkmd5f
monip
nano
radiosuisse
rtorrent
téléchargement
if
then
else
elif
fi
......

2.2 - Liste des primitives du shell

$ compgen -b
.
:
[
alias
bg
bind
break
builtin
caller
cd
command
compgen
complete
compopt
continue
declare
dirs
disown
echo
enable
eval
exec
exit
export
false
fc
fg
getopts
hash
help
history
jobs
kill
let
local
logout
mapfile
popd
printf
pushd
pwd
read
readarray
readonly
return
set
shift
shopt
source
suspend
test
times
trap
true
type
typeset
ulimit
umask
unalias
unset
wait

2.3 - Liste des fonctions du shell

$ compgen -A function
__expand_tilde_by_ref
__get_cword_at_cursor_by_ref
__git_eread
__git_ps1
__git_ps1_colorize_gitstring
__git_ps1_show_upstream
__grub_dir
__grub_get_last_option
__grub_get_options_from_help
__grub_get_options_from_usage
__grub_list_menuentries
......

2.4 - Alias

$ alias 
alias bureau='cd ~/Bureau'
alias documents='cd ~/Documents'
alias grep='grep --color=auto'
alias home='cd ~'
alias ls='ls --color=auto'
.........

ou

$ compgen -a
bureau
documents
grep
home
ls
............

2.5 - Mots réservés du shell

$ compgen -k
if
then
else
elif
fi
case
esac
for
select
while
until
do
done
in
function
time
{
}
!
[[
]]
coproc

2.6 - Commandes coreutils

$ dpkg -L coreutils |grep /bin
/bin
/bin/cat
/bin/chgrp
/bin/chmod
/bin/chown
/bin/cp
/bin/date
/bin/dd
/bin/df
/bin/dir
/bin/echo
/bin/false
/bin/ln
/bin/ls
/bin/mkdir

3 - Documentation

3.1 - Whatis

whatis affiche la ligne de description de la page de manuel et le numéro de la section

$ whatis aptitude
aptitude (8) - interface évoluée pour le gestionnaire de paquets

@asus:~$ whatis kill
kill (1) - Envoyer un signal à un processus
kill (2) - send signal to a process

$ whatis quote
quote : rien d'adéquat

$ whatis ls
ls (1) - Afficher le contenu de répertoires

3.2 - A propos

apropos recherche les manuels contenant la commande passée en argument dans leur titre

$ apropos aptitude
aptitude (8) - interface évoluée pour le gestionnaire de paquets
aptitude-curses (8) - interface évoluée pour le gestionnaire de paquets
aptitude-create-state-bundle (1) - bundle the current aptitude state
aptitude-run-state-bundle (1) - unpack an aptitude state bundle and invoke aptitude on it

3.3 - Help

Lorsque disponible, l'option --help affiche un résumé des options, arguments, ....

$ kill --help
kill: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... ou kill -l [sigspec]
Send a signal to a job.

Send the processes identified by PID or JOBSPEC the signal named by
SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then
SIGTERM is assumed.

Options:
-s sig SIG is a signal name
-n sig SIG is a signal number
......................................

3.4 - Man

man affiche le manuel de la commande. Si plusieurs sections, on peut spécifier la section ou toutes les section (-a)

$ man 2 kill

kILL(2) Linux Programmer's Manual KILL(2)

NAME
kill - send signal to a process

SYNOPSIS
#include <sys/types.h>
#include <signal.h>

int kill(pid_t pid, int sig);

Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

kill(): _POSIX_C_SOURCE

DESCRIPTION
..........................................................

3.5 - Info

La commande info donne accès à une documentation sur les commandes coreutils (projet GNU).

$ info coreutils
$ info coreutils nom_commande

3.6 - Mots clés du shell

Les mots clés du shell (if, case, ...) sont documentés dans le manuel de bash :

$ man bash

4 - Lancement

4.1 - Commandes exécutables

$ /usr/bin/apt-cache policy aptitude

ou bien si le chemin du fichier est inclus dans la liste des chemins du shell (variable PATH) :

$ printenv PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

directement par le nom de la commande :

$ apt-cache policy aptitude
$ echo 'PATH=$PATH:$HOME/script' >> .bashrc
$ source ./bashrc
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/nom_utilisateur/script

A noter que lors de la recherche de la commande, les répertoires sont explorés dans l'ordre de la liste de PATH.Pour que le répertoire script soit prioritaire, au lieu de :

$ echo 'PATH=$PATH:$HOME/script' >> .bashrc

faire :

$ echo 'PATH=$HOME/script:$PATH' >> .bashrc

4.2 - Primitives

Les primitives du shell sont exécutées directement :

$ cd ~

4.3 - Scripts & fonctions

Voir Scripts