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

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ииииййяяхххуууу..... в последней версии (11.10 2087) исправили эту проблему. Хосподи! Кайф то какой!

Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 17:58 12-04-2011
Maximus777

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

Код:
#!/bin/bash                                                                                                                                  
xterm -hold -e cat /home/maximus/Downloads/HDD | grep -i $1


Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 22:42 15-04-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maximus777
> найти её в файле
Вы хотите проверить наличие этой субстроки в файле?
grep -io $1 ~/Downloads/HDD
 
> #!/bin/bash
> xterm -hold -e

А зачем вам такая интересная конструкция, если не секрет?

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



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Цитата:
А зачем вам такая интересная конструкция
могу только догадываться...
человек открывает файловый менеджер --> щелкает на скрипт --> за счет команды xterm наслаждается шелом ждущим закрытие крестиком...

----------
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:16 16-04-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
Очень может быть.
 
Maximus777
Так, само собой, делать не надо.
А весь файл у вас выводится потому, что сначала выполняется это ваше xterm -hold -e cat /home/maximus/Downloads/HDD, и только затем вывод этой команды передается грепу.

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 03:27 16-04-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Цитата:
Так, само собой, делать не надо.  
эт точно)
можно просто read в конце написать и он будет ждать Enter...

Цитата:
только затем вывод этой команды передается грепу
Кавычки спасут pipeline...


----------
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:38 16-04-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
> можно просто read в конце написать
Если шелл-скрипты по даблклику не исполняются, а передаются эмулятору терминала по вышеуказанной схеме, то можно.
Но в большинстве ДЕ по-дефолту они именно что исполняются.
 
Если задача — именно вызвать исполнение скрипта в эмуляторе терминала из гуя, то правильным было бы оформить desktop-файл.

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 05:23 16-04-2011
Maximus777

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Цитата:
А зачем вам такая интересная конструкция, если не секрет?

Конечно не секрет. Я брожу Оперой по сайтам с фильмами. У меня есть файл-каталог имеющихся на хардах фильмов. Т.к. их уже чёрти сколько, то в голове не все укладываются. Поэтому при сомнениях "А нет ли у меня уже этого фильма?" я лезу в файл и ищу заветную фразу. Вот решил облегчить себе задачу. Отрихтовал меню Оперы, действительно наслаждаюсь выводом шелла Таким же макаром я запрашиваю размер файла на файлообменнике, вылазит окошко с выводом wget --spider http://.... и вуаля. А почему так делать не надо? Вроде вполне прилично получается. Поэтому и хотел сделать поиск фразы в файле-каталоге, но с наскоку не получилось. Кавычки кстати всяка ставил, балалаечка. Сейчас попробую "голым" грепом.
 
Не, не получается. Вот мой скрипт (searchinhdd):

Код:
#!/bin/bash                                                                                                                                  
xterm -hold -e grep -io $1 ~/Downloads/HDD

Выводит просто искомую фразу и всё. Кстати read не помогает задержать окно, оно закрывается, так что -hold.
 
Тьфу! Тудыть иё в качель! Вот вы развели меня чуток. Опция -o лишняя, просто -i работает как с добрым утром. Спасибо за помощь.

Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 10:41 16-04-2011 | Исправлено: Maximus777, 12:14 16-04-2011
Alukardd



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

----------
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 | Отправлено: 11:58 16-04-2011
Maximus777

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
Цитата:
read  это не опция, а команда...

Я это понял изначально, вбил в конец скрипта, но такая команда ничего не меняет. А чем -hold плох?

Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 12:10 16-04-2011 | Исправлено: Maximus777, 12:12 16-04-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maximus777
ну как-то это не цивильно... генерится иксовое окно не понятно зачем...
я проверял - read оставляет терминал открытым - ИБО он ждёт нажатия клавиши Enter

----------
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:17 16-04-2011
Maximus777

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

Цитата:
ну как-то это не цивильно... генерится иксовое окно не понятно зачем...

Ну я ж рассказал зачем оно у меня генерится. Считаете плохое решение?
 

Цитата:
я проверял - read оставляет терминал открытым - ИБО он ждёт нажатия клавиши Enter

А у меня окно мелькает и привет. Вот файл:

Код:
#!/bin/bash                                                                                                                                  
xterm -e grep -i "$1" ~/Downloads/HDD                                                                                                        
read

Наверное я чушь делаю, но как правильно не знаю. xterm и скрипт это же разные проги, поэтому и не получается. Но без xterm'а окна вообще нет. Наставьте на путь истинный, а!

Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 12:20 16-04-2011 | Исправлено: Maximus777, 12:23 16-04-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maximus777
уберите вообще xterm из скрипта - оставьте только grep  и read

----------
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:10 16-04-2011
Maximus777

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

Цитата:
уберите вообще xterm из скрипта - оставьте только grep  и read

Тогда я вообще ничего не увижу. Запуск скрипта выполняется из меню Оперы, а где оно там выход находит хз. Но результат совершенно не виден.

Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 16:47 16-04-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maximus777
наверное понял что происходит))) да тогда либо как вы делали через xterm, либо в Opera как-то обрабатывать результаты...
Ну и я еще хз, что там ASE_DAG, предлагал по desctop-файлам - ни когда с ними не работал...

----------
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 | Отправлено: 17:13 16-04-2011
Maximus777

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Для меня тоже десктоп-файлы непонятная вещь. Можно ещё через kdialog выдавать результаты, но я уже привык к xterm'у, с ним вполне комфортно получается. А вместо консоли у меня Yakuake, очень удобная штука. Если бы туда как-то можно было команды из Оперы отправлять, то тоже вполне рабочий вариант был бы, но я не знаю возможно ли такое колдунство или нет.

Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 17:56 16-04-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maximus777
у вас кеды что ли?
так можно еще тогда через dbus там виджет есть, который все уведомление выводит в едином стиле из области уведомлений" как всплывающие аплетики. (за подробностями не ко мне)

----------
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 | Отправлено: 18:49 16-04-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maximus777
> десктоп-файлы непонятная вещь
Если бы речь шла о вызове из, например, файлового мэныджера, то это бы действительно имело смысл.
А ничего непонятного там нет, достаточно было бы заполнить ключи Exec и Terminal.
 
Но при вызове из Оперы, мне неясно, зачем вам понадобился шелл-скрипт?
«xterm -hold -e grep -i $1 ~/Downloads/HDD» прописываете прямо в конфиг Оперы — должно работать, если только разработчики Оперы какую-нибудь очередную подлянку нам не подготовили.
 
> возможно ли такое колдунство
Вполне. Как уже сказал т. Алюкард — через Ди-бас.

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 22:05 16-04-2011 | Исправлено: ASE_DAG, 22:09 16-04-2011
Alukardd



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

Цитата:
Алюкард
Алукард - так звучит в оригинальном переводе. К тому же так благозвучнее и привычнее...

----------
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:45 16-04-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
> Алукард
ОК. :)
 
> в оригинальном переводе
А кстати, переводе чего? Просто любопытно.

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 23:15 16-04-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 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