• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

'less' zum Öffnen von Dateien

ricarda

Newbie
Hallo,
ich versuche Dateien in der shell mit "less dateiname" zu öffnen.
Dabei lande ich in einem leeren Konsolenfenster mit einer Zeile:
": No such file or directory" - aber geöffnet wird nix.

was kann ich dagegen tun?
Ricarda
 

whois

Ultimate Guru
Hi ricarda

Der Dateiname alleine reicht nicht du brauchst auch die Extension.

Falsch = less ntp

Richtig = less ntp.conf

Das muß funktionieren !

Sonst zum testen benutze MC.
 
OP
R

ricarda

Newbie
Hallo,

wie gesagt - auch mit Tabulator (der den filenamen *mit extension* komplett ergänzt...) funktionierts nicht.

und der Midnight Commander hilft mir mit meinem less-Problem auch nicht weiter...

ricarda
 

rodhel

Newbie
die Fehlermeldung : noch such file or directory sollte eigentlich den Dateinamen vor dem Doppelpunkt ausgeben. Der komplette Befehl wäre hilfreich. Werden evtl. noch andere Parameter an less übergeben?
 
OP
R

ricarda

Newbie
Hallo,
der komplette Befehl ist jeweils
less name.ext
funktioniert mit jeder beliebigen Datei + Endung.

Ich weiß nicht, ob dabei noch irgendwelche Parameter übergeben werden. Es schaut aber irgendwie so aus, als ob die shell neu gestartet wird, da alles andere, was vorher drin zu sehen ist verschwindet und es wieder ganz oben neu losgeht. Die laufende Nummer, die immer zwischen [xxx@rechner] und dem aktuellen Pfad steht, zählt allerdings weiter, also stimmt das mit dem neustart vielleicht auch nicht.

Ricarda
 

whois

Ultimate Guru
Hi racarda

Erstell doch selber einen File wie "probe.txt" und schreib einige Zeilen rein in Home nun versuch Less.

Funktioniert es dann immer noch nicht ?
 
OP
R

ricarda

Newbie
Hallo,
ob probe.txt oder was auch immer - egal welche Datei:
die selbe Fehlermeldung
Ricarda
 
A

Anonymous

Gast
ricarda schrieb:
Es schaut aber irgendwie so aus, als ob die shell neu gestartet wird, da alles andere, was vorher drin zu sehen ist verschwindet und es wieder ganz oben neu losgeht. Die laufende Nummer, die immer zwischen [xxx@rechner] und dem aktuellen Pfad steht, zählt allerdings weiter, also stimmt das mit dem neustart vielleicht auch nicht.
normal ist das aber nich.

Darauf fallen mir spontan mal 3 Möglichkeiten ein.
1. mal überprüfen wo less ist und was es für eine Datei ist
bei mir .
Code:
rob@dhcppc1:~> which less
/usr/bin/less
rob@dhcppc1:~> ls -l /usr/bin/less
-rwxr-xr-x  1 root root 163334 2004-05-14 22:34 /usr/bin/less
rob@dhcppc1:~> file /usr/bin/less
/usr/bin/less: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped
rob@dhcppc1:~> ldd /usr/bin/less
        linux-gate.so.1 =>  (0xffffe000)
        libncurses.so.5 => /lib/libncurses.so.5 (0x4002b000)
        libc.so.6 => /lib/tls/libc.so.6 (0x40070000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
2. Da ist irgend ein alias aktiv such mal bitte mit mit alias | grep less
Code:
rob@dhcppc1:~> alias | grep less
alias o='less'

3. irgendwas ist an deinem tty verstellt.
Code:
rob@dhcppc1:~> stty -a
speed 38400 baud; rows 71; columns 209; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
aber da kenn ich mich nicht so 120%ig aus. aber versuche mal less als ein anderer User, eventuell ist da was in den rc-Files des Users drin ?? . oder auf einem anderem terminal (xterm, ALT+STRG+2, vte) dann ist eventuell irgendwo in den .confdateien irgendwas lustiges reingekommen.


robi
 
OP
R

ricarda

Newbie
Hallo robi,
vielen Dank für die Mühe erstmal :)

ad 1) sieht genauso aus - ich hab sogar dieselbe Version ;-)

ad 2) hab kein alias auf 'less'

ad 3) damit kann ich nix anfangen:

Code:
[hilf@btc9ka] 106 (~): stty -a
speed 38400 baud; rows 15; columns 79; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -ixon
-ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0
ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

als anderer user gehts völlig normal.
hab mich grad über ein xterm + ssh auf dem rechner eingeloggt (bin ich dann da auch in nem xterm??) - da gehts zumindest nicht.

sagt Dir das was?
Gruß, Ricarda
 

scg

Hacker
Schritt 1:

Sag auf der Konsole einfach mal

Code:
less

Was kommt dann ? Sags uns.
 

scg

Hacker
Prima, findet die bash schon mal das less-Programm.

OK, jetzt willst du wahrscheinlich als Parameter eine Datei übergeben, die ausgegeben werden soll.

z.B.
Code:
less testfile.txt

Diese Datei muß natürlich in dem Verzeichnis stehen, in dem du dich befindest. Ansonsten musst du die Datei mit einem vollqualifizierten Pfad/Namen angeben.

Deine Fehlermeldung deutet darauf hin, dass "less" diese Datei nicht findet. Siehst du sie denn mit

Code:
ls -l

???
 
OP
R

ricarda

Newbie
ja, ich sehe sie :)
und sie is auch da im selben Verzeichnis usw.

obwohl es auch mit Dateien in anderen Verzeichnissen + absolutem Pfadnamen klappt - will sagen: genauso schlecht funktioniert

(s.o. -- ich dachte die Diskussion hatten wir schon?)

Gruß, Ricarda
 

scg

Hacker
Irgendwie ist mir nicht klar wo der Hammer hängt.

Wenn du
Code:
less dateiname
aufrufst, kommt eine neue Shell ? Oder bist du in der Ausgabe von less ?

Was kommt denn wenn du sagst
Code:
cat dateiname
 
A

Anonymous

Gast
na wenn less keine Dateinamen will, dann versuchen wirs mal ohne Dateinamen, das sollten 200 Zeilen werden die mit less angezeigt werden, ganz ohne Dateinamen.
Code:
 for i in $(seq 1 200); do echo "das ist Zeile $i"; done | less
robi
 
OP
R

ricarda

Newbie
Hallo robi,

das mag er irgendwie nicht:

[hilf@btc9ka] 110 (~): for i in $(seq 1 200); do echo "das ist Zeile $i"; done | less
CORRECT>for i in $(seq 1 200); od echo "das ist Zeile $i"; done | less (y|n|e|a)? no
Illegal variable name.

als shell script (mit "#!/bin/sh" davor) spuckt er mir 200 Zeilen aus, die mit less-Befehlen durchwanderbar sind.

Ricarda
 

scg

Hacker
Also deine Codezeile funktioniert bei mir astrein.

Ich hab ne bash laufen, was für ne Shell hast du denn ?
 
Oben