Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Не работает интернет в Linux

На работе стоит режим роутера со статическими IP. На Windows все работает. На Linex при вводе статических IP, маршрутизация идет только по IP которые находятся в данной сети. Дома интернет работает нормально как с автоматическими так и со статическими IP.

Код
route -n 
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0         169.254.2.253   0.0.0.0         UG    20100  0        0 enx00e04c534458
169.254.0.0     0.0.0.0         255.255.0.0     U     100    0        0 enx00e04c534458

ifconfig
enx00e04c534458: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 169.254.2.222  netmask 255.255.0.0  broadcast 169.254.255.255
        inet6 fe80::2e0:4cff:fe53:4458  prefixlen 64  scopeid 0x20<link>
        ether 00:e0:4c:53:44:58  txqueuelen 1000  (Ethernet)
        RX packets 69140  bytes 12251216 (12.2 MB)
        RX errors 247  dropped 150  overruns 42  frame 236
        TX packets 31120  bytes 12143828 (12.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Локальная петля (Loopback))
        RX packets 16831  bytes 1021138 (1.0 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16831  bytes 1021138 (1.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
Статические IP
Адрес IPv4: 169.254.2.222
Маска подсети IPv4: 255.255.0.0
Шлюз по умолчанию IPv4: 169.254.2.253
DNS-серверы IPv4: 194.158.196.137, 194.158.196.141
Ответ: ага, я так и сказал - сеть не работает
сеть в линуксе не работает
так что, понял я все правильно
Вопрос: Прерывания в Linux

Здравствуйте.
Не смог нагуглить инфу про так называемые программные (внутренние) прерывания в linux. Везде где я искал были только аппаратные (внешние) прерывания, про них я много информации нашел, но меня интересует есть ли в Linux другой вид прерывания - программные? Единственное что я нашел поэтому поводу, когда процесс пытатется выполнить не допустимую инструкцию, например деление на ноль, то посылается специальное прерывание, и в конечном итоге обработчик этого вида (линии?) прерывания абортит процесс. Но я незнаю относиться ли это именно к Linux.
А что Вам известно про внутренние прерывания в Linux?
Ответ: Amet13, я уже прочел, там про аппаратные прерывания. Вообще у меня создалось такое впечатление, что в Линуксе есть только аппаратные прерывания. Но вот например процесс пытается делить на ноль что происходит? Если это обрабатывает не через концепцию программных прерываний то значит действительно программных нету.

Добавлено через 9 минут
T_T
"Сигналы - это программные прерывания, обеспечивающие асинхронную обработку событий" - Р. Лав "Linux, Сиситемное программирование" стр 366
Вопрос закрыт.
Вопрос: Литература о Linux

Подскажите литературу и достоверные научные статьи. Требуется для курсовой. В статье/литературе должна быть информация о ядре Linux или что-то типа пошаговое описание запуска ОС.
Ответ: Э. Немет
Р. Лав
Вопрос: Настроить принтер

Debian 8 64 ,bn
принтер Canon LBP 2900
с оф скачал архив и из него поставил

cndrvcups-common_2.60-x_amd64.deb
cndrvcups-capt_2.60-x_amd64.deb
установил cups

дальше непонятки, принтер добавил, вебморда работает, отправляю на печать, тишина

весь день промаялся

CUPS 1.7.5

/etc/cups/cupsd.conf

Кликните здесь для просмотра всего текста
# Слушаем 631 порт с локальной сети
#Listen localhost:631
port 631
Listen /var/run/cups/cups.sock
...
# Открываем доступ к CUPS из локальной сети
<Location />
Order allow,deny
Allow 192.168.1.*
</Location>
# Открываем доступ к администрированию CUPS из локальной сети
<Location /admin>
Order allow,deny
Allow 192.168.1.*
</Location>
# Открываем доступ к файлам конфигурации CUPS из локальной сети
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow 192.168.1.*
</Location>


лог (часть)

Кликните здесь для просмотра всего текста
[03/May/2015:17:09:44 +0500] Duplicate listen address "/var/run/cups/cups.sock" ignored.
E [03/May/2015:17:09:44 +0500] Unknown directive JobPrivateAccess on line 83 of /etc/cups/cupsd.conf.
E [03/May/2015:17:09:44 +0500] Unknown directive JobPrivateValues on line 84 of /etc/cups/cupsd.conf.
E [03/May/2015:17:09:44 +0500] Unknown directive SubscriptionPrivateAccess on line 85 of /etc/cups/cupsd.conf.
E [03/May/2015:17:09:44 +0500] Unknown directive SubscriptionPrivateValues on line 86 of /etc/cups/cupsd.conf.
W [03/May/2015:17:09:44 +0500] CreateProfile failed: org.freedesktop.ColorManager.AlreadyExistsrofile id 'LBP2900-Gray..' already exists
E [03/May/2015:17:13:14 +0500] [CGI] Unable to scan "@LOCAL"!
E [03/May/2015:17:14:01 +0500] [Job 7] Invalid printer command "Clean".
E [03/May/2015:17:14:01 +0500] [Job 7] ccp send_data error, exit
W [03/May/2015:17:17:31 +0500] Duplicate listen address "/var/run/cups/cups.sock" ignored.
E [03/May/2015:17:17:31 +0500] Unknown directive JobPrivateAccess on line 83 of /etc/cups/cupsd.conf.
E [03/May/2015:17:17:31 +0500] Unknown directive JobPrivateValues on line 84 of /etc/cups/cupsd.conf.
E [03/May/2015:17:17:31 +0500] Unknown directive SubscriptionPrivateAccess on line 85 of /etc/cups/cupsd.conf.
E [03/May/2015:17:17:31 +0500] Unknown directive SubscriptionPrivateValues on line 86 of /etc/cups/cupsd.conf.
E [03/May/2015:17:23:29 +0500] [CGI] Unable to scan "@LOCAL"!
W [03/May/2015:17:24:53 +0500] Duplicate listen address "/var/run/cups/cups.sock" ignored.
E [03/May/2015:17:24:53 +0500] Unknown directive JobPrivateAccess on line 83 of /etc/cups/cupsd.conf.
E [03/May/2015:17:24:53 +0500] Unknown directive JobPrivateValues on line 84 of /etc/cups/cupsd.conf.
E [03/May/2015:17:24:53 +0500] Unknown directive SubscriptionPrivateAccess on line 85 of /etc/cups/cupsd.conf.
E [03/May/2015:17:24:53 +0500] Unknown directive SubscriptionPrivateValues on line 86 of /etc/cups/cupsd.conf.
W [03/May/2015:17:24:53 +0500] CreateProfile failed: org.freedesktop.ColorManager.AlreadyExistsrofile id 'LBP2900-Gray..' already exists
E [04/May/2015:03:03:54 +0500] [CGI] Unable to scan "@LOCAL"!
W [04/May/2015:03:13:42 +0500] Duplicate listen address "/var/run/cups/cups.sock" ignored.
E [04/May/2015:03:13:42 +0500] Unknown directive JobPrivateAccess on line 90 of /etc/cups/cupsd.conf.
E [04/May/2015:03:13:42 +0500] Unknown directive JobPrivateValues on line 91 of /etc/cups/cupsd.conf.
E [04/May/2015:03:13:42 +0500] Unknown directive SubscriptionPrivateAccess on line 92 of /etc/cups/cupsd.conf.
E [04/May/2015:03:13:42 +0500] Unknown directive SubscriptionPrivateValues on line 93 of /etc/cups/cupsd.conf.
W [04/May/2015:03:16:11 +0500] Duplicate listen address "/var/run/cups/cups.sock" ignored.
E [04/May/2015:03:16:11 +0500] Unknown directive JobPrivateAccess on line 90 of /etc/cups/cupsd.conf.
E [04/May/2015:03:16:11 +0500] Unknown directive JobPrivateValues on line 91 of /etc/cups/cupsd.conf.
E [04/May/2015:03:16:11 +0500] Unknown directive SubscriptionPrivateAccess on line 92 of /etc/cups/cupsd.conf.
E [04/May/2015:03:16:11 +0500] Unknown directive SubscriptionPrivateValues on line 93 of /etc/cups/cupsd.conf.
E [04/May/2015:03:16:26 +0500] [Job 8] ccp send_data error, exit
E [04/May/2015:03:17:28 +0500] [Client 18] Returning HTTP Запрещено for CUPS-Get-Devices (no URI) from localhost
E [04/May/2015:03:17:28 +0500] [CGI] CUPS-Get-Devices request failed with status 401: Запрещено
E [04/May/2015:03:17:37 +0500] [Client 23] Returning HTTP Запрещено for CUPS-Get-Devices (no URI) from localhost
E [04/May/2015:03:17:37 +0500] [CGI] CUPS-Get-Devices request failed with status 401: Запрещено
E [04/May/2015:03:18:00 +0500] [Client 18] Returning HTTP Запрещено for CUPS-Get-Devices (no URI) from localhost
E [04/May/2015:03:18:04 +0500] [Client 18] Returning HTTP Запрещено for CUPS-Get-Devices (no URI) from localhost
E [04/May/2015:03:18:04 +0500] [CGI] CUPS-Get-Devices request failed with status 401: Запрещено
E [04/May/2015:03:18:22 +0500] [Client 18] Returning HTTP Запрещено for CUPS-Get-Devices (no URI) from localhost
E [04/May/2015:03:18:22 +0500] [CGI] CUPS-Get-Devices request failed with status 401: Запрещено
E [04/May/2015:03:18:39 +0500] [Client 18] Returning HTTP Запрещено for CUPS-Get-Devices (no URI) from localhost
E [04/May/2015:03:18:39 +0500] [CGI] CUPS-Get-Devices request failed with status 401: Запрещено
E [04/May/2015:03:19:00 +0500] [Client 18] Returning HTTP Запрещено for Restart-Job (ipp://localhost/jobs/4) from localhost
E [04/May/2015:03:19:07 +0500] [Client 18] Returning HTTP Запрещено for CUPS-Get-Devices (no URI) from localhost
E [04/May/2015:03:19:07 +0500] [CGI] CUPS-Get-Devices request failed with status 401: Запрещено
E [04/May/2015:03:20:23 +0500] [Client 18] Returning HTTP Запрещено for CUPS-Get-Devices (no URI) from localhost
E [04/May/2015:03:20:35 +0500] [Client 18] Returning HTTP Запрещено for Resume-Printer (ipp://localhost/printers/LBP2900) from localhost
E [04/May/2015:03:22:44 +0500] [Client 14] Returning HTTP Запрещено for CUPS-Get-Devices (no URI) from localhost
E [04/May/2015:03:22:44 +0500] [CGI] CUPS-Get-Devices request failed with status 401: Запрещено
E [04/May/2015:03:23:58 +0500] [Client 14] Returning HTTP Запрещено for CUPS-Get-Devices (no URI) from localhost
E [04/May/2015:03:23:58 +0500] [CGI] CUPS-Get-Devices request failed with status 401: Запрещено
E [04/May/2015:03:27:46 +0500] [Client 15] Returning HTTP Запрещено for CUPS-Get-Devices (no URI) from localhost
E [04/May/2015:03:27:46 +0500] [CGI] CUPS-Get-Devices request failed with status 401: Запрещено
E [04/May/2015:03:28:32 +0500] [CGI] Unable to scan "@LOCAL"!
W [04/May/2015:03:29:25 +0500] CreateProfile failed: org.freedesktop.ColorManager.AlreadyExistsrofile id 'Canon_LBP2900-Gray..' already exists
E [04/May/2015:03:32:13 +0500] [CGI] Unable to scan "@LOCAL"!
E [04/May/2015:03:34:43 +0500] [Client 16] Returning IPP client-error-not-authorized for Print-Job (ipp://localhost:631/printers/Canon_LBP2900) from localhost
E [04/May/2015:03:35:11 +0500] [Client 16] Returning IPP client-error-not-authorized for Print-Job (ipp://localhost:631/printers/Canon_LBP2900) from localhost
E [04/May/2015:03:35:13 +0500] [Client 16] Returning IPP client-error-not-authorized for Print-Job (ipp://localhost:631/printers/Canon_LBP2900) from localhost
E [04/May/2015:03:35:14 +0500] [Client 16] Returning IPP client-error-not-authorized for Print-Job (ipp://localhost:631/printers/Canon_LBP2900) from localhost
E [04/May/2015:03:36:42 +0500] [CGI] Unable to scan "@LOCAL"!
E [04/May/2015:03:37:30 +0500] [CGI] Unable to scan "@LOCAL"!
E [04/May/2015:03:38:03 +0500] [CGI] Unable to scan "@LOCAL"!
W [04/May/2015:03:38:40 +0500] CreateProfile failed: org.freedesktop.ColorManager.AlreadyExistsrofile id 'Canon_LBP2900-Gray..' already exists
W [04/May/2015:03:38:46 +0500] CreateProfile failed: org.freedesktop.ColorManager.AlreadyExistsrofile id 'Canon_LBP2900-Gray..' already exists
W [04/May/2015:03:41:53 +0500] Duplicate listen address "/var/run/cups/cups.sock" ignored.
E [04/May/2015:03:41:53 +0500] Unknown directive JobPrivateAccess on line 90 of /etc/cups/cupsd.conf.
E [04/May/2015:03:41:53 +0500] Unknown directive JobPrivateValues on line 91 of /etc/cups/cupsd.conf.
E [04/May/2015:03:41:53 +0500] Unknown directive SubscriptionPrivateAccess on line 92 of /etc/cups/cupsd.conf.
E [04/May/2015:03:41:53 +0500] Unknown directive SubscriptionPrivateValues on line 93 of /etc/cups/cupsd.conf.
E [04/May/2015:03:46:04 +0500] Missing value for ... on line 5 of /etc/cups/cupsd.conf.
E [04/May/2015:03:46:22 +0500] [CGI] Unable to scan "@LOCAL"!
E [04/May/2015:03:46:48 +0500] [CGI] Unable to scan "@LOCAL"!
E [04/May/2015:03:50:13 +0500] [CGI] Unable to scan "@LOCAL"!
W [04/May/2015:03:50:49 +0500] CreateProfile failed: org.freedesktop.ColorManager.AlreadyExistsrofile id 'Canon_LBP2900-Gray..' already exists
W [04/May/2015:03:51:01 +0500] CreateProfile failed: org.freedesktop.ColorManager.AlreadyExistsrofile id 'Canon_LBP2900-Gray..' already exists
Ответ: каких пакетов

Добавлено через 43 секунды
если бы все было просто, то и форум этот нафиг не нужен

Добавлено через 1 минуту
Сообщение от Dr_Quake
Сделал по своему - получил что есть, живи с этим и не задавай тогда вопросы.
нечего посоветовать, гуляй заборами

Добавлено через 39 минут
хочешь сделать хорошо - сделай сам
Вопрос: Настройки Virtual Box (сетевой мост) при подключении с статическим IP

Добрый вечер уважаемые!
Возникла необходимость установить Virtual Box. К каждой гостевой машины должна быть возможность доступа извне (есть три сетевые карты и три разные подключения с статическими IP). Для этих целей использую в настройках сети (для гостя) - сетевой мост. У провайдера идет привязка по МАС адресу.
Подскажите как мне прописать конфигурацию сети хоста и гостевой ОС.

Что сейчас:
Хост - S0(имя)
Гость машины T0, T1.
Интернет подключения:
Код Bash
1
2
3
                                  100.0.0.1 (привязаный к MAC: 00:00:00:00:00:01)
                                  100.0.0.2 (привязаный к MAC: 00:00:00:00:00:02)
                                  100.0.0.3 (привязаный к MAC: 00:00:00:00:00:03)
Сейчас в файле (хоста) /etc/network/interfaces:
Код Bash
1
2
3
auto eth0
iface eth0 inet dhcp
hwaddress ether 00:00:00:00:00:01
Для доступу к хост машине из вне. Соответственно в сетевую карту всунут кабель №1 (с ІР 100.0.0.1)



Мои размышления на этот счет: Через сетевой мост трафик все равно проходит через реальную сетевую карту. И если мы подключаем кабель №2 (ІР 100.0.0.2), в настройках этого интерфейса на машине хосте должен быть изменен МАС адрес на 00:00:00:00:00:02, но тогда не знаю как настроить интерфейс на машине госте. Если я не ошибаюсь, так его МАС адрес видно, и если она будет не 00:00:00:00:00:02, то провайдер заблокирует соединение, а если МАС все же будет 00:00:00:00:00:02, то думаю, что будут проблемы из-за того что два одинаковых МАС адрес в сети (хост -> гость)
Ответ: Как это? Полноценные не name based сервера без множества ip не сделать.
Вопрос: Обработать текстовый файл в Терминале

Помогите сделать это в терминале

1. Создайте два файла с перечнем объектов (каждый объект с новой строки).
2. Отсортируйте каждый из файлов по алфавиту
3. Объедините эти файлы в один
4. Подсчитайте общее количество слов в нем,
5. Выведите на экран первые и последние две строки файла
6. Замените символы перевода строки на символ табуляции и обратно
7. Отсортируйте файл
8. Пронумеруйте строки файла
9. Выведите на экран все строки, содержащие букву "р"
10. Разбейте файл на три файла
Выполнить следующие задания. Объяснить каждый шаг конвейера. Вместо знаков вопроса подставьте нужную команду/аргумент.
1. Вывести на экран всех пользователей системы с сортировкой по алфавиту:
$ cut -d: -f1 /etc/passwd | ???

2. Изменить предыдущую команду таким образом, чтобы помимо имени пользователя на экране также выводился его идентификатор. Подсказка: посмотрите содержимое файла /etc/passwd, чтобы найти, в каком из полей, разделенных двоеточием, находится UID.
3. Подсчитать количество пользователей, у которых командой оболочкой является bash:
$ grep :/bin/bash /etc/passwd | wc -l

4. Вывести на экран всех пользователей, использующих командную оболочку /bin/bash, отсортировав их по алфавиту в обратном порядке:
$ grep :/bin/bash /etc/passwd | ??? | ???

5. Выполнить сортировку пакетов по размеру (большего к меньшему) и вывести первые 25 пакетов:
$ rpm -qa --qf '[%{NAME}: %{SIZE}\n]' | sort -rn -k2,2 | ???

6. Вывести все файлы из пакета man, подсчитать для каждого из них размер, игнорируя ошибки, и выполнить сортировку по размеру:
$ rpm -ql man | xargs -l du 2> /dev/null | sort -n

7. При помощи программы top вывести список работающих процессов и отсортировать их по имени процесса (аргумент команды sort заполнить самостоятельно):
$ top -b -n1 | sort ???

8. Используя команду awk, изменить вывод команды top таким образом, чтобы в первой колонке отображалось имя процесса, во второй - объём занимаемой памяти:
$ top -b -n1 | awk '{printf "%35s %s\n", $12, $6}'
9. Вывести файл /etc/passwd в отсортированном по пользователям виде, заменив знаки двоеточия пробелами:
$ ??? | tr ":" " "
10. Вывести файл /etc/passwd в отсортированном по пользователям виде в две колонки - в первой - имя пользователя, во второй - командная оболочка пользователя:
$ ??? | awk -F: '{printf "%15s %s\n", $1, $7}'
11. На примере файла user-manual.txt из документации git исследовать конвейеры.
$ cd /usr/share/doc/git-*
12. Выполнить анализ частоты появления каждого слова в файле user-manual.txt. Конвейер нужно строить по шагам, наблюдая за изменением результата. Определить этап получения первичной информации, этап обработки и этап представления результатов.
$ cat user-manual.txt | tr ' ' '\012' | tr '[:upper:]' '[:lower:]' | tr -d '[unct:]' | grep -v '[^a-z]' | sort | uniq -c | sort -rn | head -5
Или:
$ cat user-manual.txt | tr -cs '[:alpha:]' '\n' | tr '[:upper:]' '[:lower:]' | sort | uniq -c | sort -rn | head -5
Почему различаются результаты работы конвейеров?
13. Выполнить анализ частоты появления каждого символа.
$ tr '[:lower:]' '[:upper:]' < user-manual.txt | tr -d '[unct:] \n\t' | fold -w1 | sort | uniq -c | sort -rn | head -5
14. Вывести самые часто встречаемые слова, в которых количество символов больше семи:
$ tr -cs '[:alpha:]' '\n' < user-manual.txt | less | grep -E ........ | sort | uniq -c | sort -rn | head
Ответ: 1. Создайте два файла с перечнем объектов (каждый объект с новой строки).
2. Отсортируйте каждый из файлов по алфавиту
3. Объедините эти файлы в один
4. Подсчитайте общее количество слов в нем,
5. Выведите на экран первые и последние две строки файла
6. Замените символы перевода строки на символ табуляции и обратно
7. Отсортируйте файл
8. Пронумеруйте строки файла
9. Выведите на экран все строки, содержащие букву "р"
10. Разбейте файл на три файла
Выполнить следующие задания. Объяснить каждый шаг конвейера. Вместо знаков вопроса подставьте нужную команду/аргумент.
1. Вывести на экран всех пользователей системы с сортировкой по алфавиту:
Bash
1
$ cut -d: -f1 /etc/passwd | ??? 
2. Изменить предыдущую команду таким образом, чтобы помимо имени пользователя на экране также выводился его идентификатор. Подсказка: посмотрите содержимое файла /etc/passwd, чтобы найти, в каком из полей, разделенных двоеточием, находится UID.
3. Подсчитать количество пользователей, у которых командой оболочкой является bash:
Bash
1
$ grep :/bin/bash /etc/passwd | wc -l 
4. Вывести на экран всех пользователей, использующих командную оболочку /bin/bash, отсортировав их по алфавиту в обратном порядке:
Bash
1
$ grep :/bin/bash /etc/passwd | ??? | ??? 
5. Выполнить сортировку пакетов по размеру (большего к меньшему) и вывести первые 25 пакетов:
Bash
1
$ rpm -qa --qf '[%{NAME}: %{SIZE}\n]' | sort -rn -k2,2 | ??? 
6. Вывести все файлы из пакета man, подсчитать для каждого из них размер, игнорируя ошибки, и выполнить сортировку по размеру:
Bash
1
$ rpm -ql man | xargs -l du 2> /dev/null | sort -n 
7. При помощи программы top вывести список работающих процессов и отсортировать их по имени процесса (аргумент команды sort заполнить самостоятельно):
Bash
1
$ top -b -n1 | sort ???
8. Используя команду awk, изменить вывод команды top таким образом, чтобы в первой колонке отображалось имя процесса, во второй - объём занимаемой памяти:
Bash
1
$ top -b -n1 | awk '{printf "%35s %s\n", $12, $6}' 
9. Вывести файл /etc/passwd в отсортированном по пользователям виде, заменив знаки двоеточия пробелами:
Bash
1
$ ??? | tr ":" " " 
10. Вывести файл /etc/passwd в отсортированном по пользователям виде в две колонки - в первой - имя пользователя, во второй - командная оболочка пользователя:
Bash
1
$ ??? | awk -F: '{printf "%15s %s\n", $1, $7}' 
11. На примере файла user-manual.txt из документации git исследовать конвейеры.
Bash
1
$ cd /usr/share/doc/git-*
12. Выполнить анализ частоты появления каждого слова в файле user-manual.txt. Конвейер нужно строить по шагам, наблюдая за изменением результата. Определить этап получения первичной информации, этап обработки и этап представления результатов.
Bash
1
$ cat user-manual.txt | tr ' ' '\012' | tr '[:upper:]' '[:lower:]' | tr -d '[unct:]' | grep -v '[^a-z]' | sort | uniq -c | sort -rn | head -5 
Bash
1
2
Или: 
$ cat user-manual.txt | tr -cs '[:alpha:]' '\n' | tr '[:upper:]' '[:lower:]' | sort | uniq -c | sort -rn | head -5 
Почему различаются результаты работы конвейеров?
13. Выполнить анализ частоты появления каждого символа.
Bash
1
$ tr '[:lower:]' '[:upper:]' < user-manual.txt | tr -d '[unct:] \n\t' | fold -w1 | sort | uniq -c | sort -rn | head -5 
14. Вывести самые часто встречаемые слова, в которых количество символов больше семи:
Bash
1
$ tr -cs '[:alpha:]' '\n' < user-manual.txt | less | grep -E ........ | sort | uniq -c | sort -rn | head
Вопрос: Sed. просветите по регэкспу и/или группе

каг бэ задача вычленить цифирь баланса из кучи спама, который приходит по запросу баланса по ussd. цифирь может быть в произвольном месте и обрамлена произвольными кусками говна. закономерность пока наблюдается такая- цифири,точка,пара цифирь
каг бэ раз:
# echo "hjvjh28574.01р. Лучшая в *505*4292# (10р/д)"|sed -ne 's/\([0-9]*\.[0-9][0-9]\)/\[\1\]/p'
hjvjh[28574.01]р. Лучшая в *505*4292# (10р/д) -группа выделяется как и задумывалось
но внезапно два:
# echo "hjvjh28574.01р. Лучшая в *505*4292# (10р/д)"|sed -ne 's/\(^.*\)\([0-9]*\.[0-9][0-9]\)\(.*$\)/\[\1\] \[\2\] \[\3\]/p'
[hjvjh28574] [.01] [р. Лучшая в *505*4292# (10р/д)] -группы выделяются не так, как мне представляется они должны выделяться- [hjvjh] [28574.01] [р. Лучшая в *505*4292# (10р/д)]
собственно вопрос: где и в чём я неправ?

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

Не по теме:

Если Вы что-то не знаете это не означает что это что-то неочевидно. Отказ от ленивых квантификаторов позволил получить значительный прирост скорости. Если они так Вам нужны — используйте perlовые скрипты(и даже в них придется указывать что квантификатор ленивый), хотя, как показано в моих примерах, довольно просто обойтись и без них

Вопрос: AWS установка MySQL

В процессе установки выполняю
sudo mysql_secure_installation
получаю приглашение ввести пороль, ввожу но получаю

Enter current password for root (enter for none):
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Enter current password for root (enter for none):

Как понять? у рута нет доступа?

патался пропусть этот шаг и изменить потом - не выходит

что тут делать?
Ответ: если пароль не установлен, ключ -р - не нужен
Вопрос: Пакетное конвертирование UniConvertor

Есть задача переконвертировать из CBR в PDF комиксы, что-бы читалка читала моя)
Так вот хочется это сделать рекурсивно, переместив все сконвертированные файлы с сохранением относительных путей в другую папку
Н-р файл ./download/new/1.cbr переконвертируем в ./upload/new/1.pdf
Ответ: Нет
Bash
1
./cbr2pdf --help
какого-нибудь? А что получается после
Bash
1
./cbr2pdf "name.cbr"
Вопрос: Скрипт запускается, но ничего не делает

Доброго времени суток. Скрипт должен рекурсивно просматривать папки и менять расширение на первую букву у файлов, размер которых меньше заданного во втором аргументе. Первый аргумент - директория. Еще скрипт не должен менять сам себя. Что у меня неправильно?
Код Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
if [[ "$1" == "?" ]]
    then
            echo "скрипт меняет расширение на первую букву у тех файлов,\n размер которых меньше заданного во втором аргументе. "
        exit 1
fi
case $# in
        2) dirname=$1
          fsize=$2 ;;
        0) read -p "Введите адрес директории >>>  " dirname
          read -p "Введите размер файлов для замены суфикса >>>  " fsize ;;
        *) echo "Использование: скрипт директория размер"
          exit 1 ;;
esac
if [[ -d "$dirname" ]]
    then
            find "$dirname" -type f -size -$fsize not -samefile BASH_SOURCE  | while IFS='\n' read file
            do
                dir_name=$(dirname $file)
                file_name=$(basename $file)
                prefix=$(expr substr $file_name 1 1)
                suffix=${file_name##*.}
                newfilename=$dirname/${file_name%%$suffix}$prefix
            done
    else
            echo "Неправильное имя/адрес директории"
        exit 1
fi
Ответ: почему не роботает скрипт?
Код Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash
clear
while :
do
echo ----------------------------------------------------
echo Вітаємо вас Це Лабараторна робота № 2 яку виконав 
echo ----------------------------------------------------
echo "[1]" Якщо бажаєте вийти з прогами введіть 1
echo "[2]" Якщо бажаєте визначити кількість запущених даним користувачем процесів bash 
echo "[3]" Якщо бажаєте завершити всі процеси bash даного користувача
echo ----------------------------------------------------
echo  Зробіть ваш вибір 
echo ----------------------------------------------------
 
read nomer
 
case "$nomer" in
 
1 ) 
exit
;;
2 )
 
while read name && [ "$name" != "exit" ]
do
    if [ $name != $infousers ]
        then echo -e "Нет такого пользователя\n";
    fi
    ps -u "$name"|grep 'bash$';
;;
 
* )
echo ----------------------------------------------------
echo EROR
echo ----------------------------------------------------
echo Ви ввели не вірну команду \"$nomer\"
echo ----------------------------------------------------
echo EROR
echo ----------------------------------------------------
;;
esac
done