Новичкам в Linux



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

и много других. Перед дальнейшим чтением прочтите подобное руководство.


Некоторые полезные приемы работы в Linux (на Keenetic и не только на Keenetic)

Вопрос: Как скопировать текст из окна putty в буфер обмена windows?
Ответ: Нужно просто выделить текст мышкой.

Вопрос: Как скопировать текст из буфера обмена windows в putty?
Ответ: Нужно нажать правую кнопку мышки в окне putty.

Вопрос: Как быстро набрать длинный путь в putty?
Ответ: Используйте клавишу <tab>. Попробуйте так, набираем в окне putty "/m", потом <tab>, еще раз <tab>. Потом "/sy", потом <tab> и т.д. Если после нажатия <tab> ничего не происходит, нажимаем <tab> еще раз, Вам будет предложен список вариантов продолжения. Набираем несколько первых букв и дальше <tab>.

Вопрос: Как повторить ранее введенную команду?
Ответ: Нажмите на клавиатуре кнопку со стрелочкой вверх. Нажимая клавиши стрелки вверх, вниз - перемещайтесь по ранее введенным командам. Выберете нужную команду, если нужно отредактируйте её и нажмите <Enter>.

Вопрос: Как редактирвать файлы на Keenetic?
Ответ: Поставьте пакет mc (opkg install mc). Запустите mc (команда mc). Перемещайтесь с помощью клавиш стрелок по директориям. Клавиша <Tab> меняет активную панель. Выбираем "/.." + <Enter> для перемещения по дереву директорий вверх. Для просмотра содержимого файла нажмите F3, для редактирования F4. Для смены кодировки просматриваемого/редактируемого файла - <Alt-E>. Для использования буфера обмена windows следует держать нажатой клавишу <Shift> на клавиатуре. Можно использовать и редактор nano. Поставьте пакет (opkg install nano) и вызывайте nano, указывая путь к файлу: (nano <путь к файлу>). Редактор nano в некоторых случаях корректнее работает с буфером обмена. Знатоки могут использовать стандартный редактор Linux редактор vi, он устанавливается с ситемой пакетов opkg.

Вопрос: Как запустить исполняемый файл (или скрипт) из текущей директории?
Ответ: Перед именем файла следует набрать "./", клавиша <tab> и в этом случае работает. Пример: если мы находимся в директории "/media/DISK_A1/system/etc/init.d/", то для остановки сервера minidlna набираем

./S50minidlna stop

Вопрос: Как проверисть, запущена ли программа?
Ответ: Наберите «ps», из вывода будет понятно:

/media/DISK_A1/system/root # ps
  PID  Uid        VSZ Stat Command
    ...
<тут строки выбросил >
 1182 root       1172 S   /media/DISK_A1/system/usr/sbin/dropbear -d /media/DIS
 1185 root        892 S   /media/DISK_A1/system/usr/sbin/inadyn -F /media/DISK_
 1194 nobody     3248 S   /media/DISK_A1/system/usr/sbin/openvpn --cd /media/DI
 3786 root       1248 S   /media/DISK_A1/system/usr/sbin/dropbear -d /media/DIS
 3787 root       1036 S   -ash
 3823 root       1024 R   ps

Видим, что запущены dropbear, inadyn, openvpn.

Вопрос: Как посмотреть, сколько ресурсов (ram, cpu) «потребляет» программа?
Ответ: Запустите top (команда «top»). Для выхода из top нажмите <Ctrl-C>. Можно поставить более функциональный и красивый вариант программы top под названием htop (opkg install htop). Выход из htop по <F10>.

Вопрос: Как посмотреть состояние памяти?
Ответ: Командой «free»:

/media/DISK_A1/system/root # free
              total         used         free       shared      buffers
  Mem:        28956        21912         7044            0         2468
 Swap:       131064            0       131064
Total:       160020        21912       138108

Вопрос: Я запустил демона (программу в режиме отладки) для просмотра логов. Как ее завершить?
Ответ: Нажать <Ctrl-C>.

