Архив рубрики: Linux

Ваш путеводитель по одной из самых популярных и влиятельных операционных систем в мире. От базовых команд и установки дистрибутивов до глубокого изучения ядра и сетевых технологий — здесь вы найдете статьи и руководства на самые разные темы, связанные с Linux. Независимо от вашего уровня подготовки, здесь найдется что-то интересное и полезное.

Команды в Android Terminal Emulator

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

  • первый - скачать приложение Android Terminal Emulator с GooglePlay.
  • второй подключиться к смартфону с компьютера с помощью отладчика adb.

Но наша статья не об этом, сегодняшняя тема: команды в Aandroid Terminal Emulator или точнее команды терминала Android.

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

Теперь об обозначениях — для некоторых команд необходимы права root, перед ними я буду ставить знак @.

Начнем. Команды терминала это ничто иное как небольшие консольные утилиты, большинство системных утилит находится в папке /system/bin и еще несколько в /vendor/bin. Те что в vendor мы трогать не будем. Чтобы было удобнее расположу все команды по алфавиту.

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

am - Менеджер окон (Action Manager), с помощью него можно запустить и остановить любое приложение или сервис. Например запуск приложения настройки:

am start -n com.android.settings/.Settings

badblocks — проверка флешки на наличие битых секторов:

Результат можно записать в файл:

badblocks /dev/block/mmcblk0 > /sdcard/badblocks

или вывести на экран:

badblocks -v /dev/block/mmcblk0

bmgr — управление резервным копированием Android.

cat — консольная утилита для просмотра содержимого файла.

cat /sdcard/text.txt

chmod — аналогична команде Linux, меняет права доступа файла, доступен только восьмеричный формат записи.

Например дать все права (чтение, запись, выполнение):

chmod 777 /sdcard/file

chown — меняет владельца файла в Linux, Например:

chown root /sdcard/file

cmp — сравнивает два файлы

cmp /sdcard/file1 /sdcard/file2

cp — копирует файл, из источника(параметр 1) в приемник(параметр 2).

cp /sdcard/file1 /sdcard1/

Подробнее о cp можно почитать в статье копирование файлов в linux

date — показать текущую дату в системе.

date

Sat Nov 14 13:44:56 EET 2015

dd — создать образ диска, Параметры if= файл устройства диска, of=файл для записи

Например:

dd /dev/block/mmcblk0 /sdcard/img.iso

Будет создан образ флешки mmcblk0.

df — анализ свободного места на диске. Например:

df -h /dev/block/mmcblk1

Filesystem Size Used Free Blksize
/mnt/secure 484.5M 0.0K 484.5M 4096
/mnt/asec 484.5M 0.0K 484.5M 4096
/mnt/obb 484.5M 0.0K 484.5M 4096
/system 1.4G 971.7M 435.8M 4096

dmesg — просмотр лога сообщений ядра.

du — просмотр размера файла.

du /sdcard/file1

@ ext4_resize изменение размера раздела с файловой системой ext4.

@ fsck_msdos — проверка флешки на ошибки.

fsck_msdos /dev/block/mmcblk1p1

grep — утилита для фильтрации текста. Например вывести только строки содержащие terminal:

cat ~/sdcard/file | grep terminal

@ ifconfig — просмотр и управление сетевыми устройствами. Например просмотр информации о карте wifi:

ifconfig wlan0

Или отключение wifi:

ifconfig wlan0 down

Узнать список сетевых устройств можно командой:

ls /sys/class/net

iptables — управление настройками фаервола iptables, это очень обширная тема которой мы касаться не будем.

kill — уничтожить процесс по его PID.

kill 1435

Чтобы узнать pid можно использовать утилиту ps.

ln — создать ссылку на файл или папку, если указан параметр -s — символическую ссылку.

ln /sdcard/file /sdcard/file2

log — записать строку в лог системы.

log "Hollo log"

logcut — просмотр лога системы в реальном времени.

ls — просмотр списка файлов и папок в директории:

ls /mnt/

lsmod — просмотр загруженных модулей ядра

lsof — просмотр открытых в системе файлов.

make_ext4fs — форматировать флешку в файловую систему ext4

md5 — подсчитать контрольную суму файла.

md5 /sdcard/filename

mkdir — создать папку, в текущем каталоге.

mkdir имя_папки

make2fs — форматировать флешку в файловую систему ext2

mount — примонтировать диск, образ или папку. Например:

mount -t ext2 /dev/block/mmcblk1p1 /mnt/sdcard

Подробнее о монтировании можно почитать в моей статье: Монтирование в Android

mv — переместить файл, аналогично cp

netcfg — просмотр информации об сетевых соединениях.

notify — утилита для слежения за изменениями в файловой системы с помощью подсистемы ядра inotify.

ping — известная утилита для проверки доступности сетевого узла.

ping ya.ru

pm — пакетный менеджер android, позволяет, устанавливать, удалять и просматривать установленные пакеты.

ps — просмотр всех запущенных процессов и информации о них.

ps

USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 1000 848 c0106ef8 0001bfb4 S /init
root 2 0 0 0 c006e038 00000000 S kthreadd
root 3 2 0 0 c0057a54 00000000 S ksoftirqd/0

reboot — перезагрузить смартфон из консоли.

resize2fs — аналогично resize_ext4, только для ext2

rm — удалить файл.

rm /sdcard/file

rmdir — удалить папку.

rmdir /sdcard/dirname

rmmod — выгрузить модуль ядра.

rmmod имя_модуля

route — управление таблицей маршрутизации.

touch — создать пустой файл.

touch /sdcard/file

top — интерактивный вариант списка запущенных процессов.

@ screenshot — сделать снимок экрана.

screenshot /sdcard/screenshot.png

shutdown — выключить смартфон.

shutdown -h now

service — управление сервисами. Например посмотреть список запущенных сервисов:

service list

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

Десерт на сегодня - обзор новой версии Android 6.0 Marshmallow:

Сброс пароля в Linux

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

В сегодняшней статье мы разберемся что делать если забыл пароль от linux, как его правильно сбросить и не стереть при этом свои данные. Сброс пароля Linux - не очень сложная задача. Но следует уточнить, что узнать пароль нельзя, его можно только сбросить.
Читать далее Сброс пароля в Linux

Как отключить Network Manager

Во многих дистрибутивах Linux по умолчанию установлен многофункциональный менеджер управления сетевыми подключениями Network Manager. Иногда возникает необходимость отключить его. Может, вы хотите настроить интернет из консоли, нашли альтернативный способ управлять сетью, или вам нужен полный контроль на Wi-Fi-адаптером.

Для этого, независимо от дистрибутива, можно воспользоваться утилитой systemctl или же поправить несколько конфигурационных файлов программы. Чтобы отключить Network Manager Ubuntu, CentOS или Debian, достаточно выполнить команду:

sudo systemctl stop NetworkManager

Затем вы можете убедиться, что NetworkManager действительно отключён с помощью утилиты nmcli:

nmcli list

Утилита сообщает, что служба не запущена, а значит сетевыми интерфейсами она больше не управляет. Если вам нужно, чтобы NetworkManager оставался отключённым после перезагрузки, выполните такую команду:

sudo systemctl disable NetworkManager

Для того, чтобы NetworkManager не пытался настраивать сеть для интерфейсов, которые сконфигурированы в /etc/network/interfaces в Ubuntu следует добавить такую строчку в /etc/NetworkManager/NetworkManager.conf

vi /etc/NetworkManager/NetworkManager.conf

managed = false

Затем добавьте конфигурацию для нужного интерфейса, например enp0s2 в файл /etc/network/interfaces, если её там ещё нет. Например:

vi /etc/network/interfaces

iface eth1 inet static
address 192.168.0.102
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.8.8

Для CentOS или Fedora надо создать подобный конфигурационный файл интерфейса в папке /etc/sysconfig/network/. Например:

vi /etc/sysconfig/network/enp0s3.conf

TYPE=Ethernet
BOOTPROTO=dhcp
NAME=enp0s3
UUID=9c3362c0-a615-4504-bb07-f2951f3810dd
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.1.2
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
NM_MANAGED=no

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

Кроме того, вы можете захотеть удалить Network Manager. Для этого в Ubuntu и Debian надо выполнить:

sudo apt remove network-manager

А в CentOS и Fedora:

sudo yum remove network-manager

Чтобы отключить NetworkManager в Debian 7 и старых версиях Ubuntu, понадобится такая команда:

echo "manual" | sudo tee /etc/init/network-manager.override

Для выполнения команды необходимо будет ввести пароль. Осталось перезагрузить систему, и NetworkManager отключён.

Чтобы снова включить NetworkManager в современном дистрибутиве, необходимо выполнить:

sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager

И, естественно, удалить строчку managed=false из конфигурационного файла программы.

Встановлення Wi-Fi драйвера Broadcom BCM4313 в Debian

Після встановлення Ubuntu на свій HP G7, Wi-Fi в системі працював “з коробки”. Коли я вирішив встановити на нього Debian, ще під час інсталяції майстер встановлення повідомив, що не зміг знайти драйвер для Wi-Fi. Я не звернув на це уваги, але вже після встановлення системи виявилось, що бездротова мережа на ноутбуці не працює. Навіть не просто не працює: у диспетчері підключень взагалі не було інформації про бездротові мережі. Лише повідомлення, що не встановлена прошивка. Проте через кабель усе працювало нормально. Довелося тимчасово користуватися ноутбуком так.

