Как я могу запустить код BASIC в терминале?

Это FAQ (как для wget, так и для Википедии):

По умолчанию Wget играет роль веб-паука, который играет хорошо и подчиняется атрибутам robots.txt и no-follow .

18 января 2005 года в блоге Google «Предотвращение спама в комментариях» было заявлено, что Google отныне будет уважать атрибут rel="nofollow" на гиперссылках. Их алгоритм ранжирования страниц теперь игнорирует ссылки с этим атрибутом при ранжировании целевой страницы. Предполагаемый результат заключается в том, что администраторы сайта могут изменять ссылки, размещенные пользователями, таким образом, чтобы атрибут присутствовал, и, таким образом, попытка googlebomb путем размещения ссылки на таком сайте не приведет к увеличению этой ссылки.

Дело в том, что Википедия настроила сайт, чтобы отговорить вас от этого.

20
28.06.2017, 01:33
6 ответов

Если вы хотите работать в Linux BASIC изначально, у вас есть несколько пакетов в Debian на выбор:

  • brandy - совместимый BBC Micro BASIC - работает в графическом интерфейсе X11, очевидно, поддерживает звук и графику;

Brandy - это интерпретатор для BBC BASIC V, диалекта BASIC, который Acorn Computers поставлял со своими диапазонами настольных компьютеров, использующих процессор ARM, таких как Archimedes и Risc PC, и все еще используется на эти и совместимые.

  BASIC V - это значительно расширенная версия BBC BASIC. 
 

Это был БЕЙСИК, который использовался на BBC Micro на базе 6502, созданном Acorn в 1980-х годах.

  • bwbasic - byWater BASIC - текстовый режим, утверждает, что он совместим с ANSI, имеет расширения, учитывающие оболочки, и утверждает, что способен имитировать / иметь хорошую совместимость с несколькими типами «старых» диалектов BASIC, включая IBM BASICA, Microsoft BASIC и gwBASIC.

bwBASIC можно настроить для эмуляции возможностей, команд и функций, доступных в различных типах интерпретаторов BASIC;

bwBASIC реализует одну функцию, недоступную в предыдущих интерпретаторах BASIC: команду оболочки можно вводить интерактивно в приглашении bwBASIC, и интерпретатор выполнит его из командной оболочки.
Например, команду "dir * .bas" можно ввести в bwBASIC (в DOS или "ls -l * .bas" в UNIX), и она будет выполняться как из операционной системы командная строка.

Команды оболочки также могут быть заданы в пронумерованных строках в программе bwBASIC, так что bwBASIC можно использовать как язык программирования оболочки.Реализация команд и функций RMDIR, CHDIR, MKDIR, NAME, KILL, ENVIRON и ENVIRON $ () в bwBASIC предлагает дополнительные возможности обработки оболочки.

Чтобы установить их:

sudo apt-get install brandy bwbasic

Что касается моего личного опыта, я предпочитаю bwbasic , поскольку он позволяет использовать возможности BASIC в текстовой командной строке или сценарии оболочки.

В качестве альтернативы у вас также есть несколько пакетов эмуляции старых компьютеров, которые, очевидно, помимо синтаксиса BASIC, реализуют всю среду какого-то старого компьютера, который вы, возможно, захотите пережить.

Интересно, что bwbasic теоретически может позволить автоматизировать операции в Unix, например, построение скриптов на языке BASIC. Хотя никогда не пробовал.

26
27.01.2020, 19:43

В моих системах Debian и, вероятно, в большинстве других дистрибутивов Linux есть несколько вариантов, доступных непосредственно через диспетчер пакетов. Среди них:

  • bwbasic :

Интерпретатор Bywater BASIC (bwBASIC) реализует большой надмножество стандарта ANSI для минимального BASIC (X3.60-1978) и значительного подмножество стандарта ANSI для Full BASIC (X3.113-1987) на C. также предлагает средства программирования оболочки как расширение BASIC. bwBASIC стремится быть максимально портативным.

  • sdlbasic :

sdlBasic - это небольшой, эффективный и многоплатформенный интерпретатор BASIC для создание игр с использованием возможностей библиотеки SDL. Он был вдохновлен старый и славный AMOS.

Домашняя страница (Справочное руководство)

Википедия

8
27.01.2020, 19:43

Вы можете запустить C64 в браузере и использовать BASIC таким образом.

http://codeazur.com.br/stuff/fc64_final/

Учтите, что раскладка клавиатуры отличается, т.е. Shift-2 для кавычек.

http://jilltxt.net/wp-content/uploads/C64-keyboard-layout.png

Applesoft BASIC, если вы предпочитаете - http://calormen.com/jsbasic/

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

-2
27.01.2020, 19:43

Вы написали в комментарии к ответу Фуна, что

Что я имею в виду под "как на старых компьютерах", так это то, что он просто есть

Другие предоставили несколько различных предложений по интерпретаторам BASIC, которые вы могли бы установить на Linux, так что я не буду их рассматривать. Современные ПК обычно не поставляются со встроенными интерпретаторами BASIC, так что вам придется загружать что-то, что может запустить установленный интерпретатор BASIC.

Скорее, я буду считать, что вам нужно что-то, что запускает интерпретатор BASIC автоматически, подобно, но не совсем подобно тому, как ранние микрокомпьютеры (такие как Apple II, Commodore C-64, Zinclair ZX-81 и им подобные) загружались с родным интерпретатором BASIC.

Есть три способа сделать это, о которых я могу думать:

Создать программу запуска рабочего стола, которая открывает терминал

Это наименее инвазивный способ, потому что он работает полностью в системе и среде, к которой вы привыкли.

В основном, используя любые средства, которые предоставляет среда рабочего стола, вы создаете программу запуска и настраиваете ее на запуск BASIC-интерпретатора по вашему выбору в терминале. Для дополнительного эффекта вы можете установить определенные шрифты, цвета и т.д., чтобы имитировать среду прошлых дней. Как именно вы это сделаете, зависит от используемой среды рабочего стола, которую вы не указали, но щелчок правой кнопкой мыши там, где вы сейчас щелкаете для запуска приложений, и поиск выбора для создания новой программы запуска будет хорошим началом.

Создайте отдельную учетную запись пользователя с интерпретатором BASIC в качестве оболочки

Это немного сложнее, чем простая настольная программа запуска, но обеспечивает лучшую изоляцию, так что вы не рискуете испортить свои собственные файлы. Сначала установите интерпретатор BASIC; я использую bwbasic для примера, но подойдет любой, лишь бы он запускался в терминале. Затем добавьте пользователя и установите его оболочку в качестве интерпретатора bwbasic. Это можно сделать через графический интерфейс, но это зависит от того, какую среду рабочего стола вы используете; переносной подход - сделать это в терминале с помощью useradd. Это будет что-то похожее на

$ sudo -i
# grep -q "$(type -pP bwbasic)" /etc/shells || echo "$(type -pP bwbasic)" >>/etc/shells
# useradd --home /home/basic --create-home --shell "$(type -pP bwbasic)" basic

Затем вы должны иметь возможность войти в чистую среду BASIC через sudo:

$ sudo -i -u basic

Вы можете создать пусковую установку (как указано выше), которая будет выполнять эту команду в терминале, если хотите.

Назовите свой обычный пароль при запросе sudo. При желании вы можете отредактировать конфигурацию sudoers, чтобы избежать запроса пароля, но имейте в виду, что редактирование sudoers несколько сложно и, более того, рискованно; вы можете заблокировать себя от учетной записи root, что сделает довольно сложным исправление конфигурации.

Использовать интерпретатор BASIC в качестве init

Это наиболее инвазивный подход, но он также позволяет приблизиться к тому, как работали ранние микрокомпьютеры, загружаясь непосредственно в интерпретаторе BASIC. Я не рекомендую его, и считаю, что он вряд ли будет работать без значительных доработок, но для полноты картины включаю его.

