jeudi 29 mars 2012

Commande awk


Affichage des deux premières colonnes

[bob@centos ~]$ ps aux | awk '{ print $1,$2 }'
USER PID
root 1
root 2
root 3
root 4
root 5
root 6

mardi 27 mars 2012

Commande débogage script shell


Affiche la commande avant le résultat (commande set -x)

[bob@centos ~]$ cat script.sh
#!/bin/bash

set -x
pwd
set +x
pwd


[bob@centos ~]$ ./script.sh
+ pwd
/home/bob
+ set +x
/home/bob
[bob@centos ~]$

dimanche 25 mars 2012

Calcul avec le shell


En fonction du shell

[bob@centos ~]$ ((var=12+1))
[bob@centos ~]$ echo $var
13
[bob@centos ~]$ var1=$(expr 12 + 1)
[bob@centos ~]$ echo $var1
13
[bob@centos ~]$

Pour une multiplication

[bob@centos ~]$ var1=$(expr 12 \* 2)
[bob@centos ~]$ echo $var1
24
[bob@centos ~]$ ((var=12*21))
[bob@centos ~]$ echo $var
252
[bob@centos ~]$

vendredi 23 mars 2012

Linux commande test


Test sur un fichier, puis un répertoire avec affichage de la valeur de retour de la commande ($?)

root@boo:~# test -f fr-Paris ; echo $?
0
root@boo:~# test -f Images ; echo $?
1
root@boo:~#


Ou bien:

root@boo:~# [ -d Images ]
root@boo:~# echo $?
0
root@boo:~# [ -f Images ]
root@boo:~# echo $?
1
root@boo:~#


Les options:

-f : test d'un fichier
-d: test d'un répertoire
-r: autorisation en lecture
-w: autorisation en écriture
-x : autorisation en exécution
-e: le fichier existe
-s : le fichier n'est pas vide
-a : et
-o : ou
! : non

test sur les nombres:
-eq : égal
-ne: différent
-gt: supérieur
-lt: inférieur
-le: inférieur ou égal
-ge: supérieur ou égal

test sur les chaines:
-z: variable vide
-n: variable non vide
chaine=chaine: oui si les chaines sont identiques
chaine!=chaine: oui si les chaines sont différentes

jeudi 22 mars 2012

shell : commande set


Le script affiche la date puis décompose l'heure (voir le role de la variable IFS).

[bob@centos ~]$ cat sc-date
#!/bin/bash
# decomposition de la date avec la commande set
set $(date)

#  on affiche l'ensemble puis uniquement deux paramètres
echo -e "$*\n"
echo "Le mois est $2 et l'heure est: $4"

IFS=:
set $4
echo "l'heure est $1, les minutes sont: $2 et les secondes: $3"


[bob@centos ~]$
[bob@centos ~]$ ./sc-date
jeu. mars 15 10:32:05 CET 2012

Le mois est mars et l'heure est: 10:32:05
l'heure est 10, les minutes sont: 32 et les secondes: 05
[bob@centos ~]$

mardi 20 mars 2012

Variable des arguments d'un script


Le script suivant affiche quelque variable:

[bob@centos ~]$ cat sc-var-shell
#!/bin/bash

echo "Affichage du nom du script: $0"
echo "Affichage du nombre d'argument: $#"
echo "Affichage du numero de processus du script: $$"
echo "Affichage de la liste des arguments: $*"
echo "Affichage du premier argument: $1"
echo "Affichage du deuxieme argument: $2"
echo "Affichage du troisieme argument: $3"
[bob@centos ~]$


Exécution du script:

[bob@centos ~]$ ./sc-var-shell arg1 arg2 arg3 arg4
Affichage du nom du script: ./sc-shell
Affichage du nombre d'argument: 4
Affichage du numero de processus du script: 3140
Affichage de la liste des arguments: arg1 arg2 arg3 arg4
Affichage du premier argument: arg1
Affichage du deuxieme argument: arg2
Affichage du troisieme argument: arg3
[bob@centos ~]$

lundi 19 mars 2012

Script de connexion linux


Fichiers exécutés à la connexion d'un utilisateur:
/etc/profile
~/.bash_profile
~/.bash_login
~/.profile
A la déconnexion:
~./bash_logout
A l'ouverture d'un shell
~/.bashrc

Comment ajouter une route statique sur une distribution Linux Ubuntu

Pour ajouter une route statique au démarrage d'Ubuntu, voici le fichier à modifier. Dans l'exemple on ajoute une route pour joindre ...