Вопрос: Команда «opkg list» (или другая) выдает длинный список, который на экране не помещается, как такие выдачи удобнее смотреть?
Ответ: Добавьте в конец программы «| more». Например «opkg list | more». После этого нажимайте пробел для следующей страницы списка, можно нажать «q» для окончания выдачи.
Если в выдаче программы Вы ищите определенные строки, например «php», можно набрать «opkg list | grep php», будут выданы на экран только строки с «php».
Примечание: Для того, чтобы использовать «more», нужно обновить busybox. Для этого выполняем две команды:

opkg update
opkg upgrade

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

Вопрос: Я написал свой скрипт (вариант скачал скрипт), но он не выполняется. В чем дело?
Ответ: В linux у файлов существует отдельный атрибут исполнения, является ли файл исполняемым определяется именно этим атрибутом (а не расширением файла, как в Windows). Для присвоения атрибута исполнения файлу используйте программу «chmod»:

chmod +x <путь к скрипту или бинарному файлу>

Вопрос: На форуме дана ссылка на пакет для тестирования. Как его установить?
Ответ: Можно установить одним из следующих двух способов.
1. Выполняем команду

opkg install <ссылка на ipk файл>

Пакет будет скачан и установлен. Поддерживаются ссылки http:// и ftp://.
2. Скачиваем ipk файл на usb носитель. Выполняем

opkg install <путь к ipk файлу>

Если ipk файл находится в текущей директории, не забываем перед именем файла набрать "./". Можно ipk файл скачать на ББ (БольшойБрат - компьютер) и после этого забросить на кинетик. Можно скачать сразу на кинетик командой «wget <ссылка на файл>». Файл в последнем случае скачается в текущую директорию.

Cтруктура директорий операционной системы Linux

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

