====== Новичкам в Linux ====== Для чтения и использования материалов этого сайта потребуется знание основ операционной системы Linux и прежде всего основ работы в командной строке. В интернете можно найти много книг и руководств, например * [[http://www.compdoc.ru/os/linux/commands_linux_command_line/|Команды Linux (командная строка)]] * [[http://rus-linux.net/MyLDP/consol/hdrguide/linux.htm|Команды Linux]] и много других. Перед дальнейшим чтением прочтите подобное руководство. ---- ==== Некоторые полезные приемы работы в Linux (на Keenetic и не только на Keenetic) ==== **Вопрос:** Как скопировать текст из окна putty в буфер обмена windows?\\ **Ответ:** Нужно просто выделить текст мышкой. **Вопрос:** Как скопировать текст из буфера обмена windows в putty?\\ **Ответ:** Нужно нажать правую кнопку мышки в окне putty. **Вопрос:** Как быстро набрать длинный путь в putty?\\ **Ответ:** Используйте клавишу . Попробуйте так, набираем в окне putty %%"/m"%%, потом , еще раз . Потом %%"/sy"%%, потом и т.д. Если после нажатия ничего не происходит, нажимаем еще раз, Вам будет предложен список вариантов продолжения. Набираем несколько первых букв и дальше . **Вопрос:** Как повторить ранее введенную команду?\\ **Ответ:** Нажмите на клавиатуре кнопку со стрелочкой вверх. Нажимая клавиши стрелки вверх, вниз - перемещайтесь по ранее введенным командам. Выберете нужную команду, если нужно отредактируйте её и нажмите . **Вопрос:** Как редактирвать файлы на Keenetic?\\ **Ответ:** Поставьте пакет mc (opkg install mc). Запустите mc (команда mc). Перемещайтесь с помощью клавиш стрелок по директориям. Клавиша меняет активную панель. Выбираем %%"/.."%% + для перемещения по дереву директорий вверх. Для просмотра содержимого файла нажмите F3, для редактирования F4. Для смены кодировки просматриваемого/редактируемого файла - . Для использования буфера обмена windows следует держать нажатой клавишу на клавиатуре. Можно использовать и редактор nano. Поставьте пакет (opkg install nano) и вызывайте nano, указывая путь к файлу: (nano <путь к файлу>). Редактор nano в некоторых случаях корректнее работает с буфером обмена. Знатоки могут использовать стандартный редактор Linux редактор vi, он устанавливается с ситемой пакетов opkg. **Вопрос:** Как запустить исполняемый файл (или скрипт) из текущей директории?\\ **Ответ:** Перед именем файла следует набрать %%"./"%%, клавиша и в этом случае работает. Пример: если мы находимся в директории %%"/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 нажмите . Можно поставить более функциональный и красивый вариант программы top под названием htop (opkg install htop). Выход из htop по . **Вопрос:** Как посмотреть состояние памяти?\\ **Ответ:** Командой "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 **Вопрос:** Я запустил демона (программу в режиме отладки) для просмотра логов. Как ее завершить?\\ **Ответ:** Нажать . **Вопрос:** Команда "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 располагается в корне файловой системы\\ 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. ?? / Раздел файла подкачки - виртуальной памяти для увеличения скорости обмена с оперативной памятью'' http://itshaman.ru/articles/10/directory-linux (c) asusforum.ru **Вопрос:** У меня неправильно отображаются русские буквы (вариант - псевдографика в mc). Как это исправить?\\ **Ответ:** Настройте правильно putty. Установите кодировку UTF-8 в разделе Translation. Сохраните настроенную сессию. {{http://keenetic.zyxmon.org/files/putty-utf8.png}} **Вопрос:** Как узнать, сколько места осталось на диске?\\ **Ответ:** Наберите "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" далее перезагрузка роутера/демона