Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » Активные темы » UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

Открыть новую тему     Написать ответ в эту тему

digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи вопрошающие! Если ваша система отлична от ГНУ, и в то же время вы желаете обойтись только дефолтными средствами, указывайте и то и другое сразу, пожалуйста.


UNIX Shell

 
   Это глобальная тема по юниксовой командной оболочке, как по интерактивной работе в командной строке, так и по шелл-скриптам. Ключевые слова: sh, bash, zsh, tcsh, busybox, readline, coreutils, cp, mv, ln, rm, ls, readlink, mkdir, touch, stat, date, test, sleep, chown, chmod, chattr, dd, df, du, env, echo, cat, less, man, grep, sort, findutils, find, locate, xargs, md5sum, cmp, diff, patch, ps, kill, killall, tar, gzip, bzip2, xz, mount, fdisk, parted, mkfs, fsck, e2fsprogs, mtools, ss, netcat, netstat, rsync, ssh, scp, sftp, lftp, ncftp, time, strace.
   Неинтерактивная обработка текста (sed, awk, perl) пока тоже здесь.
   Смотри в других ветках: wget, convert, montage, mogrify и др., gs, git, 7z, p7zip, soffice, mplayer, mencoder, vlc, vim, mc, mcedit, kioclient.
 
 

Hint! Русские маны (подустаревшие, не всегда полные и не всегда для вашей системы) можно попытаться найти на Опеннете, к примеру: bash, tar, grep.

 
Готовые решения:
  • commandlinefu.com
    Крупнейшая база полезных однострочников на командной оболочке с ранжированием на основе пользовательского голосования.
     
  • shell-fu.org
    Аналогично, но поменьше и формат записей более свободный, поэтому встречаются и однострочники, и развернутые скрипты, и просто советы.
     
  • Useful one-line scripts for sed
    Почти исчерпывающий список решений для тех случаев, когда sed незаменим. Более сложные скрипты с sed.sf.net — только для тех, кто знает толк... :)

 
