Linux treibt mich mal wieder zur Verzweiflung. Mein Ziel ist es mit einem Doppelklick auf einem Icon eine Shell zu öffnen und automatisiert Module laden. Danach soll diese Shell geöffnet bleiben, um darauf arbeiten zu können. Geht das?
hubert schrieb: > Linux treibt mich > mit einem Doppelklick auf einem Icon Moin, das sind schon mal ein paar Fehler drin. 1. Bei Linux kannst du kein Icon doppelklicken. Wenn dann geht das bei einem XWindow System, z.Bsp. Gnome KDE oder so 2. Doppelklicks machen Microsoftleute. Und bei Windows 10 kannst du eine Linux Shell aus einem Ubuntu System starten. Was für Module sollen geladen werden?
Also: Es handelt sich um GNOME. Mit Doppelklick meine ich, dass ich auf dem Desktop einen "launcher" erstellt habe. Dieser soll ein Shellscript aufrufen, in der alle zu ladende module drinstehen: cd ~ module load <modul1> module load <modul2> clear Die Shell, die dieses Skript ausführt soll aber geöffnet bleiben, um auf ihr zu arbeiten!
Jemand schrieb: > Das Betriebssystem hat überhaupt nichts mit deinem Problem zu tun. Irgendwie ja schon, sonst müsste ich mich mit dem module load nicht rumschlagen...
Vielleicht wär das eine Lösung: Möchte man ein Modul, welches der Kernel nicht automatisch mit lädt, beim Systemstart automatisch laden, so trägt man den Modulnamen einfach in die Datei /etc/modules ein. Dazu öffnet man diese Datei mit einem Editor mit Root-Rechten [3] und macht die entsprechenden Einträge, wobei pro Zeile nur ein Modulname eingetragen werden darf. Ab dem nächsten Systemstart werden alle Module (zusätzlich) geladen, die dort eingetragen sind. https://wiki.ubuntuusers.de/Kernelmodule/
Dem Beispiel nach zu urteilen meinst Du nicht Kernel- sondern Environment-Module, oder? Wenn ja, wäre es am geschicktesten, Du lädst Deine Module über die .bashrc (vorausgesetzt, Du nutzt die bash als Standardshell). - rbiks
Es könnte funktionieren, als letztes Kommando in Deinem Shellskript mittels "bash -i" eine interaktive Subshell zu starten.
Andreas S. schrieb: > Es könnte funktionieren, als letztes Kommando in Deinem Shellskript > mittels "bash -i" eine interaktive Subshell zu starten. Ich habe folgendes in eine launch.sh Datei geschrieben:
1 | cd home/Desktop |
2 | alias fuckoff='echo thats_bad_language_you_sucker!' |
3 | clear
|
4 | echo Test |
5 | ls
|
6 | bash -i |
Wenn ich sie nun ausführe, so bleibt zwar das Fenster offen, aber der alias wird nicht mehr erkannt. Was eigentlich auch logisch ist, weil ja eine neue shell gestartet wurde. Genauso verhält es sich mit meinen environment modulen. Gibt es da wirklich keine Lösung, sowas ist doch ein Standardproblem?
Anonymous U. schrieb: > sowas ist doch > ein Standardproblem? Eigentlich nicht. Wenn Du irgendwann mal verraten würdest was das für ominöse Module sind weiß vielleicht auch jemand wie man die normalerweise am besten automatisch lädt. ansonsten hat bash noch die --rcfile Option bei der man bash beim Start ein anderes .bashrc unterjubeln kann das beim Start ausgeführt wird, also sowas wie KDE
1 | konsole -e bash --rcfile <(echo "echo 'hello world'") |
1 | konsole -e bash --rcfile <(echo "alias foo='echo \"hello world\"'") |
1 | konsole -e bash --rcfile ~/dein/script.sh |
Gnome: musst rausfinden ob es dort auch -e heißt
hubert schrieb: > Jemand schrieb: >> Das Betriebssystem hat überhaupt nichts mit deinem Problem zu tun. > > Irgendwie ja schon, sonst müsste ich mich mit dem module load nicht > rumschlagen... Ich benutze Linux seit über 20 Jahren und kenne dieses Kommando nicht. Wenn ich es auf meinem Linux-System eingebe, sagt es mir: "module: Befehl nicht gefunden.". Vielleicht kannst du ja mal erklären, um was es sich bei diesem ominösen Kommando handelt und warum du das über ein Icon auf dem Desktop starten musst. Darf das denn nur in dieser bestimmten Instanz der Shell ausgeführt werden oder immer? In letzterem Fall wäre es besser, das in deiner ~/.bashrc einzutragen, oder falls es für alle Benutzer gelten soll in der /etc/bash.bashrc.
Bei den module Befehlen handelt es sich um ein Linux tool: https://uisapp2.iu.edu/confluence-prd/pages/viewpage.action?pageId=115540061 Ist aber auch egal. Es geht mir darum eine Shell zu öffnen und nicht jedes mal die gleiche Abfolge von Befehlen einzutippen, wenn ich eine bestimmte Konfiguration öfters brauche. Der Tipp mit dem --rcfile hört sich etzalda ned schlecht an. Werde ich demnächst mal probieren.
Ok, dann ist das wohl spezifisch für dieses Schul-Linux. Ich würde dann die Variante von Bernd vorschlagen, sofern diese Modul-Kommandos nicht immer für den Benutzer, sondern nur beim Klicken auf dieses Icon ausgeführt werden sollen. Noch ein paar Hinweise dazu: Bernd K. schrieb: > konsole -e bash --rcfile ~/dein/script.sh Man kann auch gleich beim Anlegen des Icons sagen, dass das Programm in einer Konsole geöffnet werden soll. Wenn gewünscht, kann man der Konsole ein anderes Profil mit z.B. anderer Hintergrundfarbe geben, um zu kennzeichnen, dass die besondere Einstellungen verwendet. Und es wäre sinnvoll, in dem eigenen Skript dann am Anfang die /etc/bash.bashrc und ~/.bashrc zu sourcen, denn die werden beim obigen Kommando ja nicht mehr direkt ausgeführt:
1 | When an interactive shell that is not a login shell is started, bash |
2 | reads and executes commands from /etc/bash.bashrc and ~/.bashrc, if |
3 | these files exist. This may be inhibited by using the --norc option. |
4 | The --rcfile file option will force bash to read and execute commands |
5 | from file instead of /etc/bash.bashrc and ~/.bashrc. |
hubert schrieb: > Linux treibt mich mal wieder zur Verzweiflung. Mein Ziel ist es mit > einem Doppelklick auf einem Icon eine Shell zu öffnen und automatisiert > Module laden. Danach soll diese Shell geöffnet bleiben, um darauf > arbeiten zu können. Geht das? geht es nicht,wenn Du in Deinem HomeDir ein .sh Shell Script anlegst und dann -wie bei Windows - ein Desktop Icon anlegt mit der Pfadverknuepfung auf das Shell-Script? Bei Ubuntu Mate sollte das gehen....evtl. muss man nur schauen, dass das Fenster nach dem laden der Module nicht gleich wieder zu geht....
Anonymous U. schrieb: > Bei den module Befehlen handelt es sich um ein Linux tool: > https://uisapp2.iu.edu/confluence-prd/pages/viewpage.action?pageId=115540061 Hast Du das betreffende Werkzeug denn installiert? Auf allen mir bekannten Linux-Systemen gehört das nicht zum Umfang einer Standardinstallation.
Rolf M. schrieb: > Ok, dann ist das wohl spezifisch für dieses Schul-Linux. Nicht ganz. Das ist so ziemlich der Standard mit denen in (meist großen) Firmen zwischen Software Versionen “umgeschaltet” wird, die zum Teil sehr lange parallel vorgehalten werden müssen. Stichworte: Produktpflege, Configuration Management. Ein weiteres Ziel ist, das Environment nicht unnötig zuzumüllen (Pfade, LM_LICENSE_FILE, etc). Unter anderem werden Abhängigkeiten aufgelöst, d.h. ein Modul kann seinerseits Module laden, bzw. Konflikte melden. Benutzer können sich ihre eigenen Module erzeugen, in denen sie dann die komplette Tool Umgebung für ein Pojekt laden. Früher(TM) hatte zu diesem Zweck jede Firma ihr eigenes mehr oder weniger gut funktionierendes Skript, das der Admin irgendwie zurecht geklöppelt hat. Seit dem hat sich dieses Modules System durchgesetzt.
Falls es irgendjemanden interessiert: Problem erkannt, Problem gebannt. Die module konnten nicht geladen werden weil der Befehl der neu geöffneten Shell (andere als Ursprüngliche, bash) nicht bekannt war. Ich musste nur das passende Skript finden, das den alias für den module Befehl anlegt und schon gings.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.