Читать далее Встановлення Wi-Fi драйвера Broadcom BCM4313 в Debian

Установка Hamachi в Ubuntu

Наверное все слышали о популярной программе для создания VPN сетей под Windows Hamachi. Программа зарекомендовала себя среди геймеров как позволяющая играть множество игр через интернет как по локальной сети.

Но возможности в этой программы намного шире, поскольку она создает виртуальную локальную сеть между несколькими компьютерами в интернет, с ее помощью можно настроить SSH, VNC, NFC или другой доступ к компьютеру через интернет даже в обход NAT. Есть у Hamachi и версия для Linux, правда она только консольная но работать можно.
Читать далее Установка Hamachi в Ubuntu

Samba и большие файлы

Samba - набор программ для обмена файлами по локальной сети совместимый с технологиями передачи файлов в windows. Установили вы Samba, настроили все как нужно, но только решили передать по сети большой файл размером больше 1 гигабайта, как сервер рушиться, соединение отваливается или скорость передачи совсем никакая, сталкивались с такой проблемой? Я тоже. По умолчанию samba не всегда корректно настроена для работы с большими файлами. Решение в конфигурационном файле /etc/samba/smb.conf.

Строку socket options приведите к такому виду:

socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=65536 SO_SNDBUF=65536

Здесь мы отключаем задержку, и увеличиваем буферы передачи данных:

  • TCP_NODEALY IPTOS_LOWDELAY - отключение задержки TCP
  • SO_KEEPALIVE - поддерживать соединение
  • SO_RCVBUF - размер буфера входящих данных
  • SO_SNDBUF - размер буфера для исходящих данных

Сохраните изменения и перезапустите сервер. Теперь большие файлы должны передаваться корректно.

Настройка x11vnc в Ubuntu

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

В этой небольшой статье будет рассмотрена настройка x11vnc на Ubuntu. Мы погорим о том как установить VNC в Ubuntu, а также как добавить его в автозагрузку с помощьюs systemd. А теперь перейдем непосредственно к инструкции.
Читать далее Настройка x11vnc в Ubuntu

Как добавить скрипт в автозагрузку Ubuntu

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

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

Создание скрипта для автозагрузки

Скорее всего, у вас уже есть скрипт, который вы хотите запускать. Но если нет, или же вы хотите попрактиковаться с другим скриптом, то создайте скрипт в папке /usr/local/bin. Эта папка обычно используется для хранения пользовательских бинарных файлов. Дальше в этой статье я буду использовать путь к скрипту /usr/local/kovalets-script.sh:

sudo vi /usr/local/kovalets-script.sh

#!/bin/bash
echo "Hello world" > ~/file

Этот скрипт просто выводит строчку "Hello world" в файл в домашней папке текущего пользователя. Более подробно о создании скриптов читайте в статье написание скриптов на Bash. Когда скрипт будет готов, сделайте его исполняемым:

sudo chmod ugo+x /usr/local/kovalets-script.sh

Вы можете запустить скрипт и убедится что он работает. А теперь давайте рассмотрим как добавить скрипт в автозагрузку Ubuntu.

Автозагрузка скрипта при старте системы

В Systemd нет способа запускать все пользовательские скрипты в одном месте. Но вы можете создать юнит файл, который будет запускать ваш скрипт. Для этого используйте следующую команду:

sudo systemctl edit --force --full script.service

Команда откроет текстовый редактор, добавьте в него такое содержимое:

[Unit]
Description=My Script Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/local/kovalets-script.sh
[Install]
WantedBy=multi-user.target

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

Теперь добавьте этот скрипт в автозагрузку:

sudo systemctl enable script

Если Systemd не видит такого сервиса, обновите информацию о юнитах с помощью команды:

sudo systemctl daemon-reload

После этого скрипт запустится во время инициализации системы. Вы можете убедится что всё работает, перезагрузив систему и посмотрев в папку /root. Там должен появится файл с текстом Hello world.

Если вам больше нравится старый способ загрузки скриптов, с помощью rc.local, вы можете создать файл /etc/rc.local, сделать его исполняемым и прописать путь к нему в строке ExecStart юнит-файла, после чего сможете им пользоваться как это было до появления Systemd.

Автозагрузка скрипта при входе пользователя

Такой тип автозагрузки может быть полезным для запуска приложений пользователя или программ удалённого управления, например x11vnc.

1. Автозагрузка Gnome в GUI

