Установка bash на Android

Обновлено: 29.01.2023

Если вы гик, вам может понадобиться интерфейс командной строки на вашем Andbox. Правильно настроенный эмулятор терминала предоставит вам почти такой же интерфейс, как и терминал Linux. Это особенно полезно, если у вашего Andbox есть физическая клавиатура.

Если вы не гик, вам все равно следует установить эмулятор терминала: он в любом случае будет полезен, так как вы сможете использовать некоторые важные команды командной строки, такие как Busybox. Подробнее об этом позже.

Он предоставляет полнофункциональный эмулятор терминала, бесценный как минимум по двум причинам. Прежде всего, вы сможете запускать большинство программ командной строки, доступных в Linux; во многих случаях вы даже можете скомпилировать их самостоятельно. Во-вторых, терминал делает стандартные команды Android, находящиеся в /system/bin и /system/xbin, доступными для вас. Но будьте осторожны: это не то же самое, что стандартные команды Linux! Это всего лишь подмножество стандартных команд GNU (даже cp отсутствует: вместо этого используйте cat file > newfile), и обычно они ведут себя по-разному.

Если вам нужен более полный опыт работы с командной строкой, вы также можете установить среду командной строки, например KBOX, ZShaolin, Terminal IDE или Termux:

    KBOX3 (KBOX2 — более старая версия):

KBOX — это компактная и полнофункциональная среда командной строки, подобная Linux. Он также предоставляет дополнительное программное обеспечение, такое как gcc , tmux , SSH-сервер dropbear и многое другое.

Zshaolin — это терминал на основе zsh, который предоставляет множество (я имею в виду множество) дополнительного бесплатного программного обеспечения. Все это FOSS, но не бесплатно.

Это очень полная среда командной строки, подобная Linux. Он сосредоточен на разработке, предоставляя Vim, gcc, mc, ssh и множество программного обеспечения. После установки он дает вам возможность «Установить систему» ​​для установки дополнительных компонентов, включая оболочку bash.

Все они отличные программы: опытные пользователи действительно не могут обойтись без терминала.

Какой из них установить, зависит от того, сколько места на SD-карте вы можете себе позволить. Если у вас есть несколько сотен мегабайт, я бы посоветовал вам установить Terminal IDE: он очень похож на Linux. Если вам не хватает памяти, я предлагаю вам установить KBOX: это очень хороший компромисс.

Пользователи Android 5 и более поздних версий могут захотеть установить альтернативный эмулятор терминала под названием Termux:

Это очень удобно и автономно, т. е. не требует KBOX или другой среды командной строки. Дополнительное программное обеспечение можно установить просто с помощью apt (пользователи Debian, вам это знакомо?):

Termux выпущен под лицензией GPLv3, но некоторые надстройки доступны за небольшую плату.

Выбор KBOX2 или KBOX3 зависит от версии Android вашего Andbox. Я установил KBOX2 на два своих устройства Andbox, работающих под управлением Android 4.*, и KBOX3 на свой новый телефон. Далее я покажу, как установить KBOX2; установка KBOX3 очень похожа. Сначала попробуйте KBOX3; если при запуске установщика KBOX3 возникает ошибка сегментации, попробуйте использовать KBOX2.

Загрузите базовый установщик, который называется kbox2-base-installer или kbox3-install-base. Откройте эмулятор терминала и введите следующие команды:

Если установка прошла успешно, вы можете заменить стандартную оболочку Android на KBOX. Откройте настройки эмулятора терминала, выберите «Командная строка» и измените:

Будьте очень внимательны, чтобы написать правильно! Если вы допустите ошибку, эмулятор терминала не запустится, и вам придется удалить его и установить заново.

Выйдите из эмулятора терминала и снова откройте его. Командная строка должна была измениться на kbox$ :

Теперь вы работаете в поддельной среде UNIX; многие команды предоставляются Busybox. Если вы хотите получить доступ к файловой системе Android, вы найдете ее в каталоге /android_root.

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

Дополнительные программы предоставляются в виде пакетов .deb. Это тот же самый формат, который используется в Debian и многих других дистрибутивах Linux, но очевидно, что пакеты, предоставляемые для KBOX, работают только в KBOX. Загрузите нужный пакет и установите его, как показано в следующем примере. Давайте установим coreutils, улучшенную реализацию, которая заменяет BusyBox от KBOX по умолчанию:

Печать через FTP

