Outils pour utilisateurs

Outils du site


systemes_dexploitation:linux:commandes

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

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).

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

  1. crontab [-u user] file
  2. crontab [-u user] { -l|-r|-e }

Options

  • -e : Modifie le fichier crontab de l'utilisateur courant ou celui spécifié par le paramètre -u.
  • -l : Affiche le contenu du fichier crontab.
  • -r : Efface le fichier crontab.
  • -u user : Spécifie quel fichier crontab d'un utilisateur à travailler. Peut seulement être utilisé par le root.

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 totoal:

$ 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

$ 

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.

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
0Arrête le système
1Démarre en mode simple utilisateur
2Inutilisé/personnalisable
3Démarre le système en mode commandes
4Inutilisé/personnalisable
5Démarre le système en mode graphique
6Redé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

$ mv fichier1 fichier2

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.

rm

$ rm fichier
$ rm -r répertoire

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

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

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.

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

Sources

systemes_dexploitation/linux/commandes.txt · Dernière modification : 2022/04/22 17:51 de sgariepy