User Tools

Site Tools


unixmix:capitole:capitol-07

This is an old revision of the document!


Interpretorul tcsh

Tutorial

Scurtături la tastatură

Modificare în mașina virtuală pentru ca exercițiile să meargă:

  • Din meniul gnome-terminal accesați Edit → Keyboard shortcuts.
  • Dezactivați cele două opțiuni din fereastra nouă.
  • Tastați în prompt mesajul “Ana are mere”.
  • Oups… am greșit comanda. Voiam să fie afișat acel mesaj.
    • Rulați 'echo !!'.
    • Ce face ”!!” ?
  • Folosiți reverse search (up arrow) pentru a rescrie la prompt comanda echo Ana are mere, dar fără a o rula.
    • Verificați că promptul conține “echo Ana are mere”.
  • Transformați mesajul în “Maria are pere”.
    • Mergeți la începutul comenzi cu Ctrl-a.
    • Deplasați-vă un cuvânt înainte cu Alt-f și încă un caracter înainte cu Ctrl-f.
    • Sțergeți cuvântul “Ana” cu Alt-d și înlocuiți-l cu “Maria”
    • Mai deplasați-vă un cuvânt înainte cu Alt-f și încă un caracter înainte cu Ctrl-f (ar trebui să fiți la începutul cuvântului “mere”).
    • Ștergeti primul caracter cu Ctrl-d și înlocuiți-l cu caracterul 'p'.
    • Ruați comanda rezultată.

Comenzi interne

  • Încercați să găsiți executabilul pentru comanda alias.
    • Hint: whatis, which.
    • De ce nu găsiți nimic?
  • Folosiți man tcsh pentru afla informații despre comanda (internă) alias.
  • Creați un alias în bash, astfel încât când rulați comanda ll, să ruleze ls -l.
    • Rulați alias ll ls -l.
    • Verificați cu type ll că aliasul a fost creat și rulați ll pentru a vedea efectul.
  • Deschideți un nou terminal și încercați să rulați 'll'.
    • Merge?
    • Rulați comanda alias pentru a lista alias-urile setate în shell-ul curent.

Operatori

Un proces se poate termina cu succes (status 0) sau cu eroare (status diferit de 0).

Statusul ultimului proces se poate vedea cu ajutorul comenzii:

echo $?

true și false sunt două programe care întotdeauna se termină cu succes, respectiv cu eroare.

true
echo $?
0
false
echo $?
1

Folosind operatorii && și ||, putem rula un al doilea proces doar dacă primul proces a avut succes, respectiv eroare.

Testați următoarele comenzi și observați dacă se execută sau nu procesul echo:

true && echo "Success"
false && echo "Success"
true || echo "Fail"
false || echo "Fail"

Variabile

  • Setați două variabile, a și b la “Alice” și “Bob”.
set a=Alice
set b=Bob
  • Afișați mesajul “Alice and Bob”, folosind variabilele.
    • Expandarea unei variabile se face cu ajutorul operatorului $.
echo "$a and $b" 

Aveți grijă la ghilimele!

alexj@hathor ~ $ echo "$a and $b"
alice and bob
alexj@hathor ~ $ echo '$a and $b'
$a and $b
alexj@hathor ~ $ echo `$a and $b`
The program 'alice' is currently not installed.  You can install it by typing:
sudo apt-get install alice

Variabile de mediu

  • Intrați în directorul /.
  • Printați valoarea variabilei PWD.
  • Rulați comanda cd -.
    • Ce face variabila PWD?
  • Afișați valoarea variabilei PATH
    • Ce face PATH?
  • Modificați PATH să includă directorul curent, ca prima cale de căutare
set PATH=.:$PATH
  • Copiați /bin/pwd în directorul curent, cu numele ls
  • Rulați comanda ls
    • Ce se întâmplă?
    • Refaceți configurația.

Expandare aritmetică

  • Rulați comenzile de mai jos și observați output-ul.
    • Nu dați doar copy paste, ci scrieți comenzile pentru a observa ce se întâmplă.
set A=42
set B=28
echo "A=$A and B=$B"
@ SUM = $A + $B
echo "A+B=$SUM"
@ A = $A + 1
@ B = $B * 10
echo "A=$A and B=$B"

Expandarea comenzilor

  • Salvați în variabila OUTPUT ieșirea de la rularea comenzii ls.
    • Rulați set OUTPUT=`ls`.
  • Vizualizați conținutul variabilei OUTPUT.
    • Hint: echo, $.
  • Aflați dimensiunea executabilului comenzii ls.
    • Salvați într-o variabilă output-ul comenzii which ls.
    • Rulați ls -lh asupra variabilei respective.
set OUTPUT=`which ls`
ls -lah $OUTPUT
unixmix/capitole/capitol-07.1373535725.txt.gz · Last modified: 2013/07/11 12:42 by tpopeea