Vous êtes sur la page 1sur 8

Ce document regroupe les principales commandes susceptibles d’être employées par les stagiaires de la formation « Programmation Shell et Langages de Scripts », en rappelant leurs options les plus utilisées. Pour avoir plus de détail sur une commande particulière, on consultera le manuel Unix (commande man).

on consultera le manuel Unix (commande man ). propos apropos shell arch at, atq, atrm !

propos

apropos shell

arch at, atq, atrm ! " # $ % #! ! -f & !

$ at now + 10 minutes < script.sh

$ at 20:55 -f demarre_magnetoscope.sh awk ' ! () NF $ FS ! NR ! * +

$1, $2

$NF

ls -l | awk '{somme+= $5} END{print somme}'

!

asename , - # , - #

!.

$ basename /usr/src/linux/signal.c signal.c

$ basename /usr/src/linux/signal.c .c signal

$

bash / batch $ ! ! . 0 - batch << FIN tri_des_enregistrements FIN

bc ! $

-l $ $ -& ! & -

$ pi=$(echo "a(1)*4" | bc -l)

$ echo $pi

3.14159265358979323844

$

bg 1 % - 2 $ 3 !

$

application

(Ctrl-Z)

[1]+ Stopped

application

$ bg

[1]+ application &

$

bunzip2 4! .bz2 bzip2

$ bg [1]+ application & $ bunzip2 4! .bz2 bzip2 al cal 5 2003 cat -

al

cal 5 2003

cat - -n ! " -v - ! # 0 $ & cat entete.txt corps.txt signature.txt mail.txt cc cd ! .

cd

/usr/src/linux

cd

. ! ! !

cd

. ! chgrp ! -R ! . 2 ! chgrp equipe_2 fichier

chmod -R ! . 2 !

chmod 644 texte " ! ! chmod 755 script #! " ! ! chmod u+s executable . $ 25'4 chown ! -R ! . 2 ! chown user1.equipe1 fichier chsh ! % # -l $ " -s # & ! chsh -s /bin/ksh cksum 6 $ 7 clear ! cmp # -l & ! "

-s 8 "

#

if cmp –s fichier1 fichier2; then

col , 2 2 - -b -. - man col | col -b > col.man.txt compress cp -R ! . 2 ! " -p " ! " " -d 0 $ & & cp fichier fichier.sauve cp -Rdp fichier_* /autre/repertoire crontab , crontab -l " -e ! crontab" -r crontab csh csplit 4! . # -f ! # . #

csplit -f prefixe fichier '/^$/' {*} ! prefixe00 prefixe01 ! % & . cut & -b - & ! " -f & ! " -d - !

ls -l | cut -b 20-28 & - % 9" 2%2

! ls -l | cut -b 20-28 & - % 9" 2%2 ate 0 - -d

ate 0 -

-d & % + : date +"Date = %D, Heure = %X" date -d 20030401 +"%A" ; ; *< . =+ dd ! ! & . if= ! " of= " bs= $ % " count= $ # $ % " skip= !$ " seek= !$ ! dd if=/dev/fd0 of=disquette.img bs=1024

count=1440

df > ! 0 - -k ) 2 " -P 2 3 df –k /tmp/sauvegarde

diff ? . ! -i ! @ " -b ! 8 $ " -u $ . patch" -r ! ! . 2 ! diff -u original copie > modifs.patch dirname ! - $ dirname /usr/src/linux/signal.c /usr/src/linux

$

dos2unix . # 4 . 5 # du & & -a & " -s " -x 2 ! 0 - " -k ) 2

cho # #

-e - - 0 $ & " -n !. 2 2 echo "Message d'avertissement" >&2 echo -n "Votre choix :" echo -e "\r effectué : " $i "%" echo –e "\007" ed , 2%2 egrep 0 0 grep -E emacs , / A B2C ( D xemacs env -i 4! env .

env -i /bin/sh ! . expand . $ -t $ ! ! " -i & $ !$

!

expand –i < script.sh > listing.txt

export > . $ 8 . export REP_APPLI=/usr/local/lib/appli/

VERSION_APPLI=1.5

export VERSION_APPLI expr ,. # expr 4 "*" 3 + 2 affiche 14

* - ! +

alse , until false; do , until false; do

fc , - 8 & . 8! ! . $ 8 . FCEDIT fg 1 - $ % 8 . 2 fgrep 0 0 grep -F file 0 8 find 1 $ -name motif " -regex expr " -atime n - 0 "

-ctime

-mtime n - " -perm mode - " -size n * $ +"

-type t 0 " -print .! "

-exec

\{\} "

-ok

n - ! "

\{\}

\; #! & ! E

exec .

\{\}\;

find /tmp -ctime +30 -ok rm \{\} \; find /home -name core -exec rm \{\} \;

fold 8 % ! ftp ?

fuser ' -k . '/F' "

-i

-m ! 0 - fuser -k /mnt/cdrom

rep %

0 "

-m ! 0 - fuser -k /mnt/cdrom rep % 0 " -E # ! " -F

-E # ! " -F : # " -i ! @ " -v " -l grep -i "MoTiF" fichiers_* grep -v "absent" fichier groups 8 gunzip 4! .gz gzip

ead !$ !$

-c n " -n n - hostid 8 hostname iconv . # 8 - . iconv –f LATIN1 –t UTF8 < fichier

d 5'4 /'4 ! 5'4 /'4 !

-u 5'4" -g /'4" -r ! if [ $(id -u) == 0 ]; then

obs $

-r ! if [ $(id -u) == 0 ]; then obs $ join G # !

join G # ! join fichier_1 fichier_2 > fichier_3

G # ! join fichier_1 fichier_2 > fichier_3 ill . % - numéro ! & !"

ill . %

-numéro ! & !" -l # $ kill -9 30582 killall . # 3 -i . " -l # $ killall xterm ksh F

ess 2 2 2 2

* . $ % more + lex /! ! 8 0 # ln ! -f ! # " -s ! 0 $ &

ln -sf appli-1.4.sh appli logger H 0 - login 1 # 0 - logname 6 # lp 1 & 3 8 -d ! 8 -n $ pr -l 66 appli.c | lp -d listing ls 8! ! -a E " -d ! " " -i ! 2 I " -l " -R ! . 2 ! ls -al /home/usera ls -lR /var/ftp/pub > /var/ftp/liste- fichiers.txt

@@((( $ @

Ce document regroupe les principales commandes susceptibles d’être employées par les stagiaires de la formation « Programmation Shell et Langages de Scripts », en rappelant leurs options les plus utilisées. Pour avoir plus de détail sur une commande particulière, on consultera le manuel Unix (commande man)

ake particulière, on consultera le manuel Unix (commande man ) man ! " # numéro $ -a

man ! " # numéro $ -a -t % -k $ & !! apropos man 1 c man -k socket md5sum ! ' ()* mkdir -p ! -m mode # + , mkdir -p /var/lib/new-app/font/big mkfifo -.-/ 0 1 !! 2 -m mode # + , mkfifo -m 666 /tmp/fifo_serveur mknod # b c 1 ,

mknod /dev/hda1 b 3 1 ! ! 3 4! 546 more 0 less2

mv ) !!

-f + ! for i in *.JPG; do mv $i ${i%JPG}jpg; done

!! 7%8 3

ice # !! # !!

! ! -n valeur ! nl 9 ! + -f a !

nohup # !! 1 #

#

$ $
$
$

nohup ~/bin/calcul & [1] 17300

exit

d +

+

! -c , ! ! 1 -x # ! #

$
$

asswd !

passwd

# passwd utilisateur

patch $ ! & -pn , 1 !

$ patch –p1

/new_version/patch_1

pathchk : + ! -p 1 if pathchk "$rep/$fic" ; then

perl . % -w ! ping ; ! -c !1 -w ! # ! pr % # + ! -h texte $ + ' < $ -l n -t ! ' <

printf ! $ !

printf "%05d %4.2f" $x $y ps + -ax 0 )2 -u ! ! , 0 )2 -e 0 = :2 -f ! ! , 0 = :2 -w

ps -aux

ps -ef

(BSD)

(SysV)

pwd !

0 = :2 -w ps -aux ps -ef (BSD) (SysV) pwd ! uota $ + $

uota $ + $

cp > = ,!

renice ( + renice +20 14210 rev . + 0 tac2 rlogin # = ,! 0 ssh2

rm

-f !

-i ! $ ! -r ! ' rm -rf /home/usera/tmp

rmdir rsh # !! = ,! 0 ssh2

cript

'a fic 3 sed ? ' "

ssh 2 cript ' a fic 3 sed ? ' " -e " -f fic !!

-e "

-f fic !!

-n ! +

!!

!! @

p

d

n

s

&

! !

sed -ne '1,/^$/p' < mail.txt # + ' < + ! sh sleep ! sleep 14

06 2

sleep 3m

05 ! 2

sort ; + # -b 1 1 -f ! 3 4! -r split ) -l n -b n split -b 1440k gros_fichier disquette_ ssh # = ,! ssh user@hostname ssh –l user hostname /usr/bin/commande strings > stty ! -a sane ! -echo + , -icanon min 0 time 1 , &

su # ".) 8.) - # sum !! A !1 1

ac , & + , & +

tail + -num !1 $ -f ! tail -f /var/log/messages tar " + -f fic ! + -c -t + -x # + -z $ 8 B 0 2 ! -j $ 1B 0 2 ! -v ! 1 tar -czf save.tar.gz /home/usera/* tar -xzf appli-1.10.tgz tcl . ; 0 wish2 tee -a 3 !

| tee hublot_1.log | telnet # = ,!

0 ssh2

test ;= + ! = =! !! [ ] if test –f $fichier ; then time ! !! ! touch ( + + -t MMJJhhmm $ -r fichier + tr ; ! , tr ‘àâäçéèêïîôöùû’ ‘aaaceeeiioouu’| true C & while true; do tty ! ! +

name ! = ,! ! = ,!

-m = ! ! + A

-r = ,!

-n

-s = ,! + #

-a

!

uncompress ) ! .Z unexpand 1

0

expand2

uniq D $ -u + $ $ -d + $ $ -c !1 + unix2dos # ! " # ! ) unzip ) ! .zip uptime ; ! ! = ,! users 9 ! uudecode ) .uu uuencode 1

users 9 ! uudecode ) .uu uuencode 1 i ? : E'F G @ gvim  

i ?

: E'F G @ gvim

 

ait +

$

./commande &

[1] 2927

./commande

$

wait 2927

[1]+ Done

./commande

$

 

wc 9 !1 , ! + whereis C # 1 ! + !! which ! + , !! who ( $ whoami ".) wish . ; 1 1 ,$ ;H

whoami ".) wish . ; 1 1 ,$ ;H args # !! find . -name "*.c"

args # !! find . -name "*.c" | xargs grep "init()"

acc 8 = = # $

yes ! > 0 Iy 2 yes | rm -r /var/old-backup/

! > 0 I y 2 yes | rm -r /var/old-backup/ cat ! zip ! Expressions

cat !

zip !

Expressions rationnelles

grep sed find –regex # grep –e awk perl #

Éléments communs

\ ! , #

prix=25\$

. ! ! $ , g.n.rique J 1 > K >

^$ 0 2

* $ B

[ ] [eéêèë]

[0-9]

[[:upper:]] \i ,! ! ,

Classes de caractères

alpha , 1 $ digit ! # xdigit # ! # alnum , ! $ lower ! upper ! 3 blank , 1 space , punct graph =!1 1 print =!1 1 1 cntrl , A !

Éléments des expressions rationnelles étendues

| Y|y

+ !

? ! B [+-]?[[:digit:]]+

{ } ! !1 ( ) !

Équivalences pour les expressions rationnelles simples

\| | # \+ + # \? ? # \{ \} # {} # \( \) # () #

44GGG 1 4

Ce document rappelle les commandes et les options les plus utilisées par l’administrateur d’un système Linux. Il s’agit surtout de commandes assez générales, dont tout administrateur aura besoin un jour ou l’autre. Les commandes pour l’utilisateur courant se trouvent dans un autre aide-mémoire. Pour plus d’informations, on consultera les pages de manuel ou les publications du Linux Documentation Project

