User Tools

Site Tools


unixmix:capitole:capitol-06

This is an old revision of the document!


Filtre de text

Tutorial

Pentru tutorial, vom folosi următorul text:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh

games:x:5:60:games:/usr/games:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh

nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
gdm:x:106:114:Gnome Display Manager:/var/lib/gdm:/bin/false

kernoops:x:108:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
ieu:x:1000:1000:ieu,,,:/home/ieu:/bin/bash
  • Copiați textul de mai sus și salvați-l într-un fișier numit passwd aflat în directorul home al utilizatorului thales.
    • Fișierul are o structură asemănătoare /etc/passwd (informații despre utilizatorii sistemului)
      • nume utilizator
      • dacă parola este în /etc/shadow criptată
      • UID, GID
      • informații auxiliare
      • care este directorul home al utilizatorului
      • shell-ul implicit al utilizatorului

cat, tac, nl

  • Folosiți comanda cat pentru a afișa conținutul fișierului passwd.
  • Căutați în man un parametru astfel încât să numerotați linile din output.
    • Folosiți o metodă care numără inclusiv linile albe.
    • Folosiți o altă metodă care nu numerotează linile albe.
  • Rulați comanda tac passwd
    • Ce observați?
  • Rulați comanda nl passwd.
    • Cu ce este echivalentă? (cat + ce parametru?)

head, tail

  • Rulați comanda head passwd.
    • Ce afișează?
  • Rulați comanda cat passwd | head.
    • Ce afișează?
  • Rulați comanda cat -n passwd | head.
    • Ce afișează?

Vom folosi combinația cat -n și operatorul | (pipe) pentru a simplifica înțelegerea output-ului.

  • Rulați comanda cat -n passwd | head -n 4.
    • Ce afișează?
  • Rulați comanda cat -n passwd | head -n +4.
    • Ce afișează?
  • Rulați comanda cat -n passwd | head -n -4.
    • Ce afișează?
  • Rulați comanda cat -n passwd | tail.
    • Ce afișează?
  • Rulați comanda cat -n passwd | tail -n 4.
    • Ce afișează?
  • Rulați comanda cat -n passwd | tail -n -4.
    • Ce afișează?
  • Rulați comanda cat -n passwd | tail -n +4.
    • Ce afișează?
  • Rulați comanda cat -n passwd | head -n 6 | tail -n 2.
    • Încercați să înțelegeți output-ul.

sort, uniq

  • Rulați comanda cat passwd | sort.
    • Ce observați?
  • Căutați în man un parametru pentru sort astfel încât sortarea să se facă în ordine inversă.
  • Rulați comanda cat passwd | uniq.
    • Redirectați output-ul într-un fișier numit 1st.
  • Rulați comanda cat passwd | sort | uniq.
    • Redirectați output-ul într-un fișier numit 2nd.

Ce este diferit între 1st și 2nd?

  • Folosiți comanda wc pentru a vedea câte linii are fiecare fișier.
    • Ce s-a întâmplat cu linile goale?

cut, tr

  • Rulați comanda cat passwd.
  • Rulați comanda cat passwd | cut -d':' -f1.
    • Ce observați?
  • Rulați comanda cat passwd | cut -d':' -f5.
    • Ce observați?
  • Rulați comanda cat passwd | cut -d':' -f6.
    • Ce observați?
  • Rulați comanda cat passwd | cut -d':' -f1,5,6.
    • Ce observați?
  • Rulați comanda cat passwd.
  • Rulați comanda cat passwd | tr x X
    • Ce s-a întâmplat?
  • Rulați comanda cat passwd | tr ieu IEU.
    • Ce observați?
  • Rulați comanda cat passwd | tr ieu IE.
    • Ce observați?
  • Rulați comanda cat passwd | tr ieu I.
    • Ce observați?
  • Rulați comanda cat passwd | tr -d x.
    • Ce observați?
  • Rulați comanda cat passwd | tr -d home.
    • Ce observați?
  • Rulați comanda cat passwd | tr -s o.
    • Ce observați? (ceva mai observabil pe prima linie prima linie)

grep

  • Rulați comanda cat passwd | grep var.
    • Ce observați?
  • Rulați comanda cat passwd | grep -v var.
    • Ce observați?
  • Rulați comanda cat passwd | grep ^r.
    • Ce observați?
  • Rulați comanda cat passwd | grep h$.
    • Ce observați?
  • Rulați comanda cat passwd | grep ^i.*h$.
    • Ce observați?
  • Rulați comanda cat passwd | grep ^[r,i].
    • Ce observați?

Exerciții

  1. Realizați un script bash care, folosind ierarhia de directoare din /proc, listează primele N procese, sortate, al căror PID începe cu cifra unu. (N este primul argument al script-ului)
  2. Realizați un script care parsează output-ul comenzii date și afișează un mesaj de forma Este ora X și Y minute.
  3. Realizați un script care afișează username-ul utilizatorilor reali din sistem. Considerăm un utilizator real, un utilizator al cărui director home are forma /home/USER. (hint: /etc/passwd)
  4. Realizați un script care afișează numele fișierelor din /usr/include care includ antentul features.h. (hint: grep, cut)
  5. Realizați un script care numără câte procese active (PID-uri) există în sistem în între 0 și 999, între 1000 și 1999 etc.
unixmix/capitole/capitol-06.1373443842.txt.gz · Last modified: 2013/07/10 11:10 by alexef