Úvod
write
příkaz v Linuxu vytváří komunikační linku mezi dvěma přihlášenými uživateli přes terminál. Příkaz umožňuje posílání zpráv mezi uživateli v reálném čase kopírováním textu z jednoho terminálu do druhého.
Tento článek ukazuje, jak používat příkaz write prostřednictvím příkladů.

Předpoklady
- Přístup k terminálu.
- Prostředí pro více uživatelů.
- Oprávnění skupiny Sudo.
- Textový editor pro vytváření textových souborů.
Syntaxe příkazů zápisu Linux
Syntaxe pro write
příkaz v Linuxu je:
write <user> <tty name>
user
parametr je povinný a představuje uživatelské jméno přijímajícího konce. tty name
specifikuje prostředí terminálu v případě více otevřených terminálů.
Komunikace vyžaduje oprávnění k zápisu. Povolte oprávnění pomocí:
mesg y
Terminál nevydává zprávu.
Příklady příkazů zápisu Linuxu
write
příkaz vyžaduje alespoň dva přihlášené uživatele prostřednictvím relace pts (pseudoterminál slave) nebo tty (dálnopis). Přihlaste se pomocí:
sudo login <username>

Pokud například pracujete na stejném počítači se dvěma různými uživateli, každý uživatel spustí příkaz ve své terminálové relaci a poskytne své uživatelské jméno.
Příkaz vyzve k zadání sudo a hesla uživatele, aby bylo možné pokračovat.
Chcete-li zkontrolovat, kdo je přihlášen, použijte příkaz w v kterémkoli terminálu takto:
w

Výstup zobrazuje dva uživatele přihlášené prostřednictvím konzole pts, zatímco první je přihlášen prostřednictvím místního displeje (GUI). První uživatel spustil login
příkaz pro oba uživatele.
Napište zprávu uživateli
Chcete-li napsat zprávu jinému uživateli pomocí write
proveďte následující:
1. Spusťte write
a zadejte uživatele:
write bob

Příkaz očekává vstupní zprávu. Na přijímací straně obdrží uživatel potvrzení o připojení s následujícími informacemi:
- Od koho zpráva přichází.
- Odkud zpráva přichází.
- Časové razítko.
2. Napište zprávu uživateli. Stiskněte Enter přejde na nový řádek a zprávu neukončí.

Stejná zpráva se objeví na přijímací straně v reálném čase.
3. Ukončení write
stiskněte CTRL +D .

Druhý uživatel obdrží EOF
zpráva označující, že příkaz skončil.
Udržte konverzaci
Chcete-li vést konverzaci mezi dvěma uživateli pomocí write
příkaz, spusťte:
write bob
Poté pošlete jakoukoli zprávu. Aby druhý uživatel odpověděl, spusťte write
příkaz určující jméno prvního uživatele:
write kb

Protože neexistuje žádný správný způsob, jak rozlišit, kdy uživatel dokončí zprávu, tradiční způsob ukončení příkazu je o
postava (symbolizující „over“). Chcete-li signalizovat konec konverzace, napište oo
(pro "přes a ven").
CTRL +D odešle EOF
znak přerušení pro ukončení komunikačního kanálu a ukončení programu.
Napsání zprávy
Pomocí příkazu echo zadejte zprávu a kanál na write
příkaz:
echo "Hello from KB" | write bob

Komunikační kanál okamžitě skončí pro odesílatele, zatímco příjemce přijme zprávu a čeká na ukončení.
Napište zprávu ze souboru
Chcete-li odeslat zprávu z textového souboru, postupujte takto:
1. Vytvořte textový soubor pomocí textového editoru, jako je nano:
nano message.txt
2. Přidejte do souboru nějaký text.
3. Uložte soubor a zavřete nano (CTRL +X , Y , Zadejte ).
4. Odešlete obsah souboru prostřednictvím write
příkaz s:
write bob < message.txt

Příjemce vidí zprávu z textového souboru.
Zapsat do zadaného TTY
Když má uživatel otevřeno více relací terminálu, zobrazí se write
příkaz vybere terminál s nejkratší dobou nečinnosti.
Poznámka: Použijte w
pro kontrolu názvu TTY a doby nečinnosti.
Chcete-li určit, kterému TTY se má odeslat, spusťte:
write bob pts/0

Zprávy přicházejí pouze do pts/0 TTY.
Psaní ve skriptech Bash
Použijte write
ve skriptech Bash, abyste sebe nebo jiného uživatele upozornili na dokončení příkazu nebo úlohy. Podívejte se například na následující skript Bash:
#!/bin/bash
sudo apt update -y
echo "Update completed" | write bob
sudo apt upgrade -y
echo "Upgrade completed" | write bob
Spuštěním skriptu se spustí aktualizace a upgrade systému. write
pomáhá informovat uživatele bob
po dokončení každého kroku vytiskne zprávu na svůj terminál.
Závěr
Poté, co si projdete příklady v tomto tutoriálu, víte, jak používat write
příkaz v Linuxu.
Dále se naučte, jak používat příkaz Bash read a uložit vstup uživatele.