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

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



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
> желательно, запустить ещё раз  
 
Тогда читайте про опцию Restart в systemd.service(5) на предмет того, при каких именно условиях запускать еще раз.
 
> думаю что нет.
 
Я думаю, что правильно думаете.  :-) Но какие именно полномочия вашему скрипту нужны — знаете уже только вы. Опции для модуля называются предсказуемо — User и Group, синтаксис столь же очевиден, но если что — смотрите systemd.exec(5).

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 12:51 18-07-2015 | Исправлено: ASE_DAG, 12:52 18-07-2015
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
Какая у Вас версия CentOS'и? Если 7ка, то т. ASE_DAG Вам уже практически готовый ответ накидал, если 6-ка, то надо по аналогии с существующими написать init-скрипт. (если у вас CentOS 5 или 6, то могу накидать пример)

----------
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 | Отправлено: 12:51 18-07-2015
Sutar



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

Цитата:
systemd.service(5)

спасибо, почитаю.
 
Alukardd

Цитата:
если у вас CentOS 5 или 6

6 i386

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 21:31 19-07-2015
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
Как-то так он должен выглядеть, что необходимо сами подправите под себя, в том числе имя mysql службы
mysql_sock init script

----------
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:19 21-07-2015 | Исправлено: Alukardd, 13:24 21-07-2015
CrownRU



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе время суток, камрады.
 
Столкнулся сейчас с такой ситуевиной. Висит команда find :/
После часа вырубил ее. На другой такой-же машине команда проходит без проблем.
 
Выполняю такую команду:
 

Код:
find /archive/obj/bastore -type d -name failed ! -empty

 
Собственно тоже самое происходит и с
 

Код:
find /archive/obj/bastore -type d -name failed

 
и с zsh тоже попробовал с тем-же результатом.
 

Код:
ls **/failed

 
В чем может быть дело?
 
Виснуть начинает, наткнувшись на одну определенную директорию.
Нашел. Виснет также на  
 

Код:
ls /archive/obj/bastore/F/FSP_YE/active

 
Попробовал
Код:
strace ls /archive/obj/bastore/F/FSP_YE/active

Вот это повторяется снова и снова:

Код:
 
mremap(0x7f291099a000, 618496, 1232896, MREMAP_MAYMOVE) = 0x7f290f5e2000
getdents64(3, /* 409 entries */, 32768) = 32720
getdents64(3, /* 409 entries */, 32768) = 32720
brk(0x67f000)                           = 0x67f000
getdents64(3, /* 409 entries */, 32768) = 32720
getdents64(3, /* 409 entries */, 32768) = 32720
getdents64(3, /* 409 entries */, 32768) = 32720
getdents64(3, /* 409 entries */, 32768) = 32720
getdents64(3, /* 409 entries */, 32768) = 32720
brk(0x6a0000)                           = 0x6a0000
getdents64(3, /* 409 entries */, 32768) = 32720
mremap(0x7f290f5e2000, 1232896, 2461696, MREMAP_MAYMOVE) = 0x7f290f389000
getdents64(3, /* 409 entries */, 32768) = 32720
getdents64(3, /* 409 entries */, 32768) = 32720
getdents64(3, /* 409 entries */, 32768) = 32720
getdents64(3, /* 409 entries */, 32768) = 32720
brk(0x6c1000)                           = 0x6c1000
getdents64(3, /* 409 entries */, 32768) = 32720
getdents64(3, /* 409 entries */, 32768) = 32720
 

Всего записей: 212 | Зарегистр. 14-01-2003 | Отправлено: 11:46 31-07-2015 | Исправлено: CrownRU, 12:09 31-07-2015
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CrownRU
Если это локальный диск, а не что-то вроде NFS'а, то я бы  прочекал ФС и диск...

----------
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:48 31-07-2015
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CrownRU, мда, это проблема. И она, разумеется, не в шелле, ну да ладно. Если мне память не изменяет, у вас же там коммерческая Сузя. Если так, то это безусловный повод написать в техподдержку.
 
Если же хотите диагностировать сами, то во-первых, совет т. Алукарда совершенно разумен, однако я пока продолжу, не дожидаясь.  
 
Во-вторых, тут не мешает знать: какая файловая система, каких версий glibc и Линукс, что вообще должно быть в этом каталоге (только ли регулярные файлы, сколько, какого размера, ничего необычного?), не пишется ли в него что-нибудь прямо тогда, когда вы его читаете?
 