Если вы установите ftp-клиент командной строки KBOX, вы сможете печатать PDF-файлы из Andbox. Я не имею в виду Google Cloud Print; и я повторяю, что вы могли бы , потому что на самом деле это зависит от возможностей вашего принтера.

Некоторые сетевые принтеры включают FTP-сервер, и вы можете печатать файлы PostScript или PDF, отправляя их непосредственно на принтер через FTP. Прежде всего, узнайте, поддерживает ли ваш принтер FTP:

Как видите, указанный выше принтер (это Aficio MP 4001) имеет открытый порт FTP, в дополнение к стандартному порту JetDirect 9100 и многим другим (который должен быть закрыт, но все же.)

Из KBOX запустите ftp-клиент и скопируйте файл на принтер, как показано в следующем сеансе. Имя пользователя ``ftp'', пароль ``guest''. Это общие настройки FTP по умолчанию.

Когда файл будет передан на принтер, он будет распечатан.

Я успешно протестировал этот метод на нескольких сетевых принтерах HP и Aficio. Очевидно, ваш пробег может варьироваться; например, вам может понадобиться указать реальное имя пользователя и пароль вместо ``ftp'', ``guest''. Спросите своего местного системного администратора (и купите ему/ей пива, пока вы этим занимаетесь).

Ghost Commander изначально обеспечивает доступ к ftp-серверам, поэтому его можно использовать вместо ftp-клиента из командной строки.

Помимо локальных оболочек, вы можете открыть оболочку на своем устройстве удаленно, через ssh ; вам понадобится ssh-сервер на Andbox. Таким сервером является SSHelper (бесплатное программное обеспечение, GPL):

Поскольку он работает на нерутированных устройствах, он использует порт 2222 вместо стандартного порта 22; то есть, чтобы подключиться к нему из терминала Linux, вы должны сделать:

Для подключения используется стандартная оболочка Android, /system/bin/sh . Ничто не мешает вам запустить, скажем, KBOX. Все, что вам нужно сделать, это ввести полный путь к оболочке KBOX:

После того, как у вас появится эмулятор терминала, вы сможете добавить в свой Android-приставку множество программ на основе командной строки. Если вы гик, это бесценное расширение, которое делает ваш Andbox ближе к «настоящему» компьютеру; но даже если вы обычный пользователь, читайте дальше.

Вы можете компилировать программы на языке C непосредственно в Andbox, а также в Linux. В последнем случае вы используете так называемую цепочку инструментов кросс-компилятора: компилятор и связанные с ним binutils, которые создают код для Android. Во многих случаях, но не только, для процессора ARM.

Большинство дистрибутивов Linux предоставляют одну или несколько цепочек инструментов для кросс-компиляции, предназначенных для ARM на Android. На моем компьютере я установил пакет gcc-arm-linux-androideabi и его зависимости. Если ваши дистрибутивы Linux не включают его по умолчанию, получите соответствующий набор инструментов с домашней страницы NDK:

Еще одна цепочка инструментов для Android на процессорах x86 называется gcc-i686-linux-android .

Выберите соответствующую архитектуру и загрузите двоичный пакет для 32-разрядной или 64-разрядной версии Linux. Каталог

содержит готовые двоичные файлы: включите этот каталог в $PATH . Также доступны двоичные файлы MIPS и x86.

Предположим, вы компилируете для ARM, компилятор называется arm-linux-androideabi-gcc . Вы используете его вместо gcc для компиляции двоичных файлов Android. Как правило, все binutils имеют префикс arm-linux-androideabi-.

Параметр -static делает исполняемый файл автономным. Это может быть необходимо, чтобы избежать проблем с общими библиотеками, но это также увеличивает размер исполняемого файла.

Теперь вы можете скопировать программу на свой Android-бокс, но не можете копировать ее в любой каталог по вашему выбору. На самом деле, если вы скопируете программу в каталог во внутренней памяти, например /mnt/sdcard , вы не сможете запустить программу, поскольку ей не хватает разрешений 755. Помните, что /mnt/sdcard монтируется как VFAT, поэтому он не может предоставлять права доступа к файлам.

К счастью, в файловой системе Android есть каталог, доступный для записи и поддерживающий права доступа к файлам: /data/local/tmp . В отличие от каталога /tmp в Linux, файлы в этом каталоге не удаляются во время загрузки.

Вот как скопировать (все версии Android) и запустить (Android старше 5.*) ваше приложение на Andbox:

Например, с помощью KBOX:

Для Android можно легко составить замечательный список программ командной строки. Среди прочего, я портировал интерпретатор Bywater BASIC:

