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

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

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

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

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

 

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

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



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
так-то да, но не могу понять сакрального смысла сих действий в пределах локалхоста :/

Всего записей: 2074 | Зарегистр. 31-03-2004 | Отправлено: 07:05 26-06-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MAGNet> а вообще mv, не?
 
Не. Даже если есть возможность монтировать FISH (а может и нет, в вопросе ни слова о том, что это за система), это как минимум нерационально.
 
> в пределах локалхоста
 
Где вы локалхост узрели?  

Цитата:
root@172.0.0.1

172, а не 127. Идите спать. :-)

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 07:05 26-06-2014 | Исправлено: ASE_DAG, 07:08 26-06-2014
MAGNet



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

Цитата:
172, а не 127. Идите спать.

тьфу ))
не пойду! только на работу пришел - не поймут)
 
Добавлено:
rsync - адназначна!

Всего записей: 2074 | Зарегистр. 31-03-2004 | Отправлено: 07:09 26-06-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хотя это, вероятно, и была опечатка, имелся в виду именно локалхост. И приведен он был, очевидно, примера ради, не более.
 
> rsync - адназначна!
 
Здесь да, но стоит отметить, что rsync не умеет удалять директории, только файлы. Поэтому можно еще lftp взять на заметку (да, он может ФС поверх SSH).

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 07:13 26-06-2014
gbcfkf



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Спасибо, работает )
 
Да, хотел сначала rsync использовать
но оказалось, что на хосте куда надо копировать файлы rsync нет... и установить нельзя
 
 
Имелся в виду localhost и само собой чисто ради примера
В реальности задача сложней, но зачем перегружать вопрос лишней инфой?

Всего записей: 702 | Зарегистр. 17-10-2006 | Отправлено: 07:35 26-06-2014 | Исправлено: gbcfkf, 07:37 26-06-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всегда пожалуйста.
 
> на хосте куда надо копировать файлы rsync нет
 
Тогда, когда будете копировать / переносить что-то более сложное, чем кучку файлов, посмотрите на уже упомянутый мною lftp, у него там чистый FISH, безо всяких собственных протоколов.

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 07:49 26-06-2014
karavan



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Прошу помощи в изучении bash.
Задача: В выводе какой-либо команды подсветить строки содержащие заданный шаблон.
 
Пример:
Скриншот с терминала

 
Строки подсвечиваются замечательно, но возникает вопрос - "как сохранить форматирование?"
 
Код скрипта:

Код:
#!/bin/bash
while read line
do
    if [[ -z `echo "$line" | grep "$1"` ]]; then
         echo "$line"
    else
         echo -e "\033[37;1;41m$line\033[0m"
    fi
done
 

Всего записей: 1962 | Зарегистр. 02-12-2011 | Отправлено: 00:43 04-07-2014 | Исправлено: karavan, 00:44 04-07-2014
ASE_DAG



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

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 01:18 04-07-2014
karavan



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

Всего записей: 1962 | Зарегистр. 02-12-2011 | Отправлено: 01:19 04-07-2014
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
karavan
Ну у вас и запросы...
ifconfig | GREP_COLOR='1;30;43' grep --color --extended-regexp '.*inet addr.*|$'

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

Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 01:22 04-07-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> [[ -z `echo "$line" | grep "$1"` ]]
 
Какой ужас. [[ $line != *"$1"* ]], не?

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 01:22 04-07-2014 | Исправлено: ASE_DAG, 17:45 04-07-2014
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если моё творение оформить в виде скрипта, то так:
 
#!/bin/bash
GREP_COLOR='1;30;43' grep --color --extended-regexp '.*'"$@"'.*|$'
 
И вызывать соответственно так:
ifconfig | /tmp/script.sh "inet [[:alnum:]]{4}:192"
 
Т.е. на вход прекрасно подаётся и регулярка

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

Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 01:30 04-07-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> в выводе теряются отступы
 
#!/bin/bash
while read; do
    if [[ $REPLY == *$1* ]]; then
         echo -e "\033[37;1;41m$REPLY\033[0m"
    else
         echo "$REPLY"
    fi
done


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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 01:30 04-07-2014 | Исправлено: ASE_DAG, 18:08 04-07-2014
karavan



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alukardd
Спасибо, о о способностях grep не подозревал.
 
ASE_DAG
Спасибо за корректуру. Какая цель достигается при обрамлении значения параметра звездочками, в чем отличие от кавычек (любых)?

Всего записей: 1962 | Зарегистр. 02-12-2011 | Отправлено: 01:33 04-07-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd, круто, но строки, удовлетворяющие разным шаблонам по-разному так не раскрасишь, я понял, т. е. для подсветки синтаксиса не гоже.
 
Добавлено:
karavan, а вообще, если это не учебная задача, то не велосипедируйте, а напишите конфиг для grc(1)

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 01:34 04-07-2014 | Исправлено: ASE_DAG, 01:55 04-07-2014
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.

Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 01:39 04-07-2014 | Исправлено: Alukardd, 01:45 04-07-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> Какая цель достигается при обрамлении значения параметра звездочками
 
Сравнение с параметром, обрамленным произвольным набором символов произвольной длины. * — это глоб-шаблон.
 
> в чем отличие от кавычек (любых)?
 
Во всем. Вообще ничего общего.

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 01:44 04-07-2014 | Исправлено: ASE_DAG, 01:47 04-07-2014
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Вообще-то *$1* тоже ужасная конструкция, есть же оператор соответствующий.
К тому же Вы остваили в сравнении переменную line
В общем вот итоговый результат:
Код:
#!/bin/bash
while read; do
    if [[ $REPLY =~ "$1" ]]; then
         echo -e "\033[37;1;41m$REPLY\033[0m"
    else
         echo "$REPLY"
    fi
done

 
Добавлено:
ASE_DAG
Кстати, мне не понятен тот факт, что теряются все "лишние"пробелы когда результат записывается в переменную $line.

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

Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 02:03 04-07-2014
karavan



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alukardd
с оставленной переменной line справился без проблем, тест на внимательность.
 

Цитата:
Кстати, мне не понятен тот факт, что теряются все "лишние"пробелы когда результат записывается в переменную $line.

тоже хотелось бы услышать пояснения.

Всего записей: 1962 | Зарегистр. 02-12-2011 | Отправлено: 02:15 04-07-2014
RuPurple



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

Всего записей: 724 | Зарегистр. 21-02-2010 | Отправлено: 08:54 04-07-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

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