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 18:10] 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: | ||
| }}} | }}} | ||
| - | * '' | + | |
| {{{ | {{{ | ||
| - | echo " | + | echo -e " |
| - | echo " | + | echo -e " |
| - | echo " | + | echo -e " |
| }}} | }}} | ||
| - | ==== 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 '' | + | |
| {{{ | {{{ | ||
| - | cat lista.txt | awk -F '[ \t]+' | + | cat lista.txt | awk -F '[ \t]+' |
| - | cat /etc/passwd | awk -F ':' | + | cat /etc/passwd | awk -F ':' |
| }}} | }}} | ||
| - | * 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 ('' | + | * 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 ('' | ||
| - | === 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) |