/[^[:print:]]De meme il est possible d'afficher tous les caracteres (même non imprimable) avec :
:list
Base de connaissance commune et informelle des collaborateurs de la société Neolog.
/[^[:print:]]De meme il est possible d'afficher tous les caracteres (même non imprimable) avec :
:list
$ cat ~/.inputrc
"\e[A": history-search-backward
"\e[B": history-search-forward
"\e[C": forward-char
"\e[D": backward-char
function is_digit(num) { return RegExp('^[0-9]+$','g').test(num); }
Ici les meta-caractères doivent être précédé d'un anti-slash pour être "activé".
Ils sont considérés comme des caractères normaux sinon...
exemple : avec la commande "grep -e"
Ici les meta-caractères sont "activé" par défaut.
Il sont considérés comme des caractères normaux s'il sont précédé d'un anti-slash (on dira couramment que le caractère est échappé).
exemple : avec la commande "grep -E"
$ /etc/init.d/mysql stop
$ mysqld --skip-grant-tables &
$ mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1Server version: 5.0.38-Ubuntu_0ubuntu1.1-log
Ubuntu 7.04 distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> UPDATE mysql.user SET Password=PASSWORD('mon_mot2passe')
WHERE User='root';
Query OK, 3 rows affected (0.05 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)
mysql> exit
Bye
$ killall mysqld
$/etc/init.d/mysql start
-bash: 08: value too great for base (error token is "08")Ici bash nous indique qu'il ne peut pas affecter la valeur "08" à une variable. En effet le '0' en premiere position indique au shell qu'on est en octal i.e. base 8. Les seuls chiffres autorisés seront donc entre 0 et 7 (d'où le message "valeur trop grande pour cette base")
$ declare -i NUM
$ NUM=08
-bash: 08: value too great for base (error token is"08")
$ NUM=10#08
$ echo $NUM
8
$ NUM=16#AF5E
$ echo $NUM
44894
# save your prompt
PS1_SAVE=$PS1
# set the prompt to blank
PS1=''
# save the number of colums of the terminal
COLUMNS=$(tput cols)
# save the number of lines of the terminal
LINES=$(tput lines)
# set the message you want to display (here it's "hello I am at the center of the term")
message="coucou je suis au milieu du terminal"
# get the horizontal position to center your text
hpos=$(expr $LINES / 2)
# get the vertical position to center your text
vpos=$(expr \( $COLUMNS - $(echo "$message" | wc -c) \) / 2)
# move the cursor to that position
tput cup $hpos $vpos
# enter in reverse video mode
tput rev
# display the message
echo "$message"
# wait for 3 second to see the message
sleep 3
# recall your default prompt
PS1=$PS1_SAVE
# reset all terminal settings
tput sgr0
# clear the screen
tput clear
Par défaut, windows utilise DOSLatin1 (codepage 850) dans son invite de commande (cmd.exe). Nous souhaitons passer à WinLatin1 (codepage 1252).
Pour ce faire vous pouvez utiliser la commande chcp <num> qui vous permettra de changer le codepage à la volée, ou bien modifier la valeur de la clé de registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP (redémarrage nécessaire).
Dans les propriétés de l'invite de commande Windows, onglet "Police", choisissez
la police "Lucida Console" en lieu et place de "Polices Raster"
# save cursor position
tput sc
# move cursor to 10th line and 20th column
tput cup 10 20
# write some text from here in standout mode
tput smso
echo "j ecris a partir de la 10eme ligne et la 20eme colonne"
# restore cursor position
tput rc
# exit from standout mode
tput rmso
stty erase "^H" kill "^U" intr "^C" eof "^D" susp "^Z"Pour une meilleure portabilité, il est possible d'interroger directement la base de donnée terminfo/termcap et d'attribuer le caractere associé à la fonction souhaitée. Par exemple pour l'effacement de caractère :
sttry erase $(tput kbs)