Екранът не се превърта в емулатора на терминала в ubuntu. Обратно превъртане на текст в конзолата на Linux. Екранна връзка


Безплатен превод: Алексей Дмитриев
Дата на превод 19 ноември 2007 г

Тук говорим за текстовата конзола на GNU / Linux - не това, което се появява в прозореца на терминала, или X-window мениджъра, или работния плот. Има толкова много объркване в това, че трябва да кажа тривиално: - "Ако, докато сте в графичен режим, натиснете" Alt-Ctrl-F1 "(или" F2 " и т.н.), тогава ще бъдете отведени до текста конзола"...

0. За какво говорим?

Компютърът се зарежда. Вие сте в текстовата конзола и наблюдавате текста, който тече бързо надолу. Искате да видите вече мигащата част от този текст. Натискате "Shift-PgUp" или "Shift-PgDn" и ако вече сте променили клавишните комбинации по подразбиране (не, не, не клавиатурната подредба в X), тогава някои други клавиши. С тези клавиши карате текста да се движи нагоре и надолу по екрана. В момента използвате буфер за обратно превъртане (нека го наречем буфер за обратно превъртане за краткост).

Когато започнете да използвате този буфер с пълна сила, две неща много скоро стават ясни:
Може да се върне само част от текста, придружаващ изтеглянето.
Файлът "/ var / log / messages" улавя много по-малко от това, което искате да видите.

Започвате да ровите в интернет и скоро се появяват предварителните резултати: публикациите за превъртане на Linux са много древни и могат да бъдат проследени до началото на 90-те. Въпреки това, всичко, което беше преди ядрото 2.6.x, трябва да бъде забравено.

Наистина, трябва да сте избирателни в това, което четете: повечето от съветите, отнасящи се до версии преди 2.6.x, вероятно ще ви объркат и ще ви отведат по грешен път. Повярвай ми - убих много време по този случай. Поведението при превъртане назад е дефинирано във файла "vc.c", в противен случай малък файл в източниците на ядрото, като "vc" означава "виртуална конзола".

Имайте предвид, че при превключване на конзоли, буферът за превъртане се губи - по този начин пълният размер на този буфер е наличен в текущата конзола. (Тук има особено голямо количество информационен боклук от дните преди ядрото 2.6.x).

По подразбиране размерът на буфера е 32K. Това е достатъчно за 4 натискания на клавишите за превъртане назад - всяко натискане превърта половината екран, 25 реда на екран. Има около 50 реда. И няма да получите повече, дори ако имате 30 или 50 реда на екран. Трябва да кажа, че 50 реда са малка част от това, което лети по екрана по време на зареждане. Във връзка с горното възникват два въпроса:

Как да увелича буфера за превъртане?

Защо регистрационните файлове не улавят някои от съобщенията, които сте видели по време на зареждане?

1. Как да увеличим буфера за обратно превъртане?

Първото решение е да увеличите размера на буфера по подразбиране (по подразбиране) в източниците на ядрото и да го прекомпилирате. Позволете ми да предположим, че вие ​​не сте склонни да правите това, както и аз, и да потърсите по-гъвкаво средство за защита.

И има такъв инструмент и се нарича "framebuffer console", за кратко "fbcon". Това устройство има файл с документация "fbcon.txt"; ако сте инсталирали документацията на ядрото, имате я. Потърсете го някъде в клона "/ usr / share" (не мога да ви дам точния път поради разликата в дистрибуциите). Винаги можете да го изтеглите като един файл.

В този момент се извинявам: трябва да се отклоним малко и да поговорим малко за фреймбуфера.

Видео буферът е буфер между дисплея и видео адаптера. Красотата му е, че може да се манипулира: позволява трикове, които няма да работят, ако адаптерът е свързан директно към дисплея.

Един такъв трик е свързан с буфера за превъртане; Оказва се, че можете да "помолите" видеобуфера да задели повече памет на буфера за превъртане. Това се постига чрез параметри за зареждане на ядрото. Първо ви е необходим фреймбуфер; След това питате за по-голям буфер за превъртане.

Следващият пример е за GRUB, но може лесно да бъде адаптиран към LILO. В конфигурационния файл GRUB - "menu.lst" - намерете реда, съответстващ на ядрото, и след това:
Премахнете опцията "vga = xxx", ако има такава.
Добавете опцията "video = vesabf" или каквото съвпада с вашия хардуер.
Добавете опцията "fbcon = scrollback: 128".
След тази процедура редът с параметри на ядрото трябва да изглежда така:
"kernel / vmlinuz root = / dev / sdb5 video = radeonfb fbcon = превъртане: 128".

Защо да премахнете опцията "vga = xxx"? Поради възможни конфликти с опцията за видео. На моя ATI адаптер не мога да променя буфера за превъртане, ако е посочено "vga = xxx". Може би това не е така във вашия случай. Ако горните опции работят добре; но какво ще стане, ако искате да увеличите броя на редовете или да зададете по-малък шрифт на екрана? Винаги си го правил с опцията "vga = xxx" - и тя изчезна. Не се притеснявайте - същото може да се постигне чрез промяна на параметрите на fbcon, както е описано във файла "fbcon.txt" (но не е обхванато в тази статия). Ubuntu и Debian имат по-удобен начин: "dpkg-reconfigure console-setup". Струва си да използвате тази команда също така, защото тя също така отменя "initrd" към новите ви настройки.

2. Разширяване на границите

