Как листать вверх и вниз в окне виртуального терминала Ctrl + Alt + F3?

К сожалению, конструкция эмуляторов терминала (, таких как окно терминала в вашей системе Ubuntu ), в большинстве случаев не обеспечивает хорошей поддержки вставки; в частности, по большей части вставка работает точно так же, как если бы вы очень быстро печатали )одно и то же (. Большинство вещей, которые вы могли бы принять за какой-то специальный сигнал для программы, работающей в терминале, на самом деле находятся в данных диапазона -, то есть просто в символе. Если ваша вставка содержит этот символ, программа не сможет определить разницу между вводом символа и его вставкой.

Таким образом, вы не можете использовать вставку для передачи файлов, если только они не содержат символов, которые могут запутать принимающую программу. В частности, вкладки, содержащиеся в вашей вставке, сбивают с толку bash — он видит вкладку и пытается выполнить завершение файла или команды. Так же, как когда вы вводите вкладку.

Трюк с cat > filenameвполне может потерпеть неудачу, если бы в вставляемом содержимом был элемент управления -D (да, это символ ). Но если вы избегаете управляющих символов (, кроме новой строки и табуляции ), это должно сработать.

Разработчики Unix обычно используют программы передачи файлов для перемещения файлов. Основной, который мы в основном используем, это scpили sftp, оба они являются частью SSH (и, таким образом, полностью зашифрованы, аутентифицированы и т. д. — те же гарантии безопасности, что и SSH ).

Самый простой способ работы между Windows и виртуальной машиной Ubuntu (или наоборот ), вероятно, заключается в использовании функций обмена файлами )вашего гипервизора (VM продукта — они есть у большинства. Вы можете выбрать каталог на хосте, и он будет виден внутри гостя. С помощью WSL вы можете получить доступ ко всем своим файлам Windows в папке /mnt/<drive letter>/. Если ваш гипервизор не поддерживает эту функцию, второй -самый простой способ — использовать обычный файловый ресурс. Вы можете смонтировать общие файловые ресурсы Windows из Ubuntu или установить Samba в Ubuntu, чтобы сделать общие файловые ресурсы для Windows.

В зависимости от того, что вы делаете,могут быть лучшие подходы. Например, автоматическое развертывание. Может быть, вы хотите, чтобы вы регистрировали файл в git, а затем он автоматически развертывался на вашем компьютере с Ubuntu, когда вы выполняете git push? Это может быть так же просто, как использование git hooks, или намного сложнее — для этого есть целые пакеты программного обеспечения.

Наконец, есть большое преимущество в том, чтобы записывать эти скрипты в файлы, а не просто вставлять их в оболочку. :Файл служит документацией того, что вы сделали. Что-то пошло не так? Если что-то пошло действительно неправильно, проверьте файл, чтобы понять, почему. Это позволяет точно определить, что пошло не так, что часто является первым шагом к устранению ущерба. Нужно сделать это снова? Просто создайте файл во второй раз. Нужно сделать что-то подобное? Отредактируйте файл, а затем источник его.

Если вам необходимо вставьте сюда -документ:

Если вы хотите вставить текст напрямую в bash, лучше всего убедиться, что он не содержит управляющих символов, кроме символа новой строки. Вставка этого должна работать:

bash /dev/fd/10 10<<'SES'

cat <<EMR >> /etc/apache2/apache2.conf
#
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
EMR

SES

Если у вас должен быть отступ, вы можете использовать пробелы и sed вместо начального -для его удаления (обратите внимание, что вы пошли дальше и использовали stdin вместо fd 10, потому что синтаксис проще, и я сомневаюсь в этом вопросы):

sed -e 's/^\s\+//' <<'SES' | bash

    cat <<EMR >> /etc/apache2/apache2.conf
    #
    <Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
    </Directory>
    EMR

SES

Это использует функцию sed search -replace(s/PATTERN/REPLACEMENT/)для поиска в начале строки(^)пробела (\s), повторяющегося один или несколько раз (\+), и ничего не заменяет. Другими словами, он обрезает все начальные пробелы в каждой строке. Опция -eдля sed явно указывает, что это сценарий sed для запуска — на самом деле это не требуется, sed в любом случае интерпретирует свой первый аргумент как сценарий — но лично мне кажется более ясным всегда использовать -e.

Обратите внимание, что «пробелы» выше включают пробелы и табуляции (и еще несколько символов, которые здесь не очень важны ). Этот sed обрежет их все, независимо от используемого микса.

Конечно, я понятия не имею, почему вы вставляете команду в bash, говоря ему запустить bash для запуска cat.

0
17.04.2019, 16:55
2 ответа

Вы можете попробовать Shift+ Page Upили Shift+ Page Down.

Вы также должны использовать more/ lessдля чтения файлов, а не cat.

2
28.01.2020, 02:30

Для управления терминалами виртуальной консоли можно использовать любые стандартные утилиты терминала.

Вы также можете использовать стандартные инструменты терминала, такие как lessи more.

0
28.01.2020, 02:30

Теги

Похожие вопросы