01. / <root> Корневой раздел. Домашняя папка суперпользователя root располагается в корне файловой системы
02. ?? /bin Здесь хранятся основные команды операционной системы (ОС) - оболочки и файловой системы (ls, cp)
03. ?? /boot В этой директории хранятся образы ядер операционной системы Linux и менеджер загрузки (grub, lilo)
04. ?? /dev Директория содержит файлы устройств (принтеры, жёсткие диски), подключенные к операционной системе (ОС)
05. ?? /etc Здесь находятся конфигурационные файлы ОС (настройки сети, список пользователей) и программ (Apache, Samba)
06. ?? /home В этой директории должна в целях безопасности размещаться вся личная информация пользователей системы
07. ? ?? /home/username Это домашняя папка пользователя usermame - хранится пользовательская часть конфигурационных файлов
08. ?? /lost+found Сюда скидываются файлы, на которые не было ссылок ни в одной директории, хотя их inod не помечены как свободные
09. ?? /lib Эта директория для хранения системных библиотек, необходимых для работы программ из директорий /bin и /sbin и ОС в целом
10. ?? /media Эта директория используется для автоматического монтирования USB-накопителей
11. ?? /mnt В эту директорию командой mount вручную монтируются различные USB-накопители
12. ?? /opt Директория для размещения установленных программ с большим дисковым размером или вспомогательными пакетами
13. ?? /proc Сюда примонтирована виртуальная файловая система procfs с информацией, которую ядро может сообщить пользователям
13! ? ?? /proc/modules - В этом файле находится список загруженных модулей ядра
13i ? ?? /proc/cpuinfo - В этом файле находится информация о процессоре компьютера
14. ?? /root Это домашний каталог или домашняя папка суперпользователя, по умолчанию всегда расположена в корневом каталоге
15. ?? /sbin Здесь находятся основные системные программы для администрирования и настройки системы (iptables, ifconfig)
16. ?? /srv Тут хранятся специфичные параметры для окружения системы, чаще всего данная директория бывает пустой
17. ?? /sys Это директория с виртуальной файловой системой sysfs с информацией ядра Linux (>v.2.6) о устройствах и драйверах
18. ? ?? /sys/block Эта содержит директории всех блочных устройств, присутствующих в данный момент в системе
19. ? ?? /sys/bus В этой директории находится список шин, определенных в ядре Linux (eisa, pci)
20. ? ?? /sys/class Каталог содержит список группированных устройств по классам (printer, scsi-devices)
21. ?? /tmp Временное хранилище данных, все пользователи имеют права чтения и записи в этом каталоге
22. ?? /usr Здесь хранятся все установленные пакеты программ, документация и исходный код ядра (все, кроме root - Read Only)
23. ? ?? /usr/bin Эта директория дополнительных программ для всех учетных записей
24. ? ?? /usr/games Каталог для размещения доступных компьютерных игр в системе
25. ? ?? /usr/include В этой директории хранятся заголовочные файлы С++
26. ? ?? /usr/lib Тут находятся системные библиотеки для программ, расположенных в директории /usr
27. ? ?? /usr/sbin В этой директории хранятся дополнительные системные программы
28. ? ?? /usr/share А в этой директории хранятся общие данные установленных программ
29. ? ? ?? /usr/share/icons В этом каталоге находятся все иконки системы
30. ? ? ?? /usr/share/doc Это директория, в которой находится справочная документация по установленным программам
31. ? ?? /usr/src В этой директории хранятся исходные коды (здесь также располагаются исходные коды ядра)
32. ?? /var Это каталог для часто меняющихся данных, здесь находятся журналы ОС и системные файлы (log, cache)
33. ? ?? /var/cache В этом месте хранятся все cache - кэши различных программ
34. ? ?? /var/games В этом месте расположены файлы с игровыми достижениями
35. ? ?? /var/lib В этом месте - постоянные данные, изменяемые программами в процессе работы (базы данных, мета-данные)
36. ? ?? /var/lock Здесь лежат lock-файлы, указывающие на занятость некоторых ресурсов
37. ? ?? /var/log В этой директории хранятся все log - лог-файлы системы и установленных программ
38. ? ?? /var/spool Здесь лежат задачи, ожидающие обработки (задачи cron, очереди печати)
39. ? ?? /var/www В этой директории размещаются Web-страницы для сервера Apache
40. ?? / <swap> Раздел файла подкачки - виртуальной памяти для увеличения скорости обмена с оперативной памятью

http://itshaman.ru/articles/10/directory-linux

© asusforum.ru

Вопрос: У меня неправильно отображаются русские буквы (вариант - псевдографика в mc). Как это исправить?
Ответ: Настройте правильно putty. Установите кодировку UTF-8 в разделе Translation. Сохраните настроенную сессию.

Вопрос: Как узнать, сколько места осталось на диске?
Ответ: Наберите «df», из вывода будет понятно:

Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/mtdblock/4           3904      3904         0 100% /
/dev/mtdblock/6           1024       448       576  44% /storage
/dev/sda1              3847812   3529852    122496  97% /media/DISK_A1

Диск (у меня флешка на 4Gb) заполнен на 97%. На встроенной флешке (папка /storage) заполнено 44%.

Вопрос: Как узнать S.M.A.R.T. - показатели жёсткого диска, прочую инфу, а также протестировать его?
Ответ: 1 установите smartmontools

opkg install smartmontools

2 выполните

smartctl -a /dev/sda <дополнительные параметры>

подробнее - http://smartmontools.sourceforge.net

Вопрос: Как узнать какие файлы содержатся в пакете?
Ответ: Следует выполнить команду «opkg files <имя пакета>». Например:

~$ opkg files minidlna
Package minidlna (1.0.24-5) is installed on root and has the following files:
/media/DISK_A1/system/usr/bin/minidlna
/media/DISK_A1/system/etc/minidlna.conf
/media/DISK_A1/system/etc/init.d/S50minidlna

Вопрос: Как узнать, какие порты/sokets слушают сервисы?
Ответ: netstat -a (-n покажет ип и номер порта)

