Cursul 6 Interfat , aˆ ın linia de comand˘ a Utilizarea Sistemelor de Operare (USO) 11 noiembrie 2016 Automatica si Calculatoare Cursul 6, Interfat ,a ˆ ın linia de comand˘ a 1/53 Moto It was a mistake to think that GUIs ever would, could, or even should, eliminate CLIs. Jeffrey Snover (Architect of Windows PowerShell) Automatica si Calculatoare Cursul 6, Interfat ,a ˆ ın linia de comand˘ a 2/53 Sistem de fis , iere, utilizatori, procese proces utilizator ier utilizator kernel program name uid inode lename username uid uid pid Automatica si Calculatoare Cursul 6, Interfat ,a ˆ ın linia de comand˘ a 3/53 Prehistoric File System http://crazyhyena.com/funny-file-system-is-the-prehistoric-google_en Automatica si Calculatoare Cursul 6, Interfat ,a ˆ ın linia de comand˘ a 4/53 Suport de curs I Suport (Introducere ˆ ın sisteme de operare) I Capitolul 12 – Shell scripting I Sect , iunile 12.1, 12.2, 12.6, 12.7 Automatica si Calculatoare Cursul 6, Interfat ,a ˆ ın linia de comand˘ a 5/53 Fie urm˘ atoarele scenarii de utilizare/deziderate I folosire eficient˘ a a sistemului I competent , e de folosire a unui sistem, indiferent de sistemul de operare/distribut , ie I administrare de sisteme de la distant , ˘ a I administrare a unei ret , ele complexe, cu echipamente de ret , ea dedicate I proiectarea de piese ˆ ın AutoCAD I prelucr˘ ari numerice s , i statistice (Matlab, Octave, R) Automatica si Calculatoare Cursul 6, Interfat ,a ˆ ın linia de comand˘ a 7/53 Solut , ia este CLI. De ce? I CLI: Command Line Interface I ofer˘ a opt , iuni de a rula rapid comenzi (combinat , ii de taste, istoric de comenzi, completare automat˘ a) I se pot ˆ ınl˘ ant , ui comenzi pentru a obt , ine funct , ionalit˘ at , i noi I se pot automatiza rapid act , iuni folosind scripting (shell scripting este compus din comenzi shell) I majoritatea comenzilor sunt independente de distribut , ie, funct , ioneaz˘ a la fel pe Unix-uri (Linux, Mac OS X, FreeBSD, Android) I flexbilitate maxim˘ a: o opt , iune nou˘ aˆ ın linia de comand˘ a pentru o funct , ionlitate nou˘ a I foarte multe aplicat , ii ofer˘ a interfat , ˘ aˆ ın linia de comand˘ a I unele aplicat , ii ofer˘ a doar interfat , ˘ aˆ ın linia de comand˘ a I pentru administrare de la distant , ˘ a: servere, echipamente dedicate Automatica si Calculatoare Cursul 6, Interfat ,a ˆ ın linia de comand˘ a 8/53 Unde folosim CLI? I shell-ul unui sistem de operare, fie local, fie la distant , ˘ a I aplicat , ii dedicate: Matlab, R, Python, AutoCAD I console de jocuri I echipamente de ret , ea dedicate Automatica si Calculatoare Cursul 6, Interfat ,a ˆ ın linia de comand˘ a 9/53
6
Embed
Cursul 6 - Interfata în linia de comanda - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-06-aut-ac-handout-8on1.pdf · Cursul 6 Interfat, a ^ n linia de comand a
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Cursul 6Interfat, a ın linia de comanda
Utilizarea Sistemelor de Operare (USO)11 noiembrie 2016
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 1/53
Moto
It was a mistake to think that GUIs ever would, could, or evenshould, eliminate CLIs.
Jeffrey Snover (Architect of Windows PowerShell)
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 2/53
Sistem de fis, iere, utilizatori, procese
proces
utilizator
ier
utilizator
kernel
program
name
uid
inode
lename
username
uiduid
pid
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 3/53
I interact, iunea utilizatorului cu aplicat, iile s, i cu sistemul deoperare
I ascunde detaliile sistemului de operare
I interact, iunea cu sistemul de calcul
I Human Machine InterfaceI GUI – Graphical User Interface
I WIMP (window, icon, menu, pointing device)I touchscreen
I CLI – Command Line InterfaceI execut, ia de comenzi pentru ındeplinirea sarcinilor
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 11/53
De ce GUI?
I eye-candy
I us, or de folosit, intuitiva
I ascunderea complexitat, ii
I personalizabila (customizable)
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 12/53
De ce CLI?
I consecventa, arata peste tot la fel
I eficientaI us, or de adaugat o opt, iune noua
I un argument fat, a de un buton nou
I automatizarea sarcinilor
I resurse consumate reduse
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 13/53
Cazuri de utilizare GUI s, i CLI
I GUII multimediaI grafica 3DI jocuriI Internet browsing
I CLII administrare sistem: utilizatori, sistem de fis, iere, ret, ea, proceseI scripting/automatizare, eficientizareI aplicat, ii s, i dispozitive dedicate
I ın general vom folosi ambele tipuri de interfet, e, depinzand denevoie
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 14/53
Exemple de CLI
I consola GRUB (bootloader)
I consola Python
I consola de configurare de echipamente de ret, ea (Cisco IOS,Juniper JunOS)
I consola Matlab, AutoCAD, R
I consola de jocuri (FPS)
Consola Python
user@host$ python
Python 2.7.8 (default, Oct 7 2014, 17:59:21)
[GCC 4.9.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 4**9
262144
>>> hex(157)
’0x9d’
>>> 0x9d
157
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 16/53
Cum arata o interfat, a ın linia de comanda?
I promptI poate fi un caracter precum $, %, #, >I la prompt se introduc comenzi
I comenzile sunt s, iruri de caractere
I numele comenzii ofera intuit, ie legat de ce face comandaI comenzile pot avea argumente (opt, iuni pentru comanda)
I argumentele se separa prin spat, ii
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 17/53
Funct, ionare linie de comanda
I depinzand de linia de comanda, este posibil un pas deautentificare
I se introduce comanda s, i argumentele
I se apasa ENTER
I interpretorul de comenzi analizeaza comanda s, i executa oact, iune
I interpretorul de comenzi face act, iunea dictata de comanda
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 18/53
Facilitat, i CLI
I command completion
I ajutor, documentare
I istoric de comenzi
I scurtaturi de taste pentru editare rapida de comenzi: s, tergecuvant, mergi la ınceput de comanda etc.
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 19/53
Shell
I aplicat, ie care permite accesul la resursele sistemului de operare
I poate fi grafic (GUI) sau ın linia de comanda (CLI)
I ın Windows shell-ul este Explorer (GUI)I ın Unix
I shell GUI: X Window System +KDE/GNOME/Xfce/Awesome/Fluxbox
I shell-uri CLI: bash, tcsh, zsh, dash
I ın general un shell este un caz particular de CLII Cum putem rula o sesiune de shell ın Linux?
I terminal virtual (ALT+CTRL+F1...F6)I emulator de terminal (konsole, gnome-terminal, xterm etc.)I conexiune de la distant, a
I terminalul este (pseudo)dispozitivul ın care ruleaza shell-ul
I ın continuare, shell = shell CLI
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 21/53
Terminal vs. shell
I terminal = dispozitiv
I shell = procesI terminal – cadru, interfat, a pentru rularea unui shell
I fizic (tastatura, monitor)I virtual (ALT+CTRL+F1. . . F6) – tty0, tty1, . . . , tty6I emulator de terminal – pts/0, pts/1, . . .I folosit pentru intrarea/ies, irea standard (stdin/stdout) a unui
procesI daemonii nu au acces la nici un terminal (nu au intrare/ies, ire
standard)
I shell – permite rularea de comenziI prompt, comenzi, operatori shellI bash, zsh, tcsh
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 22/53
Structura unui sistem de calcul
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 23/53
Comenzi s, i argumente
Promptul unui shell
ana@host:~$ whoami
ana
I comenzile pot avea argumente (opt, iuni pentru comanda)I argumentele se separa prin spat, ii
I Keep it simple!I nume simple, uneori neintuitive: cp, rm, ls, vi, ps
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 24/53
Documentarea ın shell
I command --help: opt, iuni s, i argumente ale comenzii
I whatis command: ce face comanda
I apropos concept: comenzi care au legatura cu acel conceptI man command: pagina de manual a comenzii
I q pentru ies, ireI / pentru cautare ınainte, ? pentru cautare ınapoiI n: next match, N: previous match
I Google (,,tutorial”, ,,faq”, ,,how to”, ,,example”, ,,usage”)
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 25/53
Funct, ionarea unui shell
I se introduce o comanda (ls)
I shell-ul identifica executabilul asociat (/bin/ls)
I este creat un nou process shell (/bin/bash) (fork)
I procesul creat se ,,transforma” conform cu noul executabil
I intrarea standard este controlata de noul proces
I dupa execut, ia comenzii, procesul se ıncheie s, i controlul revineshell-ului
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 26/53
Facilitat, i shell
I command completionI folosirea tastei TAB sau a apasarii de doua ori TAB TABI completarea comenzii s, i a argumentelor acesteia
I istoricul comenzilorI history: vizualizarea istorieiI Ctrl+p (sau tasta sus), Ctrl+n (sau tasta jos): anterioara s, i
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 30/53
Comenzi utile ın shell-ul Unix
I head, tail: afis, eaza doar primele/ultimele linii din fis, ier
I wc: numara liniile din fis, ier
I grep: extrage liniile care cont, in o anumita expresie
I tr: transforma caractere ın alte caractere
I cut: extrage doar anumite coloane
I sort: sorteaza liniile primite la intrare
I uniq: unicizeaza liniile de la intrare (elimina duplicatele);intrarile trebuie sa fie sortate
I seq: genereaza numere ıntre anumite intervale
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 31/53
Redirectare s, i comunicarea ıntre procese
I ın cazul redirectarii, operatorii sunt > (redirectarea ies, iriistandard), < (redictarea intrarii standard) s, i 2 > (redirectareaies, irii de eroare standard)
I la redirectare forma este command operator file
I spunem ca redirectam ıntr-un/dintr-un fis, ier
I ın cazul comunicarii ıntre procese forma este command1 |command2
I spunem ca redirectam ies, irea standard a comenzii command1ın intrarea standard a comenzii command2
Automatica si Calculatoare Cursul 6, Interfat,a ın linia de comanda 32/53