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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dimmer123
Ох... А можно тогда уж поинтересоваться, куда сей механизм пристроен? Потому, что явно проще стрелку отрисовать чем использовать вырезанную картинку.

----------
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:35 28-08-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> явно проще стрелку отрисовать
Там результат не одинокая стрелка, а что-то вот такое:
 
 

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 09:04 29-08-2012
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день, dimmer123
Прошу прошения за глупый вопрос, а если подойти с другой стороны - развернуть картинку на ноль (-угол), вырезать прямоугольник 80х20, развернуть еще раз, так что  бы стало в нужное положение (180+2*угол)? К сожалению, спешу, днем/вечером буду разбиратся с ImageMagick.

Всего записей: 1906 | Зарегистр. 07-08-2002 | Отправлено: 09:32 29-08-2012
dimmer123

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

Цитата:
Прошу прошения за глупый вопрос, а если подойти с другой стороны - развернуть картинку на ноль (-угол),

Так я ж так и делаю. На предыдущей странице пример, который ASE_DAG переделал под линукс. Но это же китайский код )).
 

Цитата:
развернуть еще раз, так что  бы стало в нужное положение (180+2*угол)? К сожалению, спешу, днем/вечером буду разбиратся с ImageMagick.

Разворачивать не надо, мне просто нужен вырезанный кусочек, а под каким он углом будет не важно.  
 
По-моему придумал как избавится от магических чисел. Вырезаем кружок со всеми стрелками чтобы получился квадрат.
convert.exe big.png -crop 144x144+191+216 square.png
Затем берем значение из файла и если оно меньше 90, значит считаем 90-число из файла = угол поворота картинки. Теперь просто подставляем в Imagemagick
convert square.png -rotate сюда вставляем угол поворота, который мы посчитали -crop 80x22+0+62 готово.png
Пока только не соображу, если в файле значение >90. Получается форумула: значение из файла - 90 = - (результат)
 

Всего записей: 98 | Зарегистр. 17-09-2007 | Отправлено: 13:43 29-08-2012 | Исправлено: dimmer123, 15:55 29-08-2012
kpp77

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!
Подскажите что\где (кроме man-а) почитать об использовании curl в шелле.
Сам программирую на SH (FreeBSD, Linux Debian).
И вот понял что имеется пробел в использовании утилиты curl.
 
Реальная задача: автоматическая проверка балланса через сайт провайдера.
Скриптом зайти на страницу статистики, передать логин\пароль, считать страницу.
До этого всегда хватало wget-а, решил попробовать с curl-ом.

Всего записей: 72 | Зарегистр. 29-08-2012 | Отправлено: 16:51 29-08-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kpp77
> что\где (кроме man-а) почитать об использовании curl в шелле
Ничего, кроме мана, по Курлу можно не читать. Это довольно примитивная и негнушная1 утилита, поэтому в мане описано все.
 
> до этого всегда хватало wget-а, решил попробовать с curl-ом
Из каких соображений? Курл за парой мелочей нисколько не более функционален, чем Вэ-гет.
 
Если хотите, можете детально описать задачу, я попробую подсказать команду, которую вам надо отдать.
 

1 По порядкам, принятым в ГНУ, полная документация — это info, а не man.

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 17:09 29-08-2012 | Исправлено: ASE_DAG, 17:12 29-08-2012
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
dimmer123
Пока получил доступ к компьютеру Вы уже сами нашли/поняли

Код:
 
#!/bin/bash  
set -e
INPUTFILE='inputfile'  
INPUTIMG='test.jpg'  
OUTPUTIMG='test_out.jpg'  
read IN < "$INPUTFILE"
convert test.jpg -crop 200x200+163+188 -rotate $[-$IN-90] jpg:- | convert - -crop 80x20+0+90 -rotate $[270+$IN] out.jpg
 

+163+188 - координаты оси вращения. Исправлено: не оси вращения - угол квадрата. Ось будет +263+288 (начало=ось-сторона/2).
 
ASE_DAG

Цитата:
Курл за парой мелочей нисколько не более функционален, чем Вэ-гет.

AFAIK гораздо лучше работает с post запросами / легче создать имитацию браузера.
 
Добавлено:

Цитата:
Кстати, для справки.

Спасибо.

Всего записей: 1906 | Зарегистр. 07-08-2002 | Отправлено: 17:24 29-08-2012 | Исправлено: Alex_Piggy, 00:56 30-08-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
> гораздо лучше работает с post запросами / легче создать имитацию браузера
Ну да, вы правы, Вэ-гет multipart/form-data вообще не умеет.

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 18:07 29-08-2012
ASE_DAG



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

Цитата:
Arithmetic Expansion
Arithmetic expansion allows the evaluation of an arithmetic expression and the substitution of the result.  The format for arithmetic expansion is:
 
    $((expression))
 
The old format $[expression] is deprecated and will be removed in upcoming versions of bash.
bash(1)


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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 23:50 29-08-2012 | Исправлено: ASE_DAG, 23:52 29-08-2012
dimmer123

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

Цитата:
Пока получил доступ к компьютеру Вы уже сами нашли/поняли  

Начал проверять, работает, но не так как-надо. Проблема вот в чем: если повернуть картинку в photoshop - выглядит вот так, углы уходят за границы. А если повернуть в Imagemagick, получается так. Углы распирают картинку, изменяется размер и из-за этого нужный прямоугольник  неправильно вырезается.  

Всего записей: 98 | Зарегистр. 17-09-2007 | Отправлено: 13:32 01-09-2012
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день, dimmer123
Тогда попробуйте другую функциию - разворачиваете с помощью -distort SRT вокруг оси и затем вырезаете. RTFM, однако.
convert test.jpg  -distort SRT 263,288,$[-$IN-90] -crop 100x20+163+278 out2.jpg
Добавлено:  C тремя аргументами (-distort SRT X,Y,Angle) размеры изображения не меняются.

Всего записей: 1906 | Зарегистр. 07-08-2002 | Отправлено: 14:33 01-09-2012 | Исправлено: Alex_Piggy, 14:49 01-09-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dimmer123
Цитата:
Поворот изображения
Чтобы повернуть изображение, указываем:
-rotate "+-градусы"
Для того, чтобы повернуть изображение по часовой стрелке, пишем -rotate "+90" для поворота против часовой стрелки, соответственно -rotate "-90"
Если поворот производится на произвольное число градусов, то изображение поворачивается как целое, увеличиваясь для вмещения исходной картинки. Появившиеся области становятся цвета фона, который определяется параметром -fill цвет.

Произвольную область можно вырезать в ImageMagic по точкам. Делается это в 2 этапа:
Код:
$ convert test.jpg -matte -fill none -draw 'color 0,0 reset' -fill red -draw 'polygon 256,276 270,297 328,261 310,234' polygon.png
$ convert test.jpg -matte polygon.png -compose DstIn -composite out.png
Усё собственно. Вырезается катинка по 4 точкам. Как расчитать координаты точек это отдельная математическая задача) Мб т. ASE_DAG возьмётся формулу состряпать. Или я ближе к вечеру, возможно завтра что-нибудь придумаю.

----------
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 | Отправлено: 14:42 01-09-2012 | Исправлено: Alukardd, 14:43 01-09-2012
dimmer123

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

Цитата:
Тогда попробуйте другую функциию - разворачиваете с помощью -distort SRT вокруг оси и затем вырезаете. RTFM, однако.

Alex_Piggy, большое спасибо. Работает.

Всего записей: 98 | Зарегистр. 17-09-2007 | Отправлено: 15:53 01-09-2012
kpp77

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...
 
Имеется веб страничка, с помощью которой нужно ввести логин\пароль.
Пробую curl-ом:
 

Код:
 
  curl -k -v \
  --output file_rez\
  --user-agent Mozilla/4.0 -d "login=***&password=***"\
  https://stat.stat.net.ua
 

 
Не удается. С curl-ом пока на "вы". Подскажите как нужно.
 
Автоматом сообщение оборачивается в тег more, почему не понятно.
 [/more] [/more]

Всего записей: 72 | Зарегистр. 29-08-2012 | Отправлено: 21:24 01-09-2012 | Исправлено: kpp77, 21:38 01-09-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kpp77
Цитата:
Автоматом сообщение оборачивается в тег more, почему не понятно.  
Потому, что форум настроен на "не доверие новичкам", что бы простыне в пост не выкладывали.
 
Так данные-то надо передавать на страницу login.php, а не в корень сайта...

----------
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:13 01-09-2012
kpp77

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

Код:
 
  curl -k -v \  
   --output file_rez\  
   --user-agent Mozilla/4.0 -d "login=***&password=***"\  
   https://stat.stat.net.ua/login.php
 

Вернее так сразу и делал, потом пошли вариации

Всего записей: 72 | Зарегистр. 29-08-2012 | Отправлено: 22:44 01-09-2012 | Исправлено: kpp77, 22:45 01-09-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kpp77
> Имеется веб страничка
Локальная, да? Из Интернета не видна?
 
> Не удается.
То есть? Ввод вы приводите, а где вывод?

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 22:49 01-09-2012
kpp77

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Из инете видна, вывод в файл file_rez - просто код страницы https://stat.stat.net.ua с формой ввода логина\пароля.
Название сайта изменил на всякий случай.
Если нужно реальное - https://stat2.magnus.net.ua

Всего записей: 72 | Зарегистр. 29-08-2012 | Отправлено: 22:55 01-09-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kpp77
> вывод в файл file_rez - просто код страницы https://stat.stat.net.ua с формой ввода логина\пароля.  
Этого не может быть. В ответ на $ curl -k -v --output file_rez  --user-agent Mozilla/4.0 -d "login=***&password=***" https://stat2.magnus.net.ua/login.php страница https://stat2.magnus.net.ua/ никогда не вернется. Наведите порядок у себя в экспериментальном журнале, иначе никогда не разберетесь. ;-)
 
Попробуйте:
$ UA="Mozilla/5.0 (X11; Linux x86_64; rv:10.0.6) Gecko/20100101 Firefox/10.0.6 Iceweasel/10.0.6"
$ curl -i -k -c cookies.txt -F "login=yourlogin" -F "password=yourpass" -A "$UA" "https://stat2.magnus.net.ua/login.php"
$ curl -i -k -b cookies.txt -A "$UA" "https://stat2.magnus.net.ua/" | iconv -f koi8-r


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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 23:25 01-09-2012 | Исправлено: ASE_DAG, 23:32 01-09-2012
kpp77

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот это то, что нужно, дело в кукисах.
Получается сначала логинимся, сохраняя куки, а потом заходим еще с использованием этих кукисов.
А было: после аутентификации происходит редирект, и получалась опять форма логина\пароля.
 
Благодарю ASE_DAG.
 
На сколько важно\критично передавать информацию о браузере?
 

Всего записей: 72 | Зарегистр. 29-08-2012 | Отправлено: 23:43 01-09-2012 | Исправлено: kpp77, 11:26 02-09-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