Опцията "fbcon = scrollback: 128" ви дава възможност да се движите из екраните за превъртане 12-13. Това са около 150 реда - доста добре, но може би не достатъчно, за да видите всички съобщения за зареждане все още. Мога ли да сложа повече от 128, да речем 256? Ограничението е 128 във "vc.c". Ако искате повече, редактирайте и компилирайте. За себе си реших, че играта не си заслужава свещта.

Когато напълно реших, че съм достигнал най-високата граница - цитирам от "fbcon.txt":
fbcon = превъртане назад: [к]
...
Суфиксът "k" е по избор и ще умножи "стойността" по 1024.
(Наставката "k" не е задължителна и ще умножи "стойността" по 1024 пъти).
Побързах да проверя .. и каквото и да мисли автора за това, бях убеден, че 128 и 128k дават абсолютно същия резултат. Ограничението по подразбиране е 128KB памет, това е цялата история.

И накрая, имайте предвид, че използването на разширения буфер за превъртане използва както графичната памет, така и буфера в RAM. Ако сте доволни от стандартните 32KB, използвате само паметта на видеокартата. На практика обаче не забелязах ни най-малко забавяне.

3. Какво липсва в дневниците?

В Ubuntu и Debian и други дистрибуции всички системни съобщения се съхраняват във файла "/ var / log / messages". Това важи дори ако услугата за регистриране (демон) не е старият "syslog", а "syslog-ng" ("ng": "ново поколение" /ново поколение /).

И в двата случая можете да видите съобщенията, като напишете "dmesg" в командния ред. Това не помага: ясно сте видели по време на зареждане съобщенията, които не са в изхода на командата "dmesg". Как така?

Това е свойство, а не бъг! Съобщенията, регистрирани във файла, идват от различни подсистеми на ОС. Подсистемите, които извеждат съобщения в регистрационния файл, се наричат ​​"съоръжения" в терминологията на syslog, има само 8 от тях. По време на процеса на зареждане се изпълняват програми и скриптове, които може да не принадлежат към нито един от 8-те „инструмента“. Виждаме техните съобщения да се превъртат по екрана, но нищо няма да бъде записано в регистрационния файл!

Например, няма да виждате съобщения от "loadkeys" (openSUSE) или "consolechars" (Ubuntu и Debian), когато клавиатурната подредба се зареди по време на зареждане. Друг пример: когато използвате конзолен текстов редактор, можете да превъртате назад на дисплея (включително цветове), като използвате буфера за превъртане. Но това, което редакторът произвежда, никога няма да попадне в нито един системен протокол. Причината, разбира се, е, че нито "loadkeys", нито "consolechars", нито редакторът принадлежат към нито един от 8-те "инструмента".

Може ли да се промени ситуацията? Разбира се - "просто" повторете и прекомпилирайте приложенията, които искате да регистрирате. Добавете или пренапишете скриптове за зареждане. Или принудете системата да улавя съобщения извън 8-те системни "инструмента".

Обзалагам се, че няма да направиш това. И дори знам вашия вероятен отговор:
- "Нищо не изчезва от моите дневници." Да разбира се...

Ако статията ви е харесала, споделете я с приятелите си:

Темата за полезни трикове за работа в Linux терминала е безкрайна. Изглежда, че всичко е подредено много просто: подканата на обвивката и командите, въведени от клавиатурата. В тази простота обаче се крие бездна от неочевидни, но полезни възможности. Ето защо редовно публикуваме материали за спецификата на работата в командния ред на Linux. По-специално, днес това ще бъде превод на статия, чийто автор иска да спести време чрез повишаване на производителността на труда.

Ако се интересувате от работа с командния ред на Linux, ето някои от нашите ресурси по тази тема:

  • [ +114 ] Най-полезни трикове за командния ред на Linux
  • [ +70 ] 10 Linux терминални трика, за които малцина знаят
  • [+65 ] Удивително полезен инструмент: lsof
  • [ +32 ] Linux: пренасочване
  • [ +29 ] PDF версия на статии за Bash скриптове

Техники на командния ред на Linux и спестяване на време

Виждали ли сте някога колега да използва някои прости Linux команди за решаване на проблеми, които ви отнемат няколко реда за решаване? Сигурно, когато това се случи, можеше само да си кажеш: „Е, няма значение! Не знаех, че може да се направи толкова лесно.”

В тази публикация ще ви покажа някои професионални трикове за команден ред на Linux, които ще ви спестят много време и в някои случаи ще се отърват от лошото ви настроение. Не само това, вашите приятели или колеги ще ви кажат: „Е, трябва!”, като те гледат. Тези техники също ще ви помогнат да увеличите личната си производителност, тъй като ще трябва да въвеждате по-малко команди и дори да правите по-малко щраквания с мишката.

Това не означава, че тези съвети за Linux са само за начинаещи. Възможно е дори опитни потребители да намерят тук нещо полезно, за което не са знаели, въпреки че са използвали Linux от много години. Linux се научава чрез опит. И вашият собствен опит, и опитът на други хора ще свърши работа.

Преди да започнем, бих искал да отбележа, че някои от методите, показани тук, са специфични за обвивката.

0. Завършване на командата с помощта на клавиша Tab

Ще започна с нещо съвсем очевидно, но много важно: завършване на командата с клавиша Tab.

Когато започнете да пишете нещо в терминала на Linux, можете да натиснете клавиша Tab, след което ще се покаже подкана, съдържащ набор от опции за продължаване, започвайки със знаците, които току-що сте въвели.