(http://www.tldp.org/)

Informations système

uname

-a !

dmesg " # $ % & ' uptime ( ) # free * ! ) vmstat () ! !+ ! ! ) ipcs , ! - . ipcrm - . ldconfig . ! ! & &! / / init # 0

0 1 1 2 ! 3 3 ! 2 ! % 3 5 ! 2 ! # / 3 6 )

Utilisateurs

useradd 4 + !

useradd –m –p "" linus ) 3 0 ) ! 0

userdel + !

userdel –r linus ! ! )

passwd " +

passwd linus

Partitions et systèmes de fichiers

fdisk 5 ! &!

fdisk /dev/hda

mkswap ) + 6 7

mkswap /dev/hda2 mkswap /boot/swap_file

swapon 0 + 6 7

swapon /dev/hda2 -a 0 ! 6 7 /etc/fstab

swapoff – () 0 + 6 7

swapoff /dev/hda2

mkfs ) +

mkfs.ext2 /dev/hda3 mkfs.ext3 /dev/hda4 mkfs.vfat /dev/hda5

fsck .) +

fsck.ext2 –p /dev/hda3 ) / + % 8 % 93 fsck.vfat /dev/hda4 0) + : 7

mount !

mount –t vfat /dev/hda4 /mnt/dos/ : 7 3 mount –a ! /etc/fstab3 mount 192.1.1.254:/home /home/users/ " # + ) ;< * 0 –o /etc/fstab default 73 3 03 % 3 3 3 3 remount # ! & + )3 rw ! ) 3 ro ! ! 3 noauto / 0 2 3 nodev ! ) %3 noexec %) &! 3 nosuid = # ! & 2, (8> (3 sync ) 3 user 1 ) !

?

%3 % 3 % 93 3 0 3 3 @AA 3 &

umount () # +

-a ) ! /etc/mtab umount /dev/hda4 umount /mnt/dos umount –a

df * )

Distribution / installation de logiciel

tar > + 0

-c ) + 0 3 -x % + 0 3 -t ! + 0 3 -f 0 3 -v 0 ! & ! 3 -z $ )' 0 #$ '6 3 -j $ )' 0 &$ '6 tar –czf archive.tar.gz distrib/ ) 0 ) ) distrib/3 tar –tvf archive.tar

! ! !+ 0 3

tar –xjf archive.tar.bz2

% ! + 0 )

installation classique

tar –xzf application-1.01.tar.gz cd application-1.01 ./configure make && make install

rpm – > / # B C

-h # ! # 0 ! rpm –ivh paquet.rpm !! + / # 3 rpm –Uvh paquet.rpm

D 4 8 !! + / # 3 rpm –Fvh paquet.rpm D 4 + / # )4D !!)3 rpm –e paquet ) !! + / # 3 rpm –qa

! ! / # !!) 3

rpm –qf /chemin/fichier

/ # / ! ! 3 rpm –qip paquet.rpm / # 3 rpm –qlp paquet.rpm

! ! / #

apt > / # ( &

apt-get install application !! !+ ! )0 !! 3 apt-get remove application ! ) )0 !! 3 apt-get update D 4 ! & ) 3

apt-get upgrade D 4

Gestion des processus

application & ! !+ ! D !+ 2 ! 3 fg 1 D !+ 0 2 ! ! 4 & ) E3 (Ctrl-Z) !+ ! D !+ 0 2 ! 3 bg ! D !+ 2 ! 4 &

ps 5

ps –ef

ps –aux # ! # !

top #

-d )! F

renice # ! +

renice +5 12857 # ! E GHI H ) 3 renice –5 –u root H ! !

kill 0 # ! D

kill –15 12857 -l $! !' ! # % &!

killall ? ! 1

killall –9 boucle_fork

fuser ) D

fuser –k –m /dev/hda5 ! ) D ! / )

Utilitaires réseau

ifconfig # )

ifconfig -a ! # ! ) 3

ifconfig eth0 192.1.1.50 # !

route > ! &! #

route add -net 192.1.1.0 eth0 4 / 0 !+ eth03 route add -net 172.1.1.0 gw 192.1.1.5 4 ) &! !! 3 route add default eth1 4 ) 3

route del default ! )

socklist J 0

netstat / )

netstat –r ! &! # 3 netstat –i !+) ) 3 netstat –a !+) J

arp > ! &! B-

-a ! ) ! B-3

arp –d hote ! ) !+ K / )

ping +) 0 + K

ping –c 1 –w 2 192.1.1.53 ! / 1 ! 3

ping –b 192.1.1.255 / 1 ) & D ! K )

traceroute 4 K

traceroute www.destination.com -n ) ! ) /

tcpdump % )

tcpdump –i eth0 / ! eth03

tcpdump –i eth0 port telnet ! # 8 0 ! 9 $ '

telnet % ? -8 -

telnet mail.isp.com pop-3 % EE $ ' 0

rsh %) + !! ssh %) ) ) + !! ftp ?

!! open 0 #

cd

lcd 8 8! !8

get

put

prompt mget L mput L

8 8 8

wget B ! + ,B

wget http://www.site.com/repertoire/ -c )4D )3 -r # ) 0 ! ! 3 -l niveau % ! ) 3 -k 0 ! ! ! %

Signaux fréquemment utilisés

0 # ! 0) ! ) + 3 1 $SIGHUP' % 3 2 $SIGINT3 !2 ' ) # 3 3 $SIGQUIT3 !2M' ) 0 3 9 $SIGKILL' &! # ) 3 15 $SIGTERM' !

Gestion des modules du noyau

lsmod ! #) modinfo ! insmod + ! !

insmod module.o

rmmod + !) #)

rmmod module

depmod .) )

depmod –an

modprobe # #) ! )

modprobe module.o

Compilation d’un noyau Linux

ftp ftp.kernel.org

) ) ! ) ) $ % ' ! ) /pub/linux/kernel/3 tar –xjf linux-XXXX.tar.bz2

cd

make mrproper make menuconfig 0 ! # ) ) 3 make dep clean bzImage $ '

make $ A'

- 3 make modules && make modules_install

linux-XXXX

cp

System.map /boot/System.map-XXXX

cd

arch/i386/boot/

cp

bzImage /boot/vmlinuz-XXXX

vi

/etc/lilo.conf

4 !+ ) ! 0 3

/sbin/lilo

/sbin/init 6

! 88777 &! #8

Ce document d’accompagnement du stage « Programmation Shell et Langages de Scripts » rappelle les points principaux à retenir concernant la programmation pour shells Bourne et Korn.

Évaluation des expressions

variable=valeur

tableau[rang]=valeur !

${variable} " # ${tableau[rang]} " # ${variable-valeur} " # ${variable=valeur} # ${variable?valeur} ! ${#variable} " # ${variable#motif} " $ # ${variable%motif} " $ # ${variable##motif} ${variable%%motif} $ $ % !

~utilisateur/ " # ab{c,d,e}fg abcfg abdfg abefg $(commande) " # $((expression)) " " & ' !

Protection des caractères spéciaux

"$var1 $var2" ( " ) % # '$var1 $var2' ( * " " +# \$var ' $ & "" ' * " " +!

Structures de contrôle

Boucles

while cmd_1 ; do commandes done , ' & * +! until cmd_1 ; do commandes done , ' & $! for variable in liste ; do commandes done , ' " " !

break " % for# while until!

continue - % !

Tests

if cmd_1 ; then

cmd_2

elif cmd_3 ; then

cmd_4

else

cmd_5

fi $ ! # $ # $ ! case expression in motif_1 ) cmd_1 ;; motif_2 | motif_3 ) cmd_2 ;; * ) cmd_3 ;;

esac # $ # # $ # $ !

Fonctions

fonction_1 ()

{

commandes…

}

!

fonction_1 valeur_1 valeur_2 . " $1# $2/ "% $#!

local variable

% -

return valeur " 0 !

Motifs du shell

*

" & ( ' *"1" +#

?

" & ' #

\*

' *# ?# \#

[liste] ' l# i# s# t# e

[b-e] ' b# c# d# e [^liste] 2 " & '

\?

\\

Redirections