В-третьих, давайте посмотрим, пойдет ли в бесконечный цикл вот такой вот максимально упрощенный листер (это из getents(2), и да, здесь еще и буфер меньший).
 
$ gcc -o myls myls.c
$ ./myls /archive/obj/bastore/F/FSP_YE/active


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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 20:50 31-07-2015 | Исправлено: ASE_DAG, 20:51 31-07-2015
CrownRU



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

Цитата:
[/q]

Цитата:
Если это локальный диск, а не что-то вроде NFS'а, то я бы  прочекал ФС и диск...
 

Да, NFS на NetApp, так что ФС должна быть в порядке.
 
[q]Если мне память не изменяет, у вас же там коммерческая Сузя. Если так, то это безусловный повод написать в техподдержку.

 
 
ASE_DAG
 
Да, я бы так и поступил, но коллега, который ответственен за эту систему, упирается всеми четырьмя лапами и хвостом - не хочет заморачиваться вообщем - FuSi кучу информации требуют не по-делу, чтобы их коллами не доставали, и ему лень готовить эту документацию. Пока не мокнешь носом в проблему - не почешется.
 
По программке - в лоб не компилируется. Выдает ошибки:

Код:
In file included from /usr/include/dirent.h:30,
                 from myls.c:2:
/usr/include/bits/types.h:31: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘typedef’
In file included from /usr/include/bits/fcntl.h:24,
                 from /usr/include/fcntl.h:34,
                 from myls.c:3:
/usr/include/sys/types.h:35: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘u_char’
myls.c: In function ‘main’:
myls.c:31: error: ‘O_DIRECTORY’ undeclared (first use in this function)
myls.c:31: error: (Each undeclared identifier is reported only once
myls.c:31: error: for each function it appears in.)

 
Буду сейчас тупо эскалировать проблему через начальство.

Всего записей: 212 | Зарегистр. 14-01-2003 | Отправлено: 10:45 04-08-2015 | Исправлено: CrownRU, 10:47 04-08-2015
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CrownRU
Возможно проблема с сетью до NFS сервера? Ну да, или уже где-то на нём...
 
А компилиться должно, ты там при копировании ни чего не потерял? У тебя libc develop какого года?) Всё же мне кажется ты что-то не так скопировал. вот моя копия файла просто скачай и попробуй.

----------
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:20 04-08-2015
CrownRU



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Alukardd
Спасибо вам большое. Вообщем сделали Call у FuSi, как это водится, посоветовали накатить последний update. Волевым усилием накатили и вроде все заработало.
Причина была в каком-то SLES баге. Если в директории тьма-тьмущая файлов, то в нормальных системах тебя просто выкинет с ошибкой Argument list too long, а здесь ловился зависон в консоли.
Я бы грохнул директорию, но проблема была в том, что там были и нужные файлы тоже. Вообщем после update удалось провести чистку типа
Код:
for i in *.idx; do rm $i; done
Сейчас все в порядке.
 
Спасибо и извините за беспокойство.

Всего записей: 212 | Зарегистр. 14-01-2003 | Отправлено: 13:10 05-08-2015
useretail



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

Цитата:
for i in *.idx; do rm $i; done

rm -f *.idx

Всего записей: 4633 | Зарегистр. 14-09-2007 | Отправлено: 22:51 05-08-2015
CrownRU



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

Цитата:
 
Цитата:
for i in *.idx; do rm $i; done
 
rm -f *.idx
 

 
Спасибо, что просветил
А теперь попробуй так:
 

Код:
for i in $(seq 1 500000); do echo testing >> $i.txt; done

Создаст 500000 txt файлов.
 
теперь попробуй их стереть rm -f *.txt

Всего записей: 212 | Зарегистр. 14-01-2003 | Отправлено: 11:09 06-08-2015 | Исправлено: CrownRU, 11:16 06-08-2015
useretail



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

Цитата:
Спасибо, что просветил

Не стоит благодарности.  

Цитата:
А теперь попробуй так

Это известная ошибка новичков. Вам нужно изменить значение константы ядра ARG_MAX до нужного Вам значения.

Всего записей: 4633 | Зарегистр. 14-09-2007 | Отправлено: 12:44 06-08-2015
arto

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

Цитата:
Код:
for i in $(seq 1 500000); do echo testing >> $i.txt; done
 
Создаст 500000 txt файлов.
 
теперь попробуй их стереть rm -f *.txt

 
 

Код:
 