Учебная литература:
  • Greg’s Wiki (http://mywiki.wooledge.org)
    Наиболее обширный авторский сборник постоянно обновляющихся материалов по Башу.

    1. Bash Pitfalls
      (Частые ошибки программирования на Баше: [1], [2], [3], [4], [5] — пер. на русский по сост. на дек. 2008 г.).
      Рассмотрены преимущественно ошибки, возникающие из-за непонимания отличия шелла от «нормальных» скриптовых языков. Если вы уже владеете, например, Перлом, то это вполне может быть ваше первое руководство для ознакомления с Башем.
    2. Bash FAQ
    3. Bash Guide
    4. Bash Reference Sheet
      Шпаргалка по частым синтаксическим оборотам.

 
Классическая учебная литература:
С одной стороны не упомянуть эти издания нельзя, с другой — они настолько устарели, что едва ли их можно рекомендовать в роли учебника.

 

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

Всего записей: 351 | Зарегистр. 19-04-2003 | Отправлено: 18:51 16-05-2008 | Исправлено: qw12, 09:42 24-03-2020
urodliv



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Коллеги, выручайте.
Походу за два дня глаз у меня замылился и голова опухла.
Есть исполняемый файл /root/backup.sh (права 700) следующего содержания:

Код:
#! /bin/sh
 
/sbin/mount -t smbfs //BACKUP@SMBSRV/Users_Profiles /mnt/profiles/
/usr/local/bin/rsnapshot -c rsnapshot.conf.profiles daily
/sbin/umount /mnt/profiles/

 
ls -la /root/backup.sh
cat /etc/nsmb.conf
 
Запускаю всё это счастье из консоли под root`ом: всё работает и не кусается. Ставлю в cron на выполнение из-под root`а - облом. "Сбой при выполнении задания Сron'а".
 
P.S. Всё дело происходит на nas4free 9.2.0.1 - Shigawire (сборка 943)

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

Всего записей: 6684 | Зарегистр. 29-04-2009 | Отправлено: 10:38 19-08-2014 | Исправлено: urodliv, 10:43 19-08-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urodliv, у меня вероятно тоже, ибо я тут проблемы не вижу. Ну или она осталась за пределами того, что вы привели, например в crontab’е.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 22:38 19-08-2014
urodliv



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG

Цитата:
например в crontab’е.

Туда тоже смотрел. Криминала нет.
cat /etc/crontab

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

Всего записей: 6684 | Зарегистр. 29-04-2009 | Отправлено: 22:46 19-08-2014 | Исправлено: urodliv, 22:46 19-08-2014
urodliv



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG

Цитата:
urodliv, у меня вероятно тоже, ибо я тут проблемы не вижу.

Ацтой! Сколько раз я уже тут говорил людям, чтобы они внимательнее были с файловыми путями и, где возможно, использовали абсолютные пути. И что? Сам себе оказался злобным буратиной: конфигурационный файл при вызове rsnapshot`а брошен на произвол судьбы.

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

Всего записей: 6684 | Зарегистр. 29-04-2009 | Отправлено: 21:24 23-08-2014 | Исправлено: urodliv, 21:25 23-08-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urodliv, м-да... Но как оно работало при запуске из консоли по рутом? У вас что, rsnapshot.conf.profiles в /root/ лежит?

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 21:47 23-08-2014
urodliv



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Йа-йа! На время тестов туда загнал.

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

Всего записей: 6684 | Зарегистр. 29-04-2009 | Отправлено: 22:35 23-08-2014
niko7

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FreeBSD 9.2 скрипт работает, если запускаю руками.
#!/bin/sh
service minidlna stop
rm -rf /red/minidlna/*
service minidlna start
Не работает, если его запускает cron. В файле /var/mail/root написано так:
Subject: Cron <root@arh> /usr/my_scripts/minidlna
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
 
/usr/my_scripts/minidlna: service: not found
/usr/my_scripts/minidlna: service: not found
Подскажите, как исправить скрипт?

Всего записей: 2414 | Зарегистр. 23-09-2004 | Отправлено: 00:23 29-08-2014 | Исправлено: niko7, 00:24 29-08-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
niko7
 
> service minidlna stop  
> X-Cron-Env: <PATH=/usr/bin:/bin>

 
Ну правильно, service, емнип, это /usr/sbin/service же.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 00:47 29-08-2014 | Исправлено: ASE_DAG, 00:49 29-08-2014
niko7

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Цитата:
Ну правильно, service, емнип, это /usr/sbin/service же.
Т.е. правильно будет так?
#!/bin/sh
/usr/sbin/service minidlna stop
rm -rf /red/minidlna/*
/usr/sbin/service minidlna start

Всего записей: 2414 | Зарегистр. 23-09-2004 | Отправлено: 11:50 29-08-2014 | Исправлено: niko7, 11:50 29-08-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
niko7, ну да. Это если мне память таки не изменяет — вы проверьте, где service-то.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 15:56 29-08-2014
niko7

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Цитата:
вы проверьте, где service-то.
А как проверить?

Всего записей: 2414 | Зарегистр. 23-09-2004 | Отправлено: 21:06 29-08-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
niko7
 
А если подумать? Получается, можно взять заглянуть, куда сказано было: $ ls /usr/sbin/service
 
А если погуглить (можно даже по-русски: «freebsd путь к программе»)? Получается $ which service.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 22:34 29-08-2014
niko7

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Спасибо за помощь, похоже все получилось:
Subject: Cron <root@arh> /usr/my_scripts/minidlna
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
 
Stopping minidlna.
Waiting for PIDS: 20863.
Starting minidlna.

Цитата:
А если погуглить (можно даже по-русски: «freebsd путь к программе»)?  
Не нашел ничего внятного
Цитата:
Получается $ which service.
/usr/sbin/service

Всего записей: 2414 | Зарегистр. 23-09-2004 | Отправлено: 11:30 30-08-2014 | Исправлено: niko7, 11:35 30-08-2014
CrownRU



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе время суток. Помогите пожалуйста со следующей проблемой.
Есть куча конфигурационных файлов для инстанций commonstore (не суть в том), в каждом файле описаны порты на которых должны поднятся инстанции. Иногда случается так, что инстанции поднимаются с неправильными портами - вот это и надо словить - выдать ошибку.
 
Я, к сожалению не бог весть какой программер
 
Вот список файлов (частично):

Код:
/archive/obj/cssap/F/FCT_A/archint.ini.FCT_A
/archive/obj/cssap/F/FCP_O/archint.ini.FCP_O
/archive/obj/cssap/F/FCP_O/archint.ini.FCP_O.mig.1
/archive/obj/cssap/F/FCP_O/archint.ini.FCP_O.orig
/archive/obj/cssap/F/FCT_E/archint.ini.FCT_E
/archive/obj/cssap/F/FCT_E/archint.ini.FCT_E.mig.1
/archive/obj/cssap/F/FCT_E/archint.ini.FCT_E.orig
/archive/obj/cssap/F/FCT_P/archint.ini.FCT_P
/archive/obj/cssap/F/FCT_P/archint.ini.FCT_P.mig.1
/archive/obj/cssap/F/FCT_P/archint.ini.FCT_P.orig
/archive/obj/cssap/F/FCT_X/archint.ini.FCT_X
/archive/obj/cssap/F/FCT_X/archint.ini.FCT_X.mig.1
/archive/obj/cssap/F/FCT_X/archint.ini.FCT_X.orig
/archive/obj/cssap/F/FCP_E/archint.ini.FCP_E
/archive/obj/cssap/F/FCP_E/archint.ini.FCP_E.mig.1
/archive/obj/cssap/F/FCP_E/archint.ini.FCP_E.orig
/archive/obj/cssap/F/FCP_P/archint.ini.FCP_P
/archive/obj/cssap/F/FCP_P/archint.ini.FCP_P.mig.1
/archive/obj/cssap/F/FCP_P/archint.ini.FCP_P.orig
/archive/obj/cssap/F/FCP_X/archint.ini.FCP_X
/archive/obj/cssap/F/FCP_X/old/archint.ini.FCP_X.mig.1
/archive/obj/cssap/F/FCP_X/old/archint.ini.FCP_X.orig
/archive/obj/cssap/F/HBT_E/archint.ini.HBT_E
/archive/obj/cssap/F/HBT_E/archint.ini.HBT_E.mig.1
/archive/obj/cssap/F/HBT_E/archint.ini.HBT_E.orig
/archive/obj/cssap/F/HBT_A/archint.ini.HBT_A
/archive/obj/cssap/F/HBT_A/archint.ini.HBT_A.mig.1
/archive/obj/cssap/F/HBT_A/archint.ini.HBT_A.orig
/archive/obj/cssap/F/HBT_X/archint.ini.HBT_X
/archive/obj/cssap/F/HBT_X/archint.ini.HBT_X.mig.1
/archive/obj/cssap/F/HBT_X/archint.ini.HBT_X.orig
/archive/obj/cssap/F/HBP_E/archint.ini.HBP_E
/archive/obj/cssap/F/HBP_E/archint.ini.HBP_E.mig.1
/archive/obj/cssap/F/HBP_E/archint.ini.HBP_E.orig
/archive/obj/cssap/F/HBP_A/archint.ini.HBP_A
/archive/obj/cssap/F/HBP_A/archint.ini.HBP_A.mig.1
/archive/obj/cssap/F/HBP_A/archint.ini.HBP_A.orig
/archive/obj/cssap/F/HBP_X/archint.ini.HBP_X
 

 
В каждом файле есть такой паттерн с портами на которых должны подняться соответствующие инстанции (например /archive/obj/cssap/F/HBP_X/archint.ini.HBP_X):
 

Код:
CLIENT_ALL_PORTS_FIXED YES
ARCHWIN_PORT    21170
WEBPORT         41170
 

 
Я начал делать так (неправильно - происходит смещение на строку):

Код:
 
find /archive/obj/cssap -type f -name archint.ini.* -print -exec awk '/ARCHWIN_PORT|WEBPORT/ && !/#/ {printf "%s ", $0}' {} \;

 
Что-то такое получается:

Код:
ARCHWIN_PORT    12490 WEBPORT         32490 /archive/obj/cssap/M/HBP_Y/archint.ini.HBP_Y
ARCHWIN_PORT    13330 WEBPORT         33330 /archive/obj/cssap/M/NDP_I/archint.ini.NDP_I
ARCHWIN_PORT    21140 WEBPORT         41140 /archive/obj/cssap/M/NDP_PB/archint.ini.NDP_PB
ARCHWIN_PORT    18335 WEBPORT         38335 /archive/obj/cssap/M/NCP_MA/archint.ini.NCP_MA
ARCHWIN_PORT    16335 WEBPORT         36336 /archive/obj/cssap/M/NDP_MA/archint.ini.NDP_MA
 

 
Возможно лучше сделать так - выдает только имя инстанции и порты:

Код:
find /archive/obj/cssap -name archint.ini.???_? -print -exec awk '/^ARCHWIN_PORT|^WEBPORT/ {print $2}' {} \;


Код:
/archive/obj/cssap/M/NCP_C/archint.ini.NCP_C
20080
40080
 

 
 
Вообщем запутался в своих ногах.
Хотелось бы сделать проверку (не знаю как точно), на тех ли портах поднялась инстанция и сделать вывод наподобие:
 
Имя Инстанции [Tab] Порты из Конфигурации [Tab] Порты на котором стартанула инстанция
 
и если порты различаются, то выдать ошибку.

Всего записей: 212 | Зарегистр. 14-01-2003 | Отправлено: 18:14 01-09-2014 | Исправлено: CrownRU, 18:59 01-09-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CrownRU, я ничего не понял! Что надо вывести? Табличку из ARCHWIN_PORT, WEBPORT, и имени файла из коего они взяты? Ну так поменяйте -exec и -print местами.
 
$ find -type f -name 'archint.ini.*' -exec awk '$1 == "ARCHWIN_PORT" || $1 == "WEBPORT" { printf "%s ", $0 }' {} \; -print
ARCHWIN_PORT    21170   WEBPORT         41170   ./FCT_A/archint.ini.FCT_A

 
Добавлено:
Более аккуратная табличка, плюс устойчивость к иному порядку в archint.ini.*:
 
$ echo 'ARCHWIN_PORT WEBPORT FILENAME'; \
find -type f -name 'archint.ini.*' -exec \
    awk '$1 == "ARCHWIN_PORT" || $1 == "WEBPORT" { a[$1] = $2 }; END { printf "%12s %7s ", a["ARCHWIN_PORT"], a["WEBPORT"] }' {} \; \
    -printf '%f\n'
 
ARCHWIN_PORT WEBPORT FILENAME
       21170   41170 archint.ini.FCT_A

 
И обратите внимание, что глобы надо экранировать — -name 'archint.ini.*', ага.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 19:56 01-09-2014 | Исправлено: ASE_DAG, 20:21 01-09-2014
karavan



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Извиняюсь за оффтоп, прошу оказать помощи в этой теме, вопрос очень близок тем, кто пишет скрипты.

Всего записей: 1962 | Зарегистр. 02-12-2011 | Отправлено: 20:11 01-09-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
karavan, по существу ответил вам там, а тут, расскажите, пожалуйста, что у вас за конструкция 2&>/dev/null?

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 20:46 01-09-2014
karavan



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG
где-то подсмотрел ошибочный пример подавления вывода, сейчас уже в курсе ошибочности конструкции, но до Вашего вопроса не обращал внимания, т.к. подавление работало.

Всего записей: 1962 | Зарегистр. 02-12-2011 | Отправлено: 21:59 01-09-2014
CrownRU



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Огромное спасибо! Работает.
Можно набраться наглости и попросить еше сделать проверку по портам?
 
Как пример - кусочек из выхода от Вашего скрипта:

Код:
              14110   34110 archint.ini.H4P_YP  

 
Я делаю сейчас проверку вручную вот так:

Код:
 
Проверяю процессы, которые используют порт. Нам всегда нужен первый (20319)
# fuser 14110/tcp
14110/tcp:           20319 20320 20321
Выискиваю по номеру процесса имя процесса и если он совпадает с именем инстанции, все "Ок.", а если ничего не показывает, то это ошибка.
# ps aux | grep 20319 | grep archint.ini.H4P_YP
cstore   20319  0.0  0.0  31860 11880 ?        S    Sep01   0:03 archpro -i /archive/obj/cssap/N/H4P_YP/archint.ini.H4P_YP

 
Наверное одной строкой можно и так сделать:

Код:
ps aux | grep $(lsof|awk '/14110/&&/archpro/{print $2}')|grep -v grep
cstore   20319  0.0  0.0  31860 11880 ?        S    Sep01   0:03 archpro -i /archive/obj/cssap/N/H4P_YP/archint.ini.H4P_YP
 

 
Можно ли это автоматизировать и имплементировать в Ваш скрипт и вставить статус еще одним полем?

Всего записей: 212 | Зарегистр. 14-01-2003 | Отправлено: 13:06 02-09-2014 | Исправлено: CrownRU, 14:49 02-09-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CrownRU, да можно, конечно, просто тогда стоило сразу скрипт на Баше писать, а не однострочник лепить. Вот, как-то так:
 

Код:
#!/bin/bash
 
# config
DIR="/archive/obj/cssap"
 
shopt -s failglob globstar
declare -A INI
# coloring
RED="$(tput setaf 1)"
SGR0="$(tput sgr0)"
 
echo 'STATUS ARCHWIN_PORT WEBPORT FILENAME'
 
for INIFILE in "$DIR"/**/archint.ini.*; do
    while read KEY VALUE; do
        case $KEY in
            'ARCHWIN_PORT'|'WEBPORT')  
               INI[$KEY]="$VALUE"
               ;;
        esac
    done < "$INIFILE"
 
    STATUS="    OK"
    read PID __ < <(fuser 2>&- "${INI[ARCHWIN_PORT]}/tcp")
    if [[ -z $PID ]]; then
        # No instance on port
        STATUS="${RED}  NIoP${SGR0}"
    else
        read CMD < <(ps -p "$PID" -o cmd=)
        [[ $CMD == *$INIFILE ]] ||\
            # Wrong instance on port
            STATUS="${RED}  WIoP${SGR0}"
    fi
 
    printf '%s %12s %7s %s\n' \
        "$STATUS" \
        "${INI[ARCHWIN_PORT]}" \
        "${INI[WEBPORT]}" \
        "${INIFILE##*/}"
done

 
 
Я не могу проверить в деле, но вроде бы тут ошибок нет.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 02:29 03-09-2014 | Исправлено: ASE_DAG, 02:35 03-09-2014
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

Компьютерный форум Ru.Board » Операционные системы » UNIX » Активные темы » UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru