LPI Exam 101 - doc. LPI 101/Sujet 103 - Commandes GNU...  UPMC – FP – Pr©paration LPI - v1.1

  • View
    215

  • Download
    0

Embed Size (px)

Text of LPI Exam 101 - doc. LPI 101/Sujet 103 - Commandes GNU...  UPMC – FP...

1

LPI

Exam 101

103.1 Ligne de commande

UPMC FP Prparation LPI - v1.1 2

103.1 Domaines de connaissances

Poids:4

Utilisationdelalignedecommande

Modificationdel'environnementd'excutiondushell:variables

Historiquedescommandes

Excutiondecommandes:dansethorsdescheminsdfinisdanslavariabled'environnementPATH

UPMC FP Prparation LPI - v1.1 3

103.1 shell bash

Commandesinternesetexternes

Lescommandesinternesfontpartiedushell(builtincommands):

pasdefichierexcutablecorrespondant

Lescommandesexternes...c'estl'ensembledesprogrammesdevotresystme

...maisilexistedescommandesinternesetexternesquiportentlemmenom:echo

Commentreconnatreletyped'unecommande

typeacommande[aoi@test]$typecdcdisashellbuiltin[aoi@test]$typemoremoreis/bin/more

[aoi@test]$typeaechoechoisashellbuiltinechois/bin/echo

UPMC FP Prparation LPI - v1.1 4

103.1 shell bash

Leshell(coquille)estunprogrammequipermetlasaisieetl'interprtationdecequiesttap.C'estl'interfaceentrelesystmeetl'utilisateur.

Icipasd'interfacegraphique:l'interactionutilisateursefaitparl'intermdiairedemotsfrappsauclavier

C'estlafois...

Uninterprteurdecommandes(unprogrammequiboucleenattentedescommandesutilisateur)

Unlangagedeprogrammation(interprt)offrantlesstructuresdebasecommetoutautrelangage

SousUnix,leshellestunprogrammeaummetitrequ'unautre.Onpeutdoncchangerdeshellsibesoin.

UPMC FP Prparation LPI - v1.1 5

103.1 shell bash

shellslesplusrpandus:

sh(bourneshell):disponiblesurtouteplateformeUnix

bash(bourneAgainshell):DistribusurlamajeurepartiedesLinux;versionamlioredeshetcsh

ksh(kornshell):BourneshellamliorparAT&T

csh(Cshell):shelldvelopppourBSD