Например, ако сте на път да копирате файл с име my_best_file_1.txt, можете просто да въведете cp m и да натиснете Tab, за да видите опциите за командата да продължи.


Използване на клавиша Tab за автоматично довършване

Клавишът Tab може да се използва и за завършване на командата.

1. Отидете до последната работна директория

Представете си, че работите в директория, която не е лесна за достигане, и след това сте променени в друга директория, разположена на съвсем различно място. Тогава разбрахте, че трябва да се върнете към предишната директория. В този случай е достатъчно да използвате следната команда:

CD -
Ще ви отведе до последната работна директория. Сега, в такива ситуации, вече няма да е необходимо да въвеждате дълги пътища или да използвате копиране и поставяне.


Лесно превключване между директории

2. Върнете се в началната директория

Тази техника също е доста очевидна. Можете да използвате командата по-долу, за да се върнете към домашната си директория отвсякъде:

Cd ~
Можете обаче да се върнете към домашната си директория още по-бързо с командата cd.

В повечето съвременни дистрибуции на Linux обвивката е предварително конфигурирана да приема командата cd по този начин. Това ще ви спести няколко натискания на клавиши на клавиатурата.


Най-бързият начин да отидете до вашата домашна директория

3. Показване на съдържанието на директорията

Може би се чудите каква е финесът на използването на командата за показване на съдържанието на директория. Всеки знае, че командата ls -l служи за тази цел.

Но това е целият смисъл. Почти всеки използва командата ls -l за изброяване на съдържанието на директориите, докато същото може да се направи със следната команда:

Ll
Тази команда зависи от вашата Linux дистрибуция и конфигурация на обвивката, но е много вероятно да можете да я използвате в повечето дистрибуции.


Използване на командата ll вместо командата ls -l

4. Извикване на няколко команди на един ред

Представете си, че трябва да изпълните няколко команди последователно. Вероятно въвеждате една команда, след това изчаквате да завърши и след това въведете следващата?

В тази ситуация е полезен команден разделител; (точка и запетая). С този подход можете да въведете няколко команди на един ред. В същото време, за разлика от обичайното въвеждане на команди, за да изпълните следващата команда, не е необходимо да чакате завършването на предишната.

Команда_1; команда_2; команда_3

5. Изпълнение на няколко команди в един ред и условието за успешно изпълнение на предишната команда

Току-що разгледахме начин за извикване на множество команди на един ред. Това спестява време. Но какво, ако имате нужда, да речем, при извикване на две команди, така че следващата команда да се изпълни само ако предишната завърши без грешки?

Представете си, че искате да изградите кода и след това, ако компилацията е успешна, да извикате make?

В тази ситуация можете да използвате разделителя &&. Този разделител гарантира, че следващата команда ще бъде изпълнена само ако предишната е успешна.

Команда_1 && команда_2
Ето един добър пример за използване на &&:

Sudo apt update && sudo apt надстройка

6. Лесно търсене и използване на предварително въведени команди

Представете си, че преди няколко минути или няколко часа сте въвели дълга команда и имате нужда от тази команда отново. Освен това проблемът е, че не можете да запомните точно тази команда.

В такава ситуация ще ви спаси едно обратно търсене. Тази техника ви позволява да търсите в историята на командите по ключова дума. Тук е достатъчно да използвате клавишната комбинация Ctrl + R, за да започнете обратно търсене и да въведете нещо, свързано с командата. Системата ще прегледа историята на командите и ще покаже командите, които съответстват на въведената заявка.

Ctrl + R термин за търсене
По подразбиране ще се показва само един резултат. За да видите повече резултати, отговарящи на вашата заявка, ще трябва да използвате клавишната комбинация Ctrl + R отново и отново. За да излезете от режима на обратно търсене, натиснете Ctrl + C.


История на командите за обратно търсене

Имайте предвид, че в някои обвивки на Bash можете да използвате клавишите Page Up и Page Down, за да преглеждате резултатите от търсенето.

7. Отключване на терминала след случайно натискане на Ctrl + S

Може да сте свикнали да използвате клавишната комбинация Ctrl + S, за да записвате файлове. Но ако натиснете тези клавиши в терминала на Linux, ще го блокирате.

Ако по-рано, за да коригирате ситуацията, трябваше да затворите и рестартирате терминала - сега можете да дишате спокойно, няма да ви се налага да правите това отново. За да приведете терминала в работно състояние, просто използвайте клавишната комбинация Ctrl + Q.

8. Преминете към началото или края на ред

Представете си, че въвеждате дълга команда и някъде по средата осъзнавате, че трябва да промените нещо в началото. Вероятно използвате клавишите със стрелки, за да се придвижите първо до началото на реда и след това обратно до края.

Разбира се, в подобна ситуация можете да използвате клавишите Начало и Край, но като алтернатива, като използвате клавишната комбинация Ctrl + A, можете да отидете в началото на реда и с клавишната комбинация Ctrl + E до край.


Преместване в началото или края на ред

Намирам този метод за по-удобен от използването на клавишите Home и End, особено когато работя на лаптоп.

9. Четене на лог файлове в реално време

Когато трябва да анализирате регистрационни файлове, в които някое работещо приложение записва данни по време на анализа, можете да използвате командата tail с опцията -f.

Tail -f път_до_регистрационен файл
Като алтернатива можете да използвате командата grep в обичайната й форма, за да покажете само редовете, които ви интересуват:

