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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 154 155 156 157

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

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
      Шпаргалка по частым синтаксическим оборотам.

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

 

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

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



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alukardd
В выводе 7z без CRC присутствуют папки.

Всего записей: 13254 | Зарегистр. 11-03-2002 | Отправлено: 14:59 03-01-2025
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
И правда, сам чёт не подумал.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6587 | Зарегистр. 28-08-2008 | Отправлено: 19:45 03-01-2025
alex52mail

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Надо быстро пересмотреть что за  *.efi  файлы.
 
Что то не могу их запустить:  не перегружая комп для каждого файла (в Boot Menu - есть загрузка *.efi  файлов).
Мне хоть в винде  vbox  or  qemu  or  in Linux
 
Пробовал что советует интернет типа:
myqemu.exe -m 1024  -bios efi64.bin  -drive if=pflash,file="A:\efi\_mix\bootx64~.efi"
myqemu.exe -m 1024  -bios efi64.bin  -hda "A:\efi\_mix\bootx64~.efi" -boot c
 
В крайнем случае: скидывается в efi Shell - там можно но долго прописывать пути.
 
Как правильно запускать  *.efi файлы ?
 
Удачи.

----------
Везде трудно первые 15 лет, потом легче.
Все проблемы имеют ПРОСТОЕ решение
Ты начальник я дурак я начальник ты дурак. Но хуже дурака дурак с инициативой.

Всего записей: 1987 | Зарегистр. 04-09-2015 | Отправлено: 22:03 10-01-2025 | Исправлено: alex52mail, 22:05 10-01-2025
alexnov66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот такая конструкция при вводе домена заменяет в переменной зону ру на сом
подскажите альтернативу для линукса CentOS, может даже универсальную при вводе любого первого уровня домена поменять на нужную зону и выдать вторую переменную.
Для windows
set domainold=domain.ru
set domainnew="%domainold:ru=com%"
echo %domainnew%

Всего записей: 1552 | Зарегистр. 29-08-2005 | Отправлено: 23:25 17-01-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexnov66
https://www.gnu.org/software/bash/manual/bash.html#Shell-Parameter-Expansion
domainold="domain.ru"
domainnew=${domainold/%ru/com}
echo $domainnew
 
%ru - для замены только последнего

Всего записей: 16315 | Зарегистр. 20-09-2014 | Отправлено: 23:50 17-01-2025
alexnov66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
спасибо, вроде делал такую конструкцию, видать что то было не так.
 
Добавлено:
что то универсальный со звёздочкой не получается, не хотит работат
domainold="domain.ru"
domainnew=${domainold/%.*/com}
echo $domainnew

Всего записей: 1552 | Зарегистр. 29-08-2005 | Отправлено: 00:25 18-01-2025
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexnov66
ЧЯДНТ? УМВР.
Может у Вас не bash?
 
p.s. Читать в man bash в секции Parameter Expansion про Pattern substitution.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6587 | Зарегистр. 28-08-2008 | Отправлено: 10:53 18-01-2025
alexnov66



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

Цитата:
Может у Вас не bash?

баш но не выходит у меня универсальный сделать

Всего записей: 1552 | Зарегистр. 29-08-2005 | Отправлено: 20:54 18-01-2025
Mavrikii

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

Цитата:
что то универсальный со звёздочкой не получается, не хотит работат

${domainold/%.*/.com}
лучше, наверно, даже так, потому что не сработает нормально с поддоменами.
domainnew=${domainold%.*}.com

Всего записей: 16315 | Зарегистр. 20-09-2014 | Отправлено: 21:28 18-01-2025 | Исправлено: Mavrikii, 21:32 18-01-2025
alexnov66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
блин точку я не догадался подставить, работает даже если ввести рускую зону рус  
единственное скрипт должен быть в кодировку утф8
${domainold/%.*/.com}

Всего записей: 1552 | Зарегистр. 29-08-2005 | Отправлено: 02:09 19-01-2025 | Исправлено: alexnov66, 02:13 19-01-2025
Mavrikii

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

Цитата:
domainnew=${domainold%.*}.com

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

Всего записей: 16315 | Зарегистр. 20-09-2014 | Отправлено: 07:37 19-01-2025 | Исправлено: Mavrikii, 12:49 21-01-2025
mleo

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

Выпуск минималистичного набора системных утилит Toybox 0.8.12
21.01.2025

Всего записей: 7284 | Зарегистр. 19-05-2004 | Отправлено: 12:47 21-01-2025 | Исправлено: mleo, 12:48 21-01-2025
alexnov66



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

Цитата:
 
domainnew=${domainold%.*}.com
 
лучше так, у вас будут проблемы если домен второго третьего уровня.

 
так выводит только точка ком без домена.

Всего записей: 1552 | Зарегистр. 29-08-2005 | Отправлено: 01:14 22-01-2025
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexnov66
Цитата:
так выводит только точка ком без домена.
так в $domainold у Вас значит пустота?..

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6587 | Зарегистр. 28-08-2008 | Отправлено: 16:27 22-01-2025
alexnov66



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

Цитата:
так в $domainold у Вас значит пустота?..

это как такое возможно, пол доменного имени подменяется а половина пропала.
что то не так в этой записи, ладно пока отложим это на потом.

Всего записей: 1552 | Зарегистр. 29-08-2005 | Отправлено: 21:54 22-01-2025
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexnov66
Ни чего не подменяется же в последнем варианте
Цитата:
domainnew=${domainold%.*}.com
тут сказано:
1) отрезать от содержимого переменной с именем "domainold" всё что после последней точки.
2) дописать в конец к оставшемуся ".com"
3) сохранить всё что получилось в переменную "domainnew"
 
p.s. вообще, кнеч, я не могу не добавить, что то что я вот сейчас описал это не дело такое обсуждать в беседе несколько дней, вместо одного сообщения с вариантом ответа.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6587 | Зарегистр. 28-08-2008 | Отправлено: 08:58 23-01-2025
alexnov66



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

Цитата:
такое обсуждать в беседе несколько дней, вместо одного сообщения с вариантом ответа.

тоже не понимаю чем дать правильный ответ начинают флудить или отправляют инструкции читать.
предложенный маркини второй вариант не доделан, методом тыка получилось работоспособная конструкция замены как слова так и точки на тире, в конце слэша не хватало
 

Код:
 
domainnew=${domainold%.*}\.com
domainnew=${domainold//./-}
 

Всего записей: 1552 | Зарегистр. 29-08-2005 | Отправлено: 23:39 23-01-2025 | Исправлено: alexnov66, 03:01 24-01-2025
tirex2k



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго дня, помогите как только не пробывал не выходит, может у grep есть ограничение на шаблон.

Код:
if ! grep 'serverName=\|database=\|orgId=\|provinceKLADR=\|defaultKLADR=\|fssCertSha1=\|fssUseEncryption=\|fssServiceUrl=\|warnAboutCertExpiration\|browserDir=\|certExpirationWarnPeriod=\|csp=' ~/.config/samson-vista/S11App.ini; then
    cp -a -p /etc/skel/.config/samson-vista/S11App.ini ~/.config/samson-vista/S11App.ini && filesam=1
    chmod 644 ~/.config/samson-vista/S11App.ini
fi

 
задача, если в файле S11App.ini нет хотябы одного из пораметров (serverName=, database= и т.д.) выполняем cp, причем database= часть текста в строке.
 
пробовал

Код:
if ! grep -e "serverName=" -e "database="...
if ! grep -E '(serverName=|database=|...)'
 
возможно не работает с таким количеством параметрав, если указать 2 то вроде работает.

Всего записей: 91 | Зарегистр. 09-12-2004 | Отправлено: 11:52 27-03-2025 | Исправлено: tirex2k, 14:56 27-03-2025
igor_andreev

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

Цитата:
задача, если в файле S11App.ini нет хотябы одного из пораметров (serverName=, database= и т.д.) выполняем cp,

А эти параметры в файле только по одному разу могут встречаться? И каждый в отдельной строке? Тогда их можно просто посчитать, у grep это ключ -c, --count. И если не равно 12(или сколько их всего?) то cp...
 

Цитата:
возможно не работает с таким количеством параметрав

 
Ему по барабану, сколько и чего искать. Запустите grep -c 'var1\|var2\|....\|var12' file.ext, посмотрите,  что за цифирь выдает
 
 

Всего записей: 1708 | Зарегистр. 08-12-2004 | Отправлено: 03:52 28-03-2025 | Исправлено: igor_andreev, 04:20 28-03-2025
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tirex2k, в ini-файлах, между наименованием параметра и знаком = вполне может быть пробел.. Может имеет смысл попробовать искать параметры с начала строки, с символом ^.
 

Всего записей: 1003 | Зарегистр. 14-12-2005 | Отправлено: 05:57 28-03-2025
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 154 155 156 157

Компьютерный форум 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-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru