Documente Academic
Documente Profesional
Documente Cultură
Cuprins
• Generalităţi
• Comenzi pentru fişiere şi cataloage
4. Comenzi UNIX • Comenzi pentru operaţii asupra proceselor
• Comenzi de informare şi administrare
• Comenzi pentru prelucrarea fişierelor text
• Comezi pentru operaţii asupra perifericelor
• Comenzi diverse
unde: -rw-r--r--
-rw-r--r--
1
1
ionel
ionel
staff
staff
3956
4738
Jul
Jul
26 2002 dc_command_line.c
26 2002 dce.c
• Majoritatea comenzilor oferă ajutor dacă sunt apelate eronat. Ex.: 1237896 -rw-r--r--
1237900 -rw-r--r--
1
1
ionel
ionel
staff
staff
92
3956
Jul
Jul
24 2002 charint.c
26 2002 dc_command_line.c
1
10/15/2008
Comenzi pentru operaţii cu fişiere(2) 4.3. Comenzi pentru operaţii asupra proceselor(1)
• Listarea proceselor active în sistem:
• Schimbarea numelui (poziţiei) unui fişier: ps [optiuni]
mv [optiuni] sursă destinatie Exemplu fără opţiuni:
Dacă destinatie este director se creează acolo o intrare cu numele sursă $ ps
PID TTY TIME CMD
Comanda nu poate transfera între partiţii
20154 pts/3 00:00:00 bash
Pentru evitarea suprascrierii destinaţiei se foloseşte opţiunea -i 4569 pts/3 00:00:00 ps
• Crearea unei noi legături pentru un fişier: Opţiunile (şi modul de afişare) diferă între versiunile de UNIX. Principalele opţiuni la Linux sunt:
ln [–fs] nume-cale [legătură] -a afişează informaţii despre toate procesele din sistem
-l determină o afişare mai extinsă ( cu mai multe informaţii)
sau: -u afişare extinsă, dar diferită de –l.
ln –fs
fs nume-cale
nume cale ... catalog -e afişează şi ambianţa de execuţie
Prima formă fără legătură creează în directorul curent o intrare cu numele Exemple:
ultimei componente din nume-cale $ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
A doua formă creează în catalog intrări cu numele date de ultimele 100 S 2000 22769 22748 0 69 0 - 606 wait4 pts/0 00:00:00 bash
componente din lista de nume-cale 000 R 2000 22810 22769 0 76 0 - 749 - pts/0 00:00:00 ps
Opţiunea –s creează legături simbolice, care sunt fişiere text, cu conţinut nume-
cale şi pot traversa partiţii (sisteme de fişiere) $ ps -u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Fără –s nu se creează fişier fizic nou, doar legături ionel 22769 0.6 0.5 2424 1312 pts/0 S 14:24 0:00 -bash
Opţiunea –f permite superutilizatorului să creeze legături fixe (fără –s) spre ionel 22819 0.0 0.2 2548 692 pts/0 R 14:24 0:00 ps -u
directoare
2
10/15/2008
Comenzi pentru operaţii asupra proceselor(2) Comenzi pentru operaţii asupra proceselor(3)
• Terminarea forţată a execuţiei unui proces: • Listarea dinamică a proceselor din sistem – comanda top
kill [optiuni] [pid]...
Argumentul pid este obligatoriu, cu excepţia cazului când se foloseşte opţiunea –l
Comanda trimite un semnal, identificat prin valoarea opţiunii, proceselor specificate prin lista de pid
5:23pm up 17 days, 3:07, 1 user, load average: 0.08, 0.12, 0.07
Semnalele posibile: 105 processes: 104 sleeping, 1 running, 0 zombie, 0 stopped
$ kill -l CPU0 states: 0.1% user, 0.1% system, 0.0% nice, 99.3% idle
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL CPU1 states: 0.1% user, 1.2% system, 0.0% nice, 98.1% idle
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE Mem: 255684K av, 252040K used, 3644K free, 0K shrd, 21796K buff
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 Swap: 1054728K av, 195728K used, 859000K free 47836K cached
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 6110 ionel 19 0 1076 1076 824 R 0.3 0.4 0:00 top
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 10 root 10 0 0 0 0 SW 0.1 0.0 1:31 kupdated
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 11 root 14 0 0 0 0 SW 0.1 0.0 44:20 kjournald
30) SIGPWR 31) SIGSYS 151 root 11 0 0 0 0 SW 0.1 0.0 29:55 kjournald
• Listarea activităţii diverşilor utilizatori: 686 named 14 0 38792 35M 1152 S 0.1 14.2 73:37 named
687 named 11 0 38792 35M 1152 S 0.1 14.2 73:16 named
w [optiuni] [utilizator]
1 root 8 0 472 436 412 S 0.0 0.1 0:31 init
Exemplu: 2 root 9 0 0 0 0 SW 0.0 0.0 0:18 keventd
$ w 3 root 19 19 0 0 0 SWN 0.0 0.0 0:28 ksoftirqd_CPU0
8:12am up 10 day(s), 21 min(s), 2 users, load average: 0.09, 0.09, 0.11 4 root 19 19 0 0 0 SWN 0.0 0.0 0:25 ksoftirqd_CPU1
User tty login@ idle JCPU PCPU what 5 root 9 0 0 0 0 SW 0.0 0.0 23:50 kswapd
jdays pts/3 Fri 1pm 14:14 8 pine
ijurca2 pts/1 8:12am w
3
10/15/2008
4
10/15/2008
5
10/15/2008
6
10/15/2008
Comenzi diverse(2)
• Evaluarea expresiilor
expr arg1 operator arg2 [operator arg3 ... ]
Rezultatul este scris în fişierul standard de ieşire
Fiecare atom din expresie trebuie separat de alţi atomi prin spaţiu
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 când expresia nu e validă
Operatori aritmetici: + - * / %
Operatori
p relaţionali:
ţ = != > >= < <=
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