Версия C текстового редактора e3 (версия 2.7.1) может быть скомпилирована без каких-либо изменений:

то же самое для музыкальных инструментов ABC:

Скомпилируйте нужные вам программы, скопируйте их в /data/local/tmp/ и убедитесь, что этот каталог включен в $PATH вашего любимого терминала.

Самый простой способ компилировать программы на Android-устройстве — это установить упомянутую выше среду Terminal IDE и ее ``Систему'', включающую компилятор gcc. Он включен, но в виде сжатого архива: пользователь может распаковать и установить его. Давайте посмотрим, как это сделать.

Запустите Terminal IDE, войдите в терминал и вставьте следующие команды:

Конечно, вы можете использовать vi, не так ли? Перейдите в конец файла и добавьте эту строку:

сохраните, выйдите из vi , выйдите из Terminal IDE и перезапустите его. Вы расширили PATH, чтобы включить каталог, содержащий исполняемый файл gcc. Теперь вы сможете запустить его:

Вот оно! Отныне вы можете компилировать программы прямо на вашем устройстве Android. Однако не рассчитывайте, что сможете скомпилировать все до единого.

Как указано на главной странице CCTools, «CCTools — это встроенная среда разработки для устройств Android. Он включает редактор исходного кода C/C++/Lua/GNU Makefile/Shell с подсветкой синтаксиса и полный набор инструментов Android gcc для устройств arm/mips/x86.''

CCTools — очень хорошее дополнение, а также обеспечивает поддержку Fortran, SDL и многого другого. Я предлагаю вам попробовать.

Попробуйте эти терминальные приложения для Android, чтобы запускать инструменты командной строки Linux и многое другое на своем телефоне.

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

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

1. Термукс

Termux — это больше, чем просто эмулятор терминала. это целая среда Linux. Когда вы устанавливаете Termux, вы получаете, по сути, минимальную систему Linux, работающую на вашем Android-устройстве в виде приложения. По умолчанию вам предоставляется оболочка Bash, и большинство команд и утилит Linux работают должным образом.

Termux также предоставляет в своем интерфейсе клавиши Ctrl, Alt, Esc и клавиши со стрелками, что упрощает ввод сочетаний клавиш, если у вас нет под рукой настоящей клавиатуры.

Как и в типичной системе Linux, в Termux есть менеджер пакетов, который, возможно, является самой сильной стороной Termux. Через диспетчер пакетов вы можете установить другие оболочки, такие как Zsh или fish, редакторы исходного кода, такие как Vim и Emacs, а также клиент и сервер SSH. Это еще не все: вы также можете использовать такие инструменты, как FFmpeg и ImageMagick, а также языки программирования, такие как C, Ruby, Perl и Python.

С помощью соответствующих команд, оконного менеджера и средства просмотра VNC вы можете установить графическую среду в Termux. Это позволяет вам запускать настоящие приложения Linux, такие как GIMP, как если бы они были на ПК.

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

С мая 2021 года Termux больше не будет получать обновления в Play Store в обозримом будущем. Это связано с изменением политики Play Store, которое нарушит функциональность Termux. На данный момент вы можете получить самую последнюю версию Termux на F-Droid, торговой площадке Android-приложений с открытым исходным кодом.

Загрузить: Termux из Google Play | F-Droid (бесплатно)

2. СокSSH

Как следует из названия, JuiceSSH — это эмулятор терминала с поддержкой SSH, а также Telnet и Mosh. Его основная функция — предоставить вам возможность удаленного подключения к другому ПК, будь то ваш собственный компьютер в локальной сети или удаленный сервер.

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

В качестве терминала JuiceSSH предоставляет вам полноцветную консоль с параметрами тем, включая шрифты. Внутри терминала вы найдете программные клавиши для Ctrl, Esc, Alt, Tab и клавиши со стрелками, но вы также можете использовать внешнюю клавиатуру, если она у вас есть.

JuiceSSH также позволяет открывать оболочку локально, предоставляя вам доступ к Bash и его стандартным утилитам. Однако вы не можете устанавливать какие-либо дополнительные пакеты, поэтому вы ограничены минимальной средой Linux.

В приложении вы можете установить плагины для расширения функциональности JuiceSSH. Среди этих плагинов вы найдете монитор производительности, показывающий использование ЦП, памяти, сети и диска на вашем Linux-сервере. Существует также подключаемый модуль для использования JuiceSSH с профилями Tasker, позволяющий использовать мощные возможности автоматизации Tasker.

JuiceSSH также имеет некоторые премиальные функции, доступные при единовременной покупке, такие как возможность резервного копирования и синхронизации всех сохраненных подключений и настроек между несколькими устройствами. Обновление также позволяет интегрироваться с Amazon AWS, а также сохранять команды и скрипты в виде фрагментов, к которым можно быстро получить доступ между сеансами.

Хотя Android сам по себе является функциональной платформой, его функции безопасности иногда могут нарушать функциональность программ Linux. В таких случаях лучше работать на удаленном ПК или сервере, так как настольная операционная система может быть более гибкой. Вот где на помощь приходят такие приложения, как JuiceSSH, поэтому, если это то, что вы ищете, обязательно попробуйте это.

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


Если вы похожи на меня, вы всегда чувствуете себя лучше, имея возможность носить с собой терминал Linux. С телефоном Ubuntu это так же просто, как установить официальное приложение Terminal и использовать собственный Bash. Однако с Android не всегда все так просто.

Позвольте представить вам небольшое бесплатное удобное приложение под названием Termux.Этот мощный эмулятор терминала Linux включает в себя множество устанавливаемых инструментов, включая ack-grep, bzip2, cmake, dnsutils, emacs, gcc, git, gnupg, htop, less, nano, php, ssh, tar и многие другие. После установки эти инструменты полностью функциональны и готовы к использованию… так же, как на полнофункциональной машине Linux. Вы можете удаленно подключаться к своим серверам, писать и компилировать код и выполнять другие действия.

Обязательно к прочтению о мобильных устройствах

SEE: Защита вашего мобильного предприятия (специальная функция ZDNet/TechRepublic)

Установка Termux

  1. Откройте Google Play Маркет на устройстве Android.
  2. Выполните поиск по термину.
  3. Найдите и коснитесь записи Фредрика Форнуолла.
  4. Нажмите "Установить".
  5. Прочитайте список разрешений (если применимо).
  6. Нажмите "Принять".
  7. Дождитесь завершения установки.

После установки вы должны увидеть панель запуска Termux на главном экране и/или в панели приложений. Коснитесь значка, чтобы запустить приложение.

Использование Termux

Когда вы запустите Termux, вы увидите очень простой экран с базовой командной строкой Bash (рис. A).

Рисунок А


Termux работает на Nextbit Robin.

Первое, что вам нужно сделать, это обновить список пакетов. Для этого введите команду apt update. Выполнение этой команды может привести к появлению сообщения о том, что у вас есть обновляемые приложения (рис. Б).

Рисунок Б


Nexus 6 марки Verizon с двумя обновляемыми приложениями для Termux.

Если у вас есть обновляемые приложения, выполните команду apt upgrade, а затем при появлении запроса нажмите y и нажмите Enter. Все обновления будут выполняться до завершения.

Установка приложения

Чтобы просмотреть полный список доступных для установки приложений, введите команду apt list. Затем вы можете просмотреть результаты (рис. C), чтобы узнать, доступно ли нужное вам приложение.

Рисунок C


Полный список доступных приложений Termux.

Допустим, вы хотите установить пакет openssh: для этого введите команду apt install openssh. Вам будет предложено нажать y, чтобы подтвердить установку — openssh установится. Установив это приложение, вы можете выполнить команду ssh точно так же, как если бы вы сидели перед стандартным рабочим столом или сервером Linux.

Предостережение

Вы можете установить приложения (например, редактор nano), требующие использования клавиши Ctrl; понятно, что на клавиатуре Андроида такой клавиши нет, так что же делать? К счастью, разработчик это учел. Когда вам нужно использовать клавишу Ctrl, просто нажмите кнопку уменьшения громкости. Например, если вам нужно сохранить и закрыть в nano, нажмите и удерживайте кнопку уменьшения громкости, а затем нажмите клавишу x.

Выход из приложения

Чтобы выйти из Termux, вам нужно всего лишь ввести команду exit, нажать Enter и еще раз нажать Enter. Приложение закроется, и вы вернетесь к Android.

Что еще можно пожелать?

Termux ограничен только инструментами командной строки, но когда вам нужна мощь терминала Linux на ладони, лучшего решения, чем Termux, не найти. Попробуйте это приложение и посмотрите, не сделает ли оно платформу Android немного более полной.

Используйте текстовый редактор, SSH для подключения к компьютеру или даже управляйте своим кластером Kubernetes прямо с ладони с помощью Termux.

 Смокинг и мягкие игрушки Android на полке

