Скрипт отладки

Мне было интересно, если есть IDE, который позволит мне определить SSH-подключения к удаленному хосту, подключить, и локально отлаживать скрипт выполняется удаленно (вроде как можно отлаживать удаленные приложения Java в Eclipse)? Я хочу иметь возможность ходить линии, как и изучить Варс и все такое.

+851
Hussen Adem 14 янв. 2012 г., 07:20:24
35 ответов

Выполните сброс. Из man-страницы:

При вызове в качестве сброса, устанавливает ЦЭТ горячий и режимов Эхо, выключает cbreak и RAW режимах, включается символ новой строки, перевод и сбрасывает все отключено специальные символы к их значениям по умолчанию перед выполнением инициализации терминала, описанных выше. Это полезно после того, как программа умирает, оставляя терминал в ненормальное состояние.

+931
green baron 03 февр. '09 в 4:24

С помощью Perl:

$ Перл-ПЭ с/(?<=])\г+\к\.//файл G' 
АБВ[1.2]3523
АБВ[1.2.3]35234
+910
Skorpts sports 19 мая 2015 г., 13:48:26
Другие ответы

Связанные вопросы


Похожие вопросы

Мой ответ о Linux.

  1. Какое правило мешает ему от времени другие вещи?

Я думаю, он получает информацию только для процессов, поскольку он фактически использует wait4 системный вызов для получения этого время. Первый параметр wait4 - это PID процесса. Так /usr/Бен/время всегда вызов для execve , а затем wait4.

Кстати:

для execve() выполняет программу, указывает именем. имя файла должно быть либо двоичный исполняемый файл или сценарий, начинающийся со строки вида: #! переводчик [необязательный параметр]

Так /usr/Бен/время что может быть выполнена с помощью вызова execve

  1. Может Баша зарезервированным словом время все то, что может работать?

Я думаю, да. Он реализуется как две группы звонков:

10:06:03 вызов getrusage(RUSAGE_SELF, {ru_utime={0, 152976}, ru_stime={0, 465929}, ru_maxrss=4052, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=6214, ru_majflt=1, ru_nswap=0, ru_inblock=368, ru_oublock=0, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=6349, ru_nivcsw=12}) = 0
10:06:03 вызов getrusage(RUSAGE_CHILDREN, {ru_utime={2, 259656}, ru_stime={1, 888712}, ru_maxrss=21176, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=64297, ru_majflt=4, ru_nswap=0, ru_inblock=272, ru_oublock=368, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=56077, ru_nivcsw=386}) = 0

запустить командой

10:06:04 вызов getrusage(RUSAGE_SELF, {ru_utime={0, 152976}, ru_stime={0, 476927}, ru_maxrss=4052, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=6243, ru_majflt=1, ru_nswap=0, ru_inblock=368, ru_oublock=0, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=6399, ru_nivcsw=13}) = 0
10:06:04 вызов getrusage(RUSAGE_CHILDREN, {ru_utime={2, 271654}, ru_stime={1, 903710}, ru_maxrss=21176, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=64514, ru_majflt=4, ru_nswap=0, ru_inblock=272, ru_oublock=368, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=56079, ru_nivcsw=406}) = 0

Так что я думаю, Баш просто вычислять разницу и печатает его. Таким образом он может измерять anythins как собственные примитивы или дочерний процесс

  1. Какие вещи, которые в внешнее время может время, но зарезервированное слово время не могу?

На самом деле оба системных вызовов вызов getrusage и wait4 получить от ядра структуры rusage использования. Однако Баш время печатает ограниченное количество полей из этой структуры. Это от человека 1 раз:

Примечание: некоторые снаряды (например, bash(1)) имеют встроенную команду, которая имеет меньше возможностей, чем команда, описанная здесь.

$/usr/Бен/время -в сл 10000
 Команды приурочен: "сл 10000"
 Время (в секундах): 0.01
 Системное время (в секундах): 0.01
 Процентов ЦП это задание получил: 24%
 Прошедшее (настенные часы) Время (Ч:мм:СС или М:СС): 0:00.12
 Средний общий размер текста (Кбайт): 0
 Средний размер неразделенный данных (Кбайт): 0
 Средний размер стека (КБ): 0
 Средний суммарный размер (Кбайт): 0
 Максимальный резидентный размер (Кбайт): 2640
 Средняя резидентный размер (Кбайт): 0
 Крупные (требующие ввода/вывода) ошибок страниц: 0
 Незначительные (восстановление рамы) ошибок страниц: 199
 Добровольное переключение контекста: 8
 Принудительное переключение контекста: 24
 Свопы: 0
 Файловая система входы: 0
 Выходы файловая система: 8
 Розетка сообщений: 0
 Сообщений сокета получил: 0
 Сигналы: 0
 Размер страницы (байт): 4096
 Состояние выхода: 0
+883
jamesc 28 июл. 2015 г., 21:06:15

Видимо, udev и изменили способ, которым она соответствует аппаратное в в: 220, который означает, что надо было менять

клавиатура:USB:v046DpC52B*

для

файлам:ввод:b0003v046Dp402D*

b0003 - автобус-идентификатор порта USB)

