Affiche le chemin absolu du répertoire courant (Print Working Directory).
$ pwd
/home/nicolas
Change de répertoire (Change Directory). Va dans répertoire ou dans le répertoire de l'utilisateur s'il n'y a pas d'argument.
Si "-" est indiqué en argument, déplace dans le répertoire précédent.
$ pwd
/home/nicolas
$ cd /var/tmp
$ pwd
/var/tmp
$ cd ..
$ pwd
/var
$ cd
$ pwd
/home/nicolas
$ cd -
/var
$ pwd
/var
Liste le contenu des répertoires ou le nom des fichiers passés en arguments (liste le répertoire courant si pas d'argument).
-l : affichage détaillé (long)
-a : affichage aussi des fichiers cachés dont le nom commence par un point (all)
-i : affichage des numéros d'inodes (inode)
-d : affichage du nom du répertoire et non de son contenu (directory)
-t : trie l'affichage suivant la date de modification des fichiers (time)
-r : inverse le tri d'affichage (reverse)
-R : affichage du contenu de tous les sous répertoires (recursive)
$ ls
fic1 fic2 rep1
$ ls -a
. .. .bash_history .bash_profile .bashrc .viminfo fic1 fic2
rep1
$ ls -l
total 8
-rw-r--r-- 1 nicolas users 0 Dec 6 11:48 fic1
-rw-r--r-- 1 nicolas users 868 Dec 6 11:48 fic2
drwxr-xr-x 3 nicolas users 4096 Dec 6 11:48 rep1
$ ls -R
.:
2
fic1 fic2 rep1
./rep1:
ficA repA
./rep1/repA:
$ ls -ltr
total 8
-rw-r--r-- 1 nicolas users 0 Dec 6 11:48 fic1
drwxr-xr-x 3 nicolas users 4096 Dec 6 11:48 rep1
-rw-r--r-- 1 nicolas users 868 Dec 6 11:48 fic2
$ ls -l rep1
total 4
-rw-r--r-- 1 nicolas users 0 Dec 6 11:48 ficA
drwxr-xr-x 2 nicolas users 4096 Dec 6 11:42 repA
$ ls -ld rep1
drwxr-xr-x 3 nicolas users 4096 Dec 6 11:48 rep1
Créé les répertoires (MaKe DIRectory) passés en arguments.
$ ls -l
total 0
$ mkdir rep1
$ ls -l
total 4
drwxr-xr-x 2 nicolas users 4096 Dec 6 11:41 rep1
$ mkdir rep1/repA rep2
$ ls -lR
.:
total 8
drwxr-xr-x 3 nicolas users 4096 Dec 6 11:42 rep1
drwxr-xr-x 2 nicolas users 4096 Dec 6 11:42 rep2
./rep1:
total 4
drwxr-xr-x 2 nicolas users 4096 Dec 6 11:42 repA
./rep1/repA:
total 0
./rep2:
total 0
Supprime les répertoires (ReMove DIRectory) passés en arguments s'ils sont vides.
$ rmdir rep1 rep2
rmdir: `rep1': Directory not empty
$ ls -l
total 4
drwxr-xr-x 3 nicolas users 4096 Dec 6 11:42 rep1
Copie (CoPy) les fichiers source vers destination.
-i : demande confirmation avant écrasement (interactive)
-f : écrase sans demander confirmation (force)
-R ou -r : copie aussi les répertoires (recursive)
$ ls -l
total 8
-rw-r--r-- 1 nicolas users 0 Dec 6 11:48 fic1
-rw-r--r-- 1 nicolas users 868 Dec 6 11:48 fic2
drwxr-xr-x 3 nicolas users 4096 Dec 6 11:48 rep1
$ cp fic1 fic3
$ cp fic2 fic3
$ cp -i fic2 fic3
cp: overwrite `fic3'? o
$ cp rep1 rep2
cp: omitting directory `rep1'
$ cp -r rep1 rep2
$ cp -dpr rep1 /tmp
$ ls -l
total 16
-rw-r--r-- 1 nicolas users 0 Dec 6 11:48 fic1
-rw-r--r-- 1 nicolas users 868 Dec 6 11:48 fic2
-rw-r--r-- 1 nicolas users 868 Dec 6 14:08 fic3
drwxr-xr-x 3 nicolas users 4096 Dec 6 11:48 rep1
drwxr-xr-x 3 nicolas users 4096 Dec 6 14:09 rep2
$ ls -ld /tmp/rep1
drwxr-xr-x 3 nicolas users 4096 Dec 6 11:48 /tmp/rep1
Attention : sans l'option -R (ou -r), la commande cp ne pourra pas copier les répertoires ; il est nécessaire qu'elle travaille en "récursif" pour parcourir l'arborescence de fichiers sous le répertoire, et ainsi pouvoir copier les fichiers sous jacents.
Renomme/déplace (MoVe) les fichiers source vers destination.
-i : demande confirmation avant écrasement (interactive)
-f : écrase sans demander confirmation (force)
$ ls
fic1 fic2 fic3 rep1 rep2
$ ls rep2
ficA repA
$ mv fic* rep2
$ ls
rep1 rep2
$ ls rep2
fic1 fic2 fic3 ficA repA
$ mv rep1 rep2
$ ls
rep2
$ ls rep2
fic1 fic2 fic3 ficA rep1 repA
Supprime (ReMove) les fichiers passés en arguments.
-i : demande confirmation avant suppression (interactive)
-f : supprime sans demander confirmation (force)
-R : supprime aussi les répertoires (recursive)
$ ls -R .
.:
rep2
./rep2:
fic1 fic2 fic3 ficA rep1 repA
./rep2/rep1:
ficA repA
./rep2/rep1/repA:
./rep2/repA:
$ rm rep2/fic1
$ ls rep2
fic2 fic3 ficA rep1 repA
$ rm rep2/rep1
rm: `rep2/rep1' is a directory
$ rm -r rep2/rep1
$ ls rep2
fic2 fic3 ficA repA
Créé le lien (LiNk) destination vers le fichier source.
-s : créé un lien "symbolique" (soft) à la place d'un lien "dur" (hard)
$ echo coucou > fichier1
$ ls -l
total 4
-rw-r--r-- 1 nicolas users 7 Dec 6 14:24 fichier1
$ ln fichier1 fichier2
$ ln -s fichier1 fichier3
$ ls -l
total 8
-rw-r--r-- 2 nicolas users 7 Dec 6 14:24 fichier1
-rw-r--r-- 2 nicolas users 7 Dec 6 14:24 fichier2
lrwxrwxrwx 1 nicolas users 8 Dec 6 14:25 fichier3 ->
fichier1
$ rm fichier1
$ ls -l
total 4
-rw-r--r-- 1 nicolas users 7 Dec 6 14:24 fichier2
lrwxrwxrwx 1 nicolas users 8 Dec 6 14:25 fichier3 ->
fichier1
$ cat fichier2
coucou
$ cat fichier3
cat: fichier3: No such file or directory
Met à jour l'horodatage des fichiers passés en arguments ou créé ceux-ci s'ils n'existent pas.
$ ls -l
total 4
-rw-r--r-- 1 nicolas users 7 Dec 6 14:24 fichier
$ date
Mon Dec 6 14:30:02 CET 2004
$ touch fichier nouvfichier
$ ls -l
total 4
-rw-r--r-- 1 nicolas users 7 Dec 6 14:30 fichier
-rw-r--r-- 1 nicolas users 0 Dec 6 14:30 nouvfichier
Indique comment chaque commande cmd doit être interprétée si elle est invoquée en ligne de commandes.
$ type ls cd passwd
ls is aliased to `ls --color=tty'
cd is a shell builtin
passwd is /usr/bin/passwd
Retourne les chemins des binaires de chaque commande cmd passés en argument.
Ne prend pas en compte les commandes intégrées du shell et les alias.
$ which ls cd passwd
/bin/ls
Retourne les chemins du binaire, des sources et de la page de manuel des commandes passées en argument.
Comme pour la commande which, whereis ne tient pas compte de l'interprétation du shell.
$ whereis ls cd passwd
ls: /bin/ls /usr/share/man/man1/ls.1.gz
cd:
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz
/usr/share/m
an/man5/passwd.5.gz
find <chemin(s)> <critère(s)> <action(s)>
Recherche de fichiers multi-critères :
- recherche récursive dans le(s) répertoire(s) indiqué(s) (chemin(s))
- les principaux critères (critère(s)) sont :
-name '<motif>'
-size <[+|-]taille>
-mtime <[+|-]date>
-user <nom|UID>
-newer <fichier référence>
- les principales actions (action(s)) sont :
-ls
-exec <commande shell avec {} pour spécifier le fichier
trouvé> \;
-ok <commande shell avec {} pour spécifier le fichier
trouvé> \;
$ find /home /usr -name 'ab*' -print 2> /dev/null
/usr/share/vim/vim61/ftplugin/abaqus.vim
/usr/share/vim/vim61/syntax/abaqus.vim
/usr/share/vim/vim61/syntax/abc.vim
/usr/share/vim/vim61/syntax/abel.vim
$ find /home /usr -name 'ab*' -exec basename {} \; 2> /dev/null
abaqus.vim
abaqus.vim
abc.vim
abel.vim
updatedb
Création et mise à jour de la base de données utilisée par la commande locate.
# updatedb
locate
Recherche de fichiers suivant leur nom ; cette commande est plus rapide que la commande find car elle utilise une base de données des fichiers présents sur le système (voir la commande updatedb). Cependant, si la base de données des fichiers n'est pas à jour, le résultat de la recherche n'affiche pas tous les fichiers existants.
$ locate service
/etc/services
/usr/share/man/man5/services.5.gz
Traitement de fichiers et filtres cat <fichier ...>
Affiche le contenu des fichiers texte passés en arguments.
$ cat fictexte
Savinien de CYRANO DE BERGERAC
$
tac <fichier ...>
Affiche le contenu inversé (de la dernière ligne à la première) des fichiers texte passés en arguments.
$ tac fictexte
Savinien de CYRANO DE BERGERAC
la conserve.
également en toutes ses parties cette vertu qui elle se tourne autour de lui pour recevoir de la chaleur, et de l'influence de ce grand feu,
Je vis que la Terre ayant besoin de la lumière,
$
nl <fichier ...>
Affiche le contenu des fichiers texte passés en arguments en numérotant les lignes.
$ nl fictexte
1 Je vis que la Terre ayant besoin de la lumière,
2 de la chaleur, et de l'influence de ce grand feu,
3 elle se tourne autour de lui pour recevoir
4 également en toutes ses parties cette vertu qui
5 la conserve.
6 Savinien de CYRANO DE BERGERAC
$
more <fichier ...>
Affiche page par page le contenu des fichiers texte passés en arguments.
Pour afficher le contenu d'un fichier :
$ more /etc/services
# /etc/services:
# $Id: services,v 1.32 2003/01/09 17:56:30 dwalsh Exp $
#
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two
entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
# are included, only the more common ones.
#
# The latest IANA port assignments can be gotten from
# The Well Known Ports are those from 0 through 1023.
# The Registered Ports are those from 1024 through 49151
# The Dynamic and/or Private Ports are those from 49152 through 65535
#
# Each line describes one service, and is of the form:
#
# service-name port/protocol [aliases ...] [# comment]
--Encore--(4%)
Dans un tube, pour visualiser le résultat d'une commande :
$ ps -ef | more
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Oct23 ? 00:00:19 init [3]
root 3 1 0 Oct23 ? 00:00:00 [ksoftirqd_CPU0]
root 4 1 0 Oct23 ? 00:00:00 [ksoftirqd_CPU1]
root 5 1 0 Oct23 ? 00:00:04 [kswapd]
root 6 1 0 Oct23 ? 00:00:00 [bdflush]
root 7 1 0 Oct23 ? 00:01:10 [kupdated]
root 8 1 0 Oct23 ? 00:00:00 [scsi_eh_0]
root 9 1 0 Oct23 ? 00:00:00 [khubd]
root 11 1 0 Oct23 ? 00:01:14 [kjournald]
root 113 1 0 Oct23 ? 00:00:00 [kjournald]
root 114 1 0 Oct23 ? 00:00:46 [kjournald]
root 115 1 0 Oct23 ? 00:18:06 [kjournald]
root 116 1 0 Oct23 ? 00:01:08 [kjournald]
root 484 1 0 Oct23 ? 00:00:03 /usr/sbin/sshd
root 493 1 0 Oct23 ? 00:16:07 syslogd -m 0
root 497 1 0 Oct23 ? 00:00:00 klogd -x
rpc 507 1 0 Oct23 ? 00:00:00 portmap
rpcuser 526 1 0 Oct23 ? 00:00:00 rpc.statd
ldap 576 1 0 Oct23 ? 04:21:33 /usr/sbin/slapd -u
ldap -h ldap:
--Encore--
less <fichier ...>
Affiche page par page le contenu des fichiers texte passés en arguments.
$ less /etc/services
# /etc/services:
# $Id: services,v 1.32 2003/01/09 17:56:30 dwalsh Exp $
#
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single
well-known
# port number for both TCP and UDP; hence, most entries here have two
entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all
ports
# are included, only the more common ones.
#
# The latest IANA port assignments can be gotten from
# The Well Known Ports are those from 0 through 1023.
# The Registered Ports are those from 1024 through 49151
# The Dynamic and/or Private Ports are those from 49152 through 65535
#
# Each line describes one service, and is of the form:
#
# service-name port/protocol [aliases ...] [# comment]
tcpmux 1/tcp # TCP port service
multiplexer
/etc/services
wc <fichier ...>
Affiche le nombre de lignes, de mots et de caractères (Word Count) contenus dans les fichiers passés en arguments.
-l : affiche uniquement le nombre de lignes (line)
-c : affiche uniquement le nombre de caractères (character)
$ wc /etc/services
569 2805 19935 /etc/services
$ ls | wc -l
od <fichier ...>
Affiche (en octal par défaut) le contenu des fichiers binaires passés en arguments (Octal Dump).
-x : affiche les données en hexadécimal