Tail -f път_към_дневник | grep search_term
Можете също да използвате опция F тук. Това ще накара помощната програма tail да продължи да работи, дори ако преглежданият регистрационен файл е изтрит. При този подход, ако този файл бъде създаден отново, tail ще продължи да показва данни от него на екрана.

10. Четене на компресирани лог файлове, без да ги разопаковате

Сървърните регистрационни файлове обикновено се gzip за спестяване на дисково пространство. Това може да доведе до известно неудобство при анализиране на регистрационните файлове от разработчици или системни администратори. Може да се наложи да използвате командата scp, за да копирате файла във вашата локална директория и след това да извлечете файла от архива, за да го видите, тъй като може да нямате разрешение за запис до мястото, където се съхранява файла, който ви интересува.

Тук на помощ ни идва група команди, чието име започва с буквата "z". Тези команди са алтернатива на обикновените команди, използвани за работа с регистрационни файлове. Сред тях са по-малко, cat, grep и др.

Така че, като използвате командите zless, zcat, zgrep и други подобни, не е нужно изрично да разопаковате компресирани файлове. Подробности за тези команди можете да намерите.

Между другото, когато казах на моя колега за тези „тайни“ команди, получих чаша кафе.

11. Използване на командата less за четене на файлове

Ако трябва да прегледате файл, особено голям, можете да опитате cat, но е много по-добре да потърсите другаде. Въпросът е, че котката ще покаже целия файл на екрана, което не е толкова удобно.

Можете да използвате редактори като Vi или Vim в терминала, за да видите файловете, но ако просто трябва да прочетете файл, less е страхотна команда.

По-малко път_до_файл
По време на сесия на работа с по-малко, можете да търсите необходимите фрагменти от текст по ключови думи, да се придвижвате през страници, да показвате данни с номера на редове и т.н.

12. Използвайте отново последния елемент от предишната команда с! $

В много ситуации е много полезно да можете да използвате аргумента на предишната команда.

Да приемем, че трябва да създадете директория и след това да отидете до нея. Тук можете да използвате опцията! $, като въведете командата jump след командата, за да създадете директория.


Използване! $ За да използвате последния команден аргумент

Още по-добре, направете същото с клавишната комбинация Alt +. (точка). Периодът може да се използва многократно за повторение на опциите на последната команда.

13. Използване на предишната команда в текущата команда с !!

Като се използва!! можете да извикате цялата предишна команда. Тази техника е особено полезна, когато трябва да изпълните команда и се окаже, че имате нужда от привилегии на суперпотребител, за да я изпълните. Например, фигурата по-долу показва ситуация, в която sudo !! спестява много време.


Възползвам се !!! за да замените последната команда като аргумент

14. Използване на псевдоними за коригиране на грешки при въвеждане

Може би вече сте запознати с командата псевдоним. Може да се използва за коригиране на грешки във въведените команди.

Например може да се случи често да пишете gerp вместо grep. Ако не можете да се справите с лошия навик, напишете псевдонима във вашия bashrc файл, както следва:

Псевдоним gerp = grep
Сега не е нужно да въвеждате отново тази команда, ако въведете нейното име неправилно.

15. Копирайте и поставете в Linux терминал

Този съвет е малко противоречив, тъй като зависи от дистрибуцията на Linux и терминала.

Но обикновено командите за копиране и поставяне могат да бъдат извикани по следния начин:

  • Изберете текста за копиране и щракнете с десния бутон, за да го поставите (работи в Putty и други Windows SSH клиенти).
  • Изберете текста за копиране, след което щракнете с централния бутон на мишката (колело за превъртане), за да го поставите.
  • Използвайте клавишните комбинации Ctrl + Shift + C за копиране и Ctrl + Shift + V за поставяне.

16. Прекратете команда или процес

Може би това, което искам да посъветвам тук, е съвсем очевидно, но все пак ще ви разкажа за него. Ако дадена команда се изпълнява на преден план и искате да излезете от нея, можете да натиснете Ctrl + C, за да я спрете.

17. Използване на командата yes за автоматизиране на интерактивни команди или скриптове

Ако трябва да работите с някои команди или скриптове, които включват взаимодействие с потребителя, и знаете, че ще въведете Y в отговор на всеки програмен въпрос, можете да автоматизирате този процес с командата yes. Това се прави по следния начин:

Да | команда_или_скрипт

18. Изчистване на съдържанието на файл без изтриване на самия файл

Ако искате да изчистите съдържанието на текстов файл, без да изтривате самия файл, можете да използвате следната команда:

> име на файл

19. Разберете дали директорията съдържа файлове, съдържащи определен текст

Командният ред на Linux поддържа много начини за намиране на информация. Въпреки това, ако просто трябва да разберете дали има файлове в директория, които съдържат определен текст, можете да използвате тази команда:

Grep -Pri Search_Term път_до_директория
Въпреки това, моят съвет към всеки, който търси търсене в Linux е да овладее командата find.

20. Извикване на помощ за всяка команда

Искам да завърша този материал с един много очевиден, но въпреки това много важен "трик", който е да се извика помощ за инструмент за команден ред или команден ред.

Почти всички инструменти на командния ред съдържат помощна информация, която обяснява как могат да се използват. Обикновено четенето на помощта ще ви помогне да разберете основите на командата. Можете да се обадите на помощ по следния начин:

Command_tool --помощ

Умишлено съм пропуснал команди като fuck в този материал, тъй като те не са стандартни инструменти, които могат да бъдат намерени буквално навсякъде. Това, за което току-що говорих тук, може да бъде от полза при работа с почти всички Linux дистрибуции и обвивки на командния ред, без да се налага да инсталирате нови програми.

