Logo Khaganat
Traductions de cette page?:

Ceci est une ancienne révision du document !


Commandes unix

sar : System Activity Reporter

sar -A

C'est une sorte de monitoring de la machine locale.

ethtool

ethtool -p eth0 # same as "ethtool --identify eth0"
ethtool -t eth0 # selftest
ethtool -S eth0 # same as "ethtool --statistics eth0"

ethtool permet d'avoir des infos sur le matériel réseau, mais aussi d'identifier une interface physique en en faisant clignoter les LEDs (option -p).

nc / netcat

netcat permet à la base d'établir une connexion TCP, un peu comme le permet la commande telnet, à la différence que netcat procède uniquement à la connexion TCP, tandis que telnet tente d'établir une connexion au service de comande à distance éponyme (il y a toute la communication du protocole telnet en plus).

netcat permet aussi par exemple de transférer des fichiers d'un système à un autre :

$ nc -l 10.1.1.149 1234 > filename.out # à exécuter côté serveur
$ nc 10.1.1.149 1234 < filename.in # à exécuter côté client

On peut aussi scanner des ports avec netcat, pour voir si un port est ouvert ou fermé :

$ nc -zv 10.1.1.149 20-30
$ nc -zv 10.1.1.149 22 80 443

La première commande scanne les ports 20 à 30, la seconde scanne les ports 22, 80 et 443 de l'adresse IP 10.1.1.149.

at

at permet de programmer une commande à exécuter une seule fois, contrairement à cron qui est plutôt destiné à des tâches récurrentes.

echo "tar czf /tmp/homes.tgz /home" | at 1337

Créer un tarball compressé avec gzip du dossier /home dans le fichier /tmp/homes.tgz à 13:37.

cal

Calendrier :

$ cal
     March 2018       
Su Mo Tu We Th Fr Sa  
             1  2  3  
 4  5  6  7  8  9 10  
11 12 13 14 15 16 17  
18 19 20 21 22 23 24  
25 26 27 28 29 30 31

$ cal jan 1337
    January 1337      
Su Mo Tu We Th Fr Sa  
          1  2  3  4  
 5  6  7  8  9 10 11  
12 13 14 15 16 17 18  
19 20 21 22 23 24 25  
26 27 28 29 30 31

$ cal dec 9999
   December 9999      
Su Mo Tu We Th Fr Sa  
          1  2  3  4  
 5  6  7  8  9 10 11  
12 13 14 15 16 17 18  
19 20 21 22 23 24 25  
26 27 28 29 30 31

tr

tr permet la substitution de caractères dans une chaîne de caractères, tout en suivant une certaine logique. Quelques exemples :

$ echo "123 456 789" | tr " " "\n"
123
456
789

Remplacer toutes les espaces par un retour à la ligne.

echo "abcd" | tr "a-d" "p-s"
pqrs

Remplacer les caractères de 'a' à 'd' par 'p' à 's'.

echo "abcd" | tr "a-d" "1-4"

Remplacer les caractères de 'a' à 'd' par 1 à 4.

echo "abcd" | tr "abd" "678"
67c8

Remplacer les caractères 'a', 'b' et 'd' par 6, 7 et 8.

echo "abcd" | tr "ac" "xvpb"
xbvd

Remplacer les caractères 'a' et 'c' par 'x' et 'v'. N'y ayant pas d'autres caractère à “matcher” (le premier paramètre à la commande tr), 'p' et 'b' n'ont ici aucun intérêt et peuvent être omis / n'ont aucune incidence.

awk

awk est plus qu'une “simple” commande, c'est un langage de programmation permettant notamment de manipuler des chaînes de caractères. Ici nous n'allons voir que des exemples en ligne de commande, bien qu'il soit tout à fait possible d'écrire des programmes plus gros en awk, à la même manière que les scripts shell. Couramment ces petits “mini-programmes” en ligne de commandes sont appelés des oneliners, du fait qu'ils tiennent sur une seule ligne.

Voici quelques exemples, qui sont loin d'être exhaustifs quant à ce qu'il est possible de faire avec awk. Cela dit, ils donneront déjà un petit aperçu.

$ sentence="year-month-day hours:minutes:seconds :ms \"this is a comment\""
$ printf "%s\n" "$sentence" | awk '{print $1}'
year-month-day

Cela affiche le premier élément de la phrase, les éléments étant (par défaut) les chaînes de caractères séparées par une espace.

$ printf "%s\n" "$sentence" | awk '{print $NF}'
comment"

$NF est une variable spéciale pointant vers le dernier élément.

$ printf "%s\n" "$sentence" | awk 'BEGIN{FS = "\""} {print $(NF-1)}'
this is a comment

Ici on redéfinit le séparateur, qui est par défaut l'espace, pour utiliser à la place le caractère . On dit à awk d'afficher l'avant-dernier ($(NF-1)) élément.

$ printf "%s\n" "$sentence" | awk 'BEGIN{FS = " :"} {print $2}'
ms "this is a comment"

Redéfinition du séparateur à : (espace + double-point), et affichage du second élément.

$ printf "%s\n" "$sentence" | awk '/minutes/ {print $0}'
year-month-day hours:minutes:seconds :ms "this is a comment"

On peut aussi matcher des expressions rationnelles avec awk. Ici, toutes les lignes contenant le mot minutes seront affichées, $0 représentant la ligne entière.

$ printf "%s\n" "$sentence" | awk '/minutes/ {print $3}'
:ms

On peut aussi n'afficher que le troisième élément des lignes contenant le mot minutes.

$ lines="$(echo "line1 line2 line3" | tr " " "\n")"
$ printf "%s\n" "$lines" | awk '$1 ~ /line2/ {print $0}'
line2

On peut dire à awk de ne chercher une chaîne correspondante que dans un seul élément ; ici on cherche line2 dans le premier élément de chaque ligne.

$ printf "%s\n" "$lines" | awk '/line2/ {print $0}'
line2

Cela revient au final à la même chose que ci-dessus, étant donné que l'on n'a qu'un seul élément par ligne.

$ printf "%s\n" "$lines" | awk '/line/ {print $0}'
line1
line2
line3

On matche line, donc toutes les trois lignes sont affichées.

$ printf "%s\n" "$lines" | awk '/e3/ {print $0}'
line3

Eh oui, seul e3 est matché.

CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/sysadmin/cmdunixoptions.1522359428.txt.gz · Dernière modification : (modification externe)

Licences Mentions légales Accueil du site Contact Inclusion