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

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



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CrownRU, славненько. Всегда пожалуйста. Комментарии не нужны? все ли понятно, что тут к чему?

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

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

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

Всего записей: 2429 | Зарегистр. 23-09-2004 | Отправлено: 13:35 30-09-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
niko7, во Фре что, уже и sleep выкинули?

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 14:18 30-09-2014
niko7

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Цитата:
sleep выкинули
Не пробовал, как использовать sleep?

Всего записей: 2429 | Зарегистр. 23-09-2004 | Отправлено: 14:41 30-09-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
niko7, а! man выпилили?
 
Следующий вопрос будет «как использовать man»?
 
$ man sleep

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 15:10 30-09-2014 | Исправлено: ASE_DAG, 15:11 30-09-2014
Alukardd



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

----------
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:09 30-09-2014
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я тут увидел фишку одну про awk, но не смог найти документацию на эту операцию:
awk '{print}' оказывается можно заменить на awk '1', что это за оператор такой — 1, более того в нём всегда есть изменённые данные, а в 2,3,4 и т.д. оригинальный входной файл.
 
Кто знает где можно прочитать как этим пользоваться, мб ещё1 что интересное есть?

----------
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 | Отправлено: 12:21 01-10-2014
arto

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://stackoverflow.com/questions/20262869/why-does-1-in-awk-print-the-current-line
 

Всего записей: 294 | Зарегистр. 08-02-2003 | Отправлено: 12:41 01-10-2014
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
arto
О, как то не смог нагуглить, спс!
Забавно, и так работает: awk '2==2'
Вообще интересное поведение.

----------
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 | Отправлено: 12:53 01-10-2014
DieMaN



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день. Помогите новичку. Нужно написать скрипт. В Windows есть некий file.cmd который выглядит следующим образом:
htpasswd.exe -b pass User1 Password1
htpasswd.exe -b pass User2 Password2
htpasswd.exe -b pass User3 Password3
htpasswd.exe -b pass User4 Password4
Т.е. cmd при выполнении добавляет в файл pass пользователя с паролем.
Подскажите пожалуйста интерпретацию такого cmd в Linux. ОС Ubuntu 14.04 Server если это важно.
Заранее спасибо.

Всего записей: 169 | Зарегистр. 28-12-2003 | Отправлено: 13:07 02-10-2014
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
htpasswd -b ~/temp/password User1 Password1
(добавляет в файл ~/temp/password)

Всего записей: 12815 | Зарегистр. 11-03-2002 | Отправлено: 13:14 02-10-2014 | Исправлено: Pasha_ZZZ, 13:15 02-10-2014
xqqq

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть много текстовых файлов. Кодировка разная. Необходимо определить кодировку, и преобразовать их скопом в utf-8. Как это сделать?
Сложность именно в том, чтобы автоматически определить кодировку, хотя бы примерно. Указывать изначально из какой кодировки конвертировать я не могу, т.к. файлов много.

Всего записей: 30 | Зарегистр. 30-05-2012 | Отправлено: 07:49 03-10-2014 | Исправлено: xqqq, 07:50 03-10-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xqqq, да, вы совершенно верно выделили сложность. В самом общем случае эта задача не решается, но практически вам поможет enconv из пакета enca.

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 10:11 03-10-2014
xqqq

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG, да, уже нашел. Ломал голову, как это сделать с iconv.

Всего записей: 30 | Зарегистр. 30-05-2012 | Отправлено: 10:39 03-10-2014
CrownRU



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую ASE_DAG!
Можно еще запрос на расширение функций твоего скрипта закинуть?
Если сложно или много мороки, то обойдусь.
Попробую расписать как можно более подробно, поэтому простыня получилась.
 
Значит есть такой вывод после запуска твоего скрипта:
 

Код:
STATUS ARCHWIN_PORT WEBPORT INSTANCE
    OK        21170   41170 archint.ini.HBP_YE
    OK        13000   33000 archint.ini.FCP_A
    OK        13020   33020 archint.ini.FCP_O
    OK        13010   33010 archint.ini.FCP_E
    OK        13030   33030 archint.ini.FCP_P
    OK        13040   33040 archint.ini.FCP_X
...
 

 
Хотелось бы выбрать какую-то инстанцию - archint.ini.FCP_E к примеру, и остановить или стартануть ее прямо через скрипт интерактивно или через командную строку, типа script -off/on archint.ini.FCP_E
 
сейчас я делаю это руками вот так:
Из под usera cstore запускается (пишу сразу абсолютный путь, чтобы не было путанницы)  

Код:
# /opt/IBM/cssap/server/bin/archstop -p <ARCHWIN_PORT инстанции>

В данном конкретном случае:

Код:
/opt/IBM/cssap/server/bin/archstop -p 13010

Дальше следует проверка, выключилась ли инстанция, т.к. частенько бывает, что по-хорошему выключатся не хочет.
Что-то в этом роде:

Код:
ps aux | grep FCP_E

Если ничего нет, то инстанция выключилась. Но бывает так, что она не реагирует на выключение. Тогда приходится убивать процессы - 2 штуки - archpro & java.

Код:
# ps aux | grep FCP_E
cstore    7635  0.0  0.0  31824 11600 ?        S    Oct21   0:02 archpro -i /archive/obj/cssap/F/FCP_E/archint.ini.FCP_E
cstore    7636  0.0  0.0 572288 23204 ?        Sl   Oct21   0:05 /opt/IBM/cssap/java/jre/bin/java -Djava.security.policy=/opt/IBM/cssap/server/bin/java      .policy -cp /opt/IBM/cssap/server/bin/archcls.jar:/opt/IBM/cssap/server/bin/csssl.jar:/opt/IBM/cssap/server/bin/utilities.jar:/opt/IBM/cssap/server/bin      /cssap.jar:/opt/IBM/cssap/server/bin/mail.jar:/opt/IBM/cssap/server/bin/activation.jar:/opt/IBM/cssap/server/bin/sapjco3.jar:/opt/IBM/cssap/server/bin/      sapjco.jar: com/ibm/esd/commonstore/httpdp/CSHttpTask localhost 55274 6 HTTP_TASK_1 /archive/obj/cssap/F/FCP_E/log/startup.trc.FCP_E
# kill -9 7635 7636

 
Затем я запускаю инстанцию командой, опять-же из под user-a cstore:

Код:
nohup /opt/IBM/cssap/server/bin/archpro -i <путь к инстанции>/archint.ini.FCP_E &

и проверяю, запустилась ли, как это уже сделано в твоем скипте.  

Всего записей: 212 | Зарегистр. 14-01-2003 | Отправлено: 13:12 24-10-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CrownRU, да можно, наверное. Только как там Баш — обновили его в итоге или нет? Если нет, то мы, пожалуй, уперлись в потолок возможностей версии 3.1 — без ассоциативных массивов это реализовывать есть извращение, так что надо бы переписать все это на Перле или Питоне — что там у тебя есть?

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 17:19 24-10-2014
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Почему? У нас же всё равно в цикле есть эти значения... Есть и искомое — WEBPORT_INSTANCE и ARCHWIN_PORT, который надо передать как аргумент команде...

----------
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 | Отправлено: 21:27 24-10-2014
CrownRU



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нет, к сожалению Bash остался на тройке

Всего записей: 212 | Зарегистр. 14-01-2003 | Отправлено: 23:00 25-10-2014
mithridat1



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно извлечь все строки из текстового(xml) файла,между 2-мя совпадениями по regexp.Чем это можно сделать в шелле ?
(Как xml обработать файл не могу,поскольку xmlstarlet видимо не понимает используемого там диалекта.)

Всего записей: 5025 | Зарегистр. 05-01-2006 | Отправлено: 12:12 27-10-2014 | Исправлено: mithridat1, 12:15 27-10-2014
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mithridat1
Ну вообще, sed. А по идее - xsltproc'ом преобразовать в нужный формат с помощью xslt-файла.

Всего записей: 12815 | Зарегистр. 11-03-2002 | Отправлено: 12:26 27-10-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 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