[Löst]Skriv ut ett meddelande på alla terminaler

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Användarvisningsbild
Erikw
Inlägg: 158
Blev medlem: 15 jul 2007, 02:57
OS: Open Suse
Utgåva: 22.10 Kinetic Kudu
Ort: Lund, Sverige
Kontakt:

[Löst]Skriv ut ett meddelande på alla terminaler

Inlägg av Erikw »

Hej!

Jag vill börja äta vid mer regelbundna tider. Hur löser man detta med GNU/Linux? Jo med ett cronjob så klart!

Jag vill göra ett skript som skriver/ekar ett meddelande på alla öppna terminaler (virtuella?) för antingen alla användare eller bara den aktuella (min). Exempelvis gör ju programmet halt detta.

Kod: Markera allt

erikw@compton:~$ sudo halt
[sudo] password for erikw: 

Broadcast message from erikw@compton
	(/dev/pts/6) at 1:29 ...

The system is going down for halt NOW!

Hur kan man göra detta? Förslag mottages varmt. Tack på förhand!
Senast redigerad av 1 Erikw, redigerad totalt 3 gånger.
2r.se
"There are people who don't like capitalism, and people who don't like PCs. But there's no one who likes the PC who doesn't like Microsoft." - Bill Gates
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av Emil.s »

"wall" är det du letar efter! :)

Kod: Markera allt

emil@sandnabba: ~ $> echo 'Time for lunch sweetheart!!!' | wall
                                                                               
Broadcast Message from emil@sandnabba                                          
        (/dev/pts/3) at 1:07 ...                                               
                                                                               
Time for lunch sweetheart!!!
Tror man lär köra som root för att även root-terminaler ska se. Man samtidigt så är det väl datorn som är root över dig vid just det tillfället? ;)
Home sweet ~/ = http://sandnabba.se
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av dmz »

Emil.s skrev:"wall" är det du letar efter! :)

Kod: Markera allt

emil@sandnabba: ~ $> echo 'Time for lunch sweetheart!!!' | wall
                                                                               
Broadcast Message from emil@sandnabba                                          
        (/dev/pts/3) at 1:07 ...                                               
                                                                               
Time for lunch sweetheart!!!
Tror man lär köra som root för att även root-terminaler ska se. Man samtidigt så är det väl datorn som är root över dig vid just det tillfället? ;)
Hm.

Kod: Markera allt

echo 'Time for lunch sweetheart!!!' > /dev/pts/*
:)
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Användarvisningsbild
Erikw
Inlägg: 158
Blev medlem: 15 jul 2007, 02:57
OS: Open Suse
Utgåva: 22.10 Kinetic Kudu
Ort: Lund, Sverige
Kontakt:

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av Erikw »

Utmärkt! Precis vad jag letade efter. Tack!
2r.se
"There are people who don't like capitalism, and people who don't like PCs. But there's no one who likes the PC who doesn't like Microsoft." - Bill Gates
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av dmz »

Emil: Exakt ungefär vad är skillnaden mellan våra 2 sätt?
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Användarvisningsbild
Erikw
Inlägg: 158
Blev medlem: 15 jul 2007, 02:57
OS: Open Suse
Utgåva: 22.10 Kinetic Kudu
Ort: Lund, Sverige
Kontakt:

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av Erikw »

dmz: ditt fugnerade inte :(

Kod: Markera allt

erikw@compton:~$ echo 'Time for lunch sweetheart!!!' > /dev/pts/*
bash: /dev/pts/*: ambiguous redirect
Edit. + OT

Upptäckte att klockan i Ubuntu går en timmes fel. Kan man ändra detta i systemet eller måste jag bära fram monitorn från garderoben och ändra i BIOS?
Senast redigerad av 2 Erikw, redigerad totalt 30 gång.
2r.se
"There are people who don't like capitalism, and people who don't like PCs. But there's no one who likes the PC who doesn't like Microsoft." - Bill Gates
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av dmz »

Erikw skrev:dmz: ditt fugnerade inte :(

Kod: Markera allt

erikw@compton:~$ echo 'Time for lunch sweetheart!!!' > /dev/pts/*
bash: /dev/pts/*: ambiguous redirect

Kod: Markera allt


┌─(dmz@sophie:pts/0)(~)
└─(19:34:%)── echo 'Time for lunch sweetheart!!!' > /dev/pts/*
Time for lunch sweetheart!!!
┌─(dmz@sophie:pts/0)(~)
└─(20:13:%)── 
Funkar fint här :S
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Användarvisningsbild
Erikw
Inlägg: 158
Blev medlem: 15 jul 2007, 02:57
OS: Open Suse
Utgåva: 22.10 Kinetic Kudu
Ort: Lund, Sverige
Kontakt:

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av Erikw »

OT igen

Vad kör du med för skal? Ser intressant ut.
2r.se
"There are people who don't like capitalism, and people who don't like PCs. But there's no one who likes the PC who doesn't like Microsoft." - Bill Gates
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av dmz »

Erikw skrev:OT igen

Vad kör du med för skal? Ser intressant ut.
zsh!
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av Emil.s »

dmz skrev:Emil: Exakt ungefär vad är skillnaden mellan våra 2 sätt?
Ingen aning riktigt. Är väl typ samma, bara att wall lägger till lite mer info om vem som skickat meddelandet och när.
Men då kan man ju bara fixa ett script i stil med:

Kod: Markera allt

date ; echo $USER
echo "Hejsan svejsan..."
Och köra det och skicka outputen till lämplig destination.

Iof så skickar ju wall till allt, båte pts/ och tty:erna.

Men nu stötte jag också på en nöt här. Varför funkar inte "din" väg?
root@sandnabba: /root/loggbok #> echo 'Hejsan' > /dev/pts/
0 1 4
root@sandnabba: /root/loggbok #> echo 'Hejsan' > /dev/pts/*
bash: /dev/pts/*: ambiguous redirect
root@sandnabba: /root/loggbok #> echo 'Hejsan' > /dev/pts/[1-9]
bash: /dev/pts/[1-9]: ambiguous redirect
root@sandnabba: /root/loggbok #> echo 'Hejsan' > /dev/pts/1
root@sandnabba: /root/loggbok #>
Det borde väl funka!? Måste ju vara något med zsh/bash, men terminalerna är ju samma...
Home sweet ~/ = http://sandnabba.se
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av dmz »

Emil.s skrev:
dmz skrev:Emil: Exakt ungefär vad är skillnaden mellan våra 2 sätt?
Ingen aning riktigt. Är väl typ samma, bara att wall lägger till lite mer info om vem som skickat meddelandet och när.
Men då kan man ju bara fixa ett script i stil med:

Kod: Markera allt

date ; echo $USER
echo "Hejsan svejsan..."
Och köra det och skicka outputen till lämplig destination.

Iof så skickar ju wall till allt, båte pts/ och tty:erna.

Men nu stötte jag också på en nöt här. Varför funkar inte "din" väg?
root@sandnabba: /root/loggbok #> echo 'Hejsan' > /dev/pts/
0 1 4
root@sandnabba: /root/loggbok #> echo 'Hejsan' > /dev/pts/*
bash: /dev/pts/*: ambiguous redirect
root@sandnabba: /root/loggbok #> echo 'Hejsan' > /dev/pts/[1-9]
bash: /dev/pts/[1-9]: ambiguous redirect
root@sandnabba: /root/loggbok #> echo 'Hejsan' > /dev/pts/1
root@sandnabba: /root/loggbok #>
Det borde väl funka!? Måste ju vara något med zsh/bash, men terminalerna är ju samma...
Tydligen så verkar bash inte stödja expanderingen, wtf? Kan ni inte göra ls *.pn* heller? (Ja, jag vet att den sista expanderas...)
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av Emil.s »

dmz skrev:
Emil.s skrev:
dmz skrev:Emil: Exakt ungefär vad är skillnaden mellan våra 2 sätt?
Ingen aning riktigt. Är väl typ samma, bara att wall lägger till lite mer info om vem som skickat meddelandet och när.
Men då kan man ju bara fixa ett script i stil med:

Kod: Markera allt

date ; echo $USER
echo "Hejsan svejsan..."
Och köra det och skicka outputen till lämplig destination.

Iof så skickar ju wall till allt, båte pts/ och tty:erna.

Men nu stötte jag också på en nöt här. Varför funkar inte "din" väg?
root@sandnabba: /root/loggbok #> echo 'Hejsan' > /dev/pts/
0 1 4
root@sandnabba: /root/loggbok #> echo 'Hejsan' > /dev/pts/*
bash: /dev/pts/*: ambiguous redirect
root@sandnabba: /root/loggbok #> echo 'Hejsan' > /dev/pts/[1-9]
bash: /dev/pts/[1-9]: ambiguous redirect
root@sandnabba: /root/loggbok #> echo 'Hejsan' > /dev/pts/1
root@sandnabba: /root/loggbok #>
Det borde väl funka!? Måste ju vara något med zsh/bash, men terminalerna är ju samma...
Tydligen så verkar bash inte stödja expanderingen, wtf? Kan ni inte göra ls *.pn* heller? (Ja, jag vet att den sista expanderas...)
Jodå, inga problem:

Kod: Markera allt

root@sandnabba: ~ #> ls -l *.o*
-rwx------ 1 emil emil 649 2008-01-05 19:19 shut-down_counter.old
root@sandnabba: ~ #> ls -l *.*o*
-rwx------ 1 emil emil     5490 2008-11-02 19:19 APU.log
-rwx------ 1 emil emil 11098968 2008-02-09 22:18 Propan.mov
-rw------- 1 emil emil    40440 2008-12-23 13:31 sandnabba.se-kernelconfig
-rwx------ 1 emil emil      649 2008-01-05 19:19 shut-down_counter.old
root@sandnabba: ~ #> ls -l *.*[op]*
-rw------- 1 emil emil      196 2008-12-28 19:25 acl.public_html
-rwx------ 1 emil emil     5490 2008-11-02 19:19 APU.log
-rwx------ 1 emil emil 11098968 2008-02-09 22:18 Propan.mov
-rw-r--r-- 1 emil emil  2175818 2008-11-03 22:51 Schema EC3.pdf
-rwx------ 1 emil emil      649 2008-01-05 19:19 shut-down_counter.old
Home sweet ~/ = http://sandnabba.se
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av dmz »

Väldigt mysko. Det är likadant i Debian tydligen (också bash).
Emil, nu är det hög tid att gå över till zsh för att se om det är där "problemet" ligger. ;)
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av Emil.s »

dmz skrev:Väldigt mysko. Det är likadant i Debian tydligen (också bash).
Emil, nu är det hög tid att gå över till zsh för att se om det är där "problemet" ligger. ;)
hehe, installerade, och se där ja:

Kod: Markera allt

sandnabba# echo "Hejsan" > /dev/pts/*
Hejsan
Då vet vi var problemet ligger iallafall... Man kanske ska lära sig zsh. ;D
Home sweet ~/ = http://sandnabba.se
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av dmz »

Emil.s skrev:
dmz skrev:Väldigt mysko. Det är likadant i Debian tydligen (också bash).
Emil, nu är det hög tid att gå över till zsh för att se om det är där "problemet" ligger. ;)
hehe, installerade, och se där ja:

Kod: Markera allt

sandnabba# echo "Hejsan" > /dev/pts/*
Hejsan
Då vet vi var problemet ligger iallafall... Man kanske ska lära sig zsh. ;D
:D
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av mcNisse »

Jag får inte wall att fungera... Den vägrar skickar inget trots att jag kör som root.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av Konservburk »

Emil.s skrev:
dmz skrev:Väldigt mysko. Det är likadant i Debian tydligen (också bash).
Emil, nu är det hög tid att gå över till zsh för att se om det är där "problemet" ligger. ;)
hehe, installerade, och se där ja:

Kod: Markera allt

sandnabba# echo "Hejsan" > /dev/pts/*
Hejsan
Då vet vi var problemet ligger iallafall... Man kanske ska lära sig zsh. ;D
Eller också lär du dig hur du gör på "rätt sätt" som fungerar oavsett om du använder zsh, bash, eller helt vanlig sh:

Kod: Markera allt

echo hejsan | tee /dev/pts/*
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av dmz »

Konservburk skrev:
Emil.s skrev:
dmz skrev:Väldigt mysko. Det är likadant i Debian tydligen (också bash).
Emil, nu är det hög tid att gå över till zsh för att se om det är där "problemet" ligger. ;)
hehe, installerade, och se där ja:

Kod: Markera allt

sandnabba# echo "Hejsan" > /dev/pts/*
Hejsan
Då vet vi var problemet ligger iallafall... Man kanske ska lära sig zsh. ;D
Eller också lär du dig hur du gör på "rätt sätt" som fungerar oavsett om du använder zsh, bash, eller helt vanlig sh:

Kod: Markera allt

echo hejsan | tee /dev/pts/*
Jahaja, där ser man. :)
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Användarvisningsbild
Mekaniserad Apelsin
Hedersmedlem
Inlägg: 3777
Blev medlem: 27 maj 2006, 12:24
OS: Ubuntu
Ort: Stockholm
Kontakt:

Re: Skriv ut ett meddelande på alla terminaler

Inlägg av Mekaniserad Apelsin »

För den som sitter i gnome kanske det är dags att påminna om system - inställningar - tangentbord, där fliken "paus i skrivande" där man kan ställa in ett arbetsintervall, en vilolängd och om det är ok att skjuta upp pauser.

Fast i fallet där man sitter i en "rå" terminal utan grafik (som trådskaparen) hjälper det givetvis inte mycket.
More Mekaniserad at http://blippe.se.
Skriv svar

Återgå till "Terminalforum"