Table des matières
Commandes Linux
La plupart de ces commandes s'appliques aux systèmes d'exploitations Unix-like.
cat
Affiche le contenu d'un fichier.
$ cat toto
Pour avoir de la pagination, utiliser more
.
cd
Pour changer de répertoire.
$ cd
Déplace au répertoire de login
ou répertoire de l'utilisateur (home directory).
$ cd ~
Le tilde fait aussi référence au répertoir de l'utilisateur (login
).
Exemples:
- Chemin absolu:
cd /home/pi/test
- Chemin relatif:
cd test
chkconfig
Utilitaire pour gérer les services. Fonctionne avec les runlevels.
chkconfig --level 35 vsftpd on chkconfig --level 5 vsftpd off chkconfig --list | grep vsftpd chkconfig --level 3 crond on
chmod
Changer le mode d'un fichier/répertoire.
Syntaxe
chmod (-R) [u g o a] [+ - =] [r w x (X) s t] fichier/dossier
$ chmod [options] mode fichier ...
Options:
-R
permet d'appliquer les changements de façon récursive
Option | Signification |
---|---|
Utilisateurs ciblés | |
u | Utilisateur |
g | Groupe |
o | Autres (others) |
a | Tous (all) |
Opérations de droits | |
+ | Ajout des droits |
- | Retrait des droits |
= | Égalité des droits |
Type de droit | |
r | Lecture |
w | Écriture |
x | Exécution |
X | Exécution pour les dossiers seulement |
Options
-R
→ change le mode des fichiers/répertoires de façon récursive-V
→ mode détaillé (verbose).
Modes
Les modes peuvent être exprimées de deux façons : numérique ou alpha.
Numérique
$ chmod 700 script.pl
Le mode 700
donne l'exécution au propriétaire du fichier script.pl
.
clear
Efface l'écran.
cp
$ cp fichier1 fichier2
crontab
Affiche ou modifie la table Cron (crontab
) de l'usager. La table Cron spécifie des actions schédulées par le Cron daemon (crond
).
Syntaxe
crontab [-u user] file
crontab [-u user] { -l|-r|-e }
Options
-e
: Modifie le fichiercrontab
de l'utilisateur courant ou celui spécifié par le paramètre-u
.-l
: Affiche le contenu du fichiercrontab
.-r
: Efface le fichiercrontab
.-u user
: Spécifie quel fichiercrontab
d'un utilisateur à travailler. Peut seulement être utilisé par leroot
.
Détails
Le fichier de la table Cron est /etc/crontab
et il existe des répertoires pour les fréquences : /etc/cron.daily
.
Paramètres | |||||
---|---|---|---|---|---|
min | heure | jour | mois | j de semaine | commande |
0-59 | 0-23 | 1-31 | 1-12 | 0-7 (0 et 7 → dimanche) | specfich |
Exemples d'utilisation
crontab -e -u pierre service crond restart service crond status
curl
GET
Requête simple en GET vers un fichier:
$ curl -o response.txt https://example.com/
POST
Envoyer une requête POST:
$ curl -d 'user=somename&password=pass1234' -X POST https://example.com/login
Vu qu'on utilise le paramètre -d
, curl fera un POST, donc on peut ignorer le -X
:
$ curl -d 'user=somename&password=pass1234' https://example.com/login
Façon plus claire de le faire, en séparant les arguments Form:
$ curl -d 'user=somename' -d 'password=pass1234' https://example.com/login
Pour envoyer des données JSON en POST:
$ curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://example.com/login
Autres arguments intéressants
Argument | Utilisation |
---|---|
-L | Suivre la redirection |
Source: Curl Cookbook
dd
Le programme dd
vient préinstallé.
$ sudo dd if=/dev/sda of=/dev/sdb bs=1024
ddrescue
Installer ddrescue
:
$ sudo apt-get install gddrescue
Exemple d'utilisation :
$ sudo ddrescue -f -n /dev/sda /dev/sdb ~/recovery.log
df
Espace disque total:
$ df -h --total
du
Espace disque occupé par un répertoire:
$ du -sh nom-du-repertoire
e2label
$ sudo e2label /dev/sda1 NEWLABELNAME
find
Chercher un fichier.
$ find / -name "nomdufichier" $ find /home -name users.txt # trouve tous les fichiers users.txt dans /home
→ Utiliser -iname
ignore la casse
$ find /home/user -iname test.txt
Seulement les répertoires:
$ find / -type d -iname test
grep
Pour rechercher un texte dans les fichiers:
grep -I -R "chaine_a_rechercher" /var/www/
L'option -I
exclue les fichiers binaires.
L'option -R
fait une recherche récursive dans le répertoire.
Autres exemples:
- Trouver une chaine dans un fichier:
grep “dhcp” /var/log/syslog
- Filtrer la sortie d'une commande:
ls -latr | grep “.php”
head
Affiche le début d'un fichier.
$ head test.txt
Commande similaire: tail
.
hostname
Affiche ou modifie le hostname.
- Afficher:
hostname
- Changer:
sudo hostname <MyHostname>
ifconfig
Donne des détails sur les périphériques et la configuration réseau du système.
$ ifconfig
Pour débogger un problème réseau, on peut aussi utiliser les commandes :
$ netconfig $ service network restart
init
Pour changer le mode de Linux, on peut utiliser init
. Il faut spécifier un runlevel
dans la commande :
$ init 0
runlevel | Action |
---|---|
0 | Arrête le système |
1 | Démarre en mode simple utilisateur |
2 | Inutilisé/personnalisable |
3 | Démarre le système en mode commandes |
4 | Inutilisé/personnalisable |
5 | Démarre le système en mode graphique |
6 | Redémarre le système |
Le tableau ci-dessus s'applique à RedHat Linux. La signification des runlevels
diffèrent d'un système d'exploitation à l'autre. Solaris, par exemple, le $ init 5
permet d'arrêter le système.
Le runlevel
par défaut est spécifié dans le fichier /etc/inittab
. On peut faire la commande $ runlevel
pour connaître le runlevel
courrant. Si le runlevel
est à 3 (mode commandes), on peut exécuter la commande $ startx
pour aller en mode graphique.
On peut utiliser $ shutdown -h now
(équivalent à init 0
) ou $ shutdown -r now
(équivalent à init 6
).
ls
Liste les fichiers d'un répertoire.
ls -l ls -la
lsblk
Liste des disques.
$ lsblk -f
Option -f
donne le filesystem associé.
mkdir
Pour créer un répertoire:
$ mkdir temp
Pour créer tout l'arborescence on utilise -p
:
$ mkdir -p ~/rep1/rep2/rep1
mkfs
Crée un système de fichier ou, autrement dit, formatte un périphérique de stockage.
$ mkfs -t msdos /dev/fd0 $ mkfs -t ext2 /dev/fd0
Si l'on veut créer un système de fichier ext2
, on peut utiliser :
$ mke2 /dev/sda1
Le filesystème pourrait être donné à root
, ce qui empêcherait l'écriture pour un utilisateur normal. Le 1000:1000
est le id de l'utilisateur qu'on peut obtenir par sudo id -u monuser
.
$ sudo mkfs.ext4 /dev/sda2 -E root_owner=1000:1000
mount
Permet de monter des périphériques de stockage.
$ mount -t msdos /dev/fd0 /mnt/floppy $ mount -t vfat /dev/sda1 /mnt/usb $ mount -t auto /dev/sda2 /media/user/mountpointdirectory
Le premier exemple monte une disquette et le deuxième monte un support de stockage USB.
La commande seule $ mount
permet de connaitre la table de montage.
$ mount
mv
Déplace un fichier ou un répertoire à un autre endroit.
$ mv fichier1 fichier2
Note: la commande mv
est toujours en mode récursif.
more
Affiche le contenu d'un fichier, page par page.
$ more test.txt
Semblable à cat
.
netstat
Pour obtenir la liste des ports qui écoutent:
sudo netstat -plnt
ps
Lister les programmes en exécution
$ ps -e
Lister les programmes en exécution avec les détails (propriétaire, l’heure de départ, …)
$ ps -elf
pwd
Affiche le répertoire de travail. pwd
est équivalent à print working directory
.
rclone
Installation:
Voir la documentation pour l'installation par script.
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip unzip rclone-current-linux-amd64.zip cd rclone-current-linux-amd64 sudo cp rclone /usr/bin/ sudo chown root:root /usr/bin/rclone sudo chmod 755 /usr/bin/rclone
rm
Supprime un fichier ou un répertoire.
$ rm fichier $ rm -rf répertoire
Note: On a besoin de l'option -rf
pour supprimer un répertoire, même s'il n'est pas vide (remove + force).
scp
Secured Copy.
Envoyer un fichier
$ scp SourceFile user@host:directory/TargetFile
Recevoir un fichier
$ scp user@host:directory/SourceFile TargetFile
Spécifier un port:
$ scp -P 22 user@host:~/sourcefile.tar.gz ./targetfile.tar.gz
Voir aussi termscp
screen
Pour créer une nouvelle session:
$ screen -S <nomdelasession>
Pour restaurer une session:
$ screen -R <nomdelasession>
Pour se détacher d'une session, il faut faire CTRL+A suivi de D.
shutdown
Redémarrer :
shutdown -r now
ss
Commande Socket Summary.
Pour voir les connexions TCP (le t
dans la commande):
ss -ltn
Pour les commandes UDP:
ss -lun
Les deux :
ss -ltun
su
Permet de se changer en root
. Préférable d'utiliser sudo
.
$ su
sudo
Permet de se changer en root
le temps d'une commande.
$ sudo commande_a_executer_en_tant_que_root
tail
Affiche la fin d'un fichier. Souvent utilisé pour afficher des fichiers de journalisation.
$ tail service.log
Commande similaire: head
.
tar
Pour compresser un répertoire :
$ tar -czf nomdufichier.tar.gz nomdurepertoire/*
Pour décompresser un fichier tarball avec compression gzip
(tar.gz
) dans le répertoire courant :
$ tar xzf nomdufichier.tar.gz
Avec extension bz2
:
$ tar xjf nomdufichier.tar.bz2
Exclure des répertoires :
$ tar --exclude='./folder' --exclude='./node_modules' -zcvf /backup/filename.tgz .
Encrypt:
$ tar -cz your_dir | gpg -c -o yourarchive.tgz.gpg
touch
Crée un fichier vide.
$ touch toto
umount
$ umount /dev/fd0 $ umount /mnt/floppy
uname
Donne le nom et/ou la version du système d'exploitation.
$ uname -a
Pour avoir tous les renseignements, utiliser le paramètre -a
.
uptime
Affiche le temps depuis que le système est fonctionnel ou opérationel.
$ uptime
Dernière heure de démarrage:
$ uptime -s
vi
Éditeur de fichier. vi est discuté dans une autre section plus en détails.
Commandes non-natives
unzip
Permet de décompresser tous les fichiers ZIP du répertoire courant dans le répertoire uc
. L'option -n
permet de ne pas écraser les fichiers existants.
$ unzip -jn \*.zip -d uc