# touch {000001..500000}
# ls -1 | wc -l
500000          
# rm -f *
zsh: sure you want to delete all the files in /home/arto/tt [yn]? y
#  
 

 
но долго, да.

Всего записей: 294 | Зарегистр. 08-02-2003 | Отправлено: 13:03 06-08-2015
useretail



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

Цитата:
но долго, да.

А если удалять циклом for, то будет еще дольше.

Всего записей: 4633 | Зарегистр. 14-09-2007 | Отправлено: 13:12 06-08-2015
CrownRU



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

Цитата:
А если удалять циклом for, то будет еще дольше.

 
Можно конечно и через find стирать, но тогда на машине никто работать не сможет из-за тормозов ФС.
 

Цитата:
но долго, да.

 
Если просто все стереть нужно, то rsync или perl побыстрей будут.
Вот раза в 3 бстрей, чем find . -type f -delete


Код:
perl -e 'for(<*>){((stat)[9]<(unlink))}'
 

 
useretail
 

Цитата:
Вам нужно изменить значение константы ядра ARG_MAX до нужного Вам значения.

 
А если машина чужая и трогать системные переменные нельзя?

Всего записей: 212 | Зарегистр. 14-01-2003 | Отправлено: 14:35 06-08-2015
arto

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

Код:
 
# time touch {000001..500000}
Real: 19.83s User: 0.24s System: 12.91s Percent: 66%% Cmd: touch {000001..500000}                              
# time ls -1 | wc -l
500000                                                                                                        
Real: 1.37s User: 1.14s System: 0.23s Percent: 99%% Cmd: ls -v --color=auto --group-directories-first -1      
Real: 1.36s User: 0.01s System: 0.01s Percent: 1%% Cmd: wc -l                                                  
# time rm -f *
zsh: sure you want to delete all the files in /home/arto/tt [yn]? y                                          
Real: 13.66s User: 2.29s System: 7.34s Percent: 70%% Cmd: rm -f *                                              
# time touch {000001..500000}
Real: 15.83s User: 0.23s System: 10.74s Percent: 69%% Cmd: touch {000001..500000}                              
# time ls -1 | xargs rm -f
Real: 11.92s User: 1.19s System: 0.25s Percent: 12%% Cmd: ls -v -1      
Real: 13.40s User: 0.55s System: 6.77s Percent: 54%% Cmd: xargs rm -f                                          
# time touch {000001..500000}
Real: 16.99s User: 0.23s System: 10.80s Percent: 64%% Cmd: touch {000001..500000}                              
# time touch {000001..500000}
Real: 11.17s User: 0.19s System: 4.28s Percent: 40%% Cmd: touch {000001..500000}
# time perl -e 'for(<*>){((stat)<(unlink))}'
Real: 13.77s User: 0.91s System: 7.91s Percent: 64%% Cmd: perl -e 'for(<*>){((stat)<(unlink))}'
# time touch {000001..500000}
Real: 15.84s User: 0.20s System: 10.75s Percent: 69%% Cmd: touch {000001..500000}
# time perl -e 'unlink <*>'
Real: 13.25s User: 0.71s System: 7.36s Percent: 60%% Cmd: perl -e 'unlink <*>'
 

 
нигде la не был выше 1, система раком не вставала

Всего записей: 294 | Зарегистр. 08-02-2003 | Отправлено: 15:02 06-08-2015
CrownRU



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

Цитата:
нигде la не был выше 1, система раком не вставала

 
Наверное зависит от разных факторов.
Я, во времена оные, так заблокировал машину - сразу телефон раскалился от звонков разяренных пользователей
Потом подошел бородатый админ с очками из донышек от бутылок и посоветовал использовать for - дольше, но зато есть повод перекурить.
Спасибо за тест.

Всего записей: 212 | Зарегистр. 14-01-2003 | Отправлено: 15:17 06-08-2015
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
useretail
Ну давайте ещё под говнокод ядерные константы менять...
find'ом пользоваться надо

----------
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:52 06-08-2015
BlackLabel



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ребят , помогите плиз с задачей ...  
Нужно curl ом получить выдачу с этой страницы https://tunnelbroker.net/new_tunnel.php  
при этом надо быть залогиненым ...  
 
Есть даже пример скрипта который логиниться на dyndns , но никак не могу сообразить что и как ...  
Скрипт логина для DynDNS

Всего записей: 1031 | Зарегистр. 14-04-2004 | Отправлено: 15:10 03-09-2015
Открыть новую тему     Написать ответ в эту тему

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