Что меня раздражает, это то, что другой код продукта нужны уже сейчас. Раньше, в: 220, идентификатор C52B был использован для всех частей устройства (мульти-кнопочная мышь), однако сейчас мне нужен идентификатор 402D в адрес клавиатуры. evtest уже показал этот код в Ubuntu, но сработало старое правило в любом случае.

+882
maccie 14 мар. 2018 г., 07:09:02

У меня в CentOS сервера, используя eth1 и сетевой интерфейс. Я пытаюсь изменить его в интерфейсе eth0 и настроили его, но когда я пытаюсь ifup eth0 в я получаю это сообщение об ошибке:

Ошибка: активация ошибка подключения: устройство не управляется через NetworkManager или недоступен

Содержимое файла/etc/sysconfig/сети-скрипты/файл ifcfg-eth0 в следующим образом:

Устройство=eth0 в
Тип=локальных сетей
Идентификатор UUID=6519f5da-294a-45e3-b9dc-b8aa12c5fda3
Наоборот-при восстановлении=да
NM_CONTROLLED=да
Переменной bootproto=DHCP-сервер
DEFROUTE=да
IPV4_FAILURE_FATAL=да
IPV6INIT=нет
Наименование="система для eth0"
HWADDR=00:19:99:Д5:56:95
PEERDNS=да
PEERROUTES=да
LAST_CONNECT=1509619482

Просьба кто может помочь в получении от eth0 до?

+858
bmaupin 15 мая 2016 г., 10:12:04

Пока это не так широко используется, как это было раньше, 'чтение' - это инструмент, который повышает уровень безопасности для процессов, которые должны выполняться с правами root. Это требует некоторых дополнительных усилий в создании виртуальной / папка со всеми файлами для ваших потребностей, включая библиотеки (скомпилировал программу статически) Таким образом, если какой-то процесс должен нарушить вашу безопасность, он будет в ограниченном песочнице. Очевидно, что вы вырезать любые ненужные программы поддержки, такие как редакторы и сетевые инструменты.

Одним из предпочтительных способ работает персонализация/имени использует это, так что может быть хорошее руководство о том, как установить это.

Проверить https://help.ubuntu.com/community/BasicChroot для более подробной информации.

+835
user9972785 25 мар. 2017 г., 22:23:15

В моих журнальных файлах (*.журнала) я хочу, чтобы заменить все вхождения:

"Информация=*",

для

"Информация=*;;;",

где * может быть что угодно.

Так, например, "инфо=1234",Ы -> "информация=1234;;;",Ы есть ли способ сделать это с помощью sed ?

+818
GedankenNebel 6 нояб. 2019 г., 17:57:37

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

Вопрос о различиях

  • А) вступления в "команду" напрямую, против
  • Б) поставив подуровень в фоновом режиме (я.E с аналогичной задачей)

Проверим о тех различиях запуска 2 тесты

# А) основать команду напрямую
сон 2 и PS

выходы

[1] 4228
 ПИД ТЕЛЕТАЙП ВРЕМЕНИ УМК
 4216 оч/8 00:00:00 ш
 4228 оч/8 00:00:00 сон

а

# А) вступления в subhell (с аналогичными ТАС)
( сон 2; ) и PS

выводит что-то вроде:

[1] 3252
 ПИД ТЕЛЕТАЙП ВРЕМЕНИ УМК
 3216 оч/8 00:00:00 ш
 3252 оч/8 00:00:00 ш
 3253 оч/8 00:00:00 ПС
 3254 оч/8 00:00:00 сон

** Результаты теста:**

В этом тесте (который работает только спать 2) в том случае, когда версия действительно отличается, так как он будет использовать 2 дочерние процессы (т. е. два вызова fork()/exec для операций и идентификатор процесса) и, следовательно, более прямого вступления в команду.

В сценарий 1 вопроса, однако команде не было ни одного сна 2С но вместо нее была труба из 4 команд, если мы тестируем в дополнительном случае

  • В) вступления в трубу с 4 командами

    В) вступления в трубу с 4 командами

    сон 2С | 2С сон | Сон 2С | 2С сна и PS

урожайность в этом

[2] 3265
 ПИД ТЕЛЕТАЙП ВРЕМЕНИ УМК
 3216 оч/8 00:00:00 Баш
 3262 оч/8 00:00:00 сон
 3263 оч/8 00:00:00 сон
 3264 оч/8 00:00:00 сон
 3265 оч/8 00:00:00 сон
 3266 оч/8 00:00:00 ПС

и показывает, что действительно сценарий 1 будет значительно выше напряжения в плане Пидов и вилкой()С.

В качестве грубой оценки сценария никто бы воспользовались около 254 * 4 ~= 1000 ИДП и, следовательно, даже больше, чем сценарий 2 с 254 * 2 ~= 500 Пидов. Любая проблема, возникающая из-за Пидов корки depleetion кажется пока маловероятным, поскольку в большинстве систем на основе Linux

$ кот /труды/системы/ядра/файле
32768

дает вам 32х раз Пиды нужны даже для сценария 1 и процессов/программ (например, СЭД , пинги т. д.) Также маловероятно для того чтобы причинить непостоянный результат.

Как отметил пользователь @derobert реальная проблема за скриптов , не было что не хватает , ждать команды, что означает, что после вступления команды в петлю конец сценария, а следовательно, снаряд вызвал все дочерние процессы будут прекращены.

+745
Adrien Budet 20 авг. 2015 г., 18:47:54

