Documente Academic
Documente Profesional
Documente Cultură
4. Comenzi UNIX
Cuprins
Generaliti Comenzi pentru fiiere i cataloage Comenzi pentru operaii asupra proceselor Comenzi de informare i administrare Comenzi pentru prelucrarea fiierelor text Comezi pentru operaii asupra perifericelor Comenzi diverse
1/31/10
4.1. Generaliti
Comenzile reprezint interfaa utilizatorului cu SO i sunt programe care se lanseaz n execuie cu un program special, interpretorul de comenzi Exist diferite interpretoare de comenzi: sh, csh(C-shell), ksh (Korn shell), bash (born again shell), tcsh, zsh, etc. Interpretoarele se deosebesc prin facilitile de programare i de interactivitate oferite Sintaxa general a unei comenzi UNIX: comand optiuni parametri unde: comand numele fiierului executabil care conine programul optiuni particularizeaz modul de execuie a comenzii parametri indic obiectele asupra crora se execut comanda Majoritatea comenzilor ofer ajutor dac sunt apelate eronat. Ex.: rm produce: syntax: rm [rf] file(s)
2 1 1 1
$ ls -ali test total 28 1237895 drwxr-xr-x 32577 drwx--x--x 1661491 drwxr-xr-x 1237896 -rw-r--r-1237900 -rw-r--r-1237898 -rw-r--r--
3 30 2 1 1 1
17 09:40 . 28 13:55 .. 17 09:40 bin 24 2002 charint.c 26 2002 dc_command_line.c 26 2002 dce.c
1/31/10
1/31/10
1/31/10
5:23pm up 17 days, 3:07, 1 user, load average: 0.08, 0.12, 0.07 105 processes: 104 sleeping, 1 running, 0 zombie, 0 stopped CPU0 states: 0.1% user, 0.1% system, 0.0% nice, 99.3% idle CPU1 states: 0.1% user, 1.2% system, 0.0% nice, 98.1% idle Mem: 255684K av, 252040K used, 3644K free, 0K shrd, 21796K buff Swap: 1054728K av, 195728K used, 859000K free 47836K cached PID USER 6110 ionel 10 root 11 root 151 root 686 named 687 named 1 root 2 root 3 root 4 root 5 root PRI NI SIZE RSS SHARE STAT %CPU %MEM 19 0 1076 1076 824 R 0.3 0.4 10 0 0 0 0 SW 0.1 0.0 14 0 0 0 0 SW 0.1 0.0 11 0 0 0 0 SW 0.1 0.0 14 0 38792 35M 1152 S 0.1 14.2 11 0 38792 35M 1152 S 0.1 14.2 8 0 472 436 412 S 0.0 0.1 9 0 0 0 0 SW 0.0 0.0 19 19 0 0 0 SWN 0.0 0.0 19 19 0 0 0 SWN 0.0 0.0 9 0 0 0 0 SW 0.0 0.0 TIME COMMAND 0:00 top 1:31 kupdated 44:20 kjournald 29:55 kjournald 73:37 named 73:16 named 0:31 init 0:18 keventd 0:28 ksoftirqd_CPU0 0:25 ksoftirqd_CPU1 23:50 kswapd
1/31/10
$ who jdays pts/3 Oct 19 13:34 ijurca2 pts/2 Oct 20 10:34 abardi pts/1 Oct 20 09:42 sau users jdays ijurca2 abardi newuser
$ last -3 system root root $ last -3 tsands chgpass newuser $ last -2 reboot reboot
208-59-122-24.c3 Sat Oct 20 10:38 still logged in 208-59-122-24.c3 Sat Oct 20 10:37 - 10:37 (00:00) 208-59-122-24.c3 Sat Oct 20 10:36 - 10:36 (00:00) Wed Oct 10 07:51 Wed Feb 28 08:24
Comenzile mount/umount
Ca i comand de informare: $ mount /dev/hda2 on / type ext3 (rw) none on /proc type proc (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) /dev/hda7 on /home/staff type ext3 (rw,quota,grpquota) /dev/hdc2 on /home/stud type ext3 (rw,quota,grpquota) /dev/hda6 on /opt type ext3 (rw) Comanda cu argumente: mount [-fnrsvw] [-t vfstype] [-o options] device dir poate fi folosit numai de superutilizator. device trebuie s fie numele unei partiii, iar dir este un nume de director Comanda: umount [-dflnrv] dir | device [...] este rezervat tot superutilizatorului.
1/31/10
usr
home
etc
usr
home
staff
stud
guests
staff
stud
guests
17 09:40 bin 24 2002 charint.c 26 2002 commandline.c 26 2002 dce.c 26 2002 dcelink.c
df [-a] [-i] [-t type] [filesystem ] [filename] Exemplu: $ df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda2 3028108 672648 2201640 24% / /dev/hda7 16128636 7938340 8190296 50% /home/staff /dev/hdc2 34269232 8526844 25742388 25% /home/stud /dev/hda6 2016016 118752 1876784 6% /opt
1/31/10
chmod [fR] mode filename Modul se poate specifica numeric sau simbolic. Numeric: 3 cifre octale, pentru 3 categorii de utilizatori. A patra cifr octal (se scrie prima) corespunde cu setuid, setgid, sticky. Ex.: 755 este echivalent cu rwxr-xr-x, iar 4644 este echivalent cu rwSrr adic are poziionat setuid. Pentru modul simbolic: [cine] op drept [opt drept ...] cine este o combinaie de u g o a op poate fi: + - = drept poate fi: r w x s(setuid) t(sticky) Opiunile: -R recursiv, -f foreaz, adic suprim mesajele de eroare cnd nu se poate schimba modul Exemplu: -rw-r--r-1 ionel staff 92 Jul 24 2002 charint.c dup: chmod u+s charint.c devine: -rwSr--r-1 ionel staff 92 Jul 24 2002 charint.c
1/31/10
1/31/10
10
1/31/10
11
1/31/10
12
1/31/10
Comenzi diverse(2)
Evaluarea expresiilor expr arg1 operator arg2 [operator arg3 ... ] Rezultatul este scris n fiierul standard de ieire Fiecare atom din expresie trebuie separat de ali atomi prin spaiu Operatorii apar ca simboluri infix sau cuvinte cheie prefix. Parantezele trebuie citate, pentru a interzice shell-ului evaluarea lor Argumentele sunt numere sau iruri de caractere. Uneori pentru iruri trebuie aplicate mecanismele de citare Codul de retur al comenzii: 0 dac valoarea expresiei este nenul, 1 pentru expresie nul i 2 cnd expresia nu e valid Operatori aritmetici: + - * / % Operatori relaionali: = != > >= < <= Operatori logici: | & : (pt. : arg2 se caut ca tipar n arg1; rezultatul e nr. de caractere care corespund tiparului; dac tiparul e ncadrat de paranteze rezultatul e irul care corespunde ) Exemple ( se consider implementarea din bash): $ expr 5 + 10 / 2 d rezultatul 10 $ expr \( 5 + 10 \) / 2 d rezultatul 7 $ i=`expr $i + 1` valoarea variabilei de mediu i este incrementat cu 1 $ expr $i + 5 \> 10 dac i este 3, d valoarea 0 (false) $ v=program.c $ expr "$v" : '.* are rezultatul 9 $ expr "$v" : \(.*\) are rezultatul program.c $ expr "$v" : '\([a-z]*\) are rezultatul program
13