Windows.  Virus.  Anteckningsböcker.  Internet.  kontor.  Verktyg.  Förare

161 Jane Doh

Jag förstår att Upp/Ner ger dig kommandohistorik. Men hur ser du på tidigare resultat genom att scrolla upp och ner?

Jag har använt Shift + Page Up / Page Down , Alt + Shift + Up / Down och Page Up / Page Down , men ingen av dessa verkar fungera.

Detta är Redhat Linux box.

linux terminal rhel

14 svar

SHIFT + Page Up och SHIFT + Page Down . Om det inte fungerar prova detta och då bör det:

Gå till ditt terminalprogram och se till att Redigera/Profilinställningar/Scrollning/Scrollback/Obegränsat
kontrollerade.

Den exakta platsen för detta alternativ kan vara någon annanstans, men jag ser att du använder Redhat.

SHIFT+Page Up och SHIFT+Page Down är de korrekta nycklarna för att fungera på virtuell konsol, men vmware-konsolen har inte de terminalinställningarna. Den virtuella konsolen har en fast scroll back-storlek, det ser ut som att den är begränsad av storleken på videominnet enligt denna virtuella Linux-konsol Rulla dokumentation.

ALTERNATIV FÖR LINJE-TILL-LINE-BEHANDLING

Ctrl + Shift + Upp-pil eller Ned-pil

Till skillnad från Shift + Page Up eller Page Down , som rullar hela sidan, kommer detta att hjälpa till med smidig linjär rullning, vilket är precis vad jag letade efter.

Ett annat alternativ som kanske redan är installerat på ditt system är att använda GNU shield:

# Denna startskärm som lägger till grundläggande fönsterhantering i terminalskärmen # Detta startar kopieringsläget du kan använd för att rulla [ # Använd nu pilarna för att bläddra # För att avsluta kopieringsläget, gör

Se man-skärmen för fler användbara alternativ (flera fönster,...)...

Det verkar inte vara lätt möjligt: ​​Arch Linux Wiki listar inte sätt att göra detta på konsolen (även om det lätt är möjligt på en virtuell terminal).

Ctrl - b , sedan [ , sedan kan du använda vanliga navigeringsknappar för att rulla (som uppåtpil eller PgDn). Tryck på q för att avsluta rullningsläget.


Fri översättning: Alexey Dmitriev
Överlåtelsedatum 19 november 2007

Vi pratar om GNU/Linux-textkonsolen här - inte det som visas i terminalfönstret, eller X-fönsterhanterare, eller skrivbord. Det finns så mycket förvirring om detta att jag måste säga: - "Om du trycker på "Alt-Ctrl-F1" (eller "F2" etc.) i grafikläge, kommer du in i textkonsolen" .

0. Vad handlar det om?

Datorn laddas. Du befinner dig i en textkonsol och ser hur texten rullar ner snabbt. Du vill se en del av denna text som redan har blinkat förbi. Du trycker på "Shift-PgUp" eller "Shift-PgDn", och om du redan har ändrat standardgenvägarna (nej, nej, inte X-tangentbordslayouten), så några andra tangenter. Med dessa tangenter får du texten att flytta upp och ner på skärmen. I det här ögonblicket du använder en rullningsbuffert (låt oss kalla det rullningsbuffert för kort).

När du börjar använda den här bufferten med might och main blir två saker klara mycket snart:
Endast en del av texten som medföljer nedladdningen får returneras.
Filen "/var/log/messages" fångar mycket mindre än vad du ville se.

Du börjar leta runt på webben och snart dyker preliminära resultat upp: inläggen på scrollback i Linux är väldigt gamla och kan spåras tillbaka till tidigt 90-tal. Allt före 2.6.x-kärnan bör dock glömmas bort.

Du bör verkligen vara selektiv i vad du läser: de flesta råd som gäller versioner före 2.6.x kommer sannolikt att förvirra dig och leda dig vilse. Tro mig, jag har slösat bort mycket tid på det här fallet. Scrollback-beteendet definieras i filen "vc.c", en annars liten fil i kärnkällorna, där "vc" står för "virtuell konsol".

Observera att när du byter konsol förloras rullningsbufferten - så hela mängden av denna buffert är tillgänglig i den aktuella konsolen. (Det finns särskilt mycket informationsskräp här från tiden före 2.6.x-kärnan).

Som standard är buffertstorleken 32K. Detta räcker för 4 omvända rullningsknapptryckningar - varje tryck rullar halva skärmen, 25 rader per skärm. Det kommer ut på cirka 50 rader. Och du får inte mer, även om du har 30 eller 50 rader per skärm. Jag måste säga att 50 linjer är en liten bråkdel av vad som flyger över skärmen under lastning. I samband med ovanstående uppstår två frågor:

Hur ökar man rullningsbufferten?

Varför fångar inte loggarna några av meddelandena du såg under nedladdningen?

1. Hur ökar man rullningsbufferten?

Den första lösningen är att öka standardbuffertstorleken (standard) i kärnkällorna och kompilera om den. Låt mig anta att du är lika ovillig att göra detta som jag och letar efter ett mer flexibelt medium.

Och det finns ett sådant verktyg, men det kallas "framebuffer console", för kort "fbcon". Den här enheten har en dokumentationsfil "fbcon.txt"; om du installerade dokumentationen för kärnan, då har du den. Leta efter det någonstans i "/usr/share"-grenen (jag kan inte ge den exakta sökvägen på grund av distributionsskillnader). Du kan alltid ladda ner den som en enda fil.

Vid det här laget ber jag om ursäkt: vi måste avvika lite och prata lite om framebuffern.

Videobufferten är en buffert mellan bildskärmen och videoadaptern. Dess skönhet är att den kan manipuleras: den tillåter knep som inte skulle fungera om adaptern var ansluten direkt till skärmen.

Ett sådant knep är relaterat till rullningsbufferten; visar sig att du kan "be" videobufferten att allokera mer minne till rullningsbufferten. Detta uppnås genom kärnans startparametrar. Först behöver du en framebuffer (videobuffert); Då begär du en större rullningsbuffert.

Följande exempel är för GRUB men kan enkelt anpassas till LILO. I fil GRUB-inställningar- "menu.lst" - hitta raden som motsvarar kärnan, och sedan:
Ta bort alternativet "vga=xxx" om det finns.
Lägg till alternativet "video=vesabf" eller vad som passar din hårdvara.
Lägg till alternativet "fbcon=scrollback:128".
Efter denna procedur bör kärnparameterraden se ut ungefär så här:
"kärna /vmlinuz root=/dev/sdb5 video=radeonfb fbcon=scrollback:128".

Frågan är varför ta bort alternativet "vga=xxx"? På grund av möjliga konflikter med videoalternativet. På min ATI-adapter kan jag inte ändra rullningsbufferten om "vga=xxx" finns i listan. Kanske är det inte så i ditt fall. Om ovanstående alternativ fungerar - bra; men vad händer om du vill öka antalet rader, eller ställa in ett mindre teckensnitt på skärmen? Du gjorde det alltid med alternativet "vga=xxx" - och det var det som försvann. Oroa dig inte - samma sak kan uppnås genom att ändra fbcon-parametrarna enligt beskrivningen i filen "fbcon.txt" (men som inte beskrivs i den här artikeln). Ubuntu och Debian har fler bekväm väg: "dpkg-reconfigure console-setup". Detta kommando är också värt att använda eftersom det också uppdaterar "initrd" till dina nya inställningar.

2. Att tänja på gränser

Alternativet "fbcon=scrollback:128" ger dig möjligheten att navigera på 12-13 skärmar i rullningsbufferten. Det är ungefär 150 rader - inte illa, men förmodligen inte tillräckligt för att se alla startmeddelanden. Är det möjligt att satsa mer än 128, säg 256? Gränsen på 128 finns i "vc.c". Om du vill ha mer, redigera och kompilera. För min egen del bestämde jag mig för att spelet inte är värt ljuset.

Precis när jag bestämde mig för att jag hade nått den högsta gränsen - citerar jag från "fbcon.txt":
fbcon=scrollback: [k]
...
Suffixet "k" är valfritt och kommer att multiplicera "värdet" med 1024.
(Suffixet "k" är valfritt och kommer att multiplicera "värde" med 1024 gånger).
Jag skyndade mig för att kolla ... och oavsett vad författaren tyckte om detta så var han övertygad om att 128 och 128k ger exakt samma resultat. Standardgränsen är 128KB minne, det är hela historien.

Slutligen, notera att användning av den utökade rullningsbufferten använder både grafikkortsminne och en buffert in random access minne. Om du nöjer dig med standardvärdet 32KB använder du bara videoadapterns minne. I praktiken märkte jag dock inte den minsta avmattning.

3. Vad saknas i loggarna?

På Ubuntu och Debian och andra distributioner lagras alla systemmeddelanden i filen "/var/log/messages". Detta gäller även om loggningsdemonen inte är den gamla "syslog" utan "syslog-ng" ("ng": "ny generation").

I båda fallen kan du se meddelandena genom att skriva "dmesg" på kommandoraden. Det hjälper inte: du såg tydligt meddelanden när du laddade som inte finns i utgången av kommandot "dmesg". Hur så?

Detta är en funktion, inte en bugg! Meddelanden som loggas till filen kommer från olika OS-undersystem. Undersystemen som skickar meddelanden till loggfilen kallas i syslog-terminologin som "faciliteter" ("medel" eller "tjänster"), det finns bara 8 av dem. Under nedladdningsprocessen fungerar program och skript som kanske inte tillhör något av de 8 "verktygen". Vi ser deras meddelanden rulla över skärmen, men ingenting kommer att registreras i loggfilen!

Till exempel kommer du inte att se meddelanden från "loadkeys" (openSUSE) eller "consolechars" (Ubuntu och Debian) program när du laddar en tangentbordslayout under systemstart. Ett annat exempel: när du använder konsolen textredigerare, kan du rulla displayen bakåt (inklusive färger) medan du använder rullningsbufferten. Men det som redaktören producerar kommer aldrig in i något systemprotokoll. Anledningen är förstås att varken "loadkeys", eller "consolechars", eller editorn tillhör något av de 8 "tools".

Är det möjligt att förändra situationen? Naturligtvis - "bara" göra om och kompilera om de applikationer som du vill logga. Lägg till eller skriv om startskript. Eller låt systemet fånga meddelanden utanför de 8 systemets "verktyg".

Jag slår vad om att du inte kommer att göra det. Och jag vet till och med ditt troliga svar:
"Ingenting saknas i mina loggar." Ja självklart...

Om du gillade den här artikeln, vänligen dela den med dina vänner:

Ämnet för användbara arbetsmetoder i Linux terminal outtömlig. Det verkar som att allt är ordnat väldigt enkelt: en skalprompt och kommandon som matas in från tangentbordet. Men i denna enkelhet ligger en avgrund av icke självklara, men användbara möjligheter. Det är därför vi regelbundet publicerar material om funktionerna i att arbeta i Linux-kommandoraden. I synnerhet kommer det idag att vara en översättning av en artikel vars författare brinner för att spara tid genom att öka produktiviteten.

Om du är intresserad av att arbeta på Linux-kommandoraden - här är några av våra material om detta ämne:

  • [ +114 ] Mest användbara Linux Kommandoradstekniker
  • [ +70 ] 10 Linux-terminaltricks som få människor känner till
  • [+65 ] Förvånansvärt användbart verktyg: lsof
  • [ +32 ] Linux: omdirigering
  • [ +29 ] PDF-version av artiklar om Bash-skript

Linux kommandoradstrick och tidsbesparingar

Har du någonsin sett en kollega använda några enkla Linux-kommandon att lösa problem som tar dig flera linjer att lösa? Det måste vara så att när något sådant här hände var allt du kunde säga till dig själv: "Wow! Jag visste inte att det kunde göras så lätt."

I den här artikeln kommer jag att visa dig några professionella Linux-kommandoradsknep som sparar dig mycket tid och, i vissa fall, bli av med dåligt humör. Inte bara det, dina vänner eller kollegor kommer att säga: "Wow, wow!", tittar på dig. Dessa knep hjälper dig också att öka din personliga produktivitet, eftersom du kommer att behöva skriva färre kommandon och till och med göra färre musklick.

Därmed inte sagt att dessa Linux-tips bara är för nybörjare. Det är fullt möjligt att till och med avancerade användare hitta något användbart här som de inte visste om trots att de använt Linux i många år. Linux lärs av erfarenhet. Det är här din egen erfarenhet och andras erfarenheter kommer in i bilden.

Innan vi börjar vill jag notera att några av metoderna som presenteras här beror på konfigurationen av skalet.

0. Automatisk kompletteringskommandon med hjälp av Tab-tangenten

Jag börjar med något väldigt uppenbart, men mycket viktigt: autoslutför kommandon med hjälp av Tab-tangenten.

När du börjar skriva i Linux-terminalen kan du trycka på Tab-tangenten, vilket kommer att få upp ett verktygstips som innehåller en uppsättning alternativ för att fortsätta skriva, med början med tecknen du precis skrev.

Om du till exempel ska kopiera en fil med namnet my_best_file_1.txt , kan du helt enkelt skriva cp m och trycka på Tabb för att se möjliga alternativ kommandofortsättning.


Använda Tab-tangenten för att automatiskt slutföra inmatning

Tabbtangenten kan också användas för att autoslutföra kommandon.

1. Byt till den senaste arbetskatalogen

Föreställ dig att du arbetade i en katalog som inte är så lätt att komma till och sedan flyttade till en annan katalog som ligger på en helt annan plats. Sedan insåg du att du måste gå tillbaka till föregående katalog. I det här fallet använder du bara följande kommando:

CD-
Det gör att du kan vara i den sista arbetskatalogen. Nu, i sådana här situationer, behöver du inte längre ange långa vägar eller använda kopiera och klistra in.


Enkelt att växla mellan kataloger

2. Återgå till hemkatalogen

Detta tillvägagångssätt är också mycket uppenbart. Du kan använda följande kommando för att återgå till din hemkatalog var som helst:

CD ~
Du kan dock återgå till din hemkatalog ännu snabbare med kommandot cd.

I de flesta moderna Linux-distributioner är skalet förkonfigurerat för att behandla cd-kommandot på detta sätt. Detta kommer att spara dig ett par tangenttryckningar på ditt tangentbord.


Mest snabb väg byta till hemkatalogen

3. Visar innehållet i en katalog

Du kanske undrar vad som är subtiliteten med att använda ett kommando för att lista innehållet i en katalog. Alla vet att kommandot ls -l tjänar detta syfte.

Men det är hela poängen. Nästan alla använder kommandot ls -l för att lista innehållet i kataloger, medan samma sak kan göras med följande kommando:

Ll
Funktionaliteten för detta kommando beror på Linux-distributionen och på din skalinställning, men det är mycket troligt att du kommer att kunna använda det på de flesta distributioner.


Använder kommandot ll istället för kommandot ls -l

4. Anropa flera kommandon på en rad

Föreställ dig att du behöver utföra flera kommandon i följd. Antagligen anger du ett kommando, väntar på att det ska slutföras och anger sedan nästa?

I en sådan situation kommer en kommandoavgränsare att vara användbar; (semikolon). Med detta tillvägagångssätt kan du ange flera kommandon på samma rad. I det här fallet, till skillnad från den vanliga inmatningen av kommandon, för att utföra nästa kommando, behöver du inte vänta på att det föregående är slutfört.

Kommando_1; kommando_2; kommando_3

5. Utförande av flera kommandon på en rad och ett villkor för framgångsrikt slutförande av föregående kommando

Vi tittade precis på ett sätt att anropa flera kommandon på en enda rad. Detta sparar tid. Men vad händer om du vill, säg, när du anropar två kommandon, så att nästa kommando endast utförs om det föregående slutförs utan fel?

Föreställ dig att du vill bygga koden och sedan, om bygget lyckades, ring make ?

I en sådan situation kan du använda avgränsaren && . Denna avgränsare säkerställer att nästa kommando endast kommer att utföras om det föregående lyckas.

Kommando_1 && kommando_2
Här bra exempel använder sig av && :

sudo passande uppdatering&& sudo apt uppgradering

6. Enkel sökning och användning av tidigare inmatade kommandon

Föreställ dig att du för ett par minuter eller ett par timmar sedan skrev in ett långt kommando och du behöver det här kommandot igen. Dessutom är problemet att du inte kan komma ihåg exakt detta kommando.

I en sådan situation kommer en omvänd sökning att rädda dig. Denna teknik låter dig söka efter ett nyckelord i kommandohistoriken. Här räcker det med att använda tangentkombinationen Ctrl + R för att starta en omvänd sökning och ange något relaterat till kommandot. Systemet kommer att titta igenom historiken för kommandon och visa de kommandon som matchar den angivna frågan.

Ctrl+R sökterm
Som standard kommer endast ett resultat att visas. För att se fler resultat som matchar din fråga måste du använda kortkommandot Ctrl + R om och om igen. För att gå ur omvänd sökningsläge, tryck på Ctrl + C .


Omvänd kommandohistoriksökning

Observera att i vissa bash skal Du kan använda knapparna Page Up och Page Down för att bläddra igenom sökresultaten.

7. Låsa upp terminalen efter att av misstag tryckt på Ctrl + S

Du kanske är van vid att använda kortkommandot Ctrl + S för att spara filer. Men om du trycker på dessa tangenter i Linux-terminalen kommer du att låsa den.

Om du tidigare, för att rätta till situationen, var tvungen att stänga och starta om terminalen - nu kan du andas lugnt, du behöver inte göra detta längre. För att få terminalen till ett fungerande läge, använd helt enkelt tangentkombinationen Ctrl + Q .

8. Flytta till början eller slutet av en rad

Föreställ dig att du anger ett långt kommando och någonstans i mitten inser du att du måste ändra något i början av det. Du använder förmodligen piltangenterna för att först flytta till början av raden och sedan tillbaka till slutet.

Naturligtvis, i en sådan situation kan du använda tangenterna Home och End, men alternativt, med hjälp av tangentkombinationen Ctrl + A kan du gå till början av raden och använda kombinationen Ctrl + E - till slutet.


Flytta till början eller slutet av en rad

Jag tycker att det här sättet är bekvämare än att använda Home- och End-knapparna, särskilt när jag arbetar på en bärbar dator.

9. Läs loggfiler i realtid

När du behöver analysera loggfiler som ett program som körs skriver till under analysen, kan du använda kommandot tail med alternativet -f.

Tail -f path_to_Log
Alternativt kan du använda kommandot grep i sin normala form för att endast visa de rader du är intresserad av:

Tail -f path_to_log | grep sökterm
Du kan också använda alternativet F här. Detta gör att svansverktyget fortsätter att köras även om loggfilen som visas raderas. Med detta tillvägagångssätt, om den här filen skapas igen, fortsätter tail att skriva ut data från den till skärmen.

10. Läsa komprimerade loggfiler utan att dekomprimera dem

Serverloggar komprimeras vanligtvis med gzip för att spara diskutrymme. Detta kan leda till en del besvär när man analyserar loggar av utvecklare eller systemadministratörer. Du kan behöva använda kommandot scp för att kopiera filen till din lokala katalog och sedan extrahera filen från arkivet för att kunna se den, eftersom du kanske inte har skrivbehörighet till var filen du är intresserad av finns lagrad.

Här kommer vi till hjälp av en grupp kommandon vars namn börjar med bokstaven "z". Dessa kommandon är ett alternativ till de vanliga kommandona som används för att arbeta med loggfiler. Bland dem finns mindre , cat , grep och andra.

Så, med hjälp av kommandona zless , zcat , zgrep och liknande, behöver du inte explicit packa upp komprimerade filer. Detaljer om dessa kommandon kan ses.

Förresten, när jag berättade för en kollega om dessa "hemliga" kommandon fick jag en kopp kaffe.

11. Använd kommandot mindre för att läsa filer

Om du behöver visa en fil, särskilt en stor, kan du prova cat , men det är mycket bättre att leta någon annanstans. Faktum är att katten kommer att visa hela filen på skärmen, vilket inte är så bekvämt.

Du kan använda en redigerare som Vi eller Vim i en terminal för att visa filer, men om du bara behöver läsa en fil kommer det mindre kommandot väl till pass.

Mindre sökväg_till_fil
Under en session med mindre kan du söka efter önskade textfragment genom att nyckelord, navigera genom sidor, mata ut data med radnummer och så vidare.

12. Återanvändning av det sista elementet från föregående kommando med !$

I många situationer är det mycket användbart att kunna använda argumentet från föregående kommando.

Anta att du behöver skapa en katalog och sedan gå till den. Här kan du använda alternativet !$ genom att ange hoppkommandot efter kommandot för att skapa kataloger.


Använd!$ för att använda sista kommandot argument

Ännu bättre, detsamma görs med kortkommandot Alt +. (punkt). Punkten kan användas flera gånger för att iterera över alternativen för det senaste kommandot.

13. Använda det föregående kommandot i det aktuella kommandot med!!

Genom att använda!! du kan anropa hela föregående kommando. Det här tricket är särskilt användbart när du behöver köra ett kommando och det visar sig att du behöver superanvändarprivilegier för att köra det. Till exempel visar figuren nedan en situation där kommandot sudo!! gör att du kan spara mycket tid.


Utnyttja!!! för att ersätta det sista kommandot som ett argument

14. Använda alias för att fixa skrivfel

Du kanske redan är bekant med aliaskommandot. Den kan användas för att korrigera fel i inmatade kommandon.

Det kan till exempel hända att du ofta skriver gerp istället för grep . Om du inte kan stoppa den dåliga vanan, lägg till ett alias till din bashrc-fil så här:

Alias ​​​​gerp=grep
Nu behöver du inte skriva om det här kommandot om du anger dess namn felaktigt.

15. Kopiera och klistra in i Linux-terminalen

Detta råd är något tvetydigt eftersom det beror på Linux-distributionen och på terminalen.

Men vanligtvis kan kommandona kopiera och klistra in så här:

  • Markera texten du vill kopiera och klicka Högerklicka mus för att klistra in den (fungerar i Putty och andra SSH-klienter för Windows).
  • Markera texten du vill kopiera och klicka sedan mittknappen mus (rullhjul) för att klistra in den.
  • Använd kortkommandon Ctrl + Skift + C för att kopiera och Ctrl + Skift + V för att klistra in.

16. Avsluta ett team eller en process

Det jag vill tipsa om är kanske ganska självklart, men jag ska berätta om det ändå. Om ett kommando körs i förgrunden och du vill avsluta det, kan du trycka på Ctrl + C för att stoppa det.

17. Använda kommandot yes för att automatisera interaktiva kommandon eller skript

Om du måste arbeta med vissa kommandon eller skript som involverar användarinteraktion, och du vet att du kommer att skriva Y för varje fråga i programmet, kan du automatisera denna process med kommandot yes. Det görs så här:

Ja | kommando_eller_skript

18. Rensa innehållet i en fil utan att ta bort själva filen

Om du vill rensa innehållet textfil utan att ta bort själva filen kan du använda följande kommando:

> filnamn

19. Ta reda på om en katalog innehåller filer som innehåller viss text

Linux-kommandoraden stöder många sätt att hitta information. Men om du bara vill veta om det finns filer i en katalog som innehåller viss text, kan du använda detta kommando:

Grep -Pri Search_Term sökväg_till_katalog
Jag råder dock alla som behöver söka i Linux att förstå ordentligt med hitta kommando.

20. Ringa hjälp för alla kommandon

Jag vill avsluta det här materialet med ett mycket uppenbart, men ändå väldigt viktigt "trick", som är att ringa hjälp för ett kommando eller verktyg kommandorad.

Nästan alla kommandoradsverktyg innehåller bakgrundsinformation, avslöjar funktionerna i deras användning. Vanligtvis hjälper läshjälp dig att förstå grunderna för ett kommando. Du kan ringa hjälp så här:

Command_tool --hjälp

Jag har medvetet inte inkluderat kommandon som fuck i det här materialet, eftersom de inte är sådana standardmedel som finns bokstavligen överallt. Det jag har sagt här kan vara användbart när man arbetar med nästan alla Linux-distributioner och kommandoradsskal utan att behöva installera nya program.

Om du upptäcker ett fel, välj en textbit och tryck på Ctrl + Retur
DELA MED SIG: