Wie Batch/Shell Dateien unter Linux schreiben?

Gern auch URL zu einer Anleitung.
Morgens muss ich 4 bis 9 Programme starten. Und immer nur tippen
Edit
Mailen
Browsen etc.
Unter DOS ging das so bei uns:
start.bat aufrufen,
dort stand dann:

c:\startis/edit.exe
c:\startis/gimp.exe
etc
Wie geht das unter Linux.

So sollte es aussehen.
Ich rufe Terminal auf
sage startordner/startlos

und dann habe ich unter root einen Ordner startordner
darin eine Textdatei
in der ich Softwarenamenliste eingebaut habe.

zb opera
claws-mail
etc.

zB Problem:
Jedes Programm soll starten in einem Terminal jeweils mit jeweils neuem Tab.

So dass ich nach Aufruf ein neues Terminal mit zb 8 Tabs habe, dort starten dann
Mailprogramm Editor Browser etc.

Und noch eine Frrage:
Wie sage ich in der Textdatei:
Mache Opera auf und öffne:
www.wer-weiss-was.de
und www.wetter.de
etc.

hallo @kever

im Prinzip funktioniert das bei Linux wie bei Windows,
indem man eine Batchdatei erstellt und darin die benötigten Programme startet.
Nur hier heißt die Datei z.B. start.sh
Programme startet man mit dem Programm-Aufruf und je nach dem mit einer Startseite z.B. Firefox www.wetter.de
Die erstellte Datei machst Du dann mit chmod +x start.sh ausführbar und startest sie dann mit ./start.sh im jeweiligen Verzeichnis.
Das mit den vielen Terminals kann ich nicht nachvollziehen.
Aber das ausführen der Datei als root würde ich aus Sicherheitsgründen nie machen.
Also Alles wie in Windows :wink:
hier eine weiterführende Internetseite.
Hoffentlich hilfts etwas,
Gruß,
charly60

Moin,

du nimmst deinen Lieblingseditor und schreibst da folgendes rein:

#!/bin/bash
opera www.ix.de www.wahlomat.de &
sleep 10
firefox www.wahlomat.de &

ohne das & startet Programm 2 erst, wenn du Programm 1 beendest. Wenn deine 4-9 Programme einigermaßen CPU-/HDD-Last erzeugen rattert dein Kasten evtl ewig rum weswegen ich dazwischen gerne mal eine geeignete shell-Pause reinschreibe

zB Problem:Jedes Programm soll starten in einem Terminal jeweils mit jeweils neuem Tab.

Was meinst du mit tab? jedes Programm öffnet ein eigenes Fenster - wenn es ein eigenes Fenster öffnen möchte. Opera im Beispiel oben öffnet ein Fenster mit zwei Tabs.

Und noch eine Frrage:Wie sage ich in der Textdatei:Mache Opera auf und öffne:www.wer-weiss-was.deund www.wetter.deetc.

Was dein Programm für Parameter braucht musst du nicht die shell fragen sondern dein Programm. Wenn es die Internetadressen einfach hintereinander haben möchte so wie opera oben, dann geht das so wie oben :slight_smile: Wenn nicht, musste das rausfinden wie es geht (hilfeseiten, manpages etc)

Achja, wie man deine Datei ausführbar macht hat charly ja schon geschrieben.
Ob deine Datei als root ausgeführt werden soll musst du selbst entscheiden. Man versucht das zu vermeiden, aber wenn es nicht anders geht… Aber denke dran, LINUX macht was du ihm sagst. DU hast die Verantwortung, nicht … äh… microsoft. Wenn dein shell-script meint dein komplettes LINUX inkl ALLER Dateien zu löschen dann macht es das ohne nachfrage. Schwups, weg isses - und kommt nie wieder :smile:

HTH
J~

Ich verstehe, was Du meinst, aber das ist ein Problem Deines Terminal-Emulators und nicht der Shell. Was z.B. recht einfach geht, ist Tabbing mit tmux:

#!/bin/sh

tmux -q has -t meine-start-session || tmux new -s meine-start-session
tmux new-win -t meine-start-session "opera www.wetter.de"
tmux new-win -t meine-start-session "claws-mail"
...

Die erste Zeile (sog. Shebang) ist wichtig, damit Linux weiß, mit welchem Interpreter das folgende Skript auszuführen ist. Dann einfach tmux-Kommandos, die eine Session und mehrere Windows (Tabs) öffnen, ganz hinten in Anführungszeichen steht jeweils die Zeile, die Du sonst so in die Shell schreiben würdest. Ausführbar machen, fertig.

Tmux ist nun so gut und erlaubt Dir diese Session in jedem Terminal sichtbar zu machen und auch wieder zuzuklappen. Und deswegen gibt es da auch explizite Steuerkommandos, die man z.B. per Shell-Skript aufrufen kann. Es gibt andere Terminals (urxvt z.B.), die man via Perl (also nicht Shell) steuern kann. Wiederum andere Terminals (z.B. xterm) gehen exklusiv von interaktiver Benutzung aus, erlauben also nicht per Kommando das Terminal zu verändern. Es hängt in jedem Fall von Deiner Umgebung ab, deswegen kann man hier nicht die Antwort geben.

Mein erster Eindruck beim Lesen der Frage war, warum nimmst Du nicht die Session-Funktionalität Deines Window-Managers? Geht es Dir um die Editierbarkeit der Datei? Oder darum, daß Du wahlweise diese Session oder eine andere, leere starten willst? Für beides gibt es Lösungen, aber dazu muß Du sagen, welchen Window-Manager Du benutzt bzw. bereit sein, diesen zu wechseln. Eine allgemeine Lösung gibt es auch hier nicht.