This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
school:uso:labs:shell_scripting_2 [2009/08/09 19:23] razvan |
school:uso:labs:shell_scripting_2 [2020/07/20 09:16] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | = Laborator shell scripting - partea a 2-a = | + | ====== Laborator shell scripting - partea a 2-a ====== |
- | == Elemente importante == | + | ===== Elemente importante |
- | * variabile de mediu | + | |
- | * source | + | * source |
- | * globbing | + | * globbing |
- | * find | + | * find |
- | * expresii regulate | + | * expresii regulate |
- | * grep | + | * grep |
- | * sort, uniq | + | * sort, uniq |
- | * read | + | * read |
- | * sed | + | * sed |
- | * awk | + | * awk |
- | == Seturi de task-uri == | + | ===== Seturi de task-uri |
- | === variabile de mediu, source === | + | ==== variabile de mediu, source |
- | Intrați în directorul '' | + | Intrați în directorul '' |
==== Tutorial === | ==== Tutorial === | ||
- | * Rulați comenzile de mai jos pentru afișarea valorii variabilelor de mediu '' | + | |
{{{ | {{{ | ||
Line 29: | Line 29: | ||
}}} | }}} | ||
- | * Rulați comenzile de mai jos pentru inițializarea și afișarea unei variabile (**nu** folosiți spații înainte sau după caracterul egal ('' | + | |
{{{ | {{{ | ||
Line 36: | Line 36: | ||
}}} | }}} | ||
- | * Urmăriți conținutul scriptului '' | + | |
{{{ | {{{ | ||
Line 42: | Line 42: | ||
}}} | }}} | ||
- | * Rulați scriptul: | + | |
{{{ | {{{ | ||
Line 48: | Line 48: | ||
}}} | }}} | ||
- | * **Doar** varibilele de mediu sunt propagate la procesele copil. Folosiți '' | + | |
{{{ | {{{ | ||
Line 55: | Line 55: | ||
}}} | }}} | ||
- | ==== Enunț | + | === Enunț === |
Creați un script '' | Creați un script '' | ||
- | ==== Pași ajutători | + | === Pași ajutători === |
- | * Actualizați variabila de mediu '' | + | |
- | * Creați un script '' | + | * Creați un script '' |
- | * Rulați scriptul și afișați valoarea variabilei '' | + | * Rulați scriptul și afișați valoarea variabilei '' |
- | * Folosiți source pentru a rula scriptul. Afișați valoarea variabilei '' | + | * Folosiți source pentru a rula scriptul. Afișați valoarea variabilei '' |
- | === find, globbing === | + | ==== find, globbing |
- | * Intrați în directorul '' | + | |
- | ==== Tutorial | + | === Tutorial === |
- | * Comanda ''' | + | |
{{{ | {{{ | ||
Line 79: | Line 79: | ||
}}} | }}} | ||
- | * Rulați comanda de mai jos pentru a afișa fișierele din ierahia curentă: | + | |
{{{ | {{{ | ||
Line 85: | Line 85: | ||
}}} | }}} | ||
- | * Caracterul star ('' | + | |
{{{ | {{{ | ||
Line 91: | Line 91: | ||
}}} | }}} | ||
- | ==== Enunț | + | === Enunț === |
- | * Folosiți '' | + | |
- | ==== Pași ajutători | + | === Pași ajutători === |
- | * Folosiți '' | + | |
- | * Folosiți '' | + | * Folosiți '' |
- | * Folosiți '' | + | * Folosiți '' |
- | * Folosiți '' | + | * Folosiți '' |
- | === find, shell expansion === | + | ==== find, shell expansion |
- | * Intrați în directorul '' | + | |
- | ==== Tutorial | + | === Tutorial === |
- | * Construcția '' | + | |
{{{ | {{{ | ||
Line 119: | Line 119: | ||
}}} | }}} | ||
- | ==== Enunț | + | === Enunț === |
- | * Folosiți '' | + | |
- | ==== Pași ajutători | + | === Pași ajutători === |
- | * Folosiți '' | + | |
- | * Folosiți '' | + | * Folosiți '' |
- | * Inițializați variabila '' | + | * Inițializați variabila '' |
- | * Folosiți '' | + | * Folosiți '' |
- | === read === | + | ==== read ==== |
- | * Intrați în directorul '' | + | |
- | ==== Tutorial | + | === Tutorial === |
- | * Comenzile '' | + | |
{{{ | {{{ | ||
Line 145: | Line 145: | ||
}}} | }}} | ||
- | * Comanda '' | + | |
{{{ | {{{ | ||
Line 152: | Line 152: | ||
}}} | }}} | ||
- | * În general, '' | + | |
{{{ | {{{ | ||
Line 158: | Line 158: | ||
}}} | }}} | ||
- | ==== Enunț | + | === Enunț === |
Pornind de la catalogul din fișierul '' | Pornind de la catalogul din fișierul '' | ||
- | ==== Pași ajutători | + | === Pași ajutători === |
- | * Creați scriptul '' | + | |
- | * Actualizați în cadrul scriptului variabila '' | + | * Actualizați în cadrul scriptului variabila '' |
- | * Folosiți '' | + | * Folosiți '' |
- | * Folosiți '' | + | * Folosiți '' |
- | === grep, here document === | + | ==== grep, here document |
- | * Intrați în directorul '' | + | |
- | ==== Tutorial | + | === Tutorial === |
- | * Comanda '' | + | |
{{{ | {{{ | ||
Line 182: | Line 182: | ||
}}} | }}} | ||
- | * Argumentul '' | + | |
{{{ | {{{ | ||
Line 188: | Line 188: | ||
}}} | }}} | ||
- | ==== Enunț | + | === Enunț === |
Creați un script '' | Creați un script '' | ||
Line 204: | Line 204: | ||
}}} | }}} | ||
- | ==== Pași ajutători | + | === Pași ajutători === |
- | * Creați scriptul '' | + | |
- | * Folosiți '' | + | * Folosiți '' |
- | * Folosiți un [[http:// | + | * Folosiți un [[http:// |
- | * Completați here document-ul pentru a adăuga inclusiv forma de încheiere a directivei (''</ | + | * Completați here document-ul pentru a adăuga inclusiv forma de încheiere a directivei (''</ |
- | === variabile, source, sed === | + | ==== variabile, source, sed ==== |
- | * Intrați în directorul '' | + | |
==== Tutorial === | ==== Tutorial === | ||
- | * Comanda '' | + | |
{{{ | {{{ | ||
Line 223: | Line 223: | ||
}}} | }}} | ||
- | * Utilitarul '' | + | |
{{{ | {{{ | ||
Line 229: | Line 229: | ||
}}} | }}} | ||
- | * Pentru a concatena mai multe prelucrări '' | + | |
{{{ | {{{ | ||
Line 235: | Line 235: | ||
}}} | }}} | ||
- | ==== Enunț | + | === Enunț === |
- | * Creați scriptul '' | + | |
- | ** '' | + | * '' |
- | ** '' | + | * '' |
- | ** celelalte variabile reprezintă informații de substituit în template. | + | * celelalte variabile reprezintă informații de substituit în template. |
- | ==== Pași ajutători | + | === Pași ajutători === |
- | * Creați scriptul '' | + | |
- | * Folosiți '' | + | * Folosiți '' |
- | * Folosiți '' | + | * Folosiți '' |
- | * Completați scriptul '' | + | * Completați scriptul '' |
- | === grep, sed === | + | ==== grep, sed ==== |
- | * Intrați în directorul '' | + | |
- | ==== Tutorial | + | === Tutorial === |
- | * Utilitarul '' | + | |
{{{ | {{{ | ||
Line 263: | Line 263: | ||
}}} | }}} | ||
- | * Argumentul '' | + | |
{{{ | {{{ | ||
Line 272: | Line 272: | ||
}}} | }}} | ||
- | ==== Enunț | + | === Enunț === |
- | * Fișierul '' | + | |
- | ** scriptul primește două argumente: numele de utilizator ('' | + | * scriptul primește două argumente: numele de utilizator ('' |
- | ** dacă numele de utilizator există se actualizează (substituie) parola; | + | * dacă numele de utilizator există se actualizează (substituie) parola; |
- | ** dacă numele de utilizator nu există se adaugă parola. | + | * dacă numele de utilizator nu există se adaugă parola. |
- | ==== Pași ajutători | + | === Pași ajutători === |
- | * Creați scriptul '' | + | |
- | * Folosiți grep pentru a extrage din fișierul '' | + | * Folosiți grep pentru a extrage din fișierul '' |
- | * Afișați '' | + | * Afișați '' |
- | * În cazul în care numele de utilizator primit ca argument **nu** se găsește în fișierul '' | + | * În cazul în care numele de utilizator primit ca argument **nu** se găsește în fișierul '' |
- | * În cazul în care numele de utilizator primit ca argument se găsește în fișierul '' | + | * În cazul în care numele de utilizator primit ca argument se găsește în fișierul '' |
- | === grep, expresii regulate === | + | ==== grep, expresii regulate |
- | * Intrați în directorul '' | + | |
- | ==== Tutorial | + | === Tutorial === |
- | * Expresiile regulate utilizate de '' | + | |
{{{ | {{{ | ||
Line 300: | Line 300: | ||
}}} | }}} | ||
- | * '' | + | |
{{{ | {{{ | ||
Line 308: | Line 308: | ||
}}} | }}} | ||
- | ==== Enunț | + | === Enunț === |
Folosiți '' | Folosiți '' | ||
- | ==== Pași ajutători | + | === Pași ajutători === |
- | * Folosiți '' | + | |
- | * Folosiți '' | + | * Folosiți '' |
- | * Folosiți '' | + | * Folosiți '' |
- | * Folosiți '' | + | * Folosiți '' |
- | * Folosiți '' | + | * Folosiți '' |
- | === grep, awk, sort, uniq === | + | ==== grep, awk, sort, uniq ==== |
- | * **Dificultate sporită** | + | |
- | * Intrați în directorul '' | + | * Intrați în directorul '' |
- | ==== Tutorial | + | === Tutorial === |
- | * Utilitarul '' | + | |
{{{ | {{{ | ||
Line 334: | Line 334: | ||
}}} | }}} | ||
- | * Utilitarul '' | + | |
{{{ | {{{ | ||
Line 341: | Line 341: | ||
}}} | }}} | ||
- | ==== Enunț | + | === Enunț === |
- | * Fișierul '' | + | |
- | ==== Pași ajutători | + | === Pași ajutători === |
- | * Creați scriptul '' | + | |
- | * Folosiți înlănțuirea comenzilor ('' | + | * Folosiți înlănțuirea comenzilor ('' |
- | * Folosiți înlănțuirea comenzilor și '' | + | * Folosiți înlănțuirea comenzilor și '' |
- | * Folosiți înlănțuirea comenzilor ('' | + | * Folosiți înlănțuirea comenzilor ('' |
- | * Folosiți înlănțuirea comenzilor ('' | + | * Folosiți înlănțuirea comenzilor ('' |
- | * Folosiți înlănțuirea comenzilor ('' | + | * Folosiți înlănțuirea comenzilor ('' |
- | === grep, awk, sort, uniq === | + | ==== grep, awk, sort, uniq ==== |
- | * **Dificultate sporită** | + | |
- | * Intrați în directorul '' | + | * Intrați în directorul '' |
- | ==== Enunț | + | === Enunț === |
- | * Fișierul '' | + | |
- | ==== Pași ajutători | + | === Pași ajutători === |
- | * Creați scriptul '' | + | |
- | * Folosiți înlănțuirea comenzilor ('' | + | * Folosiți înlănțuirea comenzilor ('' |
- | * Folosiți înlănțuirea comenzilor ('' | + | * Folosiți înlănțuirea comenzilor ('' |
- | * Folosiți înlănțuirea comenzilor ('' | + | * Folosiți înlănțuirea comenzilor ('' |
- | * Folosiți înlănțuirea comenzilor ('' | + | * Folosiți înlănțuirea comenzilor ('' |
- | == Idei pentru shell scripting 1 == | + | ===== Idei pentru shell scripting 1 ===== |
- | * script care copiază un set de fișire în home-ul unor utilizatori primiți ca argument pe sistemul local și schimbă owner-ul acestora | + | |
- | * adăugarea unei chei publice pe un sistem la distanță într-un one liner | + | * adăugarea unei chei publice pe un sistem la distanță într-un one liner |
- | * script care copiază un fișier pe mai multe sisteme din rețeaua locală (poate integrat cu mdns) | + | * script care copiază un fișier pe mai multe sisteme din rețeaua locală (poate integrat cu mdns) |
- | == Extra == | + | ===== Extra ===== |
- | * copierea unei ierarhii (doar fișierele cu extensia '' | + | |
- | * gestiunea unei adrese electronice (address book) | + | * gestiunea unei adrese electronice (address book) |