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

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

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

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

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

 

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

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



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vtlseeker
Цитата:
в ваших ответах я не видел однозначности в том, что линки указывают на
Цитата:
одно и то же устройство  
really?
Цитата:
В случае интерактивного терминала все стандартные дескрипторы (0, 1, 2) привязаны к /dev/pts/NN

Цитата:
я уже сказал что всё это (0, 1, 2) /dev/pts/NN устройство


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

Всего записей: 6397 | Зарегистр. 28-08-2008 | Отправлено: 23:55 26-09-2021 | Исправлено: Alukardd, 23:55 26-09-2021
vtlseeker



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
да пОлно вам!
согласитесь, что NN здесь: /dev/pts/NN - переменная, что не равно: "одно и то же устройство".

Всего записей: 386 | Зарегистр. 03-03-2009 | Отправлено: 00:04 27-09-2021
alex52mail

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В винде так
Цитата:
 
set end2_h=%time:~0,2%
set end2_m=%time:~3,2%
set end2_s=%time:~6,2%

А как получить часы минуты секунды в Linux -  что то не соображу как вытянуть это из  >date
 
В общем - как сделать секундомер в Linux ?
Нужно измерять время  выполнение команды от запуска до окончания.
 
Удачи.

----------
Везде трудно первые 15 лет, потом легче.
Все проблемы имеют ПРОСТОЕ решение
Ты начальник я дурак я начальник ты дурак. Но хуже дурака дурак с инициативой.

Всего записей: 1166 | Зарегистр. 04-09-2015 | Отправлено: 23:35 02-10-2021 | Исправлено: alex52mail, 23:52 02-10-2021
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
alex52mail
Цитата:
Нужно измерять время  выполнение команды от запуска до окончания.
Перед командой добавить time

Всего записей: 10135 | Зарегистр. 11-03-2002 | Отправлено: 04:02 03-10-2021
alex52mail

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
Типа   time -p cp /a /b - измеряет время одного процесса.
А нужен секундомер который включается и выключается когда надо
В винде так Секундомер - Скрипт измерения времени выполнения всех и каждой из набора типичных задач  
Фиксируется текущее время - разбирается часы мин сек и превращается в сек  и они вычитаются для любого времени.
 
Поэтому задача так же - разобрать текущее время в Linux  на час мин сек и вопрос остается
 
Удачи.

----------
Везде трудно первые 15 лет, потом легче.
Все проблемы имеют ПРОСТОЕ решение
Ты начальник я дурак я начальник ты дурак. Но хуже дурака дурак с инициативой.

Всего записей: 1166 | Зарегистр. 04-09-2015 | Отправлено: 13:36 03-10-2021 | Исправлено: alex52mail, 13:38 03-10-2021
zedxxx

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alex52mail
Вот как получить Unix TimeStamp:

Код:
echo $(date +%s)

Часы, минуты, секунды по отдельности:

Код:
echo $(date +"%H") $(date +"%M") $(date +"%S")

Всего записей: 1379 | Зарегистр. 14-07-2008 | Отправлено: 14:22 03-10-2021
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
zedxxx
Вообще-то echo $( - это не излишества? date и так изначально все в консоль выводит (в смысле в stdout).

Всего записей: 10135 | Зарегистр. 11-03-2002 | Отправлено: 17:25 03-10-2021
zedxxx

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

Всего записей: 1379 | Зарегистр. 14-07-2008 | Отправлено: 17:52 03-10-2021
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zedxxx
просто выводить форматированное время в терминал можно и не вызывая утилиту date.
bash давно умеет это делать через printf
Код:
printf '%(%T)T\n' -1
так же начиная с bash5 (вроде версию правильно указал), текущие секунды или микросекунды можно нативно выводить bash'ом из "переменной"
Код:
echo $EPOCHSECONDS
echo $EPOCHREALTIME


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

Всего записей: 6397 | Зарегистр. 28-08-2008 | Отправлено: 22:07 03-10-2021
alex52mail

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zedxxx        Спасибо.
Но скобки нужны - без них не работает    Работает только так:
StopJob=$(date +%s)
 
И как сделать составное имя из переменных ?
В винде  работает так  
 
echo   %1__%lebl%  
End_all_tasks__w11R-21H2-GTX+
 
echo   %job2%__%lebl%  
7zipx64-RamtoRam__Win10x64R-21H2-GTX+N
 
Искал и нашел так
eval echo "\$NODE${NODENUM}IPV4"
но у меня так не получается
Как же это сделать ?
 
Удачи.

----------
Везде трудно первые 15 лет, потом легче.
Все проблемы имеют ПРОСТОЕ решение
Ты начальник я дурак я начальник ты дурак. Но хуже дурака дурак с инициативой.

Всего записей: 1166 | Зарегистр. 04-09-2015 | Отправлено: 13:06 04-10-2021 | Исправлено: alex52mail, 13:09 04-10-2021
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alex52mail
eval точно не нужен, он вообще ооочень редко когда нужен
echo "\$NODE${NODENUM}IPv4"
аналогично вместо echo можно написать 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.

Всего записей: 6397 | Зарегистр. 28-08-2008 | Отправлено: 13:13 04-10-2021
alex52mail

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
Взял 2 переменные из SET - когда отдельно то выводится так?
 
live@roll2103:~$ echo $HOSTNAME  $EDITOR
roll2103 mcedit
 
Как получить их вместе  так ?
 
roll2103_mcedit
 
Удачи.

----------
Везде трудно первые 15 лет, потом легче.
Все проблемы имеют ПРОСТОЕ решение
Ты начальник я дурак я начальник ты дурак. Но хуже дурака дурак с инициативой.

Всего записей: 1166 | Зарегистр. 04-09-2015 | Отправлено: 14:14 04-10-2021 | Исправлено: alex52mail, 19:40 05-10-2021
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alex52mail
так не надо экранировать $, я думал вы понимаете как это работает...
Код:
echo "$VAR1$VAR2"
echo "${VAR1}_$VAR2
фигурные скобки вокруг имени нужны что бы отделить текст от имени переменной, иначе имя переменной будет VAR1_, а не VAR1.
 
p.s. Я понимаю что у новичка могут быть вопросы, но может сначала хоть немного почитать или погуглить. Нельзя же пытаться через ответы на форуме получить ответы на настолько базовые вопросы.

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

Всего записей: 6397 | Зарегистр. 28-08-2008 | Отправлено: 16:35 04-10-2021
NeedVault

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста как правильнее написать запись в кронтабе для примерно следующего

Код:
 
[[ $(curl https://2ip.ru) == $(cat ip.txt) ]] || curl https://2ip.ru | tee ip.txt | mail -s "Dynamic ip" email@email.email
 

если указать

Код:
 
 0 */4 * * * [[ $(curl https://2ip.ru) == $(cat ip.txt) ]] || curl https://2ip.ru | tee ip.txt | mail -s "Dynamic ip" email@email.email
 

то отправляется каждые 4 часа один и тот же ип, а нужен уникальный
 
Alukardd
Спасибо. Все получилось.

Всего записей: 37 | Зарегистр. 10-01-2015 | Отправлено: 12:40 10-11-2021 | Исправлено: NeedVault, 11:52 15-11-2021
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NeedVault
Потому что cron по дефолту запускает sh а не bash и там нет [[
Надо просто над строками с расписанием задать SHELL=/bin/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.

Всего записей: 6397 | Зарегистр. 28-08-2008 | Отправлено: 19:58 10-11-2021
Открыть новую тему     Написать ответ в эту тему

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

Компьютерный форум 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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru