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

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

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

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

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

 

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

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



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

----------
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.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 22:28 21-03-2012
cp58

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jugador
Можно пойти другим путем:
num=$(od -A n -t u -N 4 /dev/random)
echo $((num%12+1))

Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 22:40 21-03-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cp58
Ну тогда уж в одно действие всё-таки число получать стоит:
num=$(($(od -A n -t u -N 4 /dev/random)%12+1))
 
Jugador
такое поведение может быть вызвано тем что в скрипте у вас переменная RANDOM оказывается не установлена. Т.е. либо она по какой-то причине оказалась не установлена, либо её кто-то принудительно выполнил unset RANDOM
 
Добавлено:
Нашёл кривой способ вернуть её в самом же скрипте, хз почему она исчезает...
Первой строчкой прописать: RANDOM=$$

----------
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.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 22:51 21-03-2012
Jugador

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

Цитата:
Первой строчкой прописать: RANDOM=$$

Не рандомно меняется а, как i++ , т.е. по единице прибавляет, иногда по 2 ))
 

Цитата:
num=$(($(od -A n -t u -N 4 /dev/random)%12+1))  
- работает! Но! Если злоупотреблять (генерировать подряд несколько), думает по три - пять секунд! Многовато это.

Всего записей: 138 | Зарегистр. 14-04-2004 | Отправлено: 02:43 22-03-2012 | Исправлено: Jugador, 03:02 22-03-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jugador
Щито у вас там происходит?
Не, всё, я пас. Знания мои на этом иссякли, а что бы что-то исследовать нужен доступ к косячной системе.

----------
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.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 03:07 22-03-2012
cp58

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

Цитата:
- работает! Но! Если злоупотреблять (генерировать подряд несколько), думает по три - пять секунд! Многовато это.

Читать с /dev/random дорого, если не так важно, то можно считывать с /dev/urandom(псевдослучайные значения).
num=$(($(od -A n -t u -N 4 /dev/urandom)%12+1))  

Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 09:47 22-03-2012
Jugador

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

Цитата:
num=$(($(od -A n -t u -N 4 /dev/urandom)%12+1))  
 

То, что надо. Не тормозит. Большое спасибо.  
Для тех, кто видит впервые, вкратце поясню... Эта строчка даёт случайное значение от 1 до 12 в скрипте #!/bin/bash

Всего записей: 138 | Зарегистр. 14-04-2004 | Отправлено: 10:39 22-03-2012
LevT



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

ASE_DAG

Цитата:
 

Цитата:
> об этом решении первый раз слышу, надо изучить  
Изучил. На данном этапе развития эту штуку использовать не надо. Там сейчас служебного кода больше, чем полезных функций.  

Если интересует, могу попробовать вспомнить, где я встречал более обширный «фрэймворк» для Баша.  

 
Было б здорово.
Хотя полезных функций дофига например в примерах к absg, а для меня распарсить строчку табличного конфига на практике, как выяснилось, проблема...
 
 
 
Добавлено:
 
нашел кусок который нравится, такой стиль я люблю
  в винворде 15 лет назад что-то подобное сооружал
 
while IFS=: read -r link addr ; do
    ((nic_cnt++))
    nics[$nic_cnt]=$link
    macs[$nic_cnt]=`echo $addr | sed 's/\\\:/:/g'`
    assigned[$nic_cnt]="-"
done < <(dladm show-phys -pmo link,address 2>/dev/null)

Всего записей: 17747 | Зарегистр. 14-10-2001 | Отправлено: 00:26 23-03-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Вместо конструкции ``, лучше использовать $().
оО Впервые вижу команду dladm, как понял это Solaris.

----------
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.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 01:13 23-03-2012
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
Ага, даталинки админятся так, L3 из ipadm.
Но самая жесть, которую мне надо обернуть в свой конфигуратор - это stmfadm, itadm и sbdadm (ядро фреймворка рулящее видимостью лунов, драйвер scsi block device и драйвер iscsi таргет порта)

Всего записей: 17747 | Зарегистр. 14-10-2001 | Отправлено: 01:27 23-03-2012
Alukardd



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

LevT
Разругались тут *adm утилитами - я к Debian'у привык

----------
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.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 01:38 23-03-2012
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Там всё через адмы ради SMF - по мотивам которой сделан upstart.
В этой Service Management Facility конфиги сервисов декларативные в xml, меняются законно только либами, которых дёргают адмы.
Соотвественно разработчики могут менять схемы никого не спрашивая и не отчитываясь в доках: совместимость обещана на уровне либов.  

Всего записей: 17747 | Зарегистр. 14-10-2001 | Отправлено: 01:45 23-03-2012 | Исправлено: LevT, 01:46 23-03-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
ужОс
не хочу даже лезть в это... Не люблю такие подходы, меня просто воротит от них.
 
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.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 01:47 23-03-2012 | Исправлено: Alukardd, 01:48 23-03-2012
LevT



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

Зато бэкап настроек через экспорт-импорт xml конфига. И я гроша ломанного не поставлю за переносимость этих бэкапов между разными солярами.
 

Всего записей: 17747 | Зарегистр. 14-10-2001 | Отправлено: 01:49 23-03-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
бэкап настроек через экспорт-импорт xml конфига
м-м, да спасёт нас великий tar с обдуманным  списком нужных Вам .conf файлов... А еще все эти конфиги можно в свой пакет завернуть (deb, rpm) и настравивать всю систему, накатыванием пары таких самопальных пакетов.

----------
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.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 01:53 23-03-2012
LevT



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

Цитата:
Не люблю такие подходы, меня просто воротит от них.  

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

Цитата:
да спасёт нас великий tar с обдуманным  списком нужных Вам .conf файлов... А еще все эти конфиги можно в свой пакет завернуть

 
Между разными инстансами-то одного дистрибутива настройки переносимы наверняка. Но хочется переносить настройки таргета вместе с самим стораджем (ZFS, который переносим между всеми современными дистрами на солярном ядре и не только ими).
 
Вот у меня сейчас нексента и смартос поочерёдно раздают сторадж с одного и того же массива. Хочу после перезагрузки (передёргивания системы) передёрнуть и настройки, а не колупать адмы, подставляя туда руками параметры-гуиды лунов ..
 
 
Добавлено:
 
Выше я чутОк ввёл в заблуждение: ipadm допилил только оракул (но ifconfig оставил для совместимости с предыдущими солярами)
 
А Ыщё оракул добавил нетворк автомагик - netcfg и netadm, рекомендовав именно их для применения на серверах. Это типа искусственный интеллеХт: вооружившись поллитрой и такой-то матерью, с его помощью можно запрограммировать единые декларативные настройки для всех случаев, где ни придётся запустить систему (например, на физическом железе или под разными гипервизорами).

Всего записей: 17747 | Зарегистр. 14-10-2001 | Отправлено: 01:56 23-03-2012 | Исправлено: LevT, 12:01 23-03-2012
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите пожалуйста как вставить пустую строку ?

Цитата:
 
sed -i '4i \n test 1 \ntest 2 \ntest 3 \n' file.txt
 

 

Код:
 
n test 1
test 2
test 3
 

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 15:28 23-03-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
slech
Ответ ближе чем вы думаете...
sed -i '4i \\ntest 1 \ntest 2 \ntest 3 \n' file.txt

----------
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.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 15:54 23-03-2012
slech



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

Цитата:
Ответ ближе чем вы думаете...
sed -i '4i \\ntest 1 \ntest 2 \ntest 3 \n' file.txt  

Спасибо, видать пропустил этот вариант при тесте без переменных
 

Цитата:
 
sed -i "4i \\n$linea \n$lineb \n$linec \n" $indexfile
 

так вот опять проблема:

Цитата:
 
n<a href="speed-test-03-2012.txt">
<img src="speed-test-03-2012.png" width="1024" height="576" />
</a>
 


Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 16:21 23-03-2012 | Исправлено: slech, 16:22 23-03-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
slech
А вы не заметили что изменили ' на "???
Добавляйте еще один слэш

----------
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.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 16:26 23-03-2012 | Исправлено: Alukardd, 16:26 23-03-2012
Открыть новую тему     Написать ответ в эту тему

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

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