Cílem cvičení je základní seznámení se s příkazovou řádkou a práce na vzdáleném počítači.
~id⏎
uid=10001(barinkl) gid=1002(zam)
~uname␣-a⏎
SunOS fray1 5.11 11.3 sun4v sparc SUNW,SPARC-Enterprise-T5120
~who⏎
teterjak pts/24 Dec 21 20:07 (cst-prg-109-206.cust.vodafone.cz)
barinkl pts/35 Sep 30 11:42 (users.fit.cvut.cz)
~who␣am␣i⏎
barinkl pts/35 Sep 30 11:42 (users.fit.cvut.cz)
~whoami⏎
barinkl
~tty⏎
/dev/pts/35
~ID
bash: ID: command not found
~cd/tmp
bash: cd/tmp: No such file or directory
~cd /TMP
bash: cd: /TMP: No such file or directory
~/etc/passwd
bash: /etc/passwd: Permission denied
~ls -l -R /var/tmp /tmp
Příkaz lze ukončit stiskem klávesy CTRL+C
~date
~declare -p PATH
~type type
~type date
~/usr/bin/date
~cd /usr; bin/date
-
~ls -l -d /tmp
~ls -ld /tmp
~cd /bin; ls ?????
/binls -w 40 ?????
/binls -w40 ?????
--
=
/binls --width=40 ?????
/binls --width 40 ?????
Pro efektivní pohyb na příkazové řádce je možné používat:
~ls -lR /
^S
^Q
^C
/
/
/
/tmp/a/d
d
./d
../b/../a/./d
/bincd ~/a/ccd /etc
~pwd /etccd
~mkdir -p a/c b ~cd b
~touch a/d b/e ~/bcd ../a/c
~cd a ~/a/ccd ..
~/als -a ~/acd ..
~/als -l .. ~cd ..
~/als -l ../b /homecd .//././
~/als -l ~/b/e /homecd
~/acd c ~rm -r a b
>soubor
>>soubor
less
nebo more
~less /etc/passwd
/nologin
n
n
N
10G
?root
G
q
~ls -la >list
~less list
~date >d; sleep 5; date >d; sleep 5; date >d
~less d
~date >d; sleep 5; date >>d; sleep 5; date >>d
~less d
~date >/dev/null
~rm list d
=
nesmí být mezery: prom=hodnota
"$prom"
je nahrazeno hodnotou proměnné
~A=5
~a=text
~declare -p A a
declare -- A="5"
declare -- a="text"
~B='Programovani v shellu 1'
~declare -p B
declare -- B="Programovani v shellu 1"
~C=Programovani v shellu 1
bash: v: command not found
~declare -p C
bash: declare: C: not found
~date >"$a"
~mkdir "$B"
~ls -l
~ls -ld $B
~ls -ld "$B"
~rm "$a"; rmdir "$B"
~ls -l
~oldPS1=$PS1
~PS1='Zadej prikaz> '
Zadej prikazPS1=$oldPS1
~
help
, man
a info
help
- pro vestavěné příkazy shelluman
- pro externí příkazyinfo
- novější (hypertextová) dokumentace--help
~type uname
uname is hashed (/usr/bin/uname)
~man uname
q
~type printf
printf is a shell builtin
~help printf
~man printf
G
q
~man 3 printf
q
~man pwd
...
--logical
...
~pwd --logical
bash: pwd: --: invalid option
pwd: usage: pwd [-LP]
~type pwd
pwd is a shell builtin
~help pwd
Každý příkaz končí novým řádkem nebo oddělovačem příkazů
p1 ; p2
p3 & p4 &
~date +%T ; sleep 5 ; date +%T
12:00:00
12:00:05
~date +%T & sleep 5 & date +%T
[1] 12345
[2] 12346
12:00:00
12:00:00
[1]- Done date +%T
~
[2]+ Done sleep 5
Výstup jednoho příkazu může být vstupem dalšího příkazu.
p1 | p2
Program, který čte data ze standarního vstupu a zapisuje na standardní výstup se nazývá filtr.
~ls | wc -l
počet položek v aktuálním adresáři
~man ls | wc -l
počet řádek manuálu příkazu ls
~getent services | sort
seznam služeb seřazený podle abecedy
~getent services | sort | less
seznam služeb seřazený podle abecedy stránkovaný příkazem less
~getent passwd | fgrep /bin/bash | wc -l
počet uživatelů, kteří používají /bin/bash
~getent passwd | fgrep -v /bin/bash | wc -l
počet uživatelů, kteří nepoužívají /bin/bash
~ls | nl
seznam souborů aktuálního adresáře s očíslovanými řádky
~nl /etc/passwd
očíslované řádky souboru /etc/passwd (zde není nl jako filtr)
ssh
~ssh barinkl@fray1.fit.cvut.cz
poprvé schválit otisk klíče serveru (yes)
zadat heslo (při zadávání se nic nezobrazuje!)
fray1:~uname -a
SunOS fray1 5.11 11.3 sun4v sparc SUNW,SPARC-Enterprise-T5120
fray1:~exit
~uname -a
Linux barinkl 4.18.0-1-amd64 #1 SMP Debian 4.18.6-1 (2018-09-06) x86_64 GNU/Linux
~ssh fray1.fit.cvut.cz 'uname -a'
SunOS fray1 5.11 11.3 sun4v sparc SUNW,SPARC-Enterprise-T5120
~ssh-keygen
potvrdit cestu do ~/.ssh/id_rsa
nezadávat heslo (pouze enter 2x)
~less ~/.ssh/id_rsa
Privátní klíč
~less ~/.ssh/id_rsa.pub
Veřejný klíč (jedna řádka)
~ssh-copy-id barinkl@fray1.fit.cvut.cz
zadat heslo (při zadávání se nic nezobrazuje!)
~ssh fray1.fit.cvut.cz
fray1:~ssh fray1.fit.cvut.cz
~uname -a >systems
~scp systems barinkl@fray1.fit.cvut.cz:
systems 100% 82 3.1KB/s 00:00
~ssh barinkl@fray1.fit.cvut.cz 'uname -a >>systems'
~scp barinkl@fray1.fit.cvut.cz:systems .
systems 100% 144 2.6KB/s 00:00
~less systems