ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficientă a Liniei de Comandă
Transcript of ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficientă a Liniei de Comandă
-
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
1/39
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
Utilizarea eficienta a liniei de comanda
From GUI-zero to CLI-hero
Razvan [email protected]
ROSEdu Tech Talks
9 octombrie 2010
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
2/39
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
1 Linia de comanda
2 CLI vs. GUI
3 Facilitat, i shell
4 Facilitat, i libreadline
5 Extra juice
6 Concluzii
7 Intrebari
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
3/39
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
Moto
It was a mistake to think that GUIs ever would, could, or even
should, eliminate CLIs.
Jeffrey Snover (Architect of Windows PowerShell)
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
4/39
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
Despre aceasta prezentare
Daca nt, eleget, i0% punet, i ntrebari5% e bine25% e excelent50% e ceva suspect la mijloc
75% suntem n alta dimensiuneScopul: uite ce se poate face!
React, ii as, teptateHuh?Ive a feeling were not in Kansas any more.
Howd he do that?Cand o sa fiu mare . . .Arunc mouse-ul!Bine ca mai s, tiu nis, te matematica. Daca nu merge cucalculatoarele astea . . .
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
5/39
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
Cuprins
1 Linia de comanda
2 CLI vs. GUI
3 Facilitat, i shell
4 Facilitat, i libreadline
5 Extra juice
6 Concluzii
7 Intrebari
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
L d d CLI GUI l h ll l l b dl C l I b
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
6/39
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
Ce este linia de comanda?
interfat, a simpla, bazata pe text, de interact, iune cu o aplicat, ie
prompt text care defines, te zona n care se introduce text
comanda zona de text editabila de utilizator care poateconduce la rularea unei funct, ionalitat, i
rularea unei comenzi se apasa, de obicei, ENTER s, i seexecuta comanda n cauza
argumente opt, iuni ale unei comenzi pentru a defini facilitat, i
suplimentareCLI comand line interface
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Li i d d CLI GUI F ili i h ll F ili i lib dli E j i C l ii I b i
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
7/39
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
Exemple de CLI
shell + terminal Unix
Command Prompt / Power Shell
echipamente de ret, ea
configurarea jocurilor (n special FPS-uri)
IRC (/away, /msg, /help)
MATLAB
AutoCAD
client, i de aplicat, ii de baze de date
Python
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Li i de d CLI s GUI F ilit ti shell F ilit ti lib e dli e E t j i e C l ii I t eb i
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
8/39
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
CLI, shell, terminal
CLItip de interfat, aspecific mai multor aplicat, ii
shell
aplicat, ie care furnizeaza interfat, a de acces la serviciilesistemului de operareshell pentru alte aplicat, iiCLI sau GUIpentru CLI interpretor de comenzi
terminal
dispozitiv hardware pentru input/outputsystem consolevirtual terminal (ALT+CTRL+F[1-6])terminal emulator (gnome-terminal, konsole, PuTTY)
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Linia de comanda CLI vs GUI Facilitati shell Facilitati libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
9/39
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
Exemplu n Linux
razvan@valhalla:$ ls -l -h /tmp
razvan@valhalla:$ prompt-ul
ls comanda
-l -h /tmp argumentele comenzii
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Linia de comanda CLI vs GUI Facilitati shell Facilitati libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
10/39
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
Cuprins
1 Linia de comanda
2 CLI vs. GUI
3 Facilitat, i shell4 Facilitat, i libreadline
5 Extra juice
6 Concluzii
7 Intrebari
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Linia de comanda CLI vs GUI Facilitati shell Facilitati libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
11/39
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
GUI
WIMP Window, Image, Menu, Pointing Device
eye candy
personalizabila
mouse
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Linia de comanda CLI vs. GUI Facilitati shell Facilitati libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
12/39
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
CLI vs. GUI
us, urint, a n utilizare
control
multitaskingviteza
resurse consumate
automatizare
acces la distant, a
us, urint, a n utilizare
control
multitasking
viteza
resurse consumate
automatizare
acces la distant, a
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
13/39
, , j
De ce CLI?
eficient, a
mbunatat, ire continua
interfat, a unicaflexibilitate
Feel da powa!
exemple
parcurgerea directoarelormutarea fis, ierelor
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
14/39
, ,
De ce GUI?
grandma-friendly
lucrul cu sistemul de fis, iereredenumirea unor fis, iereselectarea a N fis, iere
trecere prin mai multe directoare
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
15/39
Cuprins
1 Linia de comanda
2 CLI vs. GUI
3 Facilitat, i shell
4 Facilitat, i libreadline
5 Extra juice
6 Concluzii
7 Intrebari
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
16/39
Autocompletion
bash-completion
TAB
completarea unei comenzicompletarea opt, iunilor
TAB TAB
furnizarea tuturor solut, iilor posibile
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
17/39
Istoricul comenzilor
tasta sus, tasta jos
!! rularea comenzii anterioare
$ sau ALT+. ultimul argument al ultimei comenzi
CTRL+R reverse search
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
18/39
cd
fara argumente schimbarea directorului radacina
cd $ , cd ALT+. (util dupa mkdir)
cd - directorul anterior
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
19/39
Comment out
folosirea # n fat, a unei comenzi o comenteazaputet, i reveni ulterior n istoric
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
20/39
Shell expansion
expandare la home folder
username expandare la home folder-ul utilizatoruluiusername
variabile shell
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
21/39
Globbing
* orice caracter de oricate ori
{a,b,c} select, ie ntre opt, iuni[a-g] clasa de caractere
? orice o singura data
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
22/39
CDPATH
controleaza directoarele catre care se poate folosi cd s, i calerelativa
CDPATH=. cd doar catre directoarele vizibile din directorulcurent
CDPATH=.:/home/razvan/projects n plus, directoarelevizibile din projects
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
23/39
Redirectarea comenzilor
command > file redirectarea ies, irii standard
command file redirectarea ies, irii de eroare standard
cat /dev/null > file trunchierea fis, ierului
> file trunchierea fis, ierului
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
24/39
Inlant, uirea comenzilor
command1 | command2 ies, irea comenzii command1 esteintrare pentru command2
filozofia Unix: Do one thing, do one thing well!
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
25/39
Shell scripting
variabile
filtre de textcicluri, instruct, iuni de decizie
automatizare
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
26/39
Cuprins
1 Linia de comanda
2 CLI vs. GUI
3 Facilitat, i shell
4 Facilitat, i libreadline
5 Extra juice
6 Concluzii
7 Intrebari
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
27/39
libreadline
biblioteca folosita pentru editarea comenzilorfolosita de multe aplicat, ii CLI
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
28/39
Generalitat, i
CTRL+D logout
CTRL+C anularea comenzii (foarte important)
CTRL+L clear screen
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
29/39
Mis, cari
Emacs bindings
CTRL+F caracter nainte
CTRL+B caracter napoi
ALT+F cuvant nainte
ALT+B cuvant napoi
CTRL+A nceput de rand
CTRL+E sfars, it de rand
CTRL+]+caracter cautarea primei aparit, iei a caracterului
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
30/39
Editare
CTRL+D s, terge caracterul curent (Delete)
Backspace s, terge caracterul anterior
ALT+D s, terge cuvantul curentALT+Backspace s, terge cuvantul anterior
CTRL+K s, terge din pozit, ia curenta pana la sfars, it
CTRL+U s, terge din pozit, ia curenta pana la nceput
CTRL+ undo
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
31/39
inputrc
fis, ierul de configurare pentru libreadline
something cute ALT+#set completion-ignore-case on
mai multe n documentat, ie ( man bash)
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
32/39
Cuprins
1 Linia de comanda
2 CLI vs. GUI
3 Facilitat, i shell
4 Facilitat, i libreadline
5 Extra juice
6 Concluzii
7 Intrebari
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
33/39
Acces rapid la shell
keyboard shortcut pentru terminal acces rapid
nautilus-open-terminalpachet GNOMEdeschide un terminal n directorul din interfat, a grafica
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
34/39
Rulare rapida de aplicat, ii
gnome-open
pachet GNOMEdeschide fis, ierul transmis ca argument cu aplicat, ia dorita
un fel de CLI double clickalias-uri
pentru comenzi comune/freventealias go=gnome-open
alias sshsr=ssh -l root swarm.cs.pub.ro
alias grep=grep --color=auto
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
35/39
Scurtaturi n mediul grafic
ALT+F2 rulare comanda
ALT+F4 nchidere fereastra
ALT+F5 minimizare
ALT+F10 maximizare
ALT+F8 redimensionare
ALT+F7 mutare
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
36/39
Cuprins
1 Linia de comanda
2 CLI vs. GUI
3 Facilitat, i shell
4 Facilitat, i libreadline
5 Extra juice
6 Concluzii
7 Intrebari
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
37/39
Cuvinte cheie
CLI
shell
terminal
prompt
comanda
argumente
GUI
CLIautocompletion
TAB, TAB-TAB
history
reverse search
globbing
scriptinglibreadline
editarea comenzilor
inputrc
nautilus-open-terminalgnome-open
alias-uri
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
38/39
Resurse utile
http://en.wikipedia.org/wiki/Command-line_interface
http://www.gnu.org/software/bash/manual/bashref.html#
Command-Line-Editing
http://www.gnu.org/software/bash/manual/bashref.html#Using-History-Interactively
http://www.computerhope.com/issues/ch000619.htm
command line interface advantages pe Google
Andrew Hunt and David Thomas The PragmaticProgrammer (Chapter 3. Basic Tools)
Razvan Deaconescu ROSEdu Tech TalksCLI Eficient
Linia de comanda CLI vs. GUI Facilitat,i shell Facilitat,i libreadline Extra juice Concluzii Intrebari
http://en.wikipedia.org/wiki/Command-line_interfacehttp://www.gnu.org/software/bash/manual/bashref.html#Command-Line-Editinghttp://www.gnu.org/software/bash/manual/bashref.html#Command-Line-Editinghttp://www.gnu.org/software/bash/manual/bashref.html#Using-History-Interactivelyhttp://www.gnu.org/software/bash/manual/bashref.html#Using-History-Interactivelyhttp://www.computerhope.com/issues/ch000619.htmhttp://www.computerhope.com/issues/ch000619.htmhttp://www.gnu.org/software/bash/manual/bashref.html#Using-History-Interactivelyhttp://www.gnu.org/software/bash/manual/bashref.html#Using-History-Interactivelyhttp://www.gnu.org/software/bash/manual/bashref.html#Command-Line-Editinghttp://www.gnu.org/software/bash/manual/bashref.html#Command-Line-Editinghttp://en.wikipedia.org/wiki/Command-line_interfacehttp://find/http://goback/ -
8/8/2019 ROSEdu Tech Talks Prezentarea 11: Utilizarea Eficient a Liniei de Comand
39/39
Cuprins
1 Linia de comanda
2 CLI vs. GUI
3 Facilitat, i shell
4 Facilitat, i libreadline
5 Extra juice
6 Concluzii
7 Intrebari
Razvan Deaconescu ROSEdu Tech Talks
CLI Eficient
http://find/http://goback/