Подписаться сейчас

Еженедельно получайте самое интересное на свой почтовый ящик.

Что касается ультрамобильных вычислений, я предпочитаю PocketCHIP или Raspberry Pi с экраном, а не мобильный телефон или планшет. Эти решения предлагают чистую среду Linux с настолько открытым исходным кодом, насколько позволяет аппаратное обеспечение, и не делают никаких предположений о том, как я ожидаю работать.

Однако иногда единственное, что у меня есть с собой, — это мобильный телефон. Хотя есть несколько действительно отличных приложений для Android, многие из них кажутся излишними для простых задач, особенно зная, сколько можно сделать в простом терминале на моем рабочем столе Linux. Я не единственный, кто так считает, и именно поэтому родился проект Termux.

Termux — это эмулятор терминала и приложение для среды Linux для Android. Это также не требует рутирования вашего устройства.

termux-pkg.jpg

Termux

Termux автоматически устанавливает минимальную базовую систему, а дополнительные пакеты доступны с помощью диспетчера пакетов, как и в Fedora, Debian и т. п.

Установить Termux

Установить Termux так же просто, как установить любое приложение на Android-устройство. Вы можете использовать магазин Google Play по умолчанию или репозиторий приложений с открытым исходным кодом F-Droid.

termux-fdroid.jpg

Termux на F-Droid

Linux-подобный Android

После того как вы установили Termux на свой мобильный телефон, у вас, по сути, есть минимальная система Linux, работающая как приложение на вашем устройстве Android (на базе Linux). Вы можете использовать большинство обычных терминальных приложений, с которыми вы знакомы, или вы можете ознакомиться с ними теперь, когда они есть на вашем телефоне. Что наиболее важно, интерфейс Termux предоставляет программные клавиши Ctrl, Alt, Esc и клавиши со стрелками, поэтому основные сочетания клавиш легко набирать даже на виртуальной клавиатуре. В длительных поездках я предпочитаю брать с собой клавиатуру Bluetooth, поэтому я могу использовать Termux так же легко, как терминал на своем настольном компьютере или ноутбуке.

По умолчанию Termux запускает Bash:

Большинство команд, к которым вы привыкли, будут работать должным образом, независимо от того, являются ли они встроенными командами Bash или обычным набором стандартных команд и утилит Linux. Также доступно несколько других оболочек, включая Zsh и tcsh.

Установка команд

Если вы привыкли к Linux или даже к Homebrew на Mac или Chocolatey на Windows, то вы уже знаете, как установить дополнительные команды для Termux. Его внутренним менеджером пакетов является Apt из Debian Linux, но Termux использует команду pkg в качестве упрощенного внешнего интерфейса. Результат приближается к последовательной простоте использования DNF в Fedora, и мне бы хотелось видеть pkg в качестве уровня абстракции на большем количестве платформ (представьте, что вы используете одни и те же команды управления пакетами в Debian, RHEL и Slackware).

Первым пакетом, который я установил, был простой текстовый редактор:

Запуск Jed был точно таким же, как запуск его на моем рабочем столе RHEL. Оба запускаются в терминале и используют одни и те же сочетания клавиш. Это именно то мобильное приложение, которое мне нужно: такое же, как на компьютере.

Пульт дистанционного управления

Текстовый редактор — это одно, но Termux раскрывает свой истинный потенциал при первом подключении SSH к компьютеру. С помощью этого простого терминала вы можете войти на любой компьютер в любой сети, к которой у вас есть доступ. У вас есть портативная консоль, которую вы можете использовать в качестве хоста или терминала с любой доступной вам вычислительной мощностью.

Однако на SSH это не заканчивается. Для kubectl существует пакет Termux, поэтому с помощью параметра use-context в kubectl вы можете поддерживать свой кластер Kubernetes из любого места.

Участие в Termux

Что мне больше всего нравится в Termux, так это то, что он устраняет существенные препятствия для участия в мобильном проекте. Все современные мобильные платформы с открытым исходным кодом основаны на Android или на базе Android, для чего требуется специальный набор инструментов и достаточное знание Java.

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

Положи терминал в карман

Termux — отличный способ изучить терминал Linux, и его легко установить. Установите Termux на свой телефон или планшет, ознакомьтесь с некоторыми из наших основ работы с терминалом (например, нашими статьями о освоении команд ls и cat) и нашей памяткой по Bash, и измените способ использования своего мобильного телефона.

Читайте также: