. /etc/ksh.kshrc export HISTFILE=~/.sh_history bind '^[[3~'=delete-char-forward bind '^[[1~'=beginning-of-line bind '^[[4~'=end-of-line # nebo bind '^[[7~'=beginning-of-line bind '^[[8~'=end-of-line # nebo taky bind '^[OD'=backward-word bind '^[OC'=forward-word
:set nocompatible :set backspace=2(díky Stínovlasovi a Jendovi Hrachovi)
$ ssh [-l uživatel] [-p port] cíl [příkaz ke spuštění] $ ssh uživatel@cíl
# spojení na LOKÁLNÍ tcp/8080 přesměruje na 192.168.1.20 port 80 # (např. dostupné jen z druhého konce) $ ssh -L 8080:192.168.1.20:80 verejna.adresa.cz # spojení na VZDÁLENÝ tcp/8080 přesměruje na 192.168.1.20 port 80 # (např. dostupné jen odsud) $ ssh -R 8080:192.168.1.20:80 verejna.adresa.cz
# spojení na lokální tcp/8080 posílá na druhý konec
# SSH může fungovat jako SOCKS5 server
$ ssh -D 8080 vzdálený.stroj
# ve firefoxu Preferences → Proxy Configuration → Manual → localhost:8080
→ http://www.whatismyip.org
# ssh -XYC vzdálený.stroj (vzdálený stroj)# xhost +druhá.strana
# vygenerujeme klíč (soubor .ssh/id_rsa si chraňte!) $ ssh-keygen # řekneme SSH daemonovi, aby ho dovolil použít k přihlášení $ ssh-copy-id vzdálený.stroj $ cat .ssh/id_rsa.pub >> ˜/.ssh/authorized_keys # (ručně) # OpenSSH ho používá jako výchozí, tento příklad je jen ilustrativní $ ssh -i .ssh/id_rsa vzdálený.stroj
Host homeproxy HostName unas.doma.cz User maminka Port 2233 DynamicForward 8080 IdentityFile /mnt/encrypted/ssh-keys/home # potom stačí spustit "ssh homeproxy" a vše se doplní
# exec ssh-agent $SHELL # ssh-add <soubor-s-klíčem> # ssh homeproxy
$ scp -P2233 uživatel@vzdálený.stroj:~/dokumenty/hovadina.txt /tmp $ scp blemc.kyd uživatel@vzdálený.stroj:/tmp $ sftp homeproxy cd dokumenty get hovadina.txt
# pro účty grafik1, grafik2, grafika ... vynuť SFTP Match User grafik? ForceCommand internal-sftp ChrootDirectory /mnt/grafici
Problém: pracujete v terminálu a něco se stane:
Řešení: terminal multiplexer; client-server program, který drží spuštěné terminály na pozadí a klientovi je zobrazuje.
Spusťte:
$ tmux
tmux(1) se ovládá pomocí tzv. prefix key (standardně Ctrl+B). Zmáčkněte prefix key a potom to, co chcete udělat:
c | vytvoří nové okno |
---|---|
d | odpojí současného klienta |
p/n | přepne na předchozí/další okno |
t | zobrazí čas |
PgUp/PgDn | scrolluje v bufferu |
^B | pošle ^B programu uvnitř tmuxu (napr. další tmux na jiném stroji) |
" | rozdělí okno horizontálně |
% | rozdělí okno vertikálně |
šipky | vedlejší okna |
^šipky | zvětšuje/zmenšuje |
, | přejmenuje okno (kdo chce 10× "ksh"?) |
K už spuštěné session se připojíte příkazem
$ tmux attach-session (nebo)$ tmux a
Někdy vam stačí jen přepis vaší konzole do souboru; k tomu použijete program script(1). Interaktivne vizte ascii.io.
Zkuste si pustit tři tmuxy v sobě (třeba na třech strojích). Kolikrát musíte zmáčknout ^B, abyste detachli ten nejvíc vevnitř? Proč?
Vyzkoušejte si copy/paste - ^B : (zadávátko příkazů pro tmux, kterým jsou přiřazované klávesy) :set-window-option mode-keys vi a potom prefixkey,[,],mezerník a enter. Rovnítko je "paste" s interaktivnim vyberem bufferu.
To si můžete dát do ~/.tmux.conf
Barvičkama odlište tmuxy na různých strojích, abyste na první pohled poznali, kde pracujete.
Můžete vyhledávat text ve všech otevřených oknech! ^B f by default.
Pomocí ^B : se dají zadávat příkazy (a doplňovat tabulátorem jednoznačné zkratky)
Můžete mít více sessions (i pojmenovaných přes :rename-session) a přepínat mezi nimi šipkami v ^B s (příkaz :choose-session), přejít na poslední použitou přes ^B L, případně z shellu otevřít přímo (tmux a -t pracovni)
# wsconsctl display.brightness=100 $ mixerctl outputs.master=160 $ mixerctl outputs.master.mute=off $ sysctl hw.sensors $ zzz -z $ ZZZ