Ministère de l'éducation, de la culture et de la recherche
de la République de Moldova
Université technique de Moldavie
Faculté d’Ordinateur, Informatique et Microélectronique
Filière francophone “Informatique”
SOMIPP
Travail pratique nr.3
Thème: Principes de base de l'utilisation de la
console GNU / Linux OS
Effectué par l’étudiant(e) de gr FI-181 : Bonta Alexandr
Vérifié par le professeur : Colesnic Victor
Chișinau 2020
Scopul lucrării: utilizarea consolei, structurilor de control, crearea script-
urilor în bash
1) #!/bin/bash
read -p "Enter first string: " str1
read -p "Enter second string: " str2
if [ "$str1" == "$str2" ]; then
echo "Strings are equal"
else
echo "Strings are not equal"
fi
2) #!/bin/bash
echo "Enter Num1"
read num1
echo "Enter Num2"
read num2
echo "Enter Num3"
read num3
if [ $num1 -gt $num2 ] && [ $num1 -gt $num3 ]
then
echo $num1
elif [ $num2 -gt $num1 ] && [ $num2 -gt $num3 ]
then
echo $num2
else
echo $num3
fi
3) #!/bin/bash
VAR=""
echo "Enter Characters"
read a
while [ $a != "q" ]
do
VAR+="$a"
read a
done
echo "######"
echo "$VAR"
4) #!/bin/bash
VAR=0
echo "Enter NUMBERS"
read a
while [ $(($a % 2)) != 0 ]
do
((VAR++))
read a
done
echo "######"
echo "$VAR"
5) #!/bin/bash
PS3='Please enter your choice: '
options=("nano" "xed" "firefox" "Quit")
select opt in "${options[@]}"
do
case $opt in
"nano")
nano
;;
"xed")
xed
;;
"firefox")
firefox -new-tab 'https://www.google.com/'
;;
"Quit")
break
;;
*) echo "invalid option $REPLY";;
esac
done
6) #!/bin/bash
if [ $PWD == $HOME ]
then
echo "$PWD";
return 0 2>/dev/null
#exit 0;
else
echo -e "ERROR fisierul nu a fost deschis din home";
return 1 2>/dev/null
#exit 1;
fi
Shell – Shell (shell, alias "linie de comandă", alias CLI, alias "consolă", alias
"terminal", alias "fereastră neagră cu litere albe") este o interfață text pentru comunicarea cu
sistemul de operare (bine, strict vorbind, acesta este un program care oferă o astfel de
interfață. LINUX – bash WINDOWS – powershell
https://white55.ru/shells.html#:~:text=%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD
%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BE%D0%BB%D0%BE%D1%87%D0%BA%D0%B0%20(%20shell
%20)%20%D0%BE%D0%B1%D0%B5%D1%81%D0%BF
%D0%B5%D1%87%D0%B8%D0%B2%D0%B0%D0%B5%D1%82%20%D0%B2%D0%B7%D0%B0%D0%B8%D0%BC
%D0%BE
%D1%82%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5,%D0%B8%20%D1%81%D1%80%D0%B5%D0
%B4%D0%BE%D0%B9%20%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD
%D0%BD%D0%BE%D0%B9%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%20Linux.&text=
%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%BE%D0%BC%20%D0%BE%D0%B1%D0%BE%D0%BB
%D0%BE%D1%87%D0%BA%D0%B8%20%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%20%D0%B1%D1%8B
%D1%82%D1%8C%2C%20%D0%BD%D0%B0%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80,bash
%20%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B
%D1%85%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%20Unix%20%2F%20Linux.
Citarea înseamnă protejarea simbolurilor de interpretarea de către shell
http://integrator.adior.ru/index.php/shell/172-ekranirovanie-v-yazyke-shell
Citarea și \
\ Citarea. Anulează semnificația specială a următorului caracter
\\ Caracterul “\”
https://parallel.uran.ru/book/export/html/461
Operatori:
&& AND
Operatorul AND (&&) va executa a doua comandă numai dacă prima comandă este
SUCCEEDS, adică starea de ieșire a primei comenzi este „0” - programul a fost executat cu
succes.
;
Operatorul punct și virgulă vă permite să executați mai multe comenzi simultan, iar comanda
este executată secvențial.
|| OR
Operatorul OR (||) este foarte similar cu operatorul “else” din programare. Instrucțiunea de
mai sus vă permite să executați a doua comandă numai dacă prima comandă eșuează, adică
starea de ieșire a primei comenzi este „1” - programul NU a fost executat cu succes”.
| PIPE
Acest operator de flux PIPE este foarte util atunci când ieșirea primei comenzi acționează ca
intrare la a doua comandă. De exemplu, indicați ieșirea comenzii „ls -l” la „less” și vedeți
ieșirea întregului script.
https://obu4alka.ru/poleznyh-operatorov-obedineniya-komand-v-linux.html#1_Operator_ampersanda
()
Operatorul vă permite să executați comanda în ordinea priorității.
sort <file>
Sortează conținutul fișierului
cd /proc
cat cpuinfo
sort cpuinfo
https://www.geeksforgeeks.org/sort-command-linuxunix-examples/
let
Comanda let este utilizată pentru a evalua expresiile aritmetice ale variabilelor shell.
https://www.geeksforgeeks.org/let-command-in-linux-with-examples/
test
Comanda test verifică tipurile de fișiere și compară valorile.
https://bash.cyberciti.biz/guide/Test_command#:~:text=test%20command%20syntax&text=Try%20the%20following
%20examples%20and,%22File%20%2Fetc%2Fresolv.
Read
Comanda de citire Bash este un utilitar încorporat utilizat pentru segmentarea cuvintelor
șirurilor sub Linux. echo $REPLY
https://www.baeldung.com/linux/read-command
break
Instrucțiunea break se utilizează pentru a ieși dintr-o buclă FOR, WHILE sau UNTIL, adică
execuția buclei stop.
a=0
while [ $a -lt 10 ]
do
echo $a
if [ $a -eq 5 ]
then
break
fi
a=`expr $a + 1`
done
continue
Pentru a relua următoarea iterație a unei carcase for, while, untill sau select loop.
http://landoflinux.com/linux_bash_scripting_continue_loop.html
exit
Comanda exit în linux este utilizată pentru a ieși din shell unde se execută în prezent. Mai ia
un parametru ca [N] și iese din shell cu o revenire a stării N. Dacă n nu este furnizat, atunci
pur și simplu returnează starea ultimei comenzi care este executată.
https://www.geeksforgeeks.org/exit-command-in-linux-with-examples/#:~:text=exit%20command%20in%20linux%20is,last
%20command%20that%20is%20executed.&text=After%20pressing%20enter%2C%20the%20terminal%20will%20simply
%20close.
if
Instrucțiunea if vă permite să specificați cursurile de acțiune care trebuie luate într-un script
shell, în funcție de succesul sau eșecul unei comenzi. Este o afirmație condițională care
permite un test înainte de a efectua o altă afirmație.
https://www.thegeekdiary.com/bash-if-loop-examples-if-then-fi-if-then-elif-fi-if-then-else-fi/
select
Bucla select oferă o modalitate ușoară de a crea un meniu numerotat din care utilizatorii pot
selecta opțiuni. Este util atunci când trebuie să cereți utilizatorului să aleagă unul sau mai
multe articole dintr-o listă de opțiuni.
https://www.tutorialspoint.com/unix/select-loop.htm#:~:text=The%20select%20loop%20provides%20an,from%20a%20list%20of
%20choices.
case
Declarația case este o alternativă bună la declarația multi-nivel if-then-else-fi. Vă permite să
potriviți mai multe valori cu o singură variabilă. Este mai ușor de citit și de scris.
https://www.tutorialspoint.com/unix/case-esac-statement.htm
while
Bucla bash while este o instrucțiune de flux de control care permite executarea repetată a
codului sau a comenzilor pe baza unei condiții date.
https://www.tutorialspoint.com/unix/while-loop.htm
until
Bucla until este utilizată pentru a executa un set dat de comenzi, atâta timp cât condiția dată
este evaluată ca fiind falsă.
https://www.tutorialspoint.com/unix/until-loop.htm
for
Bucla for repetă o listă de iterații și execută setul de comenzi dat.
https://www.tutorialspoint.com/unix/for-loop.htm