Screen е много удобна програма, ако често работите в конзолата, като се свързвате със сървъра чрез SSH. В такъв случай екранви позволява да поддържате няколко различни екрана в една конзола, удобно да превключвате между тях.

Екранът ви позволява да прекъснете връзката с SSH, докато запазвате заданията, изпълнявани на отдалечения сървър.

За да инсталирате в Ubuntu, трябва да изпълните командата

$ sudo apt-get инсталационен екран

След това трябва да стартирате екрана:

$ екран

След като стартирате, ще видите или подкана на командния ред, или "екран за добре дошли", като натиснете SPACE или ENTER, в който също ще бъдете отведени до обвивката. В този случай всички команди ще бъдат стартирани вече "вътре" в екрана.

За да излезете от екрана (изход, а не отделяне), достатъчно е да излезете от всички отворени черупки в него или да натиснете клавишната комбинация Ctl-a \ и да отговорите с "y" на въпроса "наистина ли искате да излезете" ...

Можете да прекъснете връзката с текущия екран, без да затваряте или прекратявате сесията, като натиснете Ctrl-a d.

Екранна връзка

Ако машината вече има работеща сесия на екрана и искате да се свържете с нея, тогава

  1. ако има само една сесия, само командата е достатъчна: $ screen –x
  2. ако има няколко сесии, тогава: можете да видите списъка с работещи екрани с помощта на командата screen -ls: $ screen -ls Има екрани на: 2762.pts-0.debian (Отделен) 2743.pts-0.debian ( Отделно) 2 гнезда в / var / run / screen / S-дизел.

    Изберете екрана, от който се нуждаем, и прикачете към него:

    Екран -x 2762.pts-0.debian

    Имената на сесиите не са много информативни по подразбиране - просто обработвайте номерата, ако искате да стартирате и използвате няколко екранни сесии за различни задачи, можете да измислите по-разумни имена. Измисляме име, след което стартираме нов екран по този начин:

    $ екран -S "job1"

    където job1 е името на нашата именувана сесия. Сега в -ls ще видим много по-ясно:

    $ screen -ls Има екрани на: 2762.pts-0.debian (Detached) 2795.job1 (Detached) 2743.pts-0.debian (Detached) 3 Sockets in / var / run / screen / S-diesel.

    и можем да се свържем със сесията job1, като просто посочим нейното име:

    $ екран -x задание1

Превключване между екрани

Както вече разбрахте, сесиите се запазват дори когато сте изключени от сървъра и всичко, което се изпълнява в тях, продължава да работи. Възможностите на екрана обаче не се ограничават до това. Понякога, когато работя чрез ssh, наистина искам няколко терминала да бъдат отворени наведнъж, докато свързването няколко пъти е проблем - особено ако трябва да се свържете през няколко сървъра. Екранът също може да помогне за това. Просто натиснете Ctrl - a c и ще се отвори друга обвивка. Можете да се придвижвате между отворени черупки или чрез Ctrl - a<Цифра>, където<Цифра>- номерът на отворената обвивка, започващ от нула, или Ctrl - a n / Ctrl - a p - напред назад. Можете да получите списък с отворени "windows" - конзоли (и да преминете към тази, от която се нуждаете), като натиснете Ctrl - a "; за да дадете нормално име (не просто скучно "bash") за нишка на прозореца, отидете до нея и натиснете Ctrl - a A (случайът има значение), след което въведете името в подканата, която се появява.

Наблюдение на изпълнението на командите

Ако са отворени няколко прозореца, може да бъде полезно да можете да наблюдавате дейността в един от тях. Например, ако изпълните команда за дълго изпълнение и се чудите кога ще приключи. Отидете до прозореца с тази команда, натиснете Ctrl - a m, виждаме надпис като този: "Прозорец 0 (bash) сега се наблюдава за всички дейности". Когато нещо в прозореца се промени, екранът ще бипне и символът "@" се появява след номера в списъка с прозорци.

Превъртане на екрана в екрана

