FB: facebook.com/peckadesign TW: @peckadesign
ZÁKLADNÍ PRÁCE S PŘÍKAZOVÝM ŘADKEM
Milan PálaPeckaDesign
FB: facebook.com/peckadesign TW: @peckadesign
FB: facebook.com/peckadesign TW: @peckadesign
FB: facebook.com/peckadesign TW: @peckadesign
FB: facebook.com/peckadesign TW: @peckadesign
HISTORIE
FB: facebook.com/peckadesign TW: @peckadesign
POSIXPortable Operating System Interface for Unix je standard pro jednotné
rozhraní systémů jak pro programátory, tak pro uživatele. Je to norma splňující certifikaci systémů UNIX a vlastní ji Linux a Mac OS X.
https://cs.wikipedia.org/wiki/Portable_Operating_System_Interface
FB: facebook.com/peckadesign TW: @peckadesign
POSIX NA WINDOWSNa Windows je kolekce programů Cygwin portující
POSIX pro Windows.
https://cs.wikipedia.org/wiki/Cygwin
https://www.cygwin.com/
FB: facebook.com/peckadesign TW: @peckadesign
UNIXOVÝ SHELL
Textové uživatelské rozhraní, které po přihlášení uživatele vytvoří příkazový řádek.
V OS DOS byl COMMAND.COM, na dnešních Windows cmd.exe a PowerShell.
Shell interpretuje zadávané příkazy, spouští programy a umožňuje spouštět skripty.
https://cs.wikipedia.org/wiki/Unixový_shell
FB: facebook.com/peckadesign TW: @peckadesign
UNIXOVÝ SHELL
Syntaxe příkazů: >příkaz [přepínače] [parametry] < [vstupní soubor] > [výstup]
Přepínače: • krátké, jednoznakové: -l, -a, -h, -lah • dlouhé: --force, --format=single-column
Parametry: • neuvozené: origin/master, soubor.txt
FB: facebook.com/peckadesign TW: @peckadesign
PŘÍKAZOVÁ ŘÁDKA
Prompt: uživatel@počítač:adresář#_
FB: facebook.com/peckadesign TW: @peckadesign
JAK ZÍSKAT NÁPOVĚDUManuálové stránky utility
>man grep :q
Nápověda utility>grep --help
Googleman grep
FB: facebook.com/peckadesign TW: @peckadesign
STDOUT, STDIN, STDERR, PIPE
>cat soubor > novy_soubor >cat soubor >> novy_soubor_pro_pridani >program > vystup.log 2> chyby.log >program 2&>1 > vystup.log >program < soubor.txt > vystup.log > >cat soubor.txt | program > vystup.log >cat chyby.log | grep “2015-11-05” | grep Notice
FB: facebook.com/peckadesign TW: @peckadesign
ADRESÁŘOVÁ STRUKTURA A
SOUBORY
FB: facebook.com/peckadesign TW: @peckadesign
STRUKTURA
/ - kořenový adresář /home - domovský adresář uživatelů /bin - základní programy spustitelné uživatelem /sbin - programy nespustitelné běžným uživatelem /mnt - dočasně připojené svazky /etc - konfigurační soubory /var - proměnná data
https://cs.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
FB: facebook.com/peckadesign TW: @peckadesign
AKTUÁLNÍ ADRESÁŘ
>pwd /Users/milan
pwd - print name of working directory
FB: facebook.com/peckadesign TW: @peckadesign
VÝPIS AKTUÁLNÍHO ADRESÁŘE
>ls Applications Documents Movies Snapshots >ls -lah total 1223304 drwxr-xr-x+ 74 milan staff 2,5K 2 lis 11:55 . drwxr-xr-x 6 root admin 204B 1 říj 12:45 .. -rw-r--r--@ 1 milan staff 20K 24 říj 17:53 .DS_Store drwx------ 26 milan staff 884B 2 lis 12:23 .Trash drwxr-xr-x 3 milan staff 102B 23 říj 08:15 .WebIde100 drwxr-xr-x 10 milan staff 340B 23 říj 22:18 .ssh drwx------ 5 milan staff 170B 13 bře 2015 Applications
ls - list directory contents
FB: facebook.com/peckadesign TW: @peckadesign
VELIKOST ADRESÁŘEdu - estimate file space usage
>du . 3328 ./.bash_sessions 24 ./.boot2docker/certs/boot2docker-vm 24 ./.boot2docker/certs >du -sh . 548M .
FB: facebook.com/peckadesign TW: @peckadesign
VYTVOŘENÍ ADRESÁŘE
mkdir - make directories
>mkdir novy/adresar mkdir: novy: No such file or directory >mkdir -p novy/adresar >ls novy adresar
FB: facebook.com/peckadesign TW: @peckadesign
SMAZÁNÍ SOUBORU/ADRESÁŘE
rm - remove files or directories
>touch novy/soubor >rm novy/soubor >rm novy/ rm: novy/: is a directory >rm -r novy/ >rm -ir novy/ examine files in directory novy/? y
FB: facebook.com/peckadesign TW: @peckadesign
KOPÍROVÁNÍ
>cp adresar1/soubor adresar2/ >ls adresar2 soubor >cp adresar1 adresar2 cp: adresar2 is a directory (not copied). >cp -r adresar1 adresar2 > ls adresar2 soubor adresar1
cp - copy files and directories
FB: facebook.com/peckadesign TW: @peckadesign
TOTAL COMMANDERmc - Visual shell for Unix-like systems.
FB: facebook.com/peckadesign TW: @peckadesign
PRÁCE S TEXTEM
FB: facebook.com/peckadesign TW: @peckadesign
VYPASÁNÍ OBSAHU SOUBORUcat - concatenate files and print on the standard output
>cat soubor Ahoj >cat -n soubor 1 Ahoj
FB: facebook.com/peckadesign TW: @peckadesign
VYPSÁNÍ ČÁSTI SOUBORU
head - output the first part of files
tail - output the last part of files
-n, --lines=K
-n, --lines=K -f
FB: facebook.com/peckadesign TW: @peckadesign
VYPSÁNÍ ČÁSTI SOUBORU
dolu: šipka dolů, mezerník nahoru: šipka nahoru, b nápověda: h vypnutí: q vyhledání: / + Enter pohyb ne výsledcích vyhledávání: n/p
https://cs.wikipedia.org/wiki/Less_(Unix)
less
FB: facebook.com/peckadesign TW: @peckadesign
NANOnano − Nano’s ANOther editor, an enhanced free Pico clone
>nano soubor
^X Exit, Y, Enter ^G Get Help
FB: facebook.com/peckadesign TW: @peckadesign
VIM
>vim soubor
vim - Vi IMproved, a programmers text editor
Command mode:i
Insert modeEsc
:vVisual mode
Esc:q - quit :q! - force quit :wq :x - write and quit
Shell
yy yank current line dd delete line p paste below cursor P paste above cursor
FB: facebook.com/peckadesign TW: @peckadesign
VIM JAKO IDE
FB: facebook.com/peckadesign TW: @peckadesign
UŽIVATELSKÁ OPRAVÁNĚNÍ
https://cs.wikipedia.org/wiki/Přístupová_oprávnění_v_Unixu
FB: facebook.com/peckadesign TW: @peckadesign
UŽIVATELSKÁ OPRÁVNĚNÍ
Typ právaSymbolické vyjádřeníé
Binární vyjádření
Oktalové vyjádření
Čtení r 1OO 4
Zápis w O1O 2
Spuštění x OO1 1
FB: facebook.com/peckadesign TW: @peckadesign
UŽIVATELSKÁ OPRÁVNĚNÍ
Soubor Binární vyjádření
Čtení Čtení ze souboru Čtení adresáře
Zápis Zápis ze souboru Vytvoření, mazání, přejmenování souborů
Spuštění Spuštění Vstup do adresáře
FB: facebook.com/peckadesign TW: @peckadesign
UŽIVATELSKÁ OPRÁVNĚNÍ
644
Vlastník Skupina Ostatní
rwx r - - r - -421 OOO OOO
777
Vlastník Skupina Ostatní
rwx rwx rwx421 421 421
FB: facebook.com/peckadesign TW: @peckadesign
>ls -la celkem 9,5M drwx------ 2 root root 4,0K led 17 2015 .aptitude -rw------- 1 root root 15K říj 28 14:31 .bash_history -rw-r--r-- 1 root root 568 led 24 2015 .bashrc drwxr-xr-x 2 root root 4,0K zář 30 22:17 cert
1. Typ souboru – pomlčka označuje obyčejný soubor, 'd' je adresář, 'l' symbolický odkaz 2. Oprávnění pro vlastníka, skupinu a ostatní uživatel (vždy tři oprávnění). Pokud není některé oprávnění
přiděleno, objeví se při výpisu pomlčka (–). 3. Počet odkazů na i-uzel (inode) 4. Vlastník objektu 5. Skupina, které objekt patří 6. Velikost objektu 7. Datum a čas poslední změny objektu 8. Název objektu
UŽIVATELSKÁ OPRÁVNĚNÍ
FB: facebook.com/peckadesign TW: @peckadesign
KDO JSEM>whoami pecka >who milan console Nov 4 08:21 milan ttys000 Nov 4 08:31 >cat /etc/passwd ## # User Database ## nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false root:*:0:0:System Administrator:/var/root:/bin/sh >cat /etc/group ## # Group Database # nobody:*:-2: nogroup:*:-1:
FB: facebook.com/peckadesign TW: @peckadesign
UTILITY
FB: facebook.com/peckadesign TW: @peckadesign
CRONcron -- daemon to execute scheduled commands
crontab --tables for driving cron
> crontab -u uzivatel -l # m h dom m dow command
03 * * * * php elasticsearch/delete-entities.php
> crontab -e
FB: facebook.com/peckadesign TW: @peckadesign
GREPgrep - print lines matching a pattern
>tail -n 1000 log/error.log | grep Notice [2015-11-04 10-47-05] PHP Notice: Undefined index: onlyPublic in /var/www/vhosts/… [2015-11-04 10-47-10] PHP Notice: Undefined index: onlyPublic in /var/www/vhosts/…
-v, —invert-match -i, —ignore-case -n, —line-number
-A NUM, —after-context=NUM -B NUM, —before-context=NUM -C NUM, -NUM, —context=NUM
-R, -r, —recursive: grep -r hleadnyVyraz cesta
FB: facebook.com/peckadesign TW: @peckadesign
SSHssh -- OpenSSH SSH client (remote login program)
>ssh uzivatel@pocitac uzivatel@pocitac >
FB: facebook.com/peckadesign TW: @peckadesign
Metody autentizace: 1. Public key authentication 2. Password
SSH
Konfigurace pro ssh se získává z: 1. parametrů příkazu 2. ~/.ssh/config 3. /etc/ssh/ssh_config
FB: facebook.com/peckadesign TW: @peckadesign
Host nazevHosta HostName server.cz IdentityFile ~/.ssh/.id_rsa PasswordAuthentication yes|no Port 22 User uzivatel
SSHCONFIG
Struktura souboru config:
FB: facebook.com/peckadesign TW: @peckadesign
ssh-keygen - authentication key generation, management and conversion
SSH-KEYGEN
>ssh-keygen >ssh-keygen -t rsa -b 4096 -C "[email protected]"
https://help.github.com/articles/generating-ssh-keys/
>ls -la ~/.ssh/ -rw-r--r-- 1 milan staff 1040 23 říj 19:50 config -rw------- 1 milan staff 1675 25 črv 2014 id_rsa -rw-r--r-- 1 milan staff 407 12 čvc 2014 id_rsa.pub
FB: facebook.com/peckadesign TW: @peckadesign
SSH
Zapamatovaní vzdálení uživatelé: ~/.ssh/known_hosts
Povolení uživatelé pro připojení: ~/.ssh/authorized_keys
FB: facebook.com/peckadesign TW: @peckadesign
SCPscp - secure copy (remote file copy program)
>scp host:vzdalenySoubor lokalniCesta
>scp -r host:vzdalenaCesta lokalniCesta
FB: facebook.com/peckadesign TW: @peckadesign
SSH NA WINDOWS
http://www.putty.org/
Putty, Puttygen, Pageant
FB: facebook.com/peckadesign TW: @peckadesign
screen — Multiplex a physical terminal between several processes (typically interactive shells).
>screen -r >screen -l >screen -S nazev
>screen ^A D - detach ^D - logout
SCREEN
FB: facebook.com/peckadesign TW: @peckadesign
DĚKUJI ZA POZORNOST
Milan Pála
Máte dotazy? E-mail: [email protected]