Інтерпретатор командного рядка
Див. також: Доступ до SSH для новачків
Інтерпретатор командного рядка — це програма, яка читає рядки тексту, введені користувачем, і інтерпретує їх у контексті операційної системи або мови програмування/скриптів. Взаємодія відбувається через інтерфейс командного рядка. Інші поширені (але технічно не зовсім точні) назви — консоль або шелл.
Стандартна оболонка unix shell в OpenWrt — це форк Busybox від реалізації Almquist shell з Debian (див. → https://www.in-ulm.de/~mascheck/various/ash/#busybox).
Запуск
Після завершення завантаження запускається демон init — це може бути init, systemd, upstart, тощо. OpenWrt використовує procd. Далі виконуються скрипти завантаження з /etc/rc.d, після чого запускаються різні програми, включаючи вибрану оболонку. Вона реагує на натискання клавіш і виводить командний рядок на підключений дисплей.
Але більшість пристроїв з OpenWrt не мають клавіатури чи дисплея. Тому доступ здійснюється через послідовний порт (локально) або через Ethernet (мережею).
Мережа
Для доступу до оболонки по мережі потрібні додаткові програми. Уся передача даних здійснюється через мережеві протоколи.
Переважно використовуються протоколи telnet і SSH. Вони працюють за схемою сервер ↔ клієнт. На пристрої з OpenWrt запускається telnetd для telnet і dropbear для SSH. Для Windows можна використати PuTTY або WinSCP. WinSCP не завжди працює коректно, але Konqueror з fish:// працює. Див. FISH.
(OpenWrt також має клієнти SSH ssh і telnet telnet для підключення до інших пристроїв.)
До логіна через веб інтерфейс активний тільки telnetd, а після — тільки dropbear.
Після успішного входу dropbear запускає вказану оболонку (можна встановити декілька одночасно) з правами відповідного користувача.
Конфігурація
У OpenWrt це здійснюється у файлі /etc/profile шляхом встановлення змінних середовища та псевдонімів. Все працює «з коробки», але можна:
- налаштувати командний рядок за допомогою змінної PS1. Дивись → https://controlc.de/2010/03/12/bash-shell-einrichten/ та ще багато інших сторінок в інтернеті з порадами щодо цього.
- змінити або додати нові змінні середовища, тощо.
Копіювання і вставка
В PuTTY виділіть текст мишею — він автоматично копіюється. Вставити можна [Ctrl]+[v]. Щоб вставити в PuTTY, скопіюйте звичайним способом ([Ctrl]+[c]) і натисніть праву кнопку миші у вікні PuTTY.
Цифрова клавіатура в PuTTY при роботі з Vi
В PuTTY перейдіть у “Terminal” → “Features” і активуйте “Disable application keypad mode”.
Виконання команд
Для ознайомлення з файловою системою див. flash.layout.
При вході ви знаходитесь у вашому $HOME, наприклад /root для користувача root.
| Команда | Пояснення |
|---|---|
pwd | поточний каталог |
cd | зміна каталогу, напр. cd .., cd /etc |
ls | список файлів каталогу |
cat | вивід вмісту файлу |
cp | копіювання файлів |
mv | переміщення або перейменування |
df | вільне місце на диску, напр. df -h |
free | інформація про оперативну пам’ять |
uptime | час роботи пристрою |
dmesg | повідомлення ядра |
logread | логи системи |
cat /proc/version | версія ядра |
cat /proc/meminfo | використання пам’яті |
cat /proc/cpuinfo | інформація про процесор |
cat /proc/mtd | MTD розділи |
cat /proc/partitions | розділи накопичувачів |
cat /proc/net/nf_conntrack | з’єднання netfilter |
cat /proc/cmdline | параметри ядра |
cat /proc/modules | завантажені модулі |
Редагування файлів
Для редагування текстових файлів використовується редактор vi.
vi має два режими: командний та вставки.
Для командного — натисніть [Esc].
Для вставки — [i] або [a].
Запуск vi
vi /etc/config/network''
''vi firewall.user''
Вихід з vi
:w — зберегти
:q — вийти
:wq! — зберегти й вийти
:%s/старе/нове/g — замінити рядок у файлі
Альтернативні редактори
nano, joe, mg, vim, mc --edit, zile тощо
'Примітка:' багато графічних редакторів (наприклад, Visual Studio Code, Notepad++) мають плагіни для редагування файлів через SFTP.
Скрипти оболонки
OpenWrt використовує оболонку ash з Busybox, яка переважно сумісна з POSIX. Див. shell script.
Виконання скриптів
''sh /шлях/до/файлу.sh''
Зробити скрипт виконуваним:
chmod +x /шлях/до/файлу.sh /шлях/до/файлу.sh
Налаштування профілю
Приклад зміни профілю:
mkdir -p /etc/profile.d cat << "EOF" > /etc/profile.d/custom.sh export EDITOR="nano" export PAGER="less" alias bridge="bridge -color=auto" alias diff="diff --color=auto" alias grep="grep --color=auto" alias ip="ip -color=auto" EOF . /etc/profile
Файлові менеджери
mc (Midnight Commander)
deco (Demos Commander)
Графічні оболонки
Додаткова допомога
https://wiki.debian.org/CommandLineInterface
http://linuxcommand.org/tlcl.php — безкоштовна книга Вільяма Шоттса


