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
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
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.
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" .
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?
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.
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:
...
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.
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...
Ä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:
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.
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.
Tabbtangenten kan också användas för att autoslutföra kommandon.
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.
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.
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.
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
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
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 .
Observera att i vissa bash skal Du kan använda knapparna Page Up och Page Down för att bläddra igenom sökresultaten.
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 .
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.
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.
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.
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.
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.
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.
Ä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.
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.
Men vanligtvis kan kommandona kopiera och klistra in så här:
Ja | kommando_eller_skript
> filnamn
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.
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.