Запустите утилиту Автоматически запускаемые приложения или Startup Applications в главном меню системы. Эту же утилиту можно запустить из терминала выполнив команду:

gnome-session-properties

Нажмите кнопку Добавить (Add) и в открывшемся окне, в поле Команда (Command) введите полный путь к файлу вашего скрипта или выберите его с помощью кнопки Обзор (Browse), затем нажмите Добавить (Add) внизу окна:

Скрипт будет выполнен после загрузки графической оболочки Ubuntu. Вы можете перезагрузить систему и убедится, что в домашней папке вашего пользователя появился файл file, с содержимым "Hello world".

2. Автозагрузка Gnome вручную

Всё описанное в предыдущем пункте можно сделать и вручную, без утилиты Startup Applications. Ярлыки приложений для автозагрузки могут находится в двух расположениях:

  • /etc/xdg/autostart/ - для всех пользователей;
  • ~/.config/autostart/ - для текущего пользователя.

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

vi ~/.config/autostart/script.desktop

[Desktop Entry]
Name=Script
Type=Application
Exec=/usr/local/kovalets-script.sh

Здесь в поле Exec необходимо прописать путь к скрипту, который надо выполнить, а в поле Name имя ярлыка. После этого ваш скрипт будет запускаться автоматически при входе пользователя в графическую оболочку. Утилита Startup Applications будет видеть этот ярлык и вы можете управлять им там тоже.

3. Автозагрузка в Systemd

Система инициализации Systemd позволяет запускать отдельный набор сервисов для каждого пользователя. Для управления такими сервисами нужно использовать опцию --user. Используйте такую команду для того чтобы создать файл скрипта:

systemctl edit --user --force --full script.service

[Unit]
Description=My Script Service
After=default.target
[Service]
Type=idle
ExecStart=/usr/local/kovalets-script.sh
[Install]
WantedBy=default.target

Юнит файл будет создан только для текущего пользователя. В данном случае это будет файл /home/sergiy/.config/systemd/user/script.service. Обратите внимание, что цель multi-user.target здесь недоступна, поэтому следует использовать default.target. Теперь осталось только добавить этот юнит в автозагрузку:

systemctl enable --user script.service

Поле этого можно перезагрузить систему и убедится что всё работает.

Выводы

Теперь вы знаете как добавить скрипт в автозагрузку Linux несколькими способами. Это может быть немного сложно для начинающих, но вы можете ознакомиться ещё со статьей про Автозагрузку сервисов, а также Управление службами для того чтобы лучше понимать как всё работает.

Список установленных программ в Ubuntu

Многих новых пользователей Linux интересует, как посмотреть список установленных программ в Ubuntu. Не важно зачем: может вам нужно удалить ту или иную программу, или просто посмотреть, сколько программ в системе установлено. Или же вам необходимо экспортировать список всех программ, чтобы потом быстро установить их в другой системе. Сделать это можно несколькими способами.

Начнём с более простого способа - с помощью главного меню. Откройте меню, затем перейдите в категорию Приложения, в разделе все вы можете увидеть ярлыки установленных программ:

 

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

 

Второй способ — с помощью центра приложений. Откройте менеджер приложений, щелкнув по его значку на боковой панели:

 

 

Выберите вкладку Установлено:

И снова здесь не все приложения, а только установленные через центр приложений или snap-пакеты. Каждую программу можно удалить или посмотреть дополнительную информацию:

 

 

 

Способ третий — более сложный и потребует установки дополнительного программного обеспечения — менеджера пакетов. Запустите терминал (Ctrl + Alt + T) и наберите:

sudo apt install synaptic

Установка пакетов — действие от суперпользователя, поэтому система спросит пароль. Когда процесс закончится, найдите программу в главном меню и откройте её. Затем перейдите в СостоянияУстановленные:

 

В списке будут отображены все пакеты,  установленные через пакетный менеджер apt, в том числе библиотеки и сервисы. Но тут нет пакетов, установленных через snap. Здесь также можно удалять и устанавливать приложения. Сначала их надо выбрать, а потом нажать кнопку Применить.

 

Способ четвёртый — с помощью консольной утилиты dpkg. Будет выведена аналогичная информация, что и в synaptic, только в терминале. Откройте терминал и наберите:

dpkg -l

Утилита выведет список всех установленных пакетов с указанием версии, архитектуры и краткого описания:

 

Чтобы посмотреть список пакетов Ubuntu, установленных через пакетный менеджер snap, используйте такую команду в терминале:

snap list

Как видите, посмотреть список абсолютно всех программ в одном месте нельзя. Самый полный список показывают утилиты dpkg и synaptic. Есть и другие способы, но этого, я думаю, будет вполне достаточно. Удачи вам в экспериментах, и не удалите ничего нужного!