Я использовал вверх/вниз для перемещения по истории команд. Затем, спустя несколько дней его поменяли на клавиши Ctrl-п/Сtrl-Н. Сейчас это не работает, чтобы перемещаться по истории введенных команд.

Как я могу посмотреть все эти параметры или изменить его? Я попытался увидеть терминал установка давая команду действовать до его закрытия , но это не помогло. Я искал через Google и нашел то, что называется bindkey. Я надеюсь, что я двигаюсь в правильном направлении.

Я не root, в любом случае, я хотел бы знать больше об этом, даже если не мог ничего поделать.

KORN-ОБОЛОЧКИ

**Информация об ОС :**
rcihp145 :/дома/msingh2> команды uname -а
Л. с.-Б. УБ rcihp145 11.23 9000/800 3683851961 неограниченное количество пользователей лицензии у 
+733
Uncledre 8 окт. 2018 г., 15:44:59

Другое решение, используя awk ипункта режим

на awk -V на РС= -ворс файла='\н\н' '{gsub(/\Н/, ""); печатать}' 
+705
Fashion designer 5 июл. 2010 г., 21:04:14

Я хотел бы знать, если есть способ в Vim/VI предоставлять другой файл vimrc. Я смотрю на управление 2 разных файлов vimrc. За содержание я проверок в системе контроля версий я хочу использовать другой набор команд, а не нормального в моем .vimrc файл

Например.

Мой .vimrc файл содержит команду, чтобы автоматически удалить любой пробел при сохранении файла. Но, я не хочу, чтобы эта функция была активирована для конкретных файлов.

Так что любой способ предоставить другой файл vimrc ( возможно в командной строке, давая ему в качестве параметра каждый раз, как ВИМ --файл--открыть vimrc=некий-файл) ?

+689
Neria Nachum 6 апр. 2013 г., 01:18:03

Для простого разделенных запятыми CSV-файл для импорта в Excel, вы могли бы использовать что-то вроде

СЭД -п/имя = /!д
Н;Н;Н;Н
г/\н/,/
 с/, *совместное = [^,]*//
 с/[^,=]*= //г;р' с yourfile

Первая строка удаляет все строки кроме имя = те. Дальше только для тех, и добавьте в него четыре следующие строки в буфер с Н. В М Команда заменяет переводы строк между строк с разделяющими запятыми. Первый С команда удаляет общие линии, а второй удаляет часть до = оставить только значения. Он будет работать для любого количества строк. Текстовые поля будут определены автоматически без кавычек в данном случае.

+669
Devendra Bhatte 21 февр. 2012 г., 01:39:48

У меня была аналогичная проблема.

судо certbot certonly --ДНС-route53 -д example.com
Произошла непредвиденная ошибка:
VersionConflict: (botocore 1.10.58 (в/usr/lib в/Вместо python2.7/сайт-пакеты), 
Требования.метод Parse('botocore>=1.6.0,<1.7.0'))

Ваш пост помог мне найти https://github.com/venth/aws-adfs/issues/52 которые рекомендуется с помощью pip удалить botocore boto3 && Пип установить boto3, чтобы решить проблему.

судо пункт Удалить botocore boto3 && судо пункт Установить boto3 

Решен вопрос о моем устройстве.

+625
Carl Hine 1 сент. 2019 г., 05:39:10

Предположительно программа будет записывать в файл номер дескриптора указан. рассмотрим следующий привет мировая программа:

#включить заголовочный файл <stdio.ч>

главная()
{
 определены я = 0 ;
 функции printf ("Здравствуй, мир\п") ;
 я = написать( 5 , "Бонжур Монд\Н", 14 ) ;
 функции printf ("%д октет данс 5\П", (инт) я) ;
}

скомпилировать его

мне@MYBOX совсем:~/tmp7$ сделать гв
КС гв.с-о ГВ

теперь просто бегать

мне@MYBOX совсем:~/tmp7$ ./гв
Привет мир
-1 октет данс 5

файл не на 5, так что не байт писал.

следующая попытка:

мне@MYBOX совсем:~/tmp7$ ./гв 5> у
Привет мир
14 октет данс 5
мне@MYBOX совсем:~/tmp7$ у кота
Бонжур Монд

Мне удается получить вывод при указании файла и файл с дескриптором (например, 5>у ).

На практике, если вы написали такую веселую программу, как указано выше, вам вряд ли удастся собирать данные, используя 5>фу.

в shell-скрипт, построить, используя <( ) более полезно:

 дифф <( СМД-п. 1 ) <(УМК пар 2)
+585
kbertrand 1 мая 2018 г., 14:23:14

Я хотел бы спросить, если как я могу удалить пробел в начале хранимых данных переменной. Я автоматически сгенерированный скрипт, который будет сделать в MySQL считать из БД.

В MYSQL СЧЕТЧИК СКРИПТ-> .ini-файл (переменная держатель / параметры) -> отчет-сценарий

Это значит, что у меня есть скрипт, который будет считать некоторые данные в базе данных, то его данные будут храниться в текстовом(.ini файл) файл в переменную, потом другой скрипт будет читать файл и искать переменную.

Под db-count-script.sh вот некоторые из кодов по моей проблеме.

#!/бин/Баш
mysql_count=$(для MySQL ... -е"использовать my_db;выберите функции count(*) из my_db.ир1, где Интайм='1';"

Эхо $mysql_count #это выход из этой Эхе --> функция count(*) 15

#отсюда я собираюсь удалить графу(*)
УНТ=${mysql_count//количество(*)}

#сохранение данных в переменную
Эхо "db_cnt=\""$ЦНТ"\"" >> дБ-граф.Ини

Внутри дБ-граф.Ини у меня есть эти данные.

db_cnt=" 7"

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

#!/бин/Баш
источник дБ-граф.Ини
Эхо "графа:"$db_cnt
#Выходной 
Граф: 7 

Любое предложение? Советы?

Спасибо.

+581
lockandroll 16 июн. 2016 г., 08:45:59

Из вашего первого скриншота (не размещать изображения текста), это выглядит, как будто вы используете /usr/местные/src/и Тессеракт в качестве команды, а из второго скриншота видно, что это каталог.

Ваш скрипт Python train.py вероятно, нуждается в обновлении с правильного пути к Тессеракт исполняемый файл (который я предполагаю, должен жить где-то в /usr/местные/src/и Тессеракт dierctory).

+565
bonusof20 18 нояб. 2013 г., 05:05:32

Мне очень нравится Баш псевдонимы, меня раздражает, что каждый раз, когда я хочу добавить новый псевдоним у меня две команды типа:

Эхо "псевдоним \"шорт-УМК\"='длинный-команда'" >> ~/.bash_aliases
источник ~/.bash_aliases

Любым способом я могу создать постоянно псевдонима с помощью одной команды?

+562
Elton Uliana 13 авг. 2014 г., 01:26:26

Запуск Су вызывает баш в режим войти. Bash, то читает .bashrc следующее , Чтобы настроить свою среду.

Подножка Су - Баш вызывает в качестве оболочки входа в систему. В этом режиме файл/etc/профиль выполняется, если оно существует. Баш также ищет ~/.файл, ~/.bash_login все и ~/.профиль выполнении первого найденного файла. Хотя и не документально, это, кажется, выполнить ~/.bashrc и , когда ни один из них не существует.

Если вы получите различное поведение, вполне вероятно, что вы используете различные файлы для инициализации баш в зависимости от того, как он вызывается.

Я проверил, что файл был вызван путем добавления строк, как эхо .bashrc и к концу существующие файлы. Это покажет, какие конфигурации вызывается.

Есть более подробно на эту проблему в вызова раздела Баш странице.

Вкладка завершение доступен на баш , но не в СГ. корень обычно имеет Ш. , его оболочки, как Баш может быть недоступна. Пользователи обычно имеют Баш как их оболочки.

Попробуйте запустить Баш как корень , прежде чем пытаться Tab-ом. Это должно позволить автодополнение по Tab.

+547
DiCaprio 14 июн. 2016 г., 21:51:38

Я не уверен, если это правильное место, если я переверну вопрос без проблем.

Я настройка веб-сервера для тестирования на WordPress. Все работает нормально, если я пытаюсь получить доступ к веб-сайт с одной и той же машины, но когда я пытаюсь получить доступ к корневой директории веб-сайта (работает на моем ноутбуке) с другого компьютера (внутри сети) я получить не удается подключиться.

Я передаю ИС в веб-браузере, но браузер перенаправляет себя на localhost. Если я задать для конкретного файла readme.html в корневом каталоге я могу прочитать файл из внешнего компьютера.

Во время установки я поставил хоста из wordpress на localhost, так что я предполагаю, там могут быть некоторые проблемы с перенаправлением на неправильную машину. Если я пытаюсь изменить это имя (в машине под управлением WordPress) на имя компьютера под управлением WordPress (название машины бестия), Вордпресс перестает работать.

Может кто-нибудь дать мне некоторые идеи, как возможное решение?

.htaccess файл:

RewriteEngine На
RewriteBase /
RewriteRule index\.php ^$ - [л]

# добавить косую черту к /WP-администратора
RewriteRule ^([_0-9а-Яа-я-]+/)?WP-администратора$ 1wp-админ $/ с [R=301,L]в

RewriteCond %{REQUEST_FILENAME} -F и [или]
RewriteCond %{REQUEST_FILENAME} -д
RewriteRule ^ - [Л]
RewriteRule ^([_0-9а-Яа-я-]+/)?(РГ-(содержание|админ|включен).*) $2 [L]в
RewriteRule ^([_0-9а-Яа-я-]+/)?(.*\.в PHP)$ 2 $[л]
RewriteRule . index.php [л]

Обновление

В файле wp-config.php присутствует линия

определите('DOMAIN_CURRENT_SITE', 'localhost'а);

когда я пытаюсь изменить строку с localhost, перенаправление отличается от моего внешнего компьютера (на самом деле на обеих машинах); например, если изменить значение localhost , чтобы бестия , когда я звоню с IP 192.168.0.111 из браузера моего внешнего машиной я перенаправлены на бестию (и, конечно, запрос не выполняется на обеих машинах, потому что у меня не DNS-сервер в моей сети).

+495
qursk 2 нояб. 2017 г., 07:49:36

У меня компьютер с материнской платой оперативной памяти (материнская плата ASRock ММБ-195), и я пытаюсь использовать на борту последовательному порту (/dev/ttyS0). Я использую сервер Ubuntu с ядром Linux 4.4.0-72.

Если я загружаюсь с ACPI=off, то я получаю следующий результат (команда dmesg):

Серийный: водитель 8250/16550, 32 порта, совместное использование прерываний включена
serial8250: ttyS0 на Я/o 0x3f8 (IRQ с = 4, base_baud = 115200) является 16550A
serial8250: к ttys1 в ввода/вывода ввода / вывода 0x2f8 (на IRQ = 3, base_baud = 115200) является 16550A
serial8250: ttyS2 в ввода/вывода 0x3e8 (на IRQ = 3, base_baud = 115200) является 16550A
serial8250: ttyS3 в ввода/вывода 0x2e8 (на IRQ = 3, base_baud = 115200) является 16550A

с ACPI на:

Серийный: водитель 8250/16550, 32 порта, совместное использование прерываний включена

Полностью отключить ACPI очень неоптимальным (не перезагрузка без питания вручную на велосипеде например).

Есть ли способ, чтобы отключить части ACPI, которые мешают последовательному водителя от работы?

+444
NJones 24 февр. 2011 г., 23:04:36

У меня своеобразная проблема. Мой сервер поддерживает несколько SSH-сессии одновременно, так что несколько администраторов могут управлять (через интерфейс командной строки) одновременно. У нас есть команда, которая называет ztail , чтобы показать сжатых файлов журналов. Теперь, когда ток через SSH сессия закрыта (без нажатия клавиши Ctrl-C и, чтобы остановить ztail команды), эта команда в идеале должна перестать работать. Но что я заметил, когда я начинаю новую SSH-сессию, что процесс (ztail) по-прежнему работает в фоновом режиме и потребляет мой процессор, даже если предыдущая сессия была закрыта. Теперь, как я могу знать, когда сессия была закрыта, так что я могу использовать эту переменную/флаг, чтобы закрыть/остановить какие-либо команды, инициируемые, что ранее закрытое заседание?

+419
Kalash 19 янв. 2017 г., 07:54:10

Awk-это печать на стандартный вывод, который буферизируется построчно, когда он указывает на терминал, и с полной буферизацией, если нет, это означает, что вы должны сделать вывод после того, как он заполняет буфер, т. е. он напечатал (например) 4 КБ.

Вы можете проверить это путем отправки лота продукции (например, с помощью программы "да"); для ремонта необходимо либо: - unbuffer на awk в stdout (см., например, https://unix.stackexchange.com/a/25375/63847) - использовать отключения(2) системный вызов от отправителя (некрасиво)

Лучше всего будет добро пожаловать

+406
muncherelli 23 янв. 2015 г., 06:56:24

Я хочу хранить IP-адреса посетителей моего сайта, и я хочу использовать PHP. Я должен использовать cron или как будет посетителей IP будет автоматически сохраняются?

+378
Gill Darnbrook 11 нояб. 2019 г., 21:44:32

В дополнение к тому, что @игал сказал про проверку расширения файла, у вас много ошибок в переменной синтаксис и использование. Начните с линии 3:

L0_Report_Generator=("/домашний/Убунту/$gzip_file")

Переменная gzip_file не было установлено, поэтому $gzip_file будет заменено ничего, когда Shell расширяет его. Кроме того, в скобках в вар=(что-то) назначает массива, а не простой переменной, а в данном случае это не имеет никакого смысла.

В четвертой строке, Эхо -N "введите файл каталога:"$gzip_file, та же проблема с переменной gzip_file. Он также имеет проблемы, что Эхо -Н непредсказуем и делать разные вещи под разные версии Эхо команды. Чтобы напечатать строку без перевода строки, вы гораздо лучше использовать функции printf "%s" на "строка для печати", но в этом случае есть лучший вариант, что я буду через минуту.

Пятая линия, читали $gzip_file, по-видимому, предназначенные для чтения данных, вводимых пользователем в переменную gzip_file, но это не то, что он делает. В оболочке, когда вы кладете $ перед именем переменной, которая получает текущее значение переменной. Здесь, вы хотите установить его, так что вы должны оставить $ от: читать gzip_file. Но это не то, что я делаю. Я бы включить в запрос (который вы эхо на линии 4) в рамках читать команду:

читать -п "введите файл каталога:" gzip_file

Ок, сейчас на линии 6:

для gzip_file в {$L0_Report_Generator}; делать

Это, кажется, установка gzip_file снова (заменив ценности мы только читали в него). Вы на самом деле пытаетесь установить gzip_file здесь, и предыдущие ссылки на переменные действительно надо было другой переменной (может быть gzip_dir вместо)?

Кроме того, в части не имеет никакого смысла. Я думаю, что вы пытаетесь использовать переменную L0_Report_Generator, но в этом случае открытая фигурная скобка должна идти после знака доллара. Но это не совсем имеет смысла, потому что ${L0_Report_Generator} будет (если я правильно понял, что это должен делать) просто быть путь к каталогу. Для ... в не перебирать содержимое каталогов, он перебирает список слов, как дисп в слово1 слово2 "слово 3, которая имеет несколько пробелов в его" word4; сделать. Если вы хотите получить список файлов в каталоге, вам нужно использовать подстановочные знаки, как на Варе в dir/*; у -- оболочка будет расширяться шаблон-файл, содержащий шаблон в список соответствующих файлов, каждый из которых обрабатывается как слово, и перебрать их. У вас также есть возможность ограничить играм для файлов с определенным расширением на том, что в шаблоне, как и для dir/*.ГЗ.

Три другие заметки: я рекомендую использовать заглавные имена переменных, такие как дата, чтобы избежать конфликтов с различными буквами переменных среды, которые имеют специальное значение для оболочки или некоторые коммунальные услуги. Кроме того, всегда дважды цитировать ваши ссылки на переменные (т. е. использовать "$ВАР" , а не просто переменной$VAR), чтобы избежать неожиданных разбор странностей. И еще предложение не сделали тест, так через другое [[ тест ]] не имеет смысла (и тогда , после другого - это синтаксическая ошибка).

Так что если я понял, что скрипт должен делать, я бы рекомендовал заменять начале скрипта:

#!/бин/Баш
дата=$(дата +%г-%м-%д) # Примечание строчной переменной
читать -п "введите файл каталога:" gzip_dir
L0_Report_Generator="/домашний/Убунту/$gzip_dir"

для gzip_file в "${L0_Report_Generator}"/*.ГЗ; делать

...А потом (если .ГЗ рисунок выше является то, что вы хотите), вам не нужно если проверить $gzip_file имеет .расширением GZ, поскольку шаблон будет только список .GZ файлы.

Еще одно замечание: shellcheck.net очень полезно для указывая на основные ошибки в скриптах. Он пропускает многое из того, что я указал, но попадаются залетные затем (который я поначалу упустил).

+374
Al Azif 14 июл. 2012 г., 11:43:14

Я наблюдаю как минимум трех установок различных Linux (в Ubuntu 16.04, Antergos последний в 2017-06-28, в Debian 9.0) с следующим поведением:

  • Протокол IPv6 deconfigured (адрес не присвоен)
  • DNS-сервер получает одновременных запросов A и AAAA для любого разрешения, которые необходимо выполнить.

Я уже возился с файл nsswitch.конф (опция ipnodes), файл resolv.конф (несуществующий вариант не только IPv6), ГАИ.конф, без всякого успеха.

С программы я взял с этого сайта не выполняет АААА запросы.

Эта простая и глупая программы PHP выполняет обе, аааа и DNS-запросы, одновременно:

<?в PHP
$ч = curl_init($массива argv[1]);
curl_exec($CH) в;

Поскольку причин может быть десятки клиентов (также в LXC-контейнеров), имеющих эту проблему, бросая бесполезные запросы на DNS-сервер, я хочу спросить, если есть способ, чтобы предотвратить АААА DNS-запросы с помощью стандартных системных вызовов (getaddrinfo и тому подобное).

Обратите внимание, что эти АААА запросы выполняются по адресам IPv4, поскольку клиентов, а также DNS-сервер не используется протокол IPv6 настроен:

$ показать IP-адрес в dev venet0
2: venet0: <вещают,POINTOPOINT,NOARP,вверх,LOWER_UP> с MTU 1500 qdisc noqueue состояние неизвестно 
ссылка/пустота 
инет 127.0.0.2/32 объем размещения venet0
инет 192.168.8.40/32 БРД 192.168.8.40 объем глобального venet0:0
+370
leacorv 16 мар. 2016 г., 10:15:48

Как насчет

СР !(мой папка) /фу

Пример:

$ найти . -тип F
./my-folder/test4.txt
./my-folder/test3.txt
./test2.txt
./test1.txt
$ Эхо СР !(мой папка) /фу
СР test1.txt test2.txt /фу
$
+358
Yura2014 12 мар. 2013 г., 05:00:55

попробовать, как это нечто

shell_bin=$(ПС ч -п $$ -вывода параметр args=" | кат-Ф1 -д' ')
Эхо $shell_bin
+349
Catlover999 24 мая 2015 г., 05:18:51

Я пытаюсь из FreeBSD с гипервизора bhyve и пытаясь повторить в VMware ESXi с коммутатора конфигурации в FreeBSD, так что pfSense ВМ получает сетевой трафик правильно.

Лс:

  • 111 = локальной сети 192.168.101.0/24
  • 333 = интернет (WAN), DHCP-сервер

pfSense настройка виртуальной машины (в ESXi и FreeBSD):

Никс:

  • vnic0
  • vnic0.111 192.168.101.1/24
  • vnic0.333 DHCP от провайдера
  • Нат: влан 333 <-> влан 111 & DHCP-сервера
  • ГВ разгружает от

Старый установка в ESXi:

  • 192.168.101.6/24 на VLAN 111 ГВ 192.168.101.1
  • Только коммутатора, не dvSwitches

vSwitch0:

 ----------------------- -----------------------
| allvlans | | физической |адаптеры
| Влан идентификатор: 4095 (все) |----| * vmnic0, 1000 Мбит / с |
| * pfSense24| | ----------------------- 
 ----------------------- |
|
 ----------------------- |
| Управления Сетью |--/ 
| ВЛАНА: 111 |
| Портов VMkernel (1): |
| * vmk0: 192.168.101.6 |
-----------------------

Политики безопасности:

  • Разрешить сквозной режим: нет
  • Позвольте кованые передает: нет
  • Позвольте Mac изменяет: нет

Allvlans порт группы:

  • Влан идентификатор: 4095 (разрешить все тегированные VLAN-трафика)
  • Разрешить сквозной режим: наследовать от коммутатора (нет)
  • Позвольте кованые передает: наследовать от коммутатора (нет)
  • Позвольте Mac изменяет: наследовать от коммутатора (нет)

Замена по FreeBSD, ESXi, в попытке установки:

sysrc -Ф /загрузки/погрузчик.конф vmm_load="да"
sysrc -Ф /загрузки/погрузчик.конф nmdm_load="да"
sysrc -Ф /загрузки/погрузчик.конф if_bridge_load="да"
sysrc -Ф /загрузки/погрузчик.конф if_tap_load="да"
sysrc if_vlan_load="да"
sysrc cloned_interfaces="bridge0 tap0"
sysrc ifconfig_bridge0="em0 инструмента инструмента tap0"
Эхо "нет.ссылке.нажмите.up_on_open=1" > /и т. д./sysctl.д/vm_network.конф
sysrc defaultrouter="192.168.101.1"
sysrc ifconfig_em0="вверх"
sysrc gateway_enable="да"

В ESXi по управлению сетью эквивалент(?) для SSH доступа:

sysrc vlans_em0="111"
sysrc ifconfig_em0_111="инет 192.168.101.6/24"

Интерфейсы:

em0: флаги=8943<копирование,трансляция,запуск,PROMISC,симплекс,мультикаст - > метрическая 0 МТУ 1500
параметры=852099<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO>
 эфир 00:25:90:14:95:8С
 nd6 и варианты=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
 СМИ: автовыбор сети Ethernet (1000baseT <полнодуплексном>)
 статус: Активный
bridge0: флаги=8843<Up,в эфире,бег,симплекс,многоадресный> метрическая 0 МТУ 1500
 эфир 02:ЭБ:00:40:63:00
 nd6 и варианты=9<PERFORMNUD,IFDISABLED>
 групп: мост
 идентификатор 00:00:00:00:00:00 приоритет 32768 hellotime 2 fwddelay 15
 maxage 20 holdcnt 6 прото рстп maxaddr 2000 время ожидания 1200
 идентификатор корня 00:00:00:00:00:00 приоритет 32768 ifcost 0 порт 0
 участник: tap0 флаги=143<обучения,обнаружив,AUTOEDGE,AUTOPTP>
 ifmaxaddr 0 порт 5 приоритетных 128 стоимость пути 2000000
 участник: em0 флаги=143<обучения,обнаружив,AUTOEDGE,AUTOPTP>
 ifmaxaddr 0 порт 1 приоритет 128 стоимость пути 2000000
tap0: флаги=8943<копирование,трансляция,запуск,PROMISC,симплекс,мультикаст - > метрическая 0 МТУ 1500
параметры=80000<LINKSTATE>
 эфир 00:БД:ф0:02:ф7:00
 nd6 и варианты=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
 СМИ: автовыбор сети Ethernet 
 статус: Активный
 группы: нажмите
 Открыл ПИД 45408
em0.111: флаги=8843<Up,в эфире,бег,симплекс,многоадресный> метрическая 0 МТУ 1500
параметры=103<RXCSUM,TXCSUM,TSO4>
 эфир 00:25:90:14:95:8С
 инет 192.168.101.6 маска трансляции 0xffffff00 192.168.101.255
 nd6 и варианты=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
 СМИ: автовыбор сети Ethernet (1000baseT <полнодуплексном>)
 статус: Активный
 влан: 111 vlanpcp: Родительский интерфейс 0: em0
 группы: влан

pciconf -ЛВ:

[email protected]:1:0:0: класс=карта 0x020000=чип 0x10d315d9=0x10d38086 Рэв=0х00 дрч=0х00
 поставщик = 'корпорации Intel'
 устройство = '82574L гигабитные сетевые подключения'
 класс = сеть
 подкласс = локальных сетей

Запуск виртуальной машины с pfSense:

ш /usr/share/examples/bhyve/vmrun.sh -м 2048M -д /Дев/ООО/Танк/pfsense0 pfsensevm

Он использует tap0.

В настоящее время я могу получить доступ к pfSense веб-админ, но vmnet0.333 не получает IP от моего провайдера. Я хотел бы настроить влан моста как надежно, как это возможно (отдельный для bridge0?). Если это возможно, чтобы отправить весь трафик на физическом коммутаторе первое, что я бы предпочел. содержатся файлы тоже ок, но я с ним не знаком.

Запроса DHCP пакет правильно видел в tap0, bridge0, и em0 с тсрйитр -lnexv -я <интерфейс> "влан 333"и не em0.111, что является правильным, когда запрашивает новый IP в pfSense. Нет ответа DHCP от провайдера. em0 и tap0 в режиме promisc, которая отключена в версии коммутатора.

Больше отладки:

Подключен Raspberry Пи на мой модем VDSL и пакете DHCP видно. Я также попытался спуфинг MAC-адреса pfSense с ИРЦ и он работает. Поэтому в настоящее время можно виновницы контрольных пакетов и пакетов усек. По крайней мере, реализация моста Linux очень хорошо известно, разорвать пакеты с моста и виртуальных локальных сетей, так что FreeBSD может делать это так же? Добавление влан 333 до em0 работает DHCP. Так что bridge0 или tap0 делаешь?

Чего мне не хватает?

+319
Frederic Kahler 18 окт. 2017 г., 17:42:08

Убийство не ням ИНС, что вы хотите, я имею в виду, вы получите пакет коррупции на какое-то время точно. Есть пакет, как Юм-cron, которое может решить ваши проблемы в надлежащем порядке. Установите его, отредактируйте /etc/ням/ням-хрон.Conf в соответствии с вашими потребностями (установить безопасность всего и всех)

включите службу и запустить ее.

Вам больше не придется беспокоиться о полуготовности, обновлений или любых других проблем, что убийство может привести к

+304
Alex Beals 9 июн. 2015 г., 14:06:39

Лучший способ я нашел, но это не единственный способ

[корень@virt03 тест]# Неум 'gsub(/[0-9][0-9]/,":&",$1) gsub(/[0-9][0-9]/,":&",$2)' lab1 | СЭД 'ы/://1' | ООО 'с/://3'
03:40:23 05:20:30
03:40:23 02:21:30
04:40:23 01:20:30
03:42:23 02:20:30
03:41:23 15:20:30
02:40:23 15:20:30
[корень тест@virt03]# кот lab1
034023 052030
034023 022130
044023 012030
034223 022030
034123 152030
024023 152030
[корень тест@virt03]#
+192
ArunRaj 17 июн. 2018 г., 23:26:03

Если вход не исправить количество /, вы также можете использовать команду grep с контекстом:

$ ... | грэп -по устройств/\К.*?(?=/устройства)'
+169
Mattia 16 июн. 2019 г., 04:50:20

К сожалению, вы не сможете восстановить его, к сожалению.

Для неограниченного Баш историю проконсультироваться на эту ссылку, и если вы остановились где-нибудь, отредактируйте ваш вопрос в деталях, чтобы помочь вам.

Короче, если они уже не существуют, следует добавить две строки в ваш .bashrc следующее:

HISTSIZE=
HISTFILESIZE=

Если ваше имя пользователя Витор, при нормальной конфигурации полный путь .bashrc и будет /дома/Витор/.bashrc следующее.

+105
LilacmoonlightDraws 20 окт. 2011 г., 10:38:44

Перейти к http://kmuto.jp/debian/hcl и вставить вывод результата команд lspci -н , как просили. Вы получите рекомендации водителя.

Вы также можете просто проверить, если/как каждый водитель работает на вас - ничего не взорвется из-за этого :)

+95
Mizanur Rahman Khan 8 февр. 2013 г., 02:10:07

Я никак не могу вернуть значение из скрипта. Скрипт, который дает мне неприятности second.sh ниже. Но есть взаимодействие с сценарий first.shи это взаимодействие, кажется, быть источником неприятностей.

Первый сценарий-это сценарий тестирования и диски второй сценарий. Он должен второй скрипт для установки кросс-компиляции среды (следовательно, оснований для начальной точкой). Первый сценарий, который затем вызывает сделать различные переменные, как СХХ и CXXFLAGS.

# first.sh

. ./second.sh аргумент1
если [ "$?" -эквалайзер "0" ]; затем
сделать
...
интернет

. ./second.sh аргумент2
если [ "$?" -эквалайзер "0" ]; затем
сделать
...
интернет

. ./second.sh значение arg3
если [ "$?" -эквалайзер "0" ]; затем
сделать
...
интернет

Второй сценарий, как правило, запустить его отдельно от пользователей, и это вполне, потому что это обнаружение платформ, архитектур и другие различные функции. Он устанавливает различные переменные, как СХХ и CXXFLAGS , используемого принять в первом сценарии.

second.sh # 
...

# в случае успеха, возвращает 0
выход 0
...

# если отказ, возвращает не 0
выход 1

Проблема у меня-это призыв к выходу в second.sh убивает терминала, так first.sh остановлен мертвый в течение его следов. Подобная проблема возникает, когда пользователь запускает его в одиночку.

Когда я пытаюсь изменить второй сценарий:

second.sh # 
...

# в случае успеха, возвращает 0
возвращает 0

# другое в случае ошибки, возвращает не 0
возвращение 1

Затем, из first.sh точки зрения second.sh всегда терпит неудачу, даже с возвращают 0.

Как мне добавить код возврата, что не убивает терминала под Баш?


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

+83
Enxhi Zyko 1 июн. 2015 г., 10:50:49

У меня есть некоторые текущие сообщения об ошибках в dmesg, в выходной.

[ 2.235648] USB-кабеля 4-1-порту3: сверхтока
[ 2.443643] USB-кабеля 4-1-порту4: сверхтока

Если я выполнить команду lsusb -с 4:1 я получаю следующее

Устройство автобусных 004 001: с ID 1d6b:0002 Linux в основу 2.0 корневой концентратор

но не могу показаться, чтобы найти что-нибудь другое.

Правильно ли я связал 4-1 в dmesg, в выходной шиной 4 устройства 1, или это означает что-то другое.

В конечном счете - то, что я действительно хочу знать, подойдет ли мой компьютер сломан и я могу, возможно, что-то отключить и вновь подключить его, чтобы исправить проблему.

+29
user253626 27 нояб. 2019 г., 23:57:27

Показать вопросы с тегом