Tcsh(Tom'sCshell):varianteduCchell

SurlesLinuxrcents

Liensymbolique:/bin/sh>/bin/bash

Unshellestassocipardfautchaqueutilisateur.Ilestdfinitdanslefichier/etc/passwd

UPMC FP Prparation LPI - v1.1 6

103.1 shell bash

Lalistedesshellsvalidessurunsystmeseststockedanslefichier/etc/shells

Lacommandechshpermetdemodifierleshellpardfautd'unutilisateur

/bin/nologin:commanderefusantlaconnexiond'unutilisateurlorsqu'elleremplacesonshellpardfaut.Lemessaged'informationstandardpeuttreremplacparlecontenudufichier/etc/nologin.txtsicefichierexiste.

$cat/etc/shells/bin/sh/bin/bash/sbin/nologin

UPMC FP Prparation LPI - v1.1 7

103.1 shell bash

Touslesshellsseprsententsouslammeforme:

unechanedecaractresaffichequeleshellattendquel'utilisateurtapeunecommandeauclavier:leprompt

Parconvention $:identifieunutilisateurstandard #:identifieunesessionroot

uncurseurquivasedplaceraufuretmesuredelasaisiedescommandes

Prompt

Curseurd'insertion

UPMC FP Prparation LPI - v1.1 8

103.1 shell bash

Lacompositiondupromptestgreviadesvariablesd'environnement

PS1:promptpardfaut

PS2:promptaffichlorsquelalignedecommandecontinuesurlalignesuivante(souvent'>')

PS3:promptaffichlorsd'uneboucleselectd'unscriptshell

PS4:promptutilislorsqueleshellestenmodedebug(souvent:'+')

Utilisationdesquencesd'chappementpourmodifiercesvariables(extrait)

\d:date \het\H:nomdemachine(avecetsansnomde

domaine)

UPMC FP Prparation LPI - v1.1 9

103.1 shell bash

....

\u:nomutilisateur \wetW\:rpertoirecourantetbasename \$:#pourrootet$pourlesautresutilisateurs \n:newline

$echo$PS1[\u@\h\W]\$[moi@mamachine~]$PS1="Monprompt\$"Monprompt$

$echo"Commandequisepoursuit\>surlasecondeligne"Commandequisepoursuitsurlasecondeligne

UPMC FP Prparation LPI - v1.1 10

103.1 shell bash

commandeunix=unensembledemotssparspardescaractresblancs(whitespaces):espace,tabulation

premiermot:nomdelacommande

restedesmots:paramtresdelacommande

parmiscesparamtres,lesoptions,modifientlecomportementdelacommande

formatd'unecommandetype:

$commande[options]parametres

lescrochets[et]encadrentleslmentsfacultatifsdelacommande

lescrochetsnedoiventpasapparatredanslalignedecommande

UPMC FP Prparation LPI - v1.1 11

103.1 shell bash

Lasyntaxepourspcifieruneoptionatdfiniedansleprogrammedelacommande

Ilexistepourtantdesnotationsquel'onretrouvedanslaplupartdescommandes(maisilexistedesexceptions)

uneoptionestintroduiteparlesigneetestsouventconstitued'unelettre

$cprvsourcedest

l'ordredesoptionsn'apasd'importanceetonpeutlescumuler

$lsal=$lsla=$lsal

lesoptionsconstitued'unmotentiersontsouventintroduiteparlesigne$urpmiautoupdate

UPMC FP Prparation LPI - v1.1 12

103.1 shell bash

Erreurclassique:oublidel'espaceentrelacommande,lesoptionsetlesparamtres

leshellnereconnatpaslacommandeetafficheunmessaged'erreur

lesparamtresouoptionsnesontpasvalidespourlacommande:lacommandeafficheuneerreur

rsultatinattendudelacommande[franck@localhost~]$lsaltotal6011drwxrxrx63franckfranck3072mar721:33./drwxrxrx6rootroot1024fv2012:30../rwrwr1franckfranck95684dc1316:5724488linuxevolution.tar.bz2.....

[franck@localhost~]$lsalbash:lsal:commandnotfound

UPMC FP Prparation LPI - v1.1 13

103.1 Historique des commandes

Historiquedescommandes

Chaquecommandevalideestenregistrechronologiquementavantsoninterprtationetsubstitutions

Fonctionnalitdushellactivepardfaut:setohistory

Alasortiedushell,lescommandessontcritesdanslefichier.bash_history

Pardfaut,leshellenregistre1000commandesParamtrablevialavariableHISTSIZE

UPMC FP Prparation LPI - v1.1 14

103.1 Historique des commandes

bashpeutrechercheretrappeler(etexcuter!)descommandesdjsaisiesgrceauxflchesdenavigationet

:rappellelacommandeprcdente(dansl'ordrechronologique)

:rappellelacommandesuivante(dansl'ordrechronologique)

!!:rappelleladernirecommande

!chane:rapelleladernirecommandedbutantparchane

!?chane:rapelleladernirecommandecontenantchane

!n:rappellelanimedernirecommande

!n:rappellelanimecommande

UPMC FP Prparation LPI - v1.1 15

103.1 Historique des commandes

Intrts:

Gaindetempsetviteleserreursdesaisieenparticulierpourlescommandeslongues

Effetmmoiredescommandessaisiessurunemachine#history|grepmount

Commandehistory:affichel'historiquecompletdescommandes

historyN:affichelesNdernirescommandes

historydnumligne:effacelalignelapositionnumligne

historya:metjourlefichier.bash_history

UPMC FP Prparation LPI - v1.1 16

103.1 Historique des commandes

$history51002ls1003history51004echo$HISTORY1005echo$HISTSIZE1006history5

$tail5.bash_historysshtoto@titi.comexitsshtoto@titi.comunameaexit

$historya

$tail5.bash_historyecho$HISTORYecho$HISTSIZEhistory5tail5.bash_historyhistorya

UPMC FP Prparation LPI - v1.1 17

103.1 shell bash

$lsc*.txtcentre2.txtcentre3.txtcentre4.txtcentre.txt

$!!lsc*.txtcentre2.txtcentre3.txtcentre4.txtcentre.txt

$!lslsc*.txtcentre2.txtcentre3.txtcentre4.txtcentre.txt

$!ls:s/txt/py/lsc*.pycentre1.pycentre2.pycentre3.pycheck.pyclean.pycolorcal.py

UPMC FP Prparation LPI - v1.1 18

103.1 Raccourcis

Quelquesraccourcisutiles(modeemacs)

[Ctrl]+[a]:positionnelecurseuraudbutdelacommande

[Ctrl]+[e]:positionnelecurseurlafindelacommande

[Alt]+[f]:positionnelecurseuraudbutdumotsuivant

[Alt]+[b]:positionnelecurseuraudbutdumotprcdant

[Ctrl]+[t]:inversedeuxlettres

[Ctrl]+[u]:efface(coupe)laligne

[Ctrl]+[k]:efface(coupe)delapositioncourantejusqu'lafindeligne

[Ctrl]+[y]:colleletextecoup

UPMC FP Prparation LPI - v1.1 19

103.1 Raccourcis

Navigationdanslacommande

Utiliserlesflchesdenavigationetpourdplacerlecurseurd'insertiondanslalignedecommande

Editiondelacommande

[Backspace]:supprimelacaractreprcdentlecurseurd'insertion

[Suppr]:supprimelacaractresuivantlecurseurd'insertion

UPMC FP Prparation LPI - v1.1 20

103.1 shell bash

Commandeexec

Excuteleprogrammepassenparamtreetquitteimmdiatement(enfaitremplaceleprocessusencours)leprogrammeappelant

Siappeldepuisunscriptshell:arrtimmdiatduscript

$echo$$5116[franck@port135~]$bash[franck@port135~]$echo$$5597[franck@port135~]$execbash[franck@port135~]$echo$$5597[franck@port135~]$exitexit[franck@port135~]$echo$$5116

UPMC FP Prparation LPI - v1.1 21

103.1 shell bash

Commandesource

Permetd'excuterunscriptdansleprocessuscourant.Celapermetdeconserverlesaffectationsoumodificationsdevariablesvalidesdansleprocessuscourant.

Deuxsyntaxes(commandessourceou.)

#./opt/appli/etc/config.sh

#source/opt/appli/etc/config.sh

UPMC FP Prparation LPI - v1.1 22

103.1 shell bash

Commandeecho

Affichelesargumentspasssenparamtresurlasortiestandard

Options

n:pasdenewline

e:interprtationdescaractresd'chappement \n:newline \b:backspace \t:tabulationhorizontale

UPMC FP Prparation LPI - v1.1 23

103.1 shell bash

Commandeuname

Affichelesinformationssurlaversiondenoyauetlesystmeencoursd'xcution

Options

a:affichetout

s:nomdunoyau

r:releasedunoyau

v:versiondunoyau

m:nomdelamachine(CPU)

o:nomdel'OS

i:plateformematrielle

p:processeur

UPMC FP Prparation LPI - v1.1 24

103.1 shell bash

$unameaLinuxport135.ipsl.jussieu.fr2.6.30.543.fc11.i686.PAE#1