Ядро Linux принимает параметр командной строки (да, ядро Linux имеет параметры командной строки; вы можете увидеть текущую загруженную командную строку, прочитав из /proc/cmdline) под названием init, который указывает, какую программу выполнить после завершения инициализации ядра. Вы можете настроить загрузчик (скорее всего, GRUB) так, чтобы он позволял вам загружать запись ядра, в которой говорится, что init должен быть /usr/bin/bwbasic (или любой другой интерпретатор BASIC, который вы установили).

Чтобы это сработало, интерпретатор BASIC, а также все файлы, которые он требует, должны быть расположены в корневой (/) файловой системе. Это связано с тем, что одна из задач init - смонтировать все файловые системы, а поскольку вы предоставляете в качестве init программу, не являющуюся init, некорневые файловые системы не будут смонтированы. (Я полагаю, что другой задачей init является перемонтирование корневой файловой системы в режиме чтения-записи, поэтому при тривиальном подходе вы не сможете ничего сохранить. Однако, в зависимости от деталей реализации, вы можете заставить систему выполнить что-то вроде mount -o remount,rw /, чтобы перемонтировать корневую файловую систему в режиме чтения-записи). Выбранный вами интерпретатор BASIC также не должен зависеть ни от чего другого, за что отвечает init, и у вас не будет доступа ни к каким средствам, обрабатываемым init или процессами, порожденными init (например, к сетевой или многопользовательской поддержке).

Командная строка ядра вида ro quiet init=/usr/bin/bwbasic, вероятно, даст вам довольно близко к тому, как это выглядело в старые времена.

9
27.01.2020, 19:43

Поскольку все, кажется, предполагают, что вы имеете в виду «ПК до IBM» под «старыми компьютерами», я собираюсь пойти другим путем и предложить ответ, который интерпретирует «старые компьютеры» как «совместимые с IBM». до Windows 9x».

Если вы имели в виду компьютеры с версиями MS-DOS, которые включали QBASIC.EXE, у вас есть три варианта, в зависимости от того, насколько строго вы определяете запуск их «в Linux»:

  1. Если вы У нас все еще есть копия QBASIC.EXE, вы можете использовать DOSBox или DOSEMU, чтобы запустить ее в виртуализированной среде DOS. (Оба доступны в репозиториях Debian и просты в настройке. Просто установите папку для монтирования как C:, поместите в нее QBASIC.EXE, и все готово. go.)

    Это даст вам идеальную совместимость со старым исходным кодом, но никакой интеграции с основной ОС, за исключением «C: на самом деле является папкой, а не образом диска».

    Я должен уточнить, однако, что между ними есть компромисс. DOSEMU будет работать в любом терминале, который вы захотите, но не будет поддерживать причудливые низкоуровневые трюки, которые используются в QBasic (например, для специализированных графических режимов). Единственный способ поддержать это — полный эмулятор, такой как DOSBox... но DOSBox будет открывать свое собственное окно, а не использовать ваш терминал.

  2. FreeBASIC имеет qb диалект/режим, направленный на идеальную совместимость с большим подмножеством QuickBASIC. (Неподдерживаемый материал — это в основном низкоуровневый материал, связанный с тем фактом, что QuickBASIC был 16-битной системой реального режима, а FreeBASIC — 32-битной системой защищенного режима.)

    FreeBASIC предлагает двоичные файлы Linux, но вы только найдите его в своем репозитории пакетов, если вы на самом деле имели в виду «дистрибутивы семейства Debian», а не «Debian» и используете Ubuntu или производную Ubuntu, такую ​​​​как Mint.

  3. Linux-сборки QB64 даже не находятся в репозиториях Ubuntu, но они специально нацелены на то, чтобы стать наиболее совместимым потомком QuickBASIC в защищенном режиме, и даже предоставляют IDE, которая пытается клонировать QBasic/QuickBasic. ИДЕ.

8
27.01.2020, 19:43

Есть много альтернатив. Мое предложение похоже на ответ ssokolow. Если вам нужен "современный" Бейсик, но с синтаксисом, похожим на старые интерпретаторы Бейсика, вам следует попробовать BaCon. Это транспилятор BASIC, который генерирует собственный код. У проекта довольно неплохой мануал, много библиотек и примеров и даже IDE, написанная на BaCon.

enter image description here

1
27.01.2020, 19:43

Теги

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