~$ opkg netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:http            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:domain          0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:telnet          0.0.0.0:*               LISTEN
tcp        0      0 KEENETIC:http           192.168.1.33:2265       TIME_WAIT
tcp        0      0 KEENETIC:http           192.168.1.33:2267       TIME_WAIT
tcp        0      0 KEENETIC:http           192.168.1.33:2263       TIME_WAIT
tcp        0      0 KEENETIC:http           192.168.1.33:2274       TIME_WAIT
...
netstat: no support for 'AF INET6 (tcp)' on this system
udp        0      0 0.0.0.0:domain          0.0.0.0:*
udp        0      0 0.0.0.0:bootps          0.0.0.0:*
netstat: no support for 'AF INET6 (udp)' on this system
netstat: no support for 'AF INET6 (raw)' on this system
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path
unix  8      [ ]         DGRAM                    795    /dev/log
unix  2      [ ACC ]     STREAM     LISTENING     754    /tmp/superd.socket
unix  2      [ ]         DGRAM                    2280
unix  2      [ ]         DGRAM                    1807
unix  2      [ ]         DGRAM                    1533
unix  2      [ ]         DGRAM                    1512
unix  2      [ ]         DGRAM                    1467
unix  2      [ ]         DGRAM                    886
~$ opkg netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:23              0.0.0.0:*               LISTEN
tcp        0      0 192.168.1.1:80          192.168.1.33:2341       TIME_WAIT
tcp        0      0 192.168.1.1:80          192.168.1.33:2338       TIME_WAIT
tcp        0      0 192.168.1.1:80          192.168.1.33:2333       TIME_WAIT
tcp        0      0 192.168.1.1:80          192.168.1.33:2337       TIME_WAIT
tcp        0      0 192.168.1.1:80          192.168.1.33:2325       TIME_WAIT
tcp        0      0 192.168.1.1:80          192.168.1.33:2339       TIME_WAIT
.....
netstat: no support for 'AF INET6 (tcp)' on this system
udp        0      0 0.0.0.0:53              0.0.0.0:*
udp        0      0 0.0.0.0:67              0.0.0.0:*
netstat: no support for 'AF INET6 (udp)' on this system
netstat: no support for 'AF INET6 (raw)' on this system
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path
unix  8      [ ]         DGRAM                    795    /dev/log
unix  2      [ ACC ]     STREAM     LISTENING     754    /tmp/superd.socket
unix  2      [ ]         DGRAM                    2280
unix  2      [ ]         DGRAM                    1807
unix  2      [ ]         DGRAM                    1533
unix  2      [ ]         DGRAM                    1512
unix  2      [ ]         DGRAM                    1467
unix  2      [ ]         DGRAM                    886

Вопрос: Как узнать, какие пакеты уже установлены?
Ответ:

~$ opkg list-installed
busybox - 1.19.3-6
dropbear - 2011.54-1
glib2 - 2.26.1-2
libdb51 - 5.1.25.NC-1
libiconv-full - 1.11.1-1
....

Вопрос: Хочу поставить что-то, но не знаю ни название программы/библиотеки ни тем более название пакета
Ответ:

~$ opkg list | grep server
dropbear - 2011.54-1 - A small SSH2 server/client designed for small memory environments.
...

Вопрос: Хочу перенести/создать swap в другое место, отличное от /media/DISK_A1/.swapfile
Ответ: для примера возьмем swap в /media/DISK_B1/.swapfile, размер - 128МБ

~$ touch /media/DISK_B1/.swapfile
~$ dd if=/dev/zero of=/media/DISK_B1/.swapfile bs=1M count=128
~$ mkswap /media/DISK_B1/.swapfile

далее меняем путь до файла для демона

~$ nano /media/DISK_A1/system/etc/init.d/S01swap

MOUNT - это путь до файла
SWAPFILE - название swap-файла

MOUNT="/media/DISK_B1"
SWAPFILE="$MOUNT/.swapfile"

далее перезагрузка роутера/демона