За да видите изхода на командата, който е преминал над границите на прозореца, трябва да натиснете Ctrl-a [

Това ще превключи екрана в режим на копиране. За да излезете от този режим, просто натиснете Esc.

Конфигурация на екрана

Екранът е конфигуриран с файла ~ / .screenrc във вашата домашна директория. Например, можете да напишете там:

Надпис винаги "% (= 45)% (+ bw) Екран:% n |% h% =% t% c" твърдо състояние винаги последен ред "% -Lw% (= BW)% 50>% n% f *% t% ( -)% + Lw%<"

Това ще ви даде постоянно видим списък с отворени прозорци и друга полезна информация в долната част на екрана.

Също така, когато Screen стартира, по подразбиране се изпълняват команди от файла / etc / screenrc и файла .screenrc от домашната директория на потребителя. Много команди, които могат да се използват в конфигурационни файлове, бяха обсъдени в таблиците по-горе в полето "Текстова команда". По-долу е даден пример за конфигурация на екрана от .screenrc файл:

# Деактивирайте извеждането на информация за лиценза при стартиране Екран startup_message е изключен # Отворете обвивка за работещ chdir екран -t Работа # Отворете обвивка за управление на конфигурация chdir / etc screen -t Configuration # Отворете обвивка за преглед на регистрационни файлове chdir / var / log screen -t Регистри # Изберете първия прозорец след стартиране изберете 0

Този сравнително прост конфигурационен файл отваря три прозореца с име Work, Configuration, Logs, съответно в личната директория на потребителя, в директорията / etc и директорията / var / log. След стартиране на екрана ще се покаже първият прозорец с име Work. Фигура 1 показва пример за това как Screen работи с този конфигурационен файл.

Завършване на екрана

Ако по някаква причина екранната сесия престане да реагира, можете да я прекратите. За да направите това, трябва да се свържете с желаната сесия, след това натиснете Ctrl - a и въведете командата ": quit".

Screen ще прекрати тази сесия чрез принудително затваряне на всички прозорци.

Работа с екран

Една от основните характеристики на Screen е да създава и управлява множество конзолни прозорци или текстови приложения в един прозорец на терминала. Само един от прозорците може да бъде на екрана на терминала в даден момент (може да има няколко от тях само ако разделят екрана на терминала на части). Екранът ви позволява бързо да превключвате между прозорците, да запазвате и по-късно да се връщате към текстова сесия и да отваряте достъп до нея за други потребители. Освен това Screen ви позволява да давате заглавия на прозорци, да проследявате активността във всеки прозорец и да споделяте съдържанието на прозореца с помощта на копиране и поставяне. Освен това, Screen ви позволява да преназначавате клавишите, да управлявате настройките за емулация на терминала и много други задачи с малки текстови прозорци, които може да не са необходими постоянно, но могат да помогнат за извършването на административна работа в определени моменти от време.

Фигурата показва екран с три именувани прозореца (Work, Configuration, Logs) и отворен в него с текстов редактор Vim, с пример за конфигурационния файл на Screen.

Първо начало

Screen може да се стартира с командния ред на екрана, но преди всичко проверете дали Screen е инсталиран на вашата система със следната команда:

$ кой екран / usr / bin / екран

Ако командата върне пътя, както в примера по-горе, можете да започнете да го използвате веднага, в противен случай Screen може да бъде инсталиран от стандартните инструменти за поддръжка на пакети на вашата операционна система или да бъде изтеглен от официалния сайт http://www.gnu. org/software/screen/.

Сега можем да стартираме Screen, като просто напишем:

$ екран

След стартиране на екрана може да се появи информация за версията и лиценза (когато обмисляме конфигурацията, ще разгледаме как можете да отмените показването на това съобщение) и в този случай трябва да натиснете клавиша "Интервал" или "Enter" , след което влизаме в привидно обичайната , текстова обвивка. Трябва да се отбележи, че в командния ред можете незабавно да посочите команда за стартиране на конкретно приложение, например, за да стартирате отгоре, трябва да въведете:

$ горната част на екрана

Добре, сега Screen работи, но на пръв поглед няма външни промени - можем да работим в работеща обвивка или да използваме top. Номерът е, че докато Screen работи, той предава всички натискания на клавиши директно към приложението, но (по подразбиране) оставя контролните команди за себе си, като се започне с клавишната комбинация Ctrl + a.

Тази комбинация от контролни клавиши може да бъде променена чрез конфигурационните файлове (които ще разгледаме по-долу), но във всички примери ще се вземе предвид само конфигурацията по подразбиране. По този начин всички команди на екранната клавиатура се състоят от две клавишни комбинации - контролната Ctrl + a и самия клавиш или клавишна комбинация, представляваща командата. Почти всяка команда има и собствен текстов аналог, който може да се изпълни или чрез конфигурационен файл, или чрез изпълнение на следната команда:

В този случай трябва да изпълним две клавишни комбинации, първо като натиснете Ctrl + a и след това клавиша с двоеточие. В същото време Screen ще покаже подкана за двоеточие в долната част на екрана. Същата команда, която току-що изпълнихме с клавишна комбинация, може да се изпълни чрез конфигурационния файл с помощта на текстовата команда с двоеточие, която може например да е необходима за показване на команден ред при стартиране или за преназначаване на клавишната комбинация, която извиква тази подкана . По-долу, както в примера по-горе, за всяка комбинация от клавиши ще напиша съответните ключови думи, които могат да се използват в конфигурационните файлове или да се въвеждат с Ctrl + a и :.

Тук може да възникне естествен въпрос - какво ще стане, ако приложението трябва директно да предаде клавишната комбинация Ctrl +, която вече се използва в Screen като служебна? Например, същата комбинация се използва от библиотеката за редактиране на командния ред readline за прескачане в началото на ред. За този случай Screen предоставя следната команда:

Управление на прозорци

В предишния раздел научихме как да стартираме Screen и научихме основния шаблон за всички клавиатурни команди. Време е да разберем командите за управление на прозорци. Когато Screen стартира, той създава един прозорец (освен ако конфигурацията не посочва създаване на няколко прозореца наведнъж) и му присвоява номер 0. Нов прозорец с командна обвивка може да бъде създаден с помощта на командата по-долу:

КЛЮЧОВА КОМБИНАЦИЯ ТЕКСТОВА КОМАНДА ОПИСАНИЕ
Ctrl + a ° С екран Създайте нов прозорец

Това ще накара Screen да създаде нов прозорец и да му присвои следващия пореден номер, в нашия случай новият прозорец ще бъде прозорец 1.

Вече имаме два текстови прозореца, от които новосъздаденият прозорец с номер 1 е текущият, а прозорецът с номер 0 е на заден план. Но трябва да се отбележи, че дори ако прозорецът е във фонов режим, той може да възприеме изхода на приложението, което се изпълнява в него, сякаш е текущо. Например, можем да стартираме процес в прозорец 0, който извежда допълнителна информация на редовни интервали (например това може да бъде командата tail -f) и след това да преминем към прозорец 1, за да работи в текстов редактор. След известно време, ако искаме да видим какво се случва в прозорец 0, можем да преминем към този прозорец и да видим целия изход на процеса, който се изпълнява там. След това можете да се върнете към прозореца за редактиране.

В предишния параграф описах пример с превключване между прозорци, но все още не съм казал какви команди се използват за това. Нека разгледаме по-подробно най-често използваните команди за управление на прозорци:

КЛЮЧОВА КОМБИНАЦИЯ ТЕКСТОВА КОМАНДА ОПИСАНИЕ
Ctrl + a w прозорци Показва списък с номера и заглавия на всички прозорци в долния ред на екрана
Ctrl + a « списък с прозорци Показва интерактивен списък с номера и заглавия на всички прозорци, от които можете да изберете прозорец за превключване
Ctrl + a Номер на прозореца изберете Избор на прозорец по номер. Например, командата Ctrl + a и 0 прави текущия прозорец с номер 0
Ctrl + a н следващия Преминете към следващия прозорец по ред или към първия прозорец, ако бяхме в последния прозорец
Ctrl + a стр предишна Преминете към предишния прозорец по ред или към последния прозорец, ако бяхме в първия прозорец
Ctrl + a изберете Покажете подкана за въвеждане на номера на прозореца за превключване
Ctrl + a Ctrl + a други Превключете към последния използван прозорец
Ctrl + a н номер Покажете номера и заглавието на текущия прозорец
Ctrl + a А заглавие Задайте заглавието на текущия прозорец
Ctrl + a к убиват Принудително затваряне на прозорец, например, ако приложението не може да бъде затворено по обичайния начин

Когато един от прозорците се затвори, номерата на другите прозорци не се променят и в номерацията се появяват "дупки", които по-късно могат да бъдат запълнени с нови прозорци. Въпреки че Screen има команда за промяна на номера на прозореца, тя не се разглежда тук и остава за самостоятелно изучаване. Ако всички прозорци са затворени, екранът излиза и показва съобщение:

Работете с текст

По-горе научихме как да стартираме Screen и да управляваме прозорци - да ги създаваме, да превключваме от прозорец на прозорец, да задаваме имена и да ги затваряме. Сега нека разгледаме работата със съдържанието на прозорците - копиране и поставяне на текстовото съдържание на един прозорец в друг, наблюдение на прозорци, запазване на текстово копие на екрана и други подобни задачи:

КЛЮЧОВА КОМБИНАЦИЯ ТЕКСТОВА КОМАНДА ОПИСАНИЕ
Ctrl + a М монитор Активиране/деактивиране на наблюдението на активността за текущия прозорец. Когато мониторингът е активиран и текстът се извежда в прозорец във фонов режим, информацията за дейността се показва в сервизния ред.
мълчание Активиране/деактивиране на наблюдението на неактивност за текущия прозорец. Когато наблюдението е активирано и в прозорец във фонов режим не се извежда текст за определен период от време, информацията за неактивност се показва в сервизния ред.
Ctrl + a з хартиено копие Напишете текстовото изображение на текущия прозорец в hardcopy.window_number в директорията на екрана по подразбиране.
Ctrl + a Х дневник Активиране/деактивиране на проследяване на текста на текущия прозорец до файла screenlog.window_number в директорията на екрана по подразбиране.
Ctrl + a [ копие Влезте в режим на копиране. Допълнителните команди за този режим са описани по-долу.
Ctrl + a ] паста Поставете текста от регистъра по подразбиране в прозореца (където е бил копиран преди с помощта на командата по-горе).

В режим на копиране Screen стартира текстов редактор, подобен на редактора Vi. Най-често използваните команди на редактора са:

  • Курсорните клавиши преместват курсора над буфера на екрана;
  • Интервалът маркира началото и края на региона за копиране. При натискане на интервал за втори път, маркираният текст се копира в главния регистър по подразбиране и екранът излиза от режим на копиране;

Множество прозорци на екрана

По подразбиране Screen оставя само един логически прозорец видим на екрана, но ако желаете, има допълнителна опция за разделяне на екрана на терминала на хоризонтални области. По този начин е възможно да се показват няколко прозореца наведнъж на един терминален екран. Нека разгледаме по-отблизо командите за работа с региони на екрана:

Фигура 2 показва екран с три наименувани прозореца (Работа, Конфигурация, Регистри) и екран, разделен на два региона. Работен прозорец се отваря в горния регион с текстов редактор на Vim и примерен конфигурационен файл на екрана. В долния регион прозорецът за конфигурация с част от общия конфигурационен файл / etc / screenrc.

Конзолни сесии

И накрая, ще разгледаме една от най-популярните функции на Screen. Нека си представим следния сценарий: системен администратор у дома, влиза в отдалечен сървър, отваря няколко прозореца, стартира необходимите задачи, след това затваря връзката и задвижва да работиш. На работа той отново влиза в същия сървър и възстановява прозорците, отворени у дома, с резултатите от изпълнените задачи. Звучи малко странно? В никакъв случай! Сесиите на екранната конзола са предназначени да изпълнят тази задача. Те ви позволяват да изключите текущата сесия на екрана с всички прозорци и работещи приложения от терминала и след това да се присъедините отново към нея по всяко време. В същото време всички приложения, работещи под екрана, ще продължат да работят и ще използват прозорците си за показване на информация. Освен това може да има няколко конзолни сесии, но в тази статия няма да се спираме на това подробно.

Помислете за командите за прекъсване на сесията на конзолата от терминала:

КЛЮЧОВА КОМБИНАЦИЯ ТЕКСТОВА КОМАНДА ОПИСАНИЕ
Ctrl + a д отдели се Отделете сесията на конзолата и я оставете да работи във фонов режим. В същото време Screen пише:
Ctrl + a D D pow_detach Отделете сесията на конзолата, оставете я да работи във фонов режим и изпратете сигнала HANGUP към родителския процес Screen. Когато стартирате Screen от отдалечен терминал, това означава да изключите Screen и след това да затворите връзката. В същото време Screen пише:
Ctrl + a z спиране Отделете сесията на конзолата и я оставете да работи като фонов процес в родителската обвивка. В този случай, за възстановяване на сесията, в допълнение към командите, описани по-долу, могат да се използват стандартните команди за управление на фоновите процеси на командната обвивка
Ctrl + a Ctrl + откажи се Затворете всички прозорци на сесията и излезте от екрана. Трябва да се отбележи, че много дистрибуции отменят клавишната комбинация за тази команда, но текстовата команда може да се използва така или иначе

За да се присъедините обратно към прекъснатата сесия или да видите списъка с налични сесии, трябва да стартирате Screen с един от следните клавиши:

Какво следва?

Екранът има огромен брой различни възможности и е практически невъзможно да се опишат всички в една статия, така че част от функционалността беше оставена зад кулисите. Ето някои функции/настройки на екрана, които не бяха обсъдени по-горе и остават за независимо проучване:

  • Конфигурационни команди за емулация на терминал;
  • Многопотребителски конзолни сесии;
  • Задаване или пренасочване на клавишни комбинации към команди;
  • Помощни опции за текстови команди. Например опцията -t на екранната команда, която се използва в примерния конфигурационен файл;
  • Команди, които се използват рядко, като командите, които можете да използвате, когато конфигурирате стартирането на екрана, са echo и sleep;
  • Променливи на средата, които могат да бъдат полезни при персонализиране на екрана;
  • Допълнителни клавиши за стартиране на екрана;

Алтернативи на екрана

Screen е програма с дълга история, трябва да се отбележи, че първата версия се появи през 1987 г. В момента практически не се добавят нови функции към Screen (една от причините може да е наличието на голям брой от тях в момента) и по принцип се извършват само корекции на грешки. Ако някой не харесва относителната "старост" на Screen или не се нуждае от толкова голям брой функции, тогава можете да се обърнете към една от следните програми:

  • dtach () - основният акцент в разработването на тази програма е поставен върху компактността. По аналогия с Screen, той поддържа възможността за работа с конзолни сесии, но няма другите възможности на Screen.
  • SplitVT (http://www.devolution.com/~slouken/projects/splitvt/) - ви позволява да разделите екрана на терминала на две половини и да работите с две обвивки наведнъж.
  • Tmux () - Tmux използва модел клиент-сървър за работа с конзолни сесии.
  • Twin (http://linuz.sns.it/~max/twin/) е опит за създаване на интерфейс на текстов прозорец, подобен на графичните му колеги.

161 Джейн дох

Разбирам, че Up/Down ще ви даде историята на командите. Но как гледате на минали резултати, като превъртате нагоре и надолу?

Използвах Shift + Page Up / Page Down, Alt + Shift + Up / Down и Page Up / Page Down, но нищо от тях изглежда не работи.

Това е кутията Redhat Linux.

Linux терминал rhel

14 отговора

SHIFT + Страница нагоре и SHIFT + Страница надолу. Ако това не работи, опитайте това и тогава трябва:

Отидете до вашата терминална програма и се уверете, че Редактиране / Предпочитания на профил / Превъртане / Обратно превъртане / Неограничен
проверено.

Точното местоположение на тази опция може да е различно някъде, но виждам, че използвате Redhat.

SHIFT + Page Up и SHIFT + Page Down са правилните клавиши за работа във виртуалната конзола, но конзолата vmware няма тези настройки на терминала. Виртуалната конзола има фиксиран размер за превъртане назад, изглежда, че е ограничен от размера на видео паметта според тази документация за превъртане на виртуална конзола на Linux.

АЛТЕРНАТИВА ЗА ЛИНИЕВНА ОБРАБОТКА

Ctrl + Shift + стрелка нагоре или стрелка надолу

За разлика от Shift + Page Up или Page Down, които превъртат цялата страница, това ще помогне за плавно линейно превъртане, което е точно това, което търсех.

Друга алтернатива, която може вече да е инсталирана на вашата система, е да използвате екрана на GNU:

# Това стартира екран, който добавя основно управление на прозорци в екрана на терминалите # Това стартира режима на копиране, който можете да използвате за превъртане [# Сега използвайте стрелките, за да превъртите # За да излезете от режима на копиране, направете

Погледнете екрана на човека за още полезни опции (множество прозорци, ...) ...

Изглежда, че не е лесно да се направи това: Arch Linux Wiki не изброява начини да направите това на конзолата (въпреки че е лесно възможно на виртуален терминал).

Ctrl - b, след това [, след което можете да използвате нормални клавиши за навигация за превъртане (като стрелка нагоре или PgDn). Натиснете q, за да излезете от режима на превъртане.