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

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

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

 

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
задача:  
 
получить список файлов выданный по find {file1, file2, ... fileN}
var=1234
для каждого файла из результата выполнить последовательность команд
echo fileName; echo $var; var=$(($var + $RANDOM%32))
 
пример того, что должно получится в результате:
file1 1234
file2 1241  
file3 1263
...

Всего записей: 2076 | Зарегистр. 08-01-2008 | Отправлено: 14:55 02-07-2011 | Исправлено: DrakonHaSh, 14:59 02-07-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DrakonHaSh
> задача:
А где здесь зависимость от номера файла? Это же просто надо два списка склеить: файлов и случайных чисел.
 
Вот например, если хотите обойтись Башем (я бы заюзал АВК — нравится он мне):
 
$ find | while read F; do echo -e "$F\n$VAR\n$((VAR+RANDOM%32))"; done

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 15:09 02-07-2011
DrakonHaSh



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
или, что алгоритмически тоже самое, перенести нижеследующий алгоритм
 
a=16; for i in {1..100}; do b=$(($a%256)) ;c=`printf "%s %03d" $i $b`; echo $c;a=$(($a+$RANDOM%48)); done
 
с for i in {1..100}; do ... done
на результат выданный find

Всего записей: 2076 | Зарегистр. 08-01-2008 | Отправлено: 15:15 02-07-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DrakonHaSh
> или, что
Это, я так понял, вы мой ответ еще не прочитали?

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 15:21 02-07-2011
DrakonHaSh



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
да, с вашим ответом теперь все вроде ок. СПАСИБО.

Всего записей: 2076 | Зарегистр. 08-01-2008 | Отправлено: 15:22 02-07-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DrakonHaSh
> СПАСИБО
Всегда пожалуйста. Обращайтесь. ;-)

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 15:27 02-07-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Farewill
> По крону / анакрону ежедневно запускается скрипт, который: а) убирает вчерашнюю картинку; б) выводит сегодняшнюю.
 
Этот скрипт вполне может выглядеть вот так:

Код:
#!/bin/bash
for PIDFILE in /run/lock/feh:[0-9].pid; do
    read PID < "$PIDFILE" && \
    kill $PID
done
cd "~/pictures/"
TODAY="$(date '+%m/%d')"
for DISPLAY in [0-9]; do
    DISPLAY=":$DISPLAY" feh --borderless --geometry 600x768 --auto-zoom "$DISPLAY/$TODAY"/* &
    echo $! > "/run/lock/feh:$DISPLAY.pid"
done

 
В качестве вьюера здесь feh, а не display, как я говорил изначально, его, скорее всего, придется установить. Ну или приспособить иное средство просмотра.
 
По-хорошему, конечно, надо иметь типа-демон-скрипт, который будет запускать feh'и и утягивать их за собой по завершению; и инит-скрипт, который можно пинать кроном. Но для начала и так сойдет.
 
Еще комментарии нужны?

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 01:35 02-08-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
THE_IG0R
Вопрос
 
Ошибка говорит о том, что нету каталога /DATA/IVANOV... Внимание - РеГиСтР вАжЕн.
 
Парочка советов:
Во первых, не зачем делать 2 операции... tar сам умеет пропускать архив через gzip. Надо добавить в вызов ключ -z.
Во вторых, скорее всего надо использовать строгие кавычки (одинарные а не двойные)

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

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 13:16 02-08-2011
THE_IG0R



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

Цитата:
Ошибка говорит о том, что нету каталога /DATA/IVANOV... Внимание - РеГиСтР вАжЕн.  
 
Парочка советов:  
Во первых, не зачем делать 2 операции... tar сам умеет пропускать архив через gzip. Надо добавить в вызов ключ -z.  
Во вторых, скорее всего надо использовать строгие кавычки (одинарные а не двойные)

 
Каталог есть.
Регистр выдержан. Замена кавычек ничего ни изменила.  
 

Всего записей: 16 | Зарегистр. 20-11-2004 | Отправлено: 13:30 02-08-2011
Alukardd



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

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

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 13:48 02-08-2011
THE_IG0R



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

Цитата:
THE_IG0R  
Дайте результаты выполнения команды сюда пожалуйста...  
задача кстати от чьего имени выполняется? Права на чтения каталога есть?

 
Права на /DATA/IVANOV      40775
Права на /BACKUP/BACKUP/ 40777
 
Результат tar: failed to open /BACKUP/BACKUP/IVANOV_20110802.tar
 
пользователь: root

Всего записей: 16 | Зарегистр. 20-11-2004 | Отправлено: 14:12 02-08-2011 | Исправлено: THE_IG0R, 14:18 02-08-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
THE_IG0R
Ну скажите где лежит задача cron... Если через crontab была создана, то от текущего пользователя... Хотя при таких правах это не важно.
Цитата:
tar: failed to open /BACKUP/BACKUP/IVANOV_20110802.tar  
откуда вообще такой файл? У вас там дефисы должны быть в дате...
 
Добавлено:
THE_IG0R
А и это - вы же из скрипта это все выполняете... Уберите вообще кавычки или экранируйте их (обратный слэш).

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

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 14:20 02-08-2011
THE_IG0R



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В дате действительно дефисы, виноват.
 
cron настроен как-то хитро - в crontab есть какое-то расписание, но без комманд, но есть еще один файлики с коммандами и с расписанием, но как и откуда он запускается?
 
какие кавычки - в дате?

Всего записей: 16 | Зарегистр. 20-11-2004 | Отправлено: 14:36 02-08-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
THE_IG0R
давайте сюда полностью - не вашими руками перепечатанный а копипаст содержание crontab -l, и какого-то файла из /etc/cron.d/ судя по всему, с подходящим названием...
 
В скрипте у команды date кавычки вообще удалите либо экранируйте!

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

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 14:43 02-08-2011
THE_IG0R



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
К сожалению копипаст ошибки не могу - получаю инфу по тел., сейчас  не на месте, все остальное копипаст - все конфиги у меня.
кавычки убрали - то же самое
cron это отдельная история, меня больше интересует - почему скрипт не выполняется

Всего записей: 16 | Зарегистр. 20-11-2004 | Отправлено: 15:01 02-08-2011 | Исправлено: THE_IG0R, 15:03 02-08-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
THE_IG0R
Цитата:
получаю инфу по тел
труба... Об ssh не слышали?
Даже хз что и думать... Так вы у себя скрипт проверяете (если да, то у вас-то есть все эти каталоги?)?

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

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
фирма 10 машин 1 freebsd, удаленно подключиться нельзя
это оригинальное решение передано без объяснений без всего...
скрипт запускается там, на машине с существующими каталогами, подключаясь c помощью putty

Всего записей: 16 | Зарегистр. 20-11-2004 | Отправлено: 15:11 02-08-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
THE_IG0R
При такой инфе мне не понятно такое поведение tar'а. Попробуйте скопировать tar команду из архива и просто выполнить её...
Я щас фритюрницу заведу гляну как в ней...
 
Добавлено:
THE_IG0R
А вообще думаю мы играем в испорченный телефон...
Если вы там работает от root'а, то измените строку на
tar -cf /root/IVANOV_`date "+%Y-%m-%d"`.tar /DATA/IVANOV

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

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в root комманда сработала, значит все дело в правах?

Всего записей: 16 | Зарегистр. 20-11-2004 | Отправлено: 16:02 02-08-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
THE_IG0R
Либо в правах, либо в пути. Проверяйте что правильно написали (без ошибок), точно ли там 2 каталога BACKUP  один в одном?

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

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 16:05 02-08-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

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