Manipuler les chaînes de caractères

http://abs.traduc.org/abs-5.3-fr/ch09s02.html

 

Bash supporte un nombre surprenant d’opérations de manipulation de chaînes de caractères. Malheureusement, ces outils manquent d’unité. Certains sont un sous-ensemble de la substitution de paramètre et les autres font partie des fonctionnalités de la commande UNIX expr. Ceci produit une syntaxe de commande non unifiée et des fonctionnalités qui se recoupent, sans parler de la confusion engendrée.

Longueur de chaînes de caractères

${#chaine}
expr length $chaine
C’est l’équivalent de la fonction strlen() en C.
expr « $chaine » : ‘.*’
chaineZ=abcABC123ABCabc

echo ${#chaineZ}                 # 15
echo `expr length $chaineZ`      # 15
echo `expr "$chaineZ" : '.*'`    # 15

Exemple 9.10. Insérer une ligne blanche entre les paragraphes d’un fichier texte

#!/bin/bash
# paragraph-space.sh

# Insère une ligne blanche entre les paragraphes d'un fichier texte.
# Usage: $0 <NOMFICHIER

LONGUEUR_MINI=45        # Il peut être nécessaire de changer cette valeur.
#  Suppose que les lignes plus petites que $LONGUEUR_MINI caractères
#+ terminent un paragraphe.

while read ligne  # Pour toutes les lignes du fichier...
do
  echo "$ligne"   # Afficher la ligne.

  longueur=${#ligne}
  if [ "$longueur" -lt "$LONGUEUR_MINI" ]
    then echo    # Ajoute une ligne blanche après chaque petite ligne.
  fi  
done

exit 0

 

Longueur de sous-chaînes correspondant à un motif au début d’une chaîne

expr match « $chaine » ‘$souschaine’
$souschaine est une expression rationnelle.
expr « $chaine » : ‘$souschaine’
$souschaine est une expression rationnelle.

chaineZ=abcABC123ABCabc
#       |------|

echo `expr match "$chaineZ" 'abc[A-Z]*.2'`   # 8
echo `expr "$chaineZ" : 'abc[A-Z]*.2'`       # 8

Index

expr index $chaine $souschaine
Position numérique dans $chaine du premier caractère dans $souschaine qui correspond.

chaineZ=abcABC123ABCabc
echo `expr index "$chaineZ" C12`             # 6
                                             # C position.

echo `expr index "$chaineZ" 1c`              # 3
# 'c' (à la position #3) correspond avant '1'.

Ceci est l’équivalent le plus proche de strchr() en C.

Extraction d’une sous-chaîne

${chaine:position}
Extrait une sous-chaîne de $chaine à partir de la position $position.

Si le paramètre $chaine est « * » ou « @ », alors cela extrait les paramètres de position[36] commençant à $position.

${chaine:position:longueur}
Extrait $longueur caractères d’une sous-chaîne de $chaine à la position $position.

chaineZ=abcABC123ABCabc
#       0123456789.....
#       indexage base 0.

echo ${chaineZ:0}                            # abcABC123ABCabc
echo ${chaineZ:1}                            # bcABC123ABCabc
echo ${chaineZ:7}                            # 23ABCabc

echo ${chaineZ:7:3}                          # 23A
                                             # Trois caractères de la sous-chaîne.

# Est-il possible d'indexer à partir de la fin de la chaîne ?

echo ${chaineZ:-4}                           # abcABC123ABCabc
# Par défaut la chaîne complète, comme dans ${parametre:-default}.
# Néanmoins...

echo ${chaineZ:(-4)}                         # Cabc
echo ${chaineZ: -4}                          # Cabc
# Maintenant, cela fonctionne.
#  Des parenthèses ou des espaces ajoutés permettent un échappement du paramètre
#+ de position.

# Merci, Dan Jacobson, pour cette indication.

Les arguments position et longueur peuvent devenir des « paramètres », c’est-à-dire représentés par une variable, plutôt que par une constante numérique.

Exemple 9.11. Générer « aléatoirement » une chaîne de huit caractères

#!/bin/bash
# rand-string.sh
# Générer aléatoirement une chaîne de huit caractères.

if [ "-n $1" ]  #  Si présence d'un argument en ligne de commande,
then            #+ alors l'utiliser comme chaîne de départ.
  chaine0="$1"
else            #  Sinon, utiliser le PID du script.
  chaine0="$$"
fi

POS=2  # On commence en position 2.
LONG=8  # Extraction de huit caractères.

chaine1=$( echo "$chaine0" | md5sum | md5sum )
# Double mixage :            ^^^^^^   ^^^^^^

chainealeatoire="${chaine1:$POS:$LONG}"
# Peut se paramétrer       ^^^^ ^^^^^

echo "$chainealeatoire"

exit $?

# bozo$ ./rand-string.sh mon-motdepasse
# 1bdd88c4

#  Non, ceci n'est pas recommandé
#+ comme méthode sûre de génération de mots de passe.

 

Si le paramètre $chaine est « * » ou « @ », alors ceci extrait un maximum de $longueur du paramètre de position, en commençant à $position.

echo ${*:2}          # Affiche le deuxième paramètre de position et les suivants.
echo ${@:2}          # Identique à ci-dessus.

echo ${*:2:3}        # Affiche trois paramètres de position, en commençant par le deuxième.
expr substr $chaine $position $longueur
Extrait $longueur caractères à partir de $chaine en commençant à $position.

chaineZ=abcABC123ABCabc
#       123456789......
#       indexage base 1.

echo `expr substr $chaineZ 1 2`              # ab
echo `expr substr $chaineZ 4 3`              # ABC

expr match « $chaine » ‘\($souschaine\)’
Extrait $souschaine à partir du début de $chaine, et où $souschaine est une expression rationnelle.
expr « $chaine » : ‘\($souschaine\)’
Extrait $souschaine à partir du début de $chaine, et où $souschaine est une expression rationnelle.

chaineZ=abcABC123ABCabc
#       =======

echo `expr match "$chaineZ" '\(.[b-c]*[A-Z]..[0-9]\)'`   # abcABC1
echo `expr "$chaineZ" : '\(.[b-c]*[A-Z]..[0-9]\)'`       # abcABC1
echo `expr "$chaineZ" : '\(.......\)'`                   # abcABC1
# Toutes les formes ci-dessus donnent un résultat identique.
expr match « $chaine » ‘.*\($souschaine\)’
Extrait $souschaine à la fin de $chaine, et où $souschaine est une expression rationnelle.
expr « $chaine » : ‘.*\($souschaine\)’
Extrait $souschaine à la fin de $chaine, et où $souschaine est une expression rationnelle.

chaineZ=abcABC123ABCabc
#                ======

echo `expr match "$chaineZ" '.*\([A-C][A-C][A-C][a-c]*\)'`    # ABCabc
echo `expr "$chaineZ" : '.*\(......\)'`                       # ABCabc

Suppression de sous-chaînes

${chaine#souschaine}
Supprime la correspondance la plus petite de $souschaine à partir du début de $chaine.
${chaine##souschaine}
Supprime la correspondance la plus grande de $souschaine à partir du début de $chaine.

chaineZ=abcABC123ABCabc
#       |----|
#       |----------|

echo ${chaineZ#a*C}      # 123ABCabc
# Supprime la plus petite correspondance entre 'a' et 'C'.

echo ${chaineZ##a*C}     # abc
# Supprime la plus grande correspondance entre 'a' et 'C'.
${chaine%souschaine}
Supprime la plus petite correspondance de $souschaine à partir de la fin de $chaine.

Par exemple :

# Renomme tous les fichiers de $PWD
#+ en remplaçant le suffixe "TXT" par "txt".
# Par exemple, "fichier1.TXT" devient "fichier1.txt" . . .

SUFF=TXT
suff=txt

for i in $(ls *.$SUFF)
do
  mv -f $i ${i%.$SUFF}.$suff
  #  Ne modifie rien *en dehors* de la correspondance la plus courte
  #+ commençant du côté droit de $i . . .
done ### Ceci pourrait être condenser en une ligne si nécessaire.

# Thank you, Rory Winston.
${chaine%%souschaine}
Supprime la plus grande correspondance de $souschaine à partir de la fin de $chaine.

chaineZ=abcABC123ABCabc
#                    ||
#        |------------|

echo ${chaineZ%b*c}      # abcABC123ABCa
#  Supprime la plus petite correspondance entre 'b' et 'c', à partir de la fin
#+ de $chaineZ.

echo ${chaineZ%%b*c}     # a
#  Supprime la plus petite correspondance entre 'b' et 'c', à partir de la fin
#+ de $chaineZ.

Cet opérateur est utilisé pour générer des noms de fichier.

Exemple 9.12. Convertir des formats de fichiers graphiques avec une modification du nom du fichier

#!/bin/bash
#  cvt.sh:
#  Convertit les fichiers image MacPaint contenus dans un répertoire dans le
#+ format "pbm".

#  Utilise le binaire "macptopbm" provenant du paquetage "netpbm",
#+ qui est maintenu par Brian Henderson (bryanh@giraffe-data.com).
#  Netpbm est un standard sur la plupart des distributions Linux.

OPERATION=macptopbm
SUFFIXE=pbm         # Suffixe pour les nouveaux noms de fichiers.

if [ -n "$1" ]
then
  repertoire=$1      # Si le nom du répertoire donné en argument au script...
else
  repertoire=$PWD    # Sinon, utilise le répertoire courant.
fi  

#  Suppose que tous les fichiers du répertoire cible sont des fichiers image
# + MacPaint avec un suffixe de nom de fichier ".mac".

for fichier in $repertoire/*  # Filename globbing.
do
  nomfichier=${fichier%.*c} #  Supprime le suffixe ".mac" du nom du fichier
                            #+ ('.*c' correspond à tout ce qui se trouve
                            #+ entre '.' et 'c', inclus).
  $OPERATION $fichier > $nomfichier.$SUFFIXE
    # Redirige la conversion vers le nouveau nom du fichier.
    rm -f $fichier          # Supprime le fichier original après sa convertion.
  echo "$nomfichier.$SUFFIXE"  # Trace ce qui se passe sur stdout.
done

exit 0

# Exercice
# --------
#  À ce stade, ce script convertit *tous* les fichiers du répertoire courant.
#  Modifiez le pour qu'il renomme *seulement* les fichiers dont l'extension est
#+ ".mac".

Exemple 9.13. Convertir des fichiers audio en ogg

#!/bin/bash
# ra2ogg.sh : Convertit des fichiers audio de streaming (*.ra) en ogg.

# Utilise le programme "mplayer" :
#      http://www.mplayerhq.hu/homepage
#      Vous aurez peut-être besoin d'installer les codecs appropriés
#+     pour que ce script fonctionne.
# Utilise la bibliothèque "ogg" et "oggenc" :
#      http://www.xiph.org/

PREFIXE_FICHIER_RESULTAT=${1%%ra}      # Supprime le suffixe "ra".
SUFFIXE_FICHIER_RESULTAT=wav           # Suffixe pour le fichier wav.
FICHIER_RESULTAT="$PREFIXE_FICHIER_RESULTAT""$SUFFIXE_FICHIER_RESULTAT"
E_SANSARGS=65

if [ -z "$1" ]          # Un nom de fichier à convertir doit être spécifié.
then
  echo "Usage: `basename $0` [nom_fichier]"
  exit $E_SANSARGS
fi

##########################################################################
mplayer "$1" -ao pcm:file=$FICHIER_RESULTAT
oggenc "$FICHIER_RESULTAT"  # Corrige l'extension du fichier ajoutée automatiquement pas oggenc.
##########################################################################

rm "$FICHIER_RESULTAT"      # Supprime le fichier temporaire *.wav.
                   # Si vous voulez le conserver, commentez la ligne ci-dessus.

exit $?

#  Note :
#  -----
#  Sur un site web, cliquer seulement sur un fichier audio *.ram
#+ récupère l'URL du fichier audio, le fichier *.ra.
#  Vous pouvez ensuite utiliser "wget" ou un autre outil similaire
#+ pour télécharger vous-même le fichier *.ra.

#  Exercices :
#  ----------
#  Actuellement, ce script convertit seulement les noms de fichier *.ra.
#  Ajoutez de la flexibilité en autorisant l'utilisation de *.ram et d'autres noms de fichier.
#
#  Si vous êtes réellement ambitieux, étendez le script pour réaliser automatiquement
#+ les téléchargements et les convertions des fichiers audio.
#  À partir d'une URL, récupérez les fichiers audio (en utilisant "wget")
#+ et convertissez-les.

Une simple émulation de getopt en utilisant des constructions d’extraction de sous-chaînes.

Exemple 9.14. Émuler getopt

#!/bin/bash
# getopt-simple.sh
# Auteur : Chris Morgan
# Utilisé dans le guide ABS avec sa permission.

getopt_simple()
{
    echo "getopt_simple()"
    echo "Les paramètres sont '$*'"
    until [ -z "$1" ]
    do
      echo "Traitement du paramètre : '$1'"
      if [ ${1:0:1} = '/' ]
      then
          tmp=${1:1}               # Supprime le '/' devant...
          parametre=${tmp%%=*}     # Extrait le nom.
          valeur=${tmp##*=}        # Extrait la valeur.
          echo "Paramètre : '$parametre', valeur: '$valeur'"
          eval $parametre=$valeur
      fi
      shift
    done
}

# Passe toutes les options à getopt_simple().
getopt_simple $*

echo "test vaut '$test'"
echo "test2 vaut '$test2'"

exit 0

---

sh getopt_example.sh /test=valeur1 /test2=valeur2

Les paramètres sont '/test=valeur1 /test2=valeur2'
Traitement du paramètre : '/test=valeur1'
Paramètre : 'test', valeur: 'valeur1'
Traitement du paramètre : '/test2=valeur2'
Paramètre : 'test2', valeur : 'valeur2'
test vaut 'valeur1'
test2 vaut 'valeur2'

Remplacement de sous-chaîne

${chaine/souschaine/remplacement}
Remplace la première correspondance de $souschaine par $remplacement.
${chaine//souschaine/remplacement}
Remplace toutes les correspondances de $souschaine avec $remplacement.

chaineZ=abcABC123ABCabc

echo ${chaineZ/abc/xyz}           # xyzABC123ABCabc
                                  #  Remplace la première correspondance de
                                  #+ 'abc' avec 'xyz'.

echo ${chaineZ//abc/xyz}          # xyzABC123ABCxyz
                                  #  Remplace toutes les correspondances de
                                  #+ 'abc' avec 'xyz'.
${chaine/#souschaine/remplacement}
Si $souschaine correspond au début de $chaine, substitue $remplacement à $souschaine.
${chaine/%souchaine/remplacement}
Si $souschaine correspond à la fin de $chaine, substitue $remplacement à $souschaine.

chaineZ=abcABC123ABCabc

echo ${chaineZ/#abc/XYZ}          # XYZABC123ABCabc
                                  #  Remplace la correspondance de fin de
                                  #+ 'abc' avec 'XYZ'.

echo ${chaineZ/%abc/XYZ}          # abcABC123ABCXYZ
                                  #  Remplace la correspondance de fin de
                                  #+ 'abc' avec 'XYZ'.

9.2.1. Manipuler des chaînes de caractères avec awk

Un script Bash peut utiliser des fonctionnalités de manipulation de chaînes de caractères de awk comme alternative à ses propres fonctions intégrées.

Exemple 9.15. Autres moyens d’extraire des sous-chaînes

#!/bin/bash
# substring-extraction.sh

Chaine=23skidoo1
#      012345678    Bash
#      123456789    awk
# Notez les différents systèmes d'indexation de chaînes :
# Bash compte le premier caractère d'une chaîne avec '0'.
# Awk  compte le premier caractère d'une chaîne avec '1'.

echo ${Chaine:2:4} # position 3 (0-1-2), longueur de quatre caractères
                                         # skid

# L'équivalent awk de ${string:position:longueur} est substr(string,position,longueur).
echo | awk '
{ print substr("'"${Chaine}"'",3,4)      # skid
}
'
#  Envoyé un "echo" vide à awk donne une entrée inutile, et donc permet d'éviter
#+ d'apporter un nom de fichier.

exit 0

find fichier dans arborescence

Recherche les fichiers context.xml à partir du point d’arborescence où je suis.

find . -name *web.xml -exec ls -ltrh {} \;

find -iname *web.xml -printf « %u %g %a %s %h/%f\n »

Chercher la chaîne pdtb2 dans les fichiers context.xml

grep pdtb2 $(find . -name « context.xml »)

Recherche des fichers *.dmp depuis hier avec leur date

find . -mtime -1 -name *.dmp -ls | awk ‘{print $8″ « $9 » « $10 » « $11}’

 

supprimer le message stdin: is not a tty

message : mesg: ttyname failed: Inappropriate ioctl for device
ou
stdin: is not a tty

cat /root/.profile

# ~/.profile: executed by Bourne-compatible login shells.
if [ "$BASH" ]; then
   if [ -f ~/.bashrc ]; then
      . ~/.bashrc
   fi
fi
mesg n
 dernière ligne remplacer

mesg n

par

tty -s && mesg n

Pas de reboot nécessaire pour la prise en compte.

vlbid24p, wctsrv0011 et 12 Ubuntu 18

Chaine de boot Linux

Sur Redhat 7.1 (Fonctionne sur Vldtb01p)

Les  scripts lancés au démarrage sont dans le fichier /etc/rc.local Ce fichier doit être exécutable

ll /etc/rc.local
chmod +x /etc/rc.local
lrwxrwxrwx. 1 root root 13 Sep 22 16:11 /etc/rc.local -> rc.d/rc.local

Exemple :

[root@vldtb02x ~]# cat /etc/rc.local
 #!/bin/bash
 # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
 #
 # It is highly advisable to create own systemd services or udev rules
 # to run scripts during boot instead of using this file.
 #
 # In contrast to previous versions due to parallel execution during boot
 # this script will NOT be run after all other services.
 #
 # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
 # that this script will be executed during boot.
# touch /var/lock/subsys/local
echo Start Vtom Agent
 . /etc/init.d/boot_start_vtom.sh
echo Start Oracle
 . /etc/init.d/start_oracle.sh
echo Zabbix Agent
. /etc/init.d/zabbix_agent_start.sh
 echo su -l ora112 -c /exploit/scripts/start_oracle.sh> /etc/init.d/start_oracle.sh

chmod +x /etc/init.d/start_oracle.sh

logrotate

Exemple de logrotate pour le fichier listener.log oracle

exemple :
root@wctsrv0060:~# ll /etc/cron.daily/
root@wctsrv0060:~# cat /etc/cron.daily/logrotate

[root@pdtb9 ~]# ll /usr/sbin/logrotate
-rwxr-xr-x. 1 root root 59712 Apr 28 2012 /usr/sbin/logrotate
[root@pdtb9 ~]# ll /var/lib/logrotate/logrotate.status
ls: cannot access /var/lib/logrotate/logrotate.status: No such file or directory
[root@pdtb9 ~]# cat /etc/logrotate.d/listener
/soft/oracle/diag/tnslsnr/pdtb9/listener/trace/*.log {
copytruncate
daily
rotate 10
size 1M
compress
delaycompress
missingok
}
[root@pdtb9 ~]# ll /soft/oracle/diag/tnslsnr/pdtb9/listener/trace/*
-rw-r—–. 1 ora112 oinstall 35155055 Feb 24 13:45 /soft/oracle/diag/tnslsnr/pdtb9/listener/trace/listener.log
-rw-r—–. 1 ora112 oinstall 933973 Feb 23 15:04 /soft/oracle/diag/tnslsnr/pdtb9/listener/trace/listener.log.1
-rw-r—–. 1 ora112 oinstall 1596247 Feb 23 15:04 /soft/oracle/diag/tnslsnr/pdtb9/listener/trace/listener.log.2.gz
[root@pdtb9 ~]# cat /etc/cron.daily/logrotate
#!/bin/sh

#/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate « ALERT exited abnormally with [$EXITVALUE] »
fi
exit 0
[root@pdtb9 ~]#

ftp absyss.com

ftp.absyss.com

 

Connected to ftp.absyss.com.
220 Bienvenue sur le serveur FTP ABSYSS.

ftp ftp.absyss.com
Name (ftp.absyss.com:root): faiveley
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd incoming
250 Directory successfully changed.
ftp> pwd
257 « /faiveley/incoming »
ftp> passive
Passive mode on.
ftp> ls
227 Entering Passive Mode (212,157,114,230,73,45).
150 Here comes the directory listing.
drwxr-xr-x 2 1351 50 4096 Feb 28 2014 Pb_du_27-01-2012
drwxr-xr-x 8 1351 50 4096 Sep 10 07:07 bases
-rw-r–r– 1 1351 50 19133 Sep 09 07:11 serveurs.log
drwxr-xr-x 2 1351 50 4096 Sep 09 13:51 traces_30-01-2012
226 Directory send OK.
ftp> put Vtbackup_20150910_123028.tar.gz
local: Vtbackup_20150910_123028.tar.gz remote: Vtbackup_20150910_123028.tar.gz
227 Entering Passive Mode (212,157,114,230,52,121).
150 Ok to send data.
226 File receive OK.
18456249 bytes sent in 25.84 secs (697.5 kB/s)

vtom_ulimit.sh

ulimit -u

modifier le fichier /etc/security/limits.conf

teamedu soft nofile 65536
teamedu hard nofile 1048576
vtom soft nofile 65536
vtom hard nofile 1048576

Relancer l’agent Vtom.


Check that /etc/ssh/sshd_config contains:
UsePAM=yes


vtom@vlpdm57x:~> ulimit -a
core file size (blocks, -c) 1
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 983995
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) 107068208
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 16384
virtual memory (kbytes, -v) 121744080
file locks (-x) unlimited

vtom@vlpdm57x:~> cat /etc/sysctl.conf
# Disable response to broadcasts.
# You don’t want yourself becoming a Smurf amplifier.
net.ipv4.icmp_echo_ignore_broadcasts = 1
# enable route verification on all interfaces
net.ipv4.conf.all.rp_filter = 1
# enable ipV6 forwarding
#net.ipv6.conf.all.forwarding = 1
# increase the number of possible inotify(7) watches
fs.inotify.max_user_watches = 65536
# avoid deleting secondary IPs on deleting the primary IP
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.all.promote_secondaries = 1
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_max = 262144

Les 45 commandes Linux les plus utiles

Ce document n’a pas pour objectif de remplacer les pages du man, mais voici tout de même une série de commandes Linux (classées par ordre alphabétique) qui selon nous sont les plus utiles dans l’utilisation du système. Vous trouverez pour chacune, la syntaxe utilisée, une description des ses fonctions, ainsi qu’une liste des ses options les plus courantes.

alias bg cat clear cd chmod cp
date diff df du fdisk fg find
free grep gunzip gzip halt kill ln
login logout lpq lpr lprm ls man
mkdir mkswap more mount mv passwd ps
pwd umount reboot rm rmdir shutdown swapon
swapoff tar unalias

alias

Syntaxe :

alias [nom[='commande']]

Description :

Permet de créer un raccourci (nom) pour une commande donnée (commande). Si commande n’est pas spécifiée, affiche la commande correspondant à l’alias nom. Si nom n’est également pas spécifié, affiche la liste de tous les alias.
Voir également unalias.

bg

Syntaxe :

bg [ID]

Description :

Passe en arrière plan le processus en cours ou le processus dont l’ID est spécifié. Voir également fg.

cat

Syntaxe :

cat [options] [fichiers]

Description :

Cette commande permet d’afficher un ou plusieurs fichiers sur la sortie standard (effectue la lecture à partir de l’entrée standard si aucun fichier n’est spécifié). Vous pouvez utiliser les opérateurs > pour combiner plusieurs fichiers en un seul, et >> pour concaténer des fichiers à un fichier existant.

Options les plus courantes :

-n, --number
	Numérote les lignes, en commençant par 1.

-s, –squeeze-blank
Regroupe en une seule ligne plusieurs lignes blanches consécutives.

-v, –show-nonprinting
Affiche les caractères de contrôles, sauf les sauts de ligne et
les tabulations.

clear

Syntaxe :

clear

Description :

Efface l’écran du terminal.

cd

Syntaxe :

cd [répertoire]

Description :

Change le répertoire de travail.

chmod

Syntaxe :

chmod [options] mode fichiers

Description :

Cette commande modifie les doits d’accès des fichiers spécifiés. Les droits d’accès (mode) sont codés par une représentation symbolique ou par un nombre octal. La représentation symbolique utilise le format suivant :

[ugoa] [[+-=][rwxXstugo]]

La combinaison des lettres `ugoa' contrôle la catégorie d’utilisateur pour laquelle on modifie les droits d’accès (utilisateur du fichier (u), utilisateurs du même groupe que le fichier (g), utilisateurs n’appartenant pas au groupe du fichier (o), ou tous les utilisateurs (a)). La dernière catégorie (a) est utilisée par défaut.

L’opérateur `+' ajoute un accès, l’opérateur `-' supprime un accès, et l’opérateur `=' assigne un accès.

Les lettres `rwxXstugo' définissent le type d’accès. Voici les plus usitées :

r     lecture,
w     écriture,
x     exécution,
s     définit l'ID du propriétaire ou du groupe,
u     droits en cours du propriétaire,
g     droits en cours des membres du groupe propriétaire,
o     droits en cours des autres utilisateurs.

Vous pouvez également utiliser la représentation octale. Cette représentation utilise une combinaison de 3 chiffres en octal (de 0 à 7). Le premier chiffre désigne les droits de l’utilisateur, le second ceux du groupe, et le troisième ceux des autres utilisateurs. Pour chacun des droits, on effectue la somme des valeurs octales requises :

4	Lecture
2 	Ecriture
1 	Exécution

Options les plus courantes :

-v, --verbose
	Affiche des informations sur les modifications apportées ou non aux
	fichiers.

-R, –recursive
Effectue les modifications de droits de façon récursive.

cp

Syntaxe :

cp [options] source destination

Description :

Copie un fichier source vers un autre fichier (qui sera écrasé si ce fichier existe). Copie également un ensemble de fichiers vers un répertoire existant.

Options les plus courantes :

-b, --backup
	Effectue une  copie  de  sauvegarde  des  fichiers qui seront
	supprimés.

-f, –force
Efface les fichiers cibles existants.

-i, –interactive
Demande confirmation avant suppression d’un fichier.

-p, –preserve
Préserve les informations concernant le propriétaire, le groupe,
les droits d’accès, et la date.

-r
Effectue une copie récursive.

-u, –update
Ne copie pas un fichier qui en écraserait un plus récent.

date

Syntaxe :

date [options] [format] [date]

Description :

Permet de configurer l’heure et la date du système. Sans argument de date, permet de visualiser l’heure et la date du système.

Options les plus courantes :

+format
	Permet de formater l'affichage de la date. Voici les formats les 
	plus usités :

%a Jour de la semaine en abrégé
%b Mois en abrégé
%d Jour dans le mois
%j Numéro du jour dans l’année (001-366)
%k Heure en format 24h (0-23)
%l Heure en format 12h (1-12)
%m Mois de l’année (01-12)
%p Spécifie a.m. ou p.m.
%y Année codée sur 2 chiffres (00-99)
%A Nom du jour
%B Nom du mois
%D Date au format %m/%d/%y
%H Heure en format 24h (00-23)
%I Heure en format 12h (01-12)
%M Minutes (00-59)
%S Secondes (00-59)
%T Heure au format %H:%M:%S
%U Jour dans le mois (01-31)
%W Numéro de la semaine (00-53)
%Y Année codée sur 4 chiffres

-s date
	Permet de spécifier l'heure du système. On utilise une série de chiffre 
	dont voici le format :

MM Mois
JJ Jour
XX Deux premiers chiffres de l’année (optionnel)
YY Deux deniers chiffres de l’année (optionnel)
hh Heure
mm Minute
ss Seconde (optionnel)

-u, --universal
	Spécifie l'heure au format GMT (et non local).

diff

Syntaxe :

diff [options] fichier1 fichier2

Description :

Compare deux fichiers textes et retourne les lignes qui diffèrent entre les deux. Les lignes du premier fichier sont précédées du signe < et celles du second fichier du signe > .

Options les plus courantes :

-i, --ignore-case		
	Ne fait pas de différence entre les caractères minuscules 
	et majuscules.

-w, –ignore-all-space
Ne tient pas compte des caractères espace.

-B, –ignore-blank-lines
Ne tient pas compte des lignes blanches.

-I expression
Ne tient pas compte des lignes qui correspondent à l’expression
spécifiée.

–ignore-matching-lines=expression
Ne tient pas compte des lignes qui correspondent à l’expression
spécifiée.

-a, –text
Effectue la comparaison comme si les fichiers étaient des fichiers
textes (pratique pour comparer des binaires).

df

Syntaxe :

df [options] [nom]

Description :

Affiche l’espace disque disponible sur tous les systèmes de fichiers montés ou sur celui dont le nom est spécifié.

Options les plus courantes :

-a, --all
	Inclut les systèmes de fichiers vide (0 blocs).

-i, –inodes
Utilise l’inode comme unité.

-k, –kilobytes
Utilise le kilo-octet comme unité.

-t, –type=
Permet de spécifier le type du système de fichiers.

-x , –exclude-type=
Permet d’exclure le type de système de fichiers spécifié.

du

Syntaxe :

du [options] [répertoire]

Description :

Affiche l’espace disque utilisé par chaque répertoire spécifié (sous répertoires inclus). Le répertoire par défaut est le répertoire courant.

Options les plus courantes :

-a, --all
	Affiche les statistiques pour tous les  fichiers,
	pas seulement les répertoires.

-b, –bytes
Affiche les tailles en octets.

-c, –total
Affiche la totalité de l’espace utilisé par tous les arguments.

-k, –kilobytes
Affiche la taille en kilo-octets.

-S, –separate-dirs
Affiche séparément la taille de chaque répertoire, sans inclure
la taille des sous-répertoires.

fdisk

Syntaxe :

fdisk [options] [périphérique]

Description :

Utilitaire de gestion des partitions.

Options les plus courantes :

-l		Liste les tables de partitions.

-s partition Affiche la taille de la partition spécifiée (à moins
qu’il ne s’agisse d’une partition DOS).

Commandes :

d	Supprime une partition

l Liste les types de partitions

m Affiche le menu

n Crée une nouvelle partition

p Affiche les partitions

q Quitte sans sauvegarde

t Modifie le type de la partition

w Quitte et sauvegarde

fg

Syntaxe :

fg [ID]

Description :

Passe en premier plan le processus en cours ou le processus dont l’ID est spécifié.

find

Syntaxe :

find [chemins] [conditions]

Description :

Effectue une recherche de fichiers suivant les conditions spécifiées. Le chemin par défaut est le répertoire courant.

Conditions les plus usitées :

-mtime n
	Effectue une recherche de fichier modifié dans les plus ou 
	moins (+ ou -) n 24 heures.

-name nom
Effectue une recherche de fichier dont le nom correspond à
celui spécifié.

-print
Affiche entièrement les noms de fichiers et de répertoires
qui correspondent.

-type type
Effectue une recherche de fichier dont le type est spécifié :

b Fichier spécial en mode bloc
c Fichier spécial en mode caractère
d Répertoire
p Fifo ou pipe nommé
f Fichier
l Lien symbolique
s Socket

-size n[bckw]
Effectue une recherche de fichier dont la taille est n :

b blocs
c octets
k kilo-octets
w mots

-user utilisateur
Effectue une recherche de fichier appartenant à l’utilisateur
spécifié.

free

Syntaxe :

free [options]

Description :

Affiche un certain nombre de renseignements sur la mémoire (mémoire utilisée, disponible, …).

Options les plus courantes :

-b	Utilise l'octet comme unité.

-k Utilise le kilo-octet comme unité.

-m Utilise le méga-octet comme unité.

-t Affiche les totaux sur une seule ligne.

grep

Syntaxe :

grep [options] expression [fichiers]

Description :

Effectue dans un ou plusieurs fichiers spécifiés la recherche d’une expression. Par défaut, la commande renvoie les lignes contenant l’expression.

Options les plus courantes :

-c	Affiche le nombre de lignes qui correspondent.

-v Affiche le nombre de ligne qui ne correspondent pas.

-e expression
Permet de recherche une expression commençant par le caractère -.

-i Ne fait pas de distinction entre les minuscules et les
majuscules.

-h Affiche les lignes qui correspondent mais pas les noms
de fichiers associés.

-l Affiche les noms de fichiers mais pas les lignes qui
correspondent.

-n Affiche les lignes qui correspondent et les numéros de lignes
associés.

gunzip

Syntaxe :

gunzip [options] [fichiers]

Description :

Décompresse un fichier. Le format des fichiers compressés est .gz. Voir également gzip.

gzip

Syntaxe :

gzip [options] [fichiers]

Description :

Compresse (ou décompresse suivant l’option utilisée) un fichier. Le format des fichiers compressés est .gz.

Options les plus courantes :

-d, --decompress,  --uncompress
	Décompresse un fichier spécifié (idem gunzip)

-l, –list
Affiche pour chaque fichier compressé :

ºla taille compressée,
ºla taille décompressée,
ºle ration,
ºle nom du fichier décompressé.

-q, –quiet
Supprime les avertissements.

-r, –recursive
Parcoure l’arborescence de façon récursive.

-t, –test
Teste l’intégrité du fichier compressé.

halt

Syntaxe :

halt [options]

Description :

Arrête le système. Voir également shutdown.

kill

Syntaxe :

kill [options] pid

Description :

Envoie un signal au processus dont le pid est spécifié. Si on ne précise pas de signal, TERM est envoyé. Ce dernier tue les processus qui ne l’interceptent pas. Pour les autres processus il faut utiliser le signal KILL (9) qui ne peut pas être intercepté.

Options les plus courantes :

-s	Précise le signal a  envoyer. Vous pouvez utiliser le nom ou le 
	numéro du signal.

-l Affiche la liste des signaux.

ln

Syntaxe :

ln [options] source [dest]
ln [options] sources... destrep

Description :

Cette commande permet de créer des liens pour les fichiers.

Dans la première syntaxe, un lien est créé de source vers dest (qui est généralement un nouveau nom de fichier, ou par défaut le répertoire courant). Si dest est un fichier existant, il sera écrasé; si dest est un répertoire existant, le lien source sera créé dans ce répertoire.

Dans la seconde syntaxe, des liens sont créés dans le répertoire destrep. Le nom de chacun des liens est identique à celui du fichier spécifié.

Options les plus courantes :

-b, --backup
	Effectue un backup des fichiers qui vont être effacés.

-d, -F, –directory
Permet à l’utilisateur root de créer des liens en dur vers des
répertoires.

-f, –force
Supprime les fichiers de destination existant.

-i, –interactive
Demande confirmation avant d’effacer un fichier destination
existant.

-s, –symbolic
Permet de créer des liens symboliques (à la place des liens en
dur).

-v, –verbose
Affiche le nom de chaque fichier avant de créer le lien.

login

Syntaxe :

login [name | option]

Description :

Permet de s’identifier et de se connecter au système. L’identification qui précède la connexion s’effectue en tapant son nom (qui peut être passé par la ligne de commande) puis son mot de passe (si nécessaire). Voir également logout.

Options les plus courantes :

-p	Préserve l'environnement.

-f Saute la seconde identification.

-h Utilisé par les serveurs pour spécifier le nom de la machine
distante (root seulement).

logout

Syntaxe :

logout

Description :

Permet de se déconnecter de la sessions en cours d’utilisation.

lpq

Syntaxe :

lpq [options] [nom]

Description :

Interroge la file d’attente et retourne l’état de tous les processus d’impression. Si un nom est spécifié, la commande ne prend en compte que les processus de cet utilisateur. Voir également lpr et lprm.

Options les plus courantes :

-P	Permet de spécifier une imprimante (si cette option n'est pas
	spécifiée, l'imprimante par défaut est utilisée).

-l Affiche l’intégralité des informations concernant les
processus.

lpr

Syntaxe :

lpr [options] fichiers

Description :

Envoie les fichier spécifiés dans la file d’attente d’impression. Voir également lpq et lprm.

Options les plus courantes :

-P	Spécifie l'imprimante à utiliser. En temps normal, il s'agit de 
	l'imprimante par défaut.

-h Supprime la page de garde.

-m Confirme la fin d’impression par mail.

lprm

Syntaxe :

lprm [options] [id] [utilisateur]

Description :

Supprime un fichier de la file d’attente d’impression. Vous devez spécifier l’identifiant du fichier à supprimer, vous pouvez obtenir cet identifiant via lpq. Un utilisateur privilégié peut également supprimer les fichiers d’un utilisateur spécifié. Voir également lpq et lpr.

Options les plus courantes :

-P	Spécifie l'imprimante à utiliser. En temps normal, il s'agit de
	l'imprimante par défaut.

-a Supprime tous les fichiers de l’utilisateur spécifié.

ls

Syntaxe :

ls [options] [noms]

Description :

Affiche le contenu d’un répertoire (répertoire courant si non spécifié). Si un nom de fichier est spécifié, affiche la liste des fichiers correspondants.

Options les plus courantes :

-a, -all
	Affiche tous les fichiers des répertoires, fichiers commençant 
	par un '.' inclus.

-d, -directory
Affiche les répertoires, sans lister leur contenu.

-l, –format=long, –format=verbose
Affichage au format long (inclus le type du fichier, les
droits d’accès, le propriétaire, la taille, …)

-s, –size
Affiche la taille de chaque fichier (en blocs de 1 Ko).

-t, –sort=time
Affiche le contenu des répertoires en fonction de la date
(fichiers les plus récents présentés en premier).

-u, –time=atime, –time=access, –time=use
Affiche le contenu des répertoires en fonction de la date de
dernière utilisation (accès) au fichier.

-F, –classify
Ajoute un caractère a chaque nom de fichier pour spécifier
le type :

‘*’ pour les fichiers exécutables,
‘/’ pour les répertoires,
‘@’ pour les liens symboliques,
‘|’ pour les FIFOs,
‘=’ pour les sockets.

-R, –recursive
Affiche le contenu de façon récursive (répertoires et
sous-répertoires).

-S, –sort=size
Affichage en fonction de la taille (du plus gros au plus petit).

-X, –sort=extension
Affichage en fonction de l’extension. Les fichiers sans extension
sont affichés en premier.

man

Syntaxe :

man [options] [section] [commande]

Description :

Affiche la page du manuel correspondant à la commande spécifiée. Suivant les commandes, vous devez également spécifier la section à laquelle elle appartient.

Options les plus courantes :

-a	Affiche toute les pages qui correspondent à la commande spécifiée.

-k Effectue la recherche sur la chaîne spécifiée.

Section :

1	Commandes utilisateurs.
2	Appels systèmes.
3	Appels bibliothèques.
4	Périphériques.
5	Format de fichiers.
6	Jeux.
7	Commandes supplémentaires.
8	Commandes systèmes.
9	Noyau.

mkdir

Syntaxe :

mkdir [options] répertoires

Description :

La commande mkdir (make directory) permet de créer un ou plusieurs répertoires. Voir également rmdir.

Options les plus courantes :

-m	Définit le mode d'accès au répertoire. 
	Voir la commande chmod pour plus de renseignements.

-p Permet de créer les répertoires pères spécifiés.

mkswap

Syntaxe :

mkswap [option] périphérique [taille]

Description :

Permet de créer un espace de swap sur le périphérique spécifié. Vous pouvez également définir sa taille en blocs.

Options les plus courantes :

-c	Vérifie la présence de blocs défectueux avant la
	création.

more

Syntaxe :

more [options] [fichiers]

Description :

more permet de consulter page par page un ou plusieurs fichiers textes spécifiés. Un certain nombre de commandes sont à votre disposition pour naviguer.

Options les plus courantes :

-num	nombre	Indique la taille de l'écran (en nombre de
	lignes).

-d Affiche un message en bas de l’écran et supprime le bip.

-f Effectue un comptage logique des lignes, utile lorsque les
lignes sont trop longues et sortent de l’écran.

-p Efface l’écran avant d’afficher la suite du texte (parfois plus
rapide que le déroulement).

-c Affichage ligne par ligne.

-s Regroupe en une seule ligne plusieurs lignes blanches
consécutives.

Commandes :

Entrée		Affiche la ligne suivante.

Espace Affiche l’écran suivant.

b, ou ^B Affiche l’écran précédent.

q, Q, INTERRUPT Quitter le programme.

/pattern Effectue la recherche du pattern spécifié.

n Répète la dernière recherche.

:n Passe au fichier suivant.

:p Passe au fichier précédent.

mount

Syntaxe :

mount [options] [périphérique] [répertoire]

Description :

Permet de monter un système de fichier (périphérique) sur le répertoire spécifié (répertoire). Ce répertoire doit exister et doit être également vide.

La commande mouunt seule affiche la liste de systèmes de fichiers et points de montages associés.

Options les plus courantes :

-a	Monte tous les systèmes de fichiers.

-r Montage du système de fichiers en lecture seule.

-w Montage du système de fichiers en lecture/écriture.

-t type L’argument type permet de spécifié le type du système de
fichiers (ext2, umsdos, nfs, …).

-o option
Voici quelques options disponibles :

defaults Utilise les options par défaut.
exec Autorise l’exécution des binaires.
noexec N’autorise pas l’exécution des binaires.
nouser Empêche l’utilisateur standard de monter le système
de fichiers.

remount Remonte un système de fichiers déjà monté.
ro Montage du système en lecture seule.
rw Montage du système en lecture/écriture.
user Autorise l’utilisateur standard à monter le système
de fichiers.

mv

Syntaxe :

mv [options] source cible

Description :

Déplace ou renomme des fichiers ou répertoires. Suivant la source et la cible, voici le résultat de la commande :


Source Cible Résultat


Fichier Nouveau Fichier Renomme le fichier

Fichier Fichier existant Ecrase le fichier cible avec le
fichier source

Répertoire Nouveau Répertoire Renomme le répertoire

Répertoire Répertoire existant Déplace le répertoire source
dans le répertoire cible

Fichiers Répertoire existant Déplace les fichiers dans le
Répertoire cible


Options les plus courantes :

-b, --backup
	Effectue  une  copie  des fichiers qui vont être supprimés.

-f, –force
Supprime les fichiers sans confirmation.

-i, –interactive
Demande confirmation avant la suppression d’un fichier.

-u, –update
Ne déplace pas un fichier qui en écraserait un plus récent.

passwd

Syntaxe :

passwd [utilisateur]

Description :

Permet de modifier le mot de passe utilisateur. Seul l’utilisateur root peut modifier le mot de passe d’un autre utilisateur.

ps

Syntaxe :

ps [options]

Description :

Affiche des informations sur les différents processus en cours. Ces informations ne sont valables qu’à l’instant i (c’est à dire au moment de l’exécution de la commande).

Options les plus courantes :

-a	Affiche les processus de tous les utilisateurs.

-u Affiche des informations sur l’utilisateur.

-x Affiche les processus qui ne sont pas liés à un terminal.

-l Affichage au format long.

-h N’affiche pas l’en-tête.

pwd

Syntaxe :

pwd

Description :

Affiche le nom du répertoire de travail courant.

umount

Syntaxe :

umount [options] [périphérique/répertoire]

Description :

Démonte le système de fichiers spécifié (par le nom du périphérique ou par le nom du répertoire associé).

Options les plus courantes :

-a	Démonte tous les systèmes de fichiers.

-t type Démonte seulement les systèmes de fichiers dont le type
est spécifié.

reboot

Syntaxe :

reboot [options]

Description :

Reboote le système. Cette commande s’utilise seulement en mode mono-utilisateur. Voir également shutdown.

rm

Syntaxe :

rm [options] fichiers

Description :

Efface le ou les fichiers spécifiés.

Options les plus courantes :

-d, --directory	
	Efface le répertoire spécifié (même s'il n'est pas vide).

-i, –interactive
Demande confirmation avant d’effacer le ou les fichiers.

-r, -R, –recursive
Efface de façon récursive le contenu du répertoire (répertoire et
sous-répertoires).

rmdir

Syntaxe :

rmdir [options] [répertoires]

Description :

Supprime le ou les répertoires spécifiés (les répertoires doivent être vides).

Options les plus courantes :

-p	Supprime les répertoires pères spécifiés.

shutdown

Syntaxe :

shutdown [options] time [message]

Description :

Effectue un shutdown du système. Vous pouvez spécifier l’heure du shutdown en utilisant le format hh:mm. Vous pouvez également utiliser un compte à rebours en utilisant le format +m.

Vous pouvez définir un message pour avertir les utilisateurs shutdown du système.

Options les plus courantes :

-h	Arrête le système à la fin du shutdown.

-r Reboote le système à la fin du shutdown.

swapon

Syntaxe :

swapon [options] périphérique

Description :

Active l’espace de swap sur le périphérique spécifié.

Options les plus courantes :

-a	Utilise les périphériques définis comme espace de swap (sw)
	dans le fichier /etc/fstab.

swapoff

Syntaxe :

swapoff [options] périphérique

Description :

Désactive l’espace de swap sur le périphérique spécifié.

Options les plus courantes :

-a	Utilise les périphériques définis comme espace de swap (sw) 
	dans le fichier /etc/fstab.

tar

Syntaxe :

tar [options] [fichier tar] [fichiers]

Description :

Permet de créer ou d’extraire des fichiers archives .tar.

Options les plus courantes :

-c, --create
	Permet de créer une nouvelle archive.

-d, –compare
Compare les fichiers contenus dans l’archives avec ceux qui sont
spécifiés.

-f, –file=
Stocke ou extrait les fichiers à partir du fichier archive
spécifié.

-r, –append
Ajoute les fichiers spécifiés à une archive existante.

-v, –verbose
Affiche les noms des fichiers.

-x, –extract, –get
Permet d’extraire les fichiers spécifiés de l’archive. Si aucun fichier
n’est spécifié, effectue l’extraction complète.

unalias

Syntaxe :

unalias nom

Description :

Supprime l’alias spécifié.



© 1996-2001 Linux-Kheops

service vsftpd

apt-get install vsftpd

ou

[root@pdtb5 sbin]# yum install vsftpd
Loaded plugins: rhnplugin, security
This system is not registered with ULN.
You can use up2date --register to register.
ULN support will be disabled.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.x86_64 0:2.0.5-28.el5 set to be updated
OL5_latest/filelists                                                                         |  32 MB     00:14
OL_UEK2_latest/filelists                                                                     | 8.7 MB     00:02
el5_latest/filelists                                                                         |  32 MB     00:09
ol5_UEK_latest/filelists                                                                     | 8.7 MB     00:02
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================
 Package                 Arch                    Version                          Repository                   Size
====================================================================================================================
Installing:
 vsftpd                  x86_64                  2.0.5-28.el5                     OL5_latest                  143 k

Transaction Summary
====================================================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 143 k
Is this ok [y/N]: y
Downloading Packages:
vsftpd-2.0.5-28.el5.x86_64.rpm                                                               | 143 kB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : vsftpd                                                                                       1/1

Installed:
  vsftpd.x86_64 0:2.0.5-28.el5

Complete!
[root@pdtb5 sbin]#

———————————–

Exemple avec le service vsftpd

root@Vsch1:/#ps -ef |grep vsftpd
root 2100 1 0 Jul06 ? 00:00:00 /usr/sbin/vsftpd
root 8874 8753 0 10:44 pts/0 00:00:00 grep ftp

[root@pong sbin]# cd /etc/init.d/

[root@pong init.d]# ./vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]

root@Vsch1:/#stop vsftpd
vsftpd stop/waiting

root@Vsch1:/#start vsftpd
vsftpd start/running, process 8904

Test if then else

Tester un variable null

numligne=`grep  -n "$day  " $fic |head -1 | awk -F ':' '{print $1}'`
if [ "x$numligne" == "x" ]; then
	echo "Pas d erreur trouvée"
	exit 0
else
	echo "Erreur trouvée en ligne : " $numligne
fi

Attendre que le processus soit stoppé.

echo ---- arret du client Vtom ----
su -l vtom -c /opt/vtom/admin/stop_client

w_test1=1
while [ ${w_test1} != 0 ]
do
        sleep 5
        w_test1=`ps -ef | grep bdaemon |grep -v grep |wc -l`
done

Première lettre Majuscule suite en minuscule

var=$1
echo var : $var

# --- transformation en majuscule
maj=`echo $var | tr "a-z" "A-Z"`
echo maj : $maj

# --- transformation en minuscule
min=`echo $var | tr "A-Z" "a-z"`
echo maj : $min

# --- Première lettre en majuscule suite en minuscule
maj1=`echo $var | tr "A-Z" "a-z"  | sed 's/^./\u&/'`
echo Ma1 : $maj1

# — remplacer 0 par espace dans une date
$day=03
echo Day_avec_zero : $day
day=`echo $day | tr « 0 »  »  » | sed ‘s/^./\u&/’`
echo Day_sans_zero : $day

Utilisation des Core

mpstat -P ALL
Linux 2.6.32-33-generic (vetl) 09/13/2013 _x86_64_ (4 CPU)

01:47:19 PM CPU  %usr  %nice %sys  %iowait %irq  %soft %steal %guest %idle
 01:47:19 PM all 23.62  0.02  0.96  0.11   0.02  0.06   0.00   0.00  75.21
 01:47:19 PM 0   17.62  0.01  0.87  0.10   0.07  0.24   0.00   0.00  81.09
 01:47:19 PM 1   26.05  0.02  1.01  0.20   0.00  0.00   0.00   0.00  72.71
 01:47:19 PM 2   25.93  0.02  1.00  0.08   0.00  0.01   0.00   0.00  72.96
 01:47:19 PM 3   24.97  0.02  0.96  0.07   0.00  0.00   0.00   0.00  73.97

Remplacement d’un caractère par un autre

Windows

Remplacement de a par b dans la variable P1

set p1=%p1:a=b%

Remplacement de  » par rien dans la variable P1

set p1=%p1:"=%

Remplacement de (espace) par _ dans la variable P1

set f_name=%1%
set f_nom=%f_name: =_%
echo fichier : %f_nom%

Suppression des espaces dans les noms de fichiers

@echo off
rem ------ Suppression des espaces dans les noms de fichiers

SETLOCAL ENABLEDELAYEDEXPANSION

set d_rep=G:\Contacts\processing\
set w_fic=*.xlsx

if EXIST %d_rep%%w_fic%. (
for /r "%d_rep%" %%i in ("%w_fic%") do (
	set wf_name="%%~fi"
	set ww_name=%%~ni%%~xi
	set wf_nom=!ww_name: =_!
	echo ren !wf_name! !wf_nom!
	ren !wf_name! !wf_nom!
	)
)

Linux

echo "bonjour" | sed 'sZbZBZ'
ou
echo "bonjour" | sed 's/b/B/'
Bonjour

exemple :
uptime | awk '{print $10}'
49.05,

uptime | awk '{print $10}' | sed 's/,//' | sed 's/\./,/'
49,05