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


Система IP-видеонаблюдения "Линия". Скачать бесплатную демо-версию для 16 камер. НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

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

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

 

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

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 18:51 16-05-2008 | Исправлено: ASE_DAG, 22:02 01-03-2017
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
Присваиваются переменным любые значения без проблем:
$ test_newline=$(echo -ne "One.\nTwo.\nThree.\n")
$ set | grep test_newline
test_newline=$'One.\nTwo.\nThree.'

 
А вот при запросе значения через $test_newline все разделители выводятся одинаково.

----------
Dmitry Alexandrov <321942@gmail.com>

Всего записей: 9107 | Зарегистр. 12-05-2005 | Отправлено: 19:44 10-02-2011
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Небольшая проблемка, awk '/8081/{print $4}', в случае, когда несколько клиентов работают с демоном, скрипт выдает -  "ожидается использование бинарного оператора", почему?

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 21:32 10-02-2011
ASE_DAG



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

----------
Dmitry Alexandrov <321942@gmail.com>

Всего записей: 9107 | Зарегистр. 12-05-2005 | Отправлено: 22:14 10-02-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
а-а-а-а
echo -e $x
вот оно где!!!

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

Всего записей: 6153 | Зарегистр. 28-08-2008 | Отправлено: 22:53 10-02-2011 | Исправлено: Alukardd, 22:54 10-02-2011
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
netstat -na |grep 8081
tcp        0      0 192.168.1.1:8081       0.0.0.0:*               LISTEN
tcp        0      0 192.168.1.1:8081       192.168.21.250:42363     ESTABLISHED
 
./check-list.sh
./check-list.sh line 23: test: 192.168.1.1:8081: ожидается использование бинарного оператора
 
#!/bin/sh
NETSTAT_1=`netstat -nat | awk '/8081/{print $4}'`
 
if test -z $NETSTAT_1
then
echo "8081 restart"
/script/restart.sh
fi

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 14:10 11-02-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
А собстно где эта ваша 23 строка? если это if test -z $NETSTAT_1, то у меня работает... Ну попробуйте изменить её так: if test -z "$NETSTAT_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.

Всего записей: 6153 | Зарегистр. 28-08-2008 | Отправлено: 15:02 11-02-2011
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, кавычек не хватало.
Нашел еще вот такой вариант:
netstat -npl | grep -E "8081" | wc -l, выдает 1 или 0, как в этом случае будет выражение?

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 15:16 11-02-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
Цитата:
 как в этом случае будет выражение?
какое еще выражение? вы про if?
 
Вот почитайте, полезно:
Часть 1
Часть 2
Часть 3
 
p.s. гык, автор темы 2,5года спустя...

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

Всего записей: 6153 | Зарегистр. 28-08-2008 | Отправлено: 15:34 11-02-2011 | Исправлено: Alukardd, 15:35 11-02-2011
ASE_DAG



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

Всего записей: 9107 | Зарегистр. 12-05-2005 | Отправлено: 17:46 11-03-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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.

Всего записей: 6153 | Зарегистр. 28-08-2008 | Отправлено: 17:51 11-03-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
> ололо
ЩИТО?
 
> что-то вы взялись за шапки во всех темах!  
И довольно давно. Это до форума «Юникс» я только добрался.  
А вы против?

Всего записей: 9107 | Зарегистр. 12-05-2005 | Отправлено: 18:02 11-03-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
да нет, наоборот очень рад что форум поднимается. И приобретает внешний вид.
 
p.s. дополнил "ошибки программирования" конкретными ссылками на тот же ресурс
      добавил ссылку на вкусности и косметику для bash.

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

Всего записей: 6153 | Зарегистр. 28-08-2008 | Отправлено: 20:15 11-03-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
> дополнил "ошибки программирования" конкретными ссылками на тот же ресурс  
А почему только три части? Их же пять. Дописал.
 
> добавил ссылку на вкусности и косметику для bash.
Ага. Спасибо.

Всего записей: 9107 | Зарегистр. 12-05-2005 | Отправлено: 20:23 11-03-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Цитата:
А почему только три части? Их же пять. Дописал.  
оО печаль(( Не заметил в свое время,а щас из избранного стащил...
 
p.s. Теперь уже и шапки с forum.ru-board.com можно в избранное добавлять.

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

Всего записей: 6153 | Зарегистр. 28-08-2008 | Отправлено: 20:44 11-03-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите разобраться, уже всю голову сломал.
 
Делаю:
 
$ a=`curl -sI "ftp://ftp.debian.org/debian/ls-lR.gz" | awk '/Content-Length/{print $2}'`
$ echo $a
6160333
$ expr $a + 1
expr: нецелочисленный аргумент
$ echo $((a+1))
")syntax error: invalid arithmetic operator (error token is "

 
В чем загвоздка?
 
Добавлено:
Все! Разобрался.  
Кстати, наглядная демонстрация превосходства единой темы над множеством мелких: пролистал чуть выше, увидел свой же пост про особенности вывода служебных символов при помощи echo, сделал:
$ set | grep CONTENT_LENGTH
CONTENT_LENGTH=$'6160333\r'

 
Оказывается HTTP-заголовки отдаются с виндовым переводом строки (CR LF), кто бы мог подумать.
 
Соответственно решение:
$ CONTENT_LENGTH=`curl -sI "ftp://ftp.debian.org/debian/ls-lR.gz" | awk '/Content-Length/{gsub("[[:cntrl:]]", ""); print $2}'`

Всего записей: 9107 | Зарегистр. 12-05-2005 | Отправлено: 21:53 12-03-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Цитата:
[[:cntrl:]]
оО это вы откуда такие маски берёте??? Я тож почитать хочу. Если ссылка красивая, то в шапку её

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

Всего записей: 6153 | Зарегистр. 28-08-2008 | Отправлено: 00:39 13-03-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
> Я тож почитать хочу.
$ man tr
 
;)

Всего записей: 9107 | Зарегистр. 12-05-2005 | Отправлено: 00:43 13-03-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
^_^
спс))) хех рассчитывал на списочек побольше)))
 
p.s. кстати, что ищете в файле ls-lR, даты модификации??? Но к чему? Постоянно поддерживаете локальные копии некоторых файлов в актуальном состоянии?

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

Всего записей: 6153 | Зарегистр. 28-08-2008 | Отправлено: 00:54 13-03-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
> кстати, что ищете в файле ls-lR, даты модификации???
Нет. Какие еще даты модификации?
Файл взят просто для примера.
 
-I — это запрос заголовка без содержания.
 
$ curl -sI "ftp://ftp.debian.org/debian/ls-lR.gz"
Last-Modified: Sat, 12 Mar 2011 20:36:40 GMT
Content-Length: 6171245
Accept-ranges: bytes

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

Всего записей: 9107 | Зарегистр. 12-05-2005 | Отправлено: 01:02 13-03-2011 | Исправлено: ASE_DAG, 01:03 13-03-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
ой блин сорь))) пока думал о регулярках, про ключ I забыл)))
Цитата:
set | grep CONTENT_LENGTH  
кстати тоже полезная вещь, хотя некоторые escape последовательности нам выведет и echo, если без ключа -e использовать.

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

Всего записей: 6153 | Зарегистр. 28-08-2008 | Отправлено: 01:15 13-03-2011
Открыть новую тему     Написать ответ в эту тему

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

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

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2017

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru