Shell-Studie / suche nach versteckten Dateien
Forum Hallo Freunde Ich nerve euch schon mal wieder mal mit meiner Shell-Studie 3.8.5 Die Eingabeumlenkung Beispiel: $ ./tool.sh Benutzername: Steffen Wendzel User-ID: 1000 Danke für Ihre Anmeldung, Steffen Wendzel (1000). Listing 3.51 Ein Aufruf von tool.sh --------------------------------------------- stefan@linux-1c4m:~> ./tool.sh bash: ./tool.sh: Datei oder Verzeichnis nicht gefunden stefan@linux-1c4m:~> Danach suchte ich allgemein nach versteckten Shell-Skripten. stefan@linux-1c4m:~> find -name './"*.sh"' find: warning: Unix filenames usually don't contain slashes (though pathnames do). That means that '-name "./\"*.sh\""' will probably evaluate to false all the time on this system. You might find the '-wholename' test more useful, or perhaps '-samefile'. Alternatively, if you are using GNU grep, you could use 'find ... -print0 | grep -FzZ "./\"*.sh\""'. Habe einiges aus der Meldung von "find: warning: ..." ausprobiert, bin aber zu keinem Ergebnis gekommen. Wärend ich nach einem normalen Skript mit "*.sh" suchen kann, habe ich bei einer versteckten den Punkt davor, was die Eingabe verändert ---------------------------------------------------------- 3.8 Ein- und Ausgabeumlenkung http://openbook.galileocomputing.de/linux/linux_03_shell_008.htm#mj942366dbf... Vielen Dank Gruß Stefan - -------------------------------- If at first you don't succed, try try again! engl Sprichwort -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Stefan Plenert wrote:
Ich nerve euch schon mal wieder mal mit meiner Shell-Studie
Stimmt -;)
3.8.5 Die Eingabeumlenkung
Beispiel:
$ ./tool.sh Benutzername: Steffen Wendzel User-ID: 1000 Danke für Ihre Anmeldung, Steffen Wendzel (1000).
Listing 3.51 Ein Aufruf von tool.sh
---------------------------------------------
stefan@linux-1c4m:~> ./tool.sh bash: ./tool.sh: Datei oder Verzeichnis nicht gefunden stefan@linux-1c4m:~>
Wo ist das Skript? Was steht drin?
Danach suchte ich allgemein nach versteckten Shell-Skripten.
Was hat das wieder mit Eingabeumlenkung zu tun?
stefan@linux-1c4m:~> find -name './"*.sh"'
Was willst du suchen? Du hast IMO ein Verständnisproblem! Der Aufruf "./tool.sh" start NICHT ein Skript mit Namen './tool.sh' sondern ruft im aktuellen Verzeichnis das Skript 'tool.sh' auf. MERKE: anders als bei Windoof findet Unix/Linux ein Programm nicht wenn du im Programmverzeichnis bist sondern nur wenn a) das Programm im Pfad ($PATH) gefunden wird oder b) das Programm absolut angesprochen wird mit "./<programm>" weisst du die Shell an, das <programm> im aktuellen Verzeichnis zu starten und NICHT im Pfad zu suchen. [...]
Habe einiges aus der Meldung von "find: warning: ..." ausprobiert, bin aber zu keinem Ergebnis gekommen.
Wärend ich nach einem normalen Skript mit "*.sh" suchen kann, habe ich bei einer versteckten den Punkt davor, was die Eingabe verändert
s.o. Dein Skript hat keinen "Punkt" im Namen. Und dieses Skript findet dann ein "ls tool.sh" wenn es im aktuellen Verzeichnis ist Ansonsten evtl. ein "find <parameter> -name tool.sh" Andreas -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
n Freitag, 19. Februar 2010 10:44:02 Kyek, Andreas, VF-DE wrote:
Stefan Plenert wrote:
3.8.5 Die Eingabeumlenkung
Beispiel:
$ ./tool.sh Benutzername: Steffen Wendzel User-ID: 1000 Danke für Ihre Anmeldung, Steffen Wendzel (1000).
Listing 3.51 Ein Aufruf von tool.sh $ echo -e "Steffen Wendzel\n1000\n" > Eingabe $ cat Eingabe Steffen Wendzel 1000 $ Listing 3.52 Erstellen einer Datei mit den typischen Eingaben $ ./tool.sh < Eingabe Benutzername: User-ID: Danke für Ihre Anmeldung, Steffen Wendzel (1000). Listing 3.53 Eingabeumlenkung http://openbook.galileocomputing.de/linux/linux_03_shell_008.htm#mj942366dbf...
---------------------------------------------
stefan@linux-1c4m:~> ./tool.sh bash: ./tool.sh: Datei oder Verzeichnis nicht gefunden stefan@linux-1c4m:~>
Wo ist das Skript? Was steht drin?
Das hätte ich auch gerne gewußt! Siehst ja was bash meldet.
Danach suchte ich allgemein nach versteckten Shell-Skripten.
Was hat das wieder mit Eingabeumlenkung zu tun?
eine ganze Menge und nichts: $ echo -e "Steffen Wendzel\n1000\n" > Eingabe ./tool.sh < Eingabe siehe oben
mit "./<programm>" weisst du die Shell an, das <programm> im aktuellen Verzeichnis zu starten und NICHT im Pfad zu suchen.
Erinnere mich an einzelne Installationen "./<programm>" +
sh
s.o. Dein Skript hat keinen "Punkt" im Namen. Und dieses Skript findet dann ein "ls tool.sh" wenn es im aktuellen Verzeichnis ist
Ansonsten evtl. ein "find <parameter> -name tool.sh"
In Dolphin sind versteckte Dateien mit Punkt gekenntzeichnet.
In Shell ./ kürzt der Punkt den Verzeichnisbaum ab und zeigt die höheren
Verzeichnisse nicht an.
tool.sh gibts nicht. Lege ich eine leere Textdatei an und nehme die für Andreas Danke
Gruß
Stefan
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@opensuse.org
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@opensuse.org
Am Fri, 19 Feb 2010 13:47:52 +0100
schrieb Stefan Plenert
tool.sh gibts nicht.
Das ist ja auch nur ein Beispiel in dem Buch! Detlef -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Stefan Plenert
Forum
Hallo Freunde
Ich nerve euch schon mal wieder mal mit meiner Shell-Studie
3.8.5 Die Eingabeumlenkung
Beispiel:
$ ./tool.sh Benutzername: Steffen Wendzel User-ID: 1000 Danke für Ihre Anmeldung, Steffen Wendzel (1000).
Listing 3.51 Ein Aufruf von tool.sh
---------------------------------------------
stefan@linux-1c4m:~> ./tool.sh bash: ./tool.sh: Datei oder Verzeichnis nicht gefunden stefan@linux-1c4m:~> [...]
So ähnlich lautete meine erste Mail an diese Liste, vor ca. 15 Jahren :-) vermutlich ist das Skript nicht ausführbar, versuche mal $: sh tool.sh oder chmod 755 tool.sh -Dieter -- Dieter Klünter | Systemberatung http://dkluenter.de GPG Key ID:8EF7B6C6 53°37'09,95"N 10°08'02,42"E -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Fr Februar 19 2010 glaubte Dieter Kluenter zu wissen:
Stefan Plenert
writes:
stefan@linux-1c4m:~> ./tool.sh bash: ./tool.sh: Datei oder Verzeichnis nicht gefunden stefan@linux-1c4m:~>
vermutlich ist das Skript nicht ausführbar, versuche mal $: sh tool.sh oder chmod 755 tool.sh
oder das Script liegt nicht unter ~, sondern z.B. unter ~/bin oder es existiert gar nicht. ;-) flo --
ja. Einfach nur herrlich, diese bunten Farben. Ja, so schöne Farben und alles so traurig. Wunderschön. Ihr solltet beide deutlich weniger Drogen nehmen. Das hast Du jetzt aber schön gesagt. [Martin Leidig und Bernd Brodesser in suse-talk] -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Florian Gross
Am Fr Februar 19 2010 glaubte Dieter Kluenter zu wissen:
Stefan Plenert
writes: stefan@linux-1c4m:~> ./tool.sh bash: ./tool.sh: Datei oder Verzeichnis nicht gefunden stefan@linux-1c4m:~>
vermutlich ist das Skript nicht ausführbar, versuche mal $: sh tool.sh oder chmod 755 tool.sh
oder das Script liegt nicht unter ~, sondern z.B. unter ~/bin oder es existiert gar nicht. ;-)
OK, das ist noch eine weitere Möglichkeit. Ich unterstelle dem ursprünglichen Autoren ein gewisses Maß an Intelligenz und er weiss was er tut. Daher gehe ich mal davon aus, dass eine Datei tool.sh im Homeverzeichnis erstellt wurde. Eine Rückmeldung würde hier für Klarheit sorgen. -Dieter -- Dieter Klünter | Systemberatung http://dkluenter.de GPG Key ID:8EF7B6C6 53°37'09,95"N 10°08'02,42"E -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Freitag, 19. Februar 2010 21:19:14 Dieter Kluenter wrote:
Florian Gross
writes: Am Fr Februar 19 2010 glaubte Dieter Kluenter zu wissen:
oder das Script liegt nicht unter ~, sondern z.B. unter ~/bin oder es existiert gar nicht. ;-)
find -name "*.sh" Es gibt in $HOME nur 4 *.sh Dateien (2 Installationen in bin und 2 WorkShops) Es gibt in Versteckte Dateien noch weitere Dateien mit dem Shell-Symbol, z.B. .xim.template
OK, das ist noch eine weitere Möglichkeit. Ich unterstelle dem ursprünglichen Autoren ein gewisses Maß an Intelligenz und er weiss was er tut. Daher gehe ich mal davon aus, dass eine Datei tool.sh im Homeverzeichnis erstellt wurde.
hier gibt es immer wieder hick-hack zwischen Autor (professionel) + Anwender (Einsteiger)
Eine Rückmeldung würde hier für Klarheit sorgen.
-Dieter
Zur Demonstration des Beispiels soll ein kleines Shellskript dienen, das eben
genau diese Eingaben, also den Benutzernamen und die User-ID, abfragt (gute
Programme bekommen dies natürlich allein heraus).
$ ./tool.sh
Benutzername: Steffen Wendzel
User-ID: 1000
Danke für Ihre Anmeldung, Steffen Wendzel (1000).
Wie weit gibt es die Anmelde Datei unter einen anderen Namen?
oder ich muss noch ein bischen warten biss ich mehr Kenntnisse über Shell-
Programmierung habe.
#!/bin/bash
echo "Benutzername:" BN=
echo "USER-ID:" UD=
echo "Danke für Ihre Anmeldung, $BN ($UD)."
um das Skript dafür selbst erstellen kann, brauche ich noch einige Kenntnisse.
$ echo -e "Steffen Wendzel\n1000\n" > Eingabe
$ cat Eingabe
Steffen Wendzel
1000
$
Über "./tool.sh
Stefan Plenert
On Freitag, 19. Februar 2010 21:19:14 Dieter Kluenter wrote:
Florian Gross
writes: Am Fr Februar 19 2010 glaubte Dieter Kluenter zu wissen:
[...]
Zur Demonstration des Beispiels soll ein kleines Shellskript dienen, das eben genau diese Eingaben, also den Benutzernamen und die User-ID, abfragt (gute Programme bekommen dies natürlich allein heraus).
$ ./tool.sh Benutzername: Steffen Wendzel User-ID: 1000 Danke für Ihre Anmeldung, Steffen Wendzel (1000).
Wie weit gibt es die Anmelde Datei unter einen anderen Namen?
oder ich muss noch ein bischen warten biss ich mehr Kenntnisse über Shell- Programmierung habe.
#!/bin/bash echo "Benutzername:" BN= echo "USER-ID:" UD= echo "Danke für Ihre Anmeldung, $BN ($UD)."
um das Skript dafür selbst erstellen kann, brauche ich noch einige Kenntnisse.
$ echo -e "Steffen Wendzel\n1000\n" > Eingabe $ cat Eingabe Steffen Wendzel 1000
$
Über "./tool.sh
Ich habe mir jetzt mal die von dir referenzierte Fundstelle bei Gallileo Computing angesehen. Auch wenn man aufmerksam liest, wird kein Beispiel für ein Skript tool.sh ausgewiesen, dass muss also ersteinmal erstellt werden, damit es ausgeführt werden kann. Das ist eine mehr als dürftige Dokumentation und kann so nicht funktionieren. Es gibt zu der Aufgabenstellung mehrere Lösungsmöglichkeiten, hier ist ein Vorschlag von mir: zuerst eine Datei Eingabe erstellen: touch Eingabe dann die variablen Daten erzeugen: echo -e "BN="\"Steffen Wenzel"\"\nUD=\"1000"\" > Eingabe prüfen, ob die Einträge richtig erstellt wurden, sollte so aussehen: ,----[ Eingabe ] | BN="Steffen Wenzel" | UD="1000" `---- danach die auszuführende Datei erzeugen: vi tool.sh, dann folgende Eingabe ,----[ tool.sh ] | #!/bin/bash | . Eingabe | echo "Benutzername: $BN" | echo "USER-ID: $UD" | echo "Danke für Ihre Anmeldung; $BN ($UD)." `---- Hier ist der Punkt (.) zu beachten, dieser Punkt bedeutet: lies aus der angegebenen Datei. Danach noch chmod 755 tool.sh, dann kannst du ./tool.sh ausführen. Bei der Erzeugung der variablen mußt du darauf achten, dass einerseits durch den Parameter '-e' die Escape-Sequenz Zeilenumbruch \n ausgeführt wird, andererseits aber einige doppelte Anführungszeichen duch einen Backslash geschützt werden müssen, damit sie nicht interpretiert werden. -Dieter -- Dieter Klünter | Systemberatung http://dkluenter.de GPG Key ID:8EF7B6C6 53°37'09,95"N 10°08'02,42"E -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Samstag, 20. Februar 2010 11:54:37 Dieter Kluenter wrote:
Stefan Plenert
writes:
[...]
$ ./tool.sh Benutzername: Steffen Wendzel User-ID: 1000 Danke für Ihre Anmeldung, Steffen Wendzel (1000).
Listing 3.51 Ein Aufruf von tool.sh [...]
#!/bin/bash echo "Benutzername:" BN= echo "USER-ID:" UD= echo "Danke für Ihre Anmeldung, $BN ($UD)."
um das Skript dafür selbst erstellen kann, brauche ich noch einige Kenntnisse.
Nun lenken wir die benötigten Eingabedaten einfach in eine Datei um. Dabei sollten Sie wissen, dass die Zeichensequenz \n dem Drücken der Eingabetaste entspricht und in der Ausgabe eine neue Zeile einleitet. Durch den Parameter -e werden die Escape-Sequenzen entsprechend interpretiert.
$ echo -e "Steffen Wendzel\n1000\n" > Eingabe $ cat Eingabe Steffen Wendzel 1000
$ Listing 3.52 Erstellen einer Datei mit den typischen Eingaben
$ ./tool.sh < Eingabe Benutzername: User-ID: Danke für Ihre Anmeldung, Steffen Wendzel (1000). Listing 3.53 Eingabeumlenkung
Ich habe mir jetzt mal die von dir referenzierte Fundstelle bei Gallileo Computing angesehen. Auch wenn man aufmerksam liest, wird kein Beispiel für ein Skript tool.sh ausgewiesen, dass muss also ersteinmal erstellt werden, damit es ausgeführt werden kann. Das ist eine mehr als dürftige Dokumentation und kann so nicht funktionieren. Es gibt zu der Aufgabenstellung mehrere Lösungsmöglichkeiten, hier ist ein Vorschlag von mir: zuerst eine Datei Eingabe erstellen: touch Eingabe dann die variablen Daten erzeugen: echo -e "BN="\"Steffen Wenzel"\"\nUD=\"1000"\" > Eingabe prüfen, ob die Einträge richtig erstellt wurden, sollte so aussehen:
,----[ Eingabe ]
| BN="Steffen Wenzel" | UD="1000"
`----
danach die auszuführende Datei erzeugen: vi tool.sh, dann folgende Eingabe
,----[ tool.sh ]
| #!/bin/bash | . Eingabe | echo "Benutzername: $BN" | echo "USER-ID: $UD" | echo "Danke für Ihre Anmeldung; $BN ($UD)."
`----
Hier ist der Punkt (.) zu beachten, dieser Punkt bedeutet: lies aus der angegebenen Datei. Danach noch chmod 755 tool.sh, dann kannst du ./tool.sh ausführen. Bei der Erzeugung der variablen mußt du darauf achten, dass einerseits durch den Parameter '-e' die Escape-Sequenz Zeilenumbruch \n ausgeführt wird, andererseits aber einige doppelte Anführungszeichen duch einen Backslash geschützt werden müssen, damit sie nicht interpretiert werden.
-Dieter
In Listing 3.51 Ein Aufruf von tool.sh - werden die Daten einzeln eingegeben. In Listing 3.52 Erstellen einer Datei mit den typischen Eingaben - habe ich beim Aufruf von Cat am Ende eine Leerzeile für die Ausgabe der Daten in der letzte Zeile im Script "Danke für ..." In Listing 3.52 Erstellen einer Datei mit den typischen Eingaben - werden die Daten über die Textdatei eingeben Die Angabe für die Variable hinter Benutzername wird entweder über die Hand eingegeben oder die Textdatei und über "Danke für ...." wieder ausgegeben. Über die Angabe von "Benutzername:" setzen der Variablen BN war ich mir nicht im Klaren. Die Eingaben: a: b: c: d: e: Die Aufforderung, die Eingaben einzeln zu machen, durch eine Eingabeulenkung zu Umgehen. Gruß und Danke Stefan -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Stefan! On Sa, 20 Feb 2010, Stefan Plenert wrote:
find -name "*.sh"
Es gibt in $HOME nur 4 *.sh Dateien (2 Installationen in bin und 2 WorkShops) Es gibt in Versteckte Dateien noch weitere Dateien mit dem Shell-Symbol, z.B. .xim.template
Wie du selbst sagst, haben diese Dateien nicht die Endung .sh Warum also sollte find diese Dateien finden?
#!/bin/bash echo "Benutzername:" BN= echo "USER-ID:" UD= echo "Danke für Ihre Anmeldung, $BN ($UD)."
Das sieht aber falsch aus. bash kennt sowas: #v+ ~$ cat steffen.sh #!/bin/bash read -p "Name: " name read -p "ID: " id echo "Danke für Ihre Anmeldung, $name ($id)" ~$ chmod +x steffen.sh #v-
um das Skript dafür selbst erstellen kann, brauche ich noch einige Kenntnisse.
$ echo -e "Steffen Wendzel\n1000\n" > Eingabe $ cat Eingabe Steffen Wendzel 1000
$
Über "./tool.sh
Richtig. Aber dein tool.sh Script ist falsch, wenn es so aussieht wie oben: #v+ ~$ ./steffen.sh < Eingabe Danke für Ihre Anmeldung, Steffen Wendzel (1000) #v-
Frage nebenbei: Kann eine Alias auf einen Pfad gelegt werden. Eine Alias bleibt, biss sie gelöscht wird. Eine Variable muss immer neu gesetzt werden.
Ein alias muß auch in jeder Shell Session neu gesetzt werden.
In der Konsole ist es oft mühselig lange Pfadangaben zu machen.
Bash kann Pfade vervollständigen. Üblicherweise macht das ein oder 2 maliges Drücken der Tabulator Taste. Mit freundlichen Grüßen Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Samstag, 20. Februar 2010 15:38:37 Christian Brabandt wrote:
Hi Stefan!
On Sa, 20 Feb 2010, Stefan Plenert wrote:
find -name "*.sh"
[...]
Wie du selbst sagst, haben diese Dateien nicht die Endung .sh Warum also sollte find diese Dateien finden?
Ich suchte ein Shellskript mit den Benutzereingaben. bash --version GNU bash, version 3.2.39(1)-release (i586-suse-linux-gnu) Copyright (C) 2007 Free Software Foundation, Inc.
#!/bin/bash echo "Benutzername:" BN= echo "USER-ID:" UD= echo "Danke für Ihre Anmeldung, $BN ($UD)."
Das sieht aber falsch aus. bash kennt sowas:
#v+ ~$ cat steffen.sh #!/bin/bash read -p "Name: " name read -p "ID: " id echo "Danke für Ihre Anmeldung, $name ($id)" ~$ chmod +x steffen.sh #v-
um das Skript dafür selbst erstellen kann, brauche ich noch einige Kenntnisse.
$ echo -e "Steffen Wendzel\n1000\n" > Eingabe $ cat Eingabe Steffen Wendzel 1000
$
Listing 3.52 Erstellen einer Datei mit den typischen Eingaben
Über "./tool.sh
Richtig. Aber dein tool.sh Script ist falsch, wenn es so aussieht wie oben: #v+ ~$ ./steffen.sh < Eingabe Danke für Ihre Anmeldung, Steffen Wendzel (1000) #v-
Deine Ausgabe hat einen Fehler. Siehe dir die cat Angaben in 3.52 noch mal an
Die richtige Ausgabe ist:
Benutzername: USER-ID: "Danke für ihre Anmeldung Steffen Wendzel (1000)"
$ ./tool.sh [enter]
Benutzername: [Benutzername - z.B. Steffen Wendzel - eingegeben und enter]
USER-ID: [USER-ID - z.B. 1000 - eingeben und enter]
Danke für Ihre Anmeldung, Steffen Wendzel (1000).
$
Oder
$ ./tool.sh Frage nebenbei: Kann eine Alias auf einen Pfad gelegt werden. Eine
Alias bleibt, biss sie gelöscht wird. Eine Variable muss immer neu
gesetzt werden. Ein alias muß auch in jeder Shell Session neu gesetzt werden. die alias ll='l -l' steht immer noch.
Eine Variable ist nur solange wie eine Shell aktuell ist.
Ich hatte mal eine globale Variable gesetzt, aber als die Shell nicht mehr aktiv
war und ich die Shell neu aufrief war sie auch wieder weg. In der Konsole ist es oft mühselig lange Pfadangaben zu machen. Bash kann Pfade vervollständigen. Üblicherweise macht das ein oder 2
maliges Drücken der Tabulator Taste. Mit freundlichen Grüßen
Christian Danke
und schönes Wochenende
Stefan
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@opensuse.org
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@opensuse.org
Stefan Plenert
On Samstag, 20. Februar 2010 15:38:37 Christian Brabandt wrote:
Hi Stefan!
On Sa, 20 Feb 2010, Stefan Plenert wrote: [...]
Frage nebenbei: Kann eine Alias auf einen Pfad gelegt werden. Eine Alias bleibt, biss sie gelöscht wird. Eine Variable muss immer neu gesetzt werden.
Was verstehts du in diesem Fall mit Pfadangabe? Pfad auf einen Befehl? z.B. alias ll="/bin/ls -l" oder was möchtest du machen?
Ein alias muß auch in jeder Shell Session neu gesetzt werden.
Nein! Dazu gibt es die Datei ~/.alias Siehe dazu deine ~/.bashrc
die alias ll='l -l' steht immer noch. Eine Variable ist nur solange wie eine Shell aktuell ist. Ich hatte mal eine globale Variable gesetzt, aber als die Shell nicht mehr aktiv war und ich die Shell neu aufrief war sie auch wieder weg.
Dann trage den alias in ~/.alias ein. [...] -Dieter -- Dieter Klünter | Systemberatung http://dkluenter.de GPG Key ID:8EF7B6C6 53°37'09,95"N 10°08'02,42"E -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Sonntag, 21. Februar 2010 08:41:37 Dieter Kluenter wrote:
Stefan Plenert
writes:
[...]
Frage nebenbei: Kann eine Alias auf einen Pfad gelegt werden. Eine Alias bleibt, biss sie gelöscht wird. Eine Variable muss immer neu gesetzt werden.
Was verstehts du in diesem Fall mit Pfadangabe? Pfad auf einen Befehl? z.B. alias ll="/bin/ls -l" oder was möchtest du machen?
z.B.: :~> LxSh [enter + in:] :~/Documents/03_Linux/08_Shell> bin
Ein alias muß auch in jeder Shell Session neu gesetzt werden.
Nein! Dazu gibt es die Datei ~/.alias Siehe dazu deine ~/.bashrc
:~> ~/.alias bash: /home/stefan/.alias: Datei oder Verzeichnis nicht gefunden :~> ~/.bashrc bash: /home/stefan/.bashrc: Keine Berechtigung :~> alias alias +='pushd .' alias -='popd' alias ..='cd ..' alias ...='cd ../..' alias beep='echo -en "\007"' alias cd..='cd ..' alias dir='ls -l' alias l='ls -alF' [...]
die alias ll='l -l' steht immer noch. Eine Variable ist nur solange wie eine Shell aktuell ist. Ich hatte mal eine globale Variable gesetzt, aber als die Shell nicht mehr aktiv war und ich die Shell neu aufrief war sie auch wieder weg.
Dann trage den alias in ~/.alias ein. [...]
-Dieter
Danke + schönes Wochenende Stefan :~> bash --version GNU bash, version 3.2.39(1)-release (i586-suse-linux-gnu) Copyright (C) 2007 Free Software Foundation, Inc. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Stefan! On So, 21 Feb 2010, Stefan Plenert wrote:
:~> LxSh [enter + in:] :~/Documents/03_Linux/08_Shell>
#v+ chrisbra:~$ alias LxSh='cd ~/Documents/03_Linux/08_Shell' chrisbra:~$ LxSh chrisbra:documents/03_Linux/08_Shell$ #v- Mit freundlichen Grüßen Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Stefan! Am 21.02.2010 um 10:57 Uhr schrieb Stefan Plenert:
On Sonntag, 21. Februar 2010 08:41:37 Dieter Kluenter wrote:
Nein! Dazu gibt es die Datei ~/.alias Siehe dazu deine ~/.bashrc
:~> ~/.alias bash: /home/stefan/.alias: Datei oder Verzeichnis nicht gefunden :~> ~/.bashrc bash: /home/stefan/.bashrc: Keine Berechtigung
~/.alias und ~/.bashrc sind keine ausführbaren Dateien oder Programme! Das sind Textdateien und dienen der Konfiguration. ~ ist dein Home-Verzeichnis (bzw ~/), .alias ist eine versteckte Datei (der Dateiname beginnt mit einem Punkt). In dieser Datei kannst du deine alias' reinschreiben. Die ~/.bashrc wird bei einer interaktiven Shell ausgelesen, bei SuSE auch beim Login. cu Peter -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Peter! On So, 21 Feb 2010, Peter Geerds wrote:
.alias ist eine versteckte Datei (der Dateiname beginnt mit einem Punkt). In dieser Datei kannst du deine alias' reinschreiben.
.alias ist wohl Suse spezifisch. Meine manpage erwähnt jedenfalls nicht die .alias. Und überhaupt, warum die aliase nicht gleich in .bashrc schreiben? Mit freundlichen Grüßen Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Christian Brabandt
Hi Peter!
On So, 21 Feb 2010, Peter Geerds wrote:
.alias ist eine versteckte Datei (der Dateiname beginnt mit einem Punkt). In dieser Datei kannst du deine alias' reinschreiben.
.alias ist wohl Suse spezifisch. Meine manpage erwähnt jedenfalls nicht die .alias. Und überhaupt, warum die aliase nicht gleich in .bashrc schreiben?
less .bashrc ... test -s ~/.alias && . ~/.alias || true das ist die susespezifische /etc/skel/.bashrc, die in jedes $HOME kopiert wird. -Dieter -- Dieter Klünter | Systemberatung http://dkluenter.de GPG Key ID:8EF7B6C6 53°37'09,95"N 10°08'02,42"E -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Dieter! On So, 21 Feb 2010, Dieter Kluenter wrote:
Ein alias muß auch in jeder Shell Session neu gesetzt werden.
Nein! Dazu gibt es die Datei ~/.alias Siehe dazu deine ~/.bashrc
Ähm? Natürlich muß der Alias jedesmal neu gesetzt werden. Du schreibst es doch selber? Mit freundlichen Grüßen Christian -- Die so genannte Ohnmacht des einzelnen ist vielleicht die gefährlichste Illusion, die ein Mensch überhaupt haben kann. -- Joseph Weizenbaum -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Christian Brabandt
Hi Dieter!
On So, 21 Feb 2010, Dieter Kluenter wrote:
Ein alias muß auch in jeder Shell Session neu gesetzt werden.
Nein! Dazu gibt es die Datei ~/.alias Siehe dazu deine ~/.bashrc
Ähm? Natürlich muß der Alias jedesmal neu gesetzt werden. Du schreibst es doch selber?
Das habe ich mit Sicherheit nicht geschrieben. Ein alias muss nicht für jede Shell-Sitzung erneut gesetzt werden, wenn der alias in der ~/.alias aufgeführt wird. Darum ja auch mein Verweis auf ~/.bashrc, denn die Shell liest auch die Werte aus ~/.alias aus. -Dieter -- Dieter Klünter | Systemberatung http://dkluenter.de GPG Key ID:8EF7B6C6 53°37'09,95"N 10°08'02,42"E -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Sonntag, 21. Februar 2010 08:41:37 Dieter Kluenter wrote:
Stefan Plenert
writes: [...]
Was verstehts du in diesem Fall mit Pfadangabe? Pfad auf einen Befehl?
jetzt habe ich es verstanden, das eine Alias ein Befehl ist und damit was anderes als eine Variable ist. Wollte ich z.B. anstelle von $HOME eine Alias mit der Pfandangabe von $HOME erstellen und für die Eingabe: /cp datei home benutzen, gipt es Hick-Hack zwischen den Befehlen der cp und der alias home= '/home/stefan' Aliase $ alias ll='l -l' O'REILLY Linux-kurz&gut Die Shell | 31 :~> alias alias +='pushd .' [...] alias cd..='cd ..' alias dir='ls -l' [...] alias ll='ls -l' alias ls='ls $LS_OPTIONS' alias ls-l='ls -l' [...] Die Eingabe alias reicht aus, um den Inhalt anzuzeigen. Meine - nach O`REILLYs Beispiel gesetzte alias besteht immer noch, sehe aber jetzt erst, dass sie auch in dir ist. ll + dir='l -l'
-Dieter
Danke Gruß Stefan. Schließe damit das Thema. Ich habe den Unterschied zwischen alias und Variable begriffen. Bei den Variablen wäre es besser neu aufzurufen, Variablen und feste Variablen. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Stefan! On So, 21 Feb 2010, Stefan Plenert wrote:
On Samstag, 20. Februar 2010 15:38:37 Christian Brabandt wrote: Ich suchte ein Shellskript mit den Benutzereingaben.
Dann ist vielleicht dein Kriterium "*.sh" falsch gewesen.
Deine Ausgabe hat einen Fehler. Siehe dir die cat Angaben in 3.52 noch mal an
Ich bin mir sicher, die Ausgabe kannst Du auch selber anpassen.
Ein alias muß auch in jeder Shell Session neu gesetzt werden.
die alias ll='l -l' steht immer noch.
Ja und der muß auch jedes mal für jede Session neu gesetzt werden. #v+ chrisbra@t41:/tmp/Mosaik$ ll bash: ll: Kommando nicht gefunden. chrisbra@t41:/tmp/Mosaik$ alias ll='ls -l' chrisbra@t41:/tmp/Mosaik$ ll insgesamt 12940 drwxr-xr-x 2 chrisbra chrisbra 368640 17. Feb 21:55 library -rwxr-xr-x 1 chrisbra chrisbra 12853442 15. Feb 21:13 moewe.jpg chrisbra@t41:/tmp/Mosaik$ bash -ilc ll bash: ll: Kommando nicht gefunden. #v- Mit freundlichen Grüßen Christian -- Alle praktische Menschen suchen sich die Welt handrecht zu machen; alle Denker wollen sie kopfrecht haben. Wie weit es jedem gelingt, mögen sie zusehen. Die Realen -- Goethe, Maximen und Reflektionen, Nr. 611 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (8)
-
Christian Brabandt
-
Detlef Reichelt
-
Dieter Kluenter
-
Florian Gross
-
Kyek, Andreas, VF-DE
-
Peter Geerds
-
Stefan Plenert
-
Stefan Plenert