Вы можете использовать
sed 's/vm.swappiness=[0-9]*/vm.swappiness=1/g' /etc/sysctl.conf
, если не возражаете, сколько цифр у вас есть.
Если вы не хотите, чтобы вы не более трех цифр, вам нужно расширенное (современное) регулярное выражение, а не основные регулярные выражения (BRE). Затем вам необходимо указать параметр «-E»
sed -E 's/vm.swappiness=[0-9]{1,3}/vm.swappiness=1/g' /etc/sysctl.conf
Вы можете использовать grep, чтобы найти все файлы, содержащие что-то похожее на IP-адрес IPv4. Имейте в виду, что будут ложные срабатывания. Например, файл:
/usr/src/linux-headers-4.14.30-041430/include/linux/oid_registry.h
в строке 48 будет содержать:
OID_smimeAuthenticatedAttrs, /* 1.2.840.113549.1.9.16.2.11 */
В комментариях он выглядит как IP-адрес, но это не так.
Сначала начните с подсчета всех строк, содержащих IP-адрес в вашей системе:
$ sudo time grep -rnwI --exclude-dir={boot,dev,media,mnt,lib,proc,root,run,sys,/tmp,tmpfs,var} -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" / | wc
27.76user 13.17system 1:31.06elapsed 44%CPU (0avgtext+0avgdata 10416maxresident)k
12451744inputs+0outputs (2major+2098minor)pagefaults 0swaps
17164 122083 3138285
Давайте разбейте команды
sudo, чтобы предотвратить «Разрешение отказано» «errors time говорит нам, сколько времени требуется для запуска, т.е. 1 минута 31 секунда grep - это команда, которая ищет строки в файлах -rnwI - это аргументы (ака параметры), переданные в grep. Режимы r означают, что подкаталоги рекурсивного значения обрабатываются. Аргумент n печатает номер строки, в которой находится строка поиска в файле. Аргумент I говорит ему игнорировать двоичные файлы. Если бы двоичные файлы были включены, количество файлов увеличилось бы с 17 164 до 22 253 в моей системе. Однако вы не можете открывать двоичные файлы и понимать их. -exclude-dir= - это каталоги для исключения из поиска. Без этого списка grep может занять 53 часа: `grep`ing всех файлов для строки занимает много времени -E - это аргумент grep, который сообщает, что строка поиска будет следовать. "([0-9]{1,3}[\.]){3}[0-9]{1,3}" является поисковой строкой, чтобы смотреть вперед. Более подробно поясняется ниже. / сообщает grep, чтобы начать с корневого каталога. Однако исключенные каталоги будут пропущены. | - команда pipe, отправляющая весь вывод в команду wc вместо экрана. wc - команда «count count». Он подсчитывает число строк, количество слов и количество переданных ему символов. В нашем случае это 17164 строки, 122,083 слова и 3,138,285 символы. Запятые добавлены для ясности.Как показано выше, строка поиска, переданная в grep, - "([0-9]{1,3}[\.]){3}[0-9]{1,3}". Вот как это работает:
"([0-9]{1,3}[\.]){3}[0-9]{1,3}"
^ ^ ^ ^ ^ ^
| | | | | +---- count of digits must be 1 to 3
| | | | +--------- look for digits 0 through 9
| | | +------------- patterns 1 to 3 digits of 0-9 followed by . occurs 3 times
| | +------------------ count of 1 to 3 digits must be followed by .
| +---------------------- count of digits is 1 to 3
+--------------------------- look for digits 0 to 9
Чтобы увидеть фактический вывод вместо простого количества слов, удалите | wc с конца командной строки:
$ sudo time grep -rnwI --exclude-dir={boot,dev,media,mnt,lib,proc,root,run,sys,/tmp,tmpfs,var} -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" /
(... SNIP ...)
/usr/bin/printer-profile:176: OUT="nc 192.168.1.12 9100 < xxx.prn"
/opt/google/chrome/default_apps/external_extensions.json:23: "external_version": "0.0.0.6"
/opt/google/chrome/product_logo_32.xpm:330:" [.}.}.|.1.2.3.4.5.6.7.8.9.0.a.b.8.c.d.e.f.g.h.h.i.j.k.l. ",
28.52user 12.54system 1:31.78elapsed 44%CPU (0avgtext+0avgdata 9516maxresident)k
12793352inputs+0outputs (3major+1884minor)pagefaults 0swaps
Список слишком длинный, чтобы вписаться в этот ответ. Обратите внимание, что последний найденный файл является ложным:
/opt/google/chrome/product_logo_32.xpm
, поскольку он не содержит реального IP-адреса:
[.}.}.|.1.2.3.4.5.6.7.8.9.0.a.b.8.c.d.e.f.g.h.h.i.j.k.l.
Чтобы сузить поиск до более значимого использования короткого списка:
$ sudo time grep -rnI -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" /etc/etc/hosts:1:127.0.0.1 localhost
/etc/hosts:2:127.0.1.1 alien
/etc/cron.daily/google-earth:47:Version: GnuPG v1.4.2.2 (GNU/Linux)
(... SNIP ...)
/etc/cups/cups-browsed.conf:77:# BrowseDeny 192.168.1.13
/etc/cups/cups-browsed.conf:78:# BrowseDeny 192.168.3.0/24
/etc/cups/cups-browsed.conf:79:# BrowseDeny 192.168.3.0/255.255.255.0
0.04user 0.03system 0:00.19elapsed 40%CPU (0avgtext+0avgdata 2800maxresident)k
22384inputs+0outputs (1major+181minor)pagefaults 0swaps
Вы можете использовать grep, чтобы найти все файлы, содержащие что-то похожее на IP-адрес IPv4. Имейте в виду, что будут ложные срабатывания. Например, файл:
/usr/src/linux-headers-4.14.30-041430/include/linux/oid_registry.h
в строке 48 будет содержать:
OID_smimeAuthenticatedAttrs, /* 1.2.840.113549.1.9.16.2.11 */
В комментариях он выглядит как IP-адрес, но это не так.
Сначала начните с подсчета всех строк, содержащих IP-адрес в вашей системе:
$ sudo time grep -rnwI --exclude-dir={boot,dev,media,mnt,lib,proc,root,run,sys,/tmp,tmpfs,var} -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" / | wc
27.76user 13.17system 1:31.06elapsed 44%CPU (0avgtext+0avgdata 10416maxresident)k
12451744inputs+0outputs (2major+2098minor)pagefaults 0swaps
17164 122083 3138285
Давайте разбейте команды
sudo, чтобы предотвратить «Разрешение отказано» «errors time говорит нам, сколько времени требуется для запуска, т.е. 1 минута 31 секунда grep - это команда, которая ищет строки в файлах -rnwI - это аргументы (ака параметры), переданные в grep. Режимы r означают, что подкаталоги рекурсивного значения обрабатываются. Аргумент n печатает номер строки, в которой находится строка поиска в файле. Аргумент I говорит ему игнорировать двоичные файлы. Если бы двоичные файлы были включены, количество файлов увеличилось бы с 17 164 до 22 253 в моей системе. Однако вы не можете открывать двоичные файлы и понимать их. -exclude-dir= - это каталоги для исключения из поиска. Без этого списка grep может занять 53 часа: `grep`ing всех файлов для строки занимает много времени -E - это аргумент grep, который сообщает, что строка поиска будет следовать. "([0-9]{1,3}[\.]){3}[0-9]{1,3}" является поисковой строкой, чтобы смотреть вперед. Более подробно поясняется ниже. / сообщает grep, чтобы начать с корневого каталога. Однако исключенные каталоги будут пропущены. | - команда pipe, отправляющая весь вывод в команду wc вместо экрана. wc - команда «count count». Он подсчитывает число строк, количество слов и количество переданных ему символов. В нашем случае это 17164 строки, 122,083 слова и 3,138,285 символы. Запятые добавлены для ясности.Как показано выше, строка поиска, переданная в grep, - "([0-9]{1,3}[\.]){3}[0-9]{1,3}". Вот как это работает:
"([0-9]{1,3}[\.]){3}[0-9]{1,3}"
^ ^ ^ ^ ^ ^
| | | | | +---- count of digits must be 1 to 3
| | | | +--------- look for digits 0 through 9
| | | +------------- patterns 1 to 3 digits of 0-9 followed by . occurs 3 times
| | +------------------ count of 1 to 3 digits must be followed by .
| +---------------------- count of digits is 1 to 3
+--------------------------- look for digits 0 to 9
Чтобы увидеть фактический вывод вместо простого количества слов, удалите | wc с конца командной строки:
$ sudo time grep -rnwI --exclude-dir={boot,dev,media,mnt,lib,proc,root,run,sys,/tmp,tmpfs,var} -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" /
(... SNIP ...)
/usr/bin/printer-profile:176: OUT="nc 192.168.1.12 9100 < xxx.prn"
/opt/google/chrome/default_apps/external_extensions.json:23: "external_version": "0.0.0.6"
/opt/google/chrome/product_logo_32.xpm:330:" [.}.}.|.1.2.3.4.5.6.7.8.9.0.a.b.8.c.d.e.f.g.h.h.i.j.k.l. ",
28.52user 12.54system 1:31.78elapsed 44%CPU (0avgtext+0avgdata 9516maxresident)k
12793352inputs+0outputs (3major+1884minor)pagefaults 0swaps
Список слишком длинный, чтобы вписаться в этот ответ. Обратите внимание, что последний найденный файл является ложным:
/opt/google/chrome/product_logo_32.xpm
, поскольку он не содержит реального IP-адреса:
[.}.}.|.1.2.3.4.5.6.7.8.9.0.a.b.8.c.d.e.f.g.h.h.i.j.k.l.
Чтобы сузить поиск до более значимого использования короткого списка:
$ sudo time grep -rnI -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" /etc/etc/hosts:1:127.0.0.1 localhost
/etc/hosts:2:127.0.1.1 alien
/etc/cron.daily/google-earth:47:Version: GnuPG v1.4.2.2 (GNU/Linux)
(... SNIP ...)
/etc/cups/cups-browsed.conf:77:# BrowseDeny 192.168.1.13
/etc/cups/cups-browsed.conf:78:# BrowseDeny 192.168.3.0/24
/etc/cups/cups-browsed.conf:79:# BrowseDeny 192.168.3.0/255.255.255.0
0.04user 0.03system 0:00.19elapsed 40%CPU (0avgtext+0avgdata 2800maxresident)k
22384inputs+0outputs (1major+181minor)pagefaults 0swaps