1

Тема: linux - курс молодого бойца

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

2

Re: linux - курс молодого бойца

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

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

3

Re: linux - курс молодого бойца

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

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

4

Re: linux - курс молодого бойца

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

5

Re: linux - курс молодого бойца

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

./S50minidlna stop

6

Re: linux - курс молодого бойца

Вопрос: Как проверисть, запущена ли программа?
Ответ: Наберите "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.

7

Re: linux - курс молодого бойца

Вопрос: Как посмотреть, сколько ресурсов (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

8

Re: linux - курс молодого бойца

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

9

Re: linux - курс молодого бойца

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

opkg update
opkg upgrade

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

10

Re: linux - курс молодого бойца

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

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

11

Re: linux - курс молодого бойца

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

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

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

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

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

12

Re: linux - курс молодого бойца

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

(c) asusforum.ru

13

Re: linux - курс молодого бойца

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

14

Re: linux - курс молодого бойца

Вопрос: Как узнать, сколько места осталось на диске?
Ответ: Наберите "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%.

15

Re: linux - курс молодого бойца

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

opkg install smartmontools

2

smartctl -a /dev/sda

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

Отредактировано KOLANICH (2012-04-15 23:08:42)

16

Re: linux - курс молодого бойца

Вопрос: Как узнать какие файлы содержатся в пакете?
Ответ: Следует выполнить команду "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

17

Re: linux - курс молодого бойца

По умолчанию, после установки "полного" Linux на Keenetic, SSH будет доступен на 22 порту. Открыть доступ к SSH через интернет можно, прописав

start() {
    $DROPBEAR -d $DSS -r $RSA
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
}

stop() {
    iptables -D INPUT -p tcp --dport 22 -j ACCEPT
    killall dropbear
}

В файле S10dropbear. Ну и, конечно же, не забудьте отметить соответствующую галку в web-интерфейсе Кинетика (Перенаправление портов).

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

Сделать это можно изменив указанные выше строки на

start() {
    $DROPBEAR -d $DSS -r $RSA -p 1234
    iptables -A INPUT -p tcp --dport 1234 -j ACCEPT
}

stop() {
    iptables -D INPUT -p tcp --dport 1234 -j ACCEPT
    killall dropbear
}

где 1234 - номер вашего порта.

Отредактировано Ant (2012-11-02 11:22:17)

18

Re: linux - курс молодого бойца

Вопрос: Как узнать, какие порты/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
tcp        0      0 KEENETIC:http           192.168.1.33:2266       TIME_WAIT
tcp        0      0 KEENETIC:http           192.168.1.33:2264       TIME_WAIT
tcp        0      0 KEENETIC:http           192.168.1.33:2273       TIME_WAIT
tcp        0      0 KEENETIC:http           192.168.1.33:2261       TIME_WAIT
tcp        0      0 KEENETIC:http           192.168.1.33:2275       TIME_WAIT
tcp        0      0 KEENETIC:http           192.168.1.33:2262       TIME_WAIT
tcp        0      0 KEENETIC:http           192.168.1.33:2268       TIME_WAIT
tcp        0    100 KEENETIC:ssh            192.168.1.33:2009       ESTABLISHED
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
tcp        0      0 192.168.1.1:80          192.168.1.33:2340       TIME_WAIT
tcp        0      0 192.168.1.1:80          192.168.1.33:2327       TIME_WAIT
tcp        0      0 192.168.1.1:80          192.168.1.33:2335       TIME_WAIT
tcp        0      0 192.168.1.1:80          192.168.1.33:2336       TIME_WAIT
tcp        0    100 192.168.1.1:22          192.168.1.33:2009       ESTABLISHED
tcp        0      0 192.168.1.1:80          192.168.1.33:2334       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

Отредактировано yopt (2012-11-02 15:54:43)

19

Re: linux - курс молодого бойца

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

~$ 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
libintl-full - 0.18.1.1-1
libncurses - 5.7-4
libpcre - 8.11-2
libreadline - 5.2-3
libslang2 - 2.2.4-1
libsqlite3 - 3070701-1
libxml2 - 2.7.8-1
mc - 4.8.3-1
nano - 2.2.6-1
openssl-util - 0.9.8l-2
opkg - 618-2
sqlite3-cli - 3070701-1
wget - 1.13.4-1
zip - 2.32-1

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

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

Отредактировано yopt (2012-11-02 15:53:38)

20

Re: linux - курс молодого бойца

Вопрос: Как подгрузить модуль ядра?
Ответ:

~$ insmod /media/DISK_A1/system/lib/modules/2.6.23-rt/module.ko

где module.ko - имя нужного модуля

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

~$ lsmod

Вопрос: Как выгрузить модуль ядра?
Ответ:

~$ rmmod module

где module - имя загруженного модуля

21

Re: linux - курс молодого бойца

Вопрос: Как посмотреть параметры моего окружения?
Ответ: комманда env

~$ env
USER=root
SASL_PATH=/media/DISK_A1/lib
LD_LIBRARY_PATH=/media/DISK_A1/system/lib:/media/DISK_A1/system/usr/lib:/lib:/usr/lib
OLDPWD=/media/DISK_A1/system/
TERMINFO=/media/DISK_A1/system/usr/share/terminfo
HOME=/media/DISK_A1/system/root
SSH_TTY=/dev/pts/0
LOGNAME=root
TERM=xterm
PATH=/media/DISK_A1/system/bin:/media/DISK_A1/system/sbin:/media/DISK_A1/system/usr/bin:/media/DISK_A1/system/usr/sbin:/sbin:/usr/sbin:/bin:/usr/bin
SHELL=/bin/ash
PWD=/media/DISK_A1/system/root
SSH_CONNECTION=192.168.1.33 4077 192.168.1.1 22

Вопрос: Как я могу изменить параметр?
Ответ: export PATH=/path  или PATH=/path; export PATH

Вопрос: Если зайду заново в систему, то мой параметр опять будет не тот, или вообще пропал
Ответ: Укажи свои параметры в файле .profile в своей директории  (~/.profile)

/etc $ cd ~
~$ touch .profile
~$ echo "export MY_PARAM=XXX" >> .profile

Вопрос: Я зашел в jail, но у меня не те параметры окружения
Ответ: запусти

~$ source /etc/profile

Отредактировано yopt (2012-11-02 18:04:01)

22

Re: linux - курс молодого бойца

Вопрос: Я хочу изменить имя входя в Web-интерфейс роутера. Что мне делать?
Ответ: Воспользуйтесь командой

flash set ADMIN_NAME mister

mister заменить на желаемое имя.

Вопрос: Как изменить имя устройства?
Ответ: Воспользуйтесь командой

flash set HOST_NAME Mister's Device
flash set DEVICE_NAME Mister's Device

Mister's Device заменить на желаемое имя роутера.

Вопрос: Как изменить порт Web-интерфейса?
Ответ: Воспользуйтесь командой

flash set WEB_ACCESS_PORT 80

80 заменить на желаемый порт.

Отредактировано GooCom (2013-08-07 21:08:15)