Виртуальный последовательный порт между контейнеров Docker

Я могу создать два виртуальных последовательных портов в Linux с сокат, и представь, что один конец последовательного устройства, а другой код, который использует устройство. В сокат команда будет выглядеть:

сокат -д -д-Пти,сырье,Эхо=1 Пти,сырье,Эхо=0

И это создает два порта в системе, например, на/dev/ПЦ/3 и с/dev/оч/4.

Теперь я хочу пойти на один шаг дальше, и у двух контейнеров Docker, представляющие системы: один контейнер притворяясь серийного устройства, а другой контейнер, код с использованием этого устройства. Цель состоит в том, что когда в производстве, я могу удалить виртуальное устройство контейнера и просто использовать реальный датчик.

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

Можно ли добиться точно такое же поведение (виртуальный последовательный порт) с помощью именованных каналов вместо Пти? Тогда я мог бы поделиться в файл (скажем, "/главная/пользователя/папки/my_pipe") между контейнерами (на самом деле я бы горы "/главная/пользователя/папка" на обоих, и как бы потом открыть my_pipe).

Или есть другой, лучший способ сделать все, что с Docker?

+857
kimberly curbelo 20 сент. 2010 г., 10:59:05
38 ответов

Это означает, что даты, записанные за последние проверить, что файловая система в ближайшем будущем (49710 дней это почти 232 секунд, так что, похоже, 32-разрядное число будет интерпретироваться как ungisned).

Похоже, у вас есть часы вопросы. Это может быть ваша батарея БИОС дохлая. Что касается программного обеспечения, сравните hwclock и дата выхода. Вы, возможно, потребуется установить аппаратные часы (с помощью hwclock инструмента например), но сначала проверьте батареи и замените их при необходимости.

Редактировать: этот вопрос выглядит хорошо известны. Google для "49710 дней" "проверить принудительно" - раскрывается одной, как этот, или этот , которые четко указывают на связь с системных часов. Решение может быть как простой, как установка аппаратные часы в UTC (как предложено во второй ссылке), если аккумуляторная батарея исправна.

+963
Anubissimo 03 февр. '09 в 4:24

Фотография почтового хранилища для виртуальных пользователей. Прибытие почты осуществляется постфикс (создание новых файлов); доступ к почте осуществляется курьером по протоколу IMAP (перемещение файлов, удаление файлов, создание электронной почты); и периодически делали резервные копии принимаются (чтение файлов ничего не меняя). Очевидно, что это будет все работать, если каждый процесс работает с правами root; не менее очевидно, что они не должны все работать как root.

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

Есть ли способ, чтобы сказать Postfix и Courier В создать файлы, как резервное копирование пользователей:постфикс с разрешения 0464/0575? Я на Debian GNU/Линукс, если это делает никакой разницы.

+926
user71140 23 окт. 2014 г., 00:02:58
Другие ответы

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


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

В командной оболочке, как

Путь=~/bin: белый/опт/texbin:/usr/местные/Бен:/usr/Бен:/ОГРН:/usr/местные/игры: каталог/usr/игры

Тильда расширяется в свой домашний каталог, когда командная оболочка выполняется. Таким образом, полученное значение путь - это что-то вроде /главная/theconjuring/ОГРН:/опт/texbin:/usr/местные/Бен:/usr/Бен:/ОГРН:/usr/местные/игры: каталог/usr/игры.

Убедитесь, что Тильда не в кавычках ( путь="~/ОГРН:..." ), в противном случае он выступает за себя. Чтобы добавить каталог к текущему значению пути, вы можете использовать

Путь=~/бин:$путь

В общем, в оболочках других, чем ЗШ, $путь вне двойных кавычек перерывы, когда значение содержит пробелы или другие специальные символы, но в назначении, что это безопасно. С экспорта, однако, вы должны написать экспортировать переменную PATH=~/bin: белый"путь" (хотя вам не нужно экспортировать с путь уже в среде). В ЗШ, вам не нужны двойные кавычки, за исключением случая, когда переменная может быть пустой, но если поставить путь в .профиль, обрабатывается /Бен/ш или /БИН/Баш.

Если вы устанавливаете путь в ~/.pam_environment, однако, вы не можете использовать ~ или $домой , чтобы стоять на вашем домашнем каталоге. Этот файл не парсится снаряд, это простой список имя=значение строки. Поэтому вам нужно прописать пути в полном объеме.

+915
Arkanum 11 мая 2014 г., 07:58:58

У меня есть консольная программа, которая постоянно генерирует выход на оболочке.

Я хотел бы быть в состоянии перенести выходной на другой хост Unix, для которой я знаю IP, имя пользователя и пароль.

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

Есть ли способ сделать это из командной строки?

+902
thenandnow 19 нояб. 2017 г., 21:06:41

Что я рекомендую делать в основном описанные в данном Убунту задать вопрос.

В данном конкретном случае я бы установить suPHP, который в короткие позволяет выполнять PHP-скрипты, как вашего пользователя под Apache.

Следующим образом:

судо Чаун -Р вашего:вашего каталога /var/www и
найти в /var/www и/ -тип D -Exec и команду chmod 0755 {} \;
найти в /var/www и/ -тип F -exec для выполнения команды chmod 0644 {} \;

Установите suphp-общие и пакета libapache2-mod-в suphp от этого ППА (что ППД и как их использовать?)

Отключить mod_php5 и включить mod_suphp

команду sudo a2enmod suphp
команду sudo a2dismod рнр5

Обновите свой виртуальный хост, чтобы включить эту строку в нижней части их:

suPHP_UserGroup вашего вашего

Замена вашего пользователя вы используете для редактирования файлов на сервере. Перезапустите Apache.

С этого момента Apache будет выполнять все PHP скрипты пользователя, что означает, что они могут принадлежать пользователя/группы и нет необходимости в использовании сумасшедших разрешений, как 777. С тех пор все работает как пользователя все файлы, созданные в PHP-скриптах будет принадлежать пользователю, как хорошо! Есть много других интересных вещей вы можете сделать с suPHP, однако, судя по всему это все, что вам нужно, чтобы начать.

+886
toggeli 24 дек. 2019 г., 02:49:56

В командной строке, прежде чем запустить в QEMU, запустить "будут действовать до его закрытия интр ^]", чтобы изменить ключ прерывания от ^C до клавиши Ctrl-]

Этак, клавиши Ctrl-C может быть передан через с QEMU, но вы все еще можете прервать себя в QEMU, нажав CTRL-]

+880
isse rasheed 17 янв. 2010 г., 15:22:49

Когда я попробовать

трассированием пинг google.com

или

трассированием общ. 

или

даже трассированием скручиваемость <домен>

Первые два systemcalls всегда,

для execve("/usr/Бен/завиток", ["завиток", "google.com"], 0x7ffecf1bc378 /* 61 Варс */) = 0
БРК(нулевое) = 0x55f553c49000

Может кто-то пожалуйста, скажите мне, если execve всегда будет первым systemcall, когда я что-нибудь исполнить?

Я читал эту страницу руководства, https://linux.die.net/man/2/execve Но не понимаю, если для execve действительно системный вызов или исполняемую программу?

+838
Hristo Mohamed 14 мар. 2017 г., 23:27:57

С ЗШ:

принт-р -- "${(е)$(<отчеты/my_report.в SQL)}"

С любой Бурн-как раковина (в том числе ЗШ):

ивала "кошка << ВФ
$(отчеты кошка/my_report.в SQL)
ВФ"

Как будет расширяться все `...`, $(...), $((...)), $[...], $ХХХ и ${ХХХ}. Так что вам нужно, чтобы избежать и символы Апостроф доллар вы не хотите, чтобы расширить.

Кроме того, для второй, содержимое файла не должно содержать строку, состоящую из трех персонажей ВФ (который в SQL не должно быть проблемой).

В качестве альтернативы, вы могли бы сделать:

Перл -ЧП 'с/\${(к примеру\W+)}/$пер{$1}/г' отчеты/my_report.в SQL

Вам потребуется экспортировать переменные, для языка Perl , чтобы быть осведомлены о них.

Почему ваше решение не работает, и не где-нибудь рядом работает, можно запустить после набор -х , чтобы увидеть, что происходит:

$ Эхо "выберите ${sql_year} как год" | СЭД -э "ы/\(\${[а-Яа-Z_]*}\)/`ивал "Эхо '\1'"`/"
+ Эхо 'выберите 2013 год'
++ ивала " Эхо " \"\1'\"'
+++ Эхо '\1'
+ СЭД -е 'е/\(${[а-Яа-Z_]*}\)/\1/'
Как выбрать 2013 год

С помощью двойных кавычек, Shell расширяет переменных и подстановка команд перед вызовом эхо и СЭД. Так, вы действительно бегали:

Эхо 'выберите 2013 года' | СЭД -е 'е/\(${[а-Яа-Z_]*}\)/\1/'

СЭД не может выполнить код. Так что даже если вы использовали одинарные кавычки, СЭД не расширили `...`.

+827
Vadim Brainer 22 июн. 2019 г., 17:35:02

Я думаю, что это может быть менее вопрос о самой ОС и больше вопрос о файловой системе. Например, файловая система NTFS поддерживает пользователей и разрешения, в то время как файловая система FAT32 не (который является, почему ваши файлы не очень безопасно на складе флэш-накопитель).

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

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

+802
bortran 22 апр. 2011 г., 12:37:13

Я использую следующий код, как часть гораздо большего сценария:

в mysql -u в корень -П << по MySQL
 создать пользователя '${домен}'@'localhost в идентифицируемая как '${домен}';
 создать базу данных ${домен};
 ВСЕ ПРИВИЛЕГИИ НА ${ДОМЕН}.* В ${домен}@localhost;для
В MySQL

Как вы можете видеть, что это создает авторизованным, allprivileged пользователя БД и инстанс БД с тем же значением (пароль также будут одинаковыми).

Пользователя БД ====> ${домен}.
Пароль пользователя БД ====> ${домен}.
Инстанс БД ====> ${домен}.

Это проблематично, потому что мне нужен пароль, чтобы быть разными. Конечно, я мог изменить пароль вручную из `${домен} после того, как весь скрипт будет готово, чтобы быть выполнены, но это не то, что я хочу:

Я хочу ввести/вставить пароль непосредственно на выполнение, в интерактивном режиме.

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

Я уже попробовал следующий код, который не удалось:

в mysql -u в корень -П << по MySQL
 создать пользователя '${домен}'@'localhost в определенных -п;
 создать базу данных ${домен};
 ВСЕ ПРИВИЛЕГИИ НА ${ДОМЕН}.* В ${домен}@localhost;для
В MySQL

Что такое правильный способ, чтобы иметь возможность вставить пароль в интерактивном режиме путем ввода/вставки непосредственно в выполнения скрипта (вместо того, чтобы изменять его вручную после выполнения скрипта)?

+746
oubox 31 дек. 2019 г., 17:09:35

Это извлечет файлы из ошибки/предупреждения exiftool и создать реплику дерево каталогов в папке `необработанные' с только те файлы. Не пытайтесь просто переносить их в отдельный каталог, чтобы избежать риска перезаписи файлов с одинаковыми именами, но разными Дирс источник.

exiftool ... 2>&1 | Tee с exiftool.вход | для egrep '^(ошибка|предупреждение)' | \
 ошибка СЭД 'с/^: . * уже существует //;с/предупреждение^: . * - //' | \
 в то время как ИФ= читайте -Р ИМГ; делать
 в rsync-ВР -- "$ИМГ" необработанная/
 #РМ -в - "$ИМГ"
сделано

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

Редактировать: в РМ часть закомментирована причинить вам лучше попробовать это во-первых.

+728
Leila Tome Grace 21 февр. 2014 г., 17:29:37

В настоящее время приложение-волок/команда eix пакет предоставляет удобный инструмент под названием Команда eix-тест-устарело. Краткое описание от версии eix-тест-устарело -ч:

Использование: команда eix-тест-устаревшие [опции] подробно|кратко|быстрая
 Это сценарий для eix (eix по 0.33.5).

Он называет команда eix-ТТК несколько раз с различными опциями для того, чтобы
дисплей недостающие пакеты или пакеты с устаревших записей в
пакет в /etc/волок/.* в более организованном порядке, чем команда eix -туц бы делать в одиночку.

Это дает довольно хороший обзор всех лишних записей в файле/etc/волок/пакет.* файлов. Единственное, чего мне лично не хватает, так это информация о файле и строке определения избыточных демаскировать/использования/принять/что угодно. Однако, грэп -НР помогает в этом случае.

$ команда eix-тест-устарел -с
Нет несовпадающих записей в каталог /etc/волок/.ключевые слова
Нет несовпадающих записей в каталог /etc/волок/.редактирования переменной accept_keywords
Нет несовпадающих записей в каталог /etc/волок/.маска
Нет несовпадающих записей в каталог /etc/волок/.демаскировать
Нет несовпадающих или пустые записи в каталог /etc/волок/.использовать
Нет несовпадающих или пустые записи в каталог /etc/волок/.ОКР
Нет несовпадающих или пустые записи в каталог /etc/волок/.лицензия
Нет несовпадающих или пустые записи в каталог /etc/волок/.accept_restrict
Нет несовпадающих или пустые записи в каталог /etc/волок/.с CFLAGS
Имена все установленные пакеты находятся в базе данных.

Пакет избыточных в /etc/волок/.{,accept_}ключевые слова:

... рассматривать как REDUNDANT_IF_NO_CHANGE
[Я] приложение-доступность/по-spi2-основной (2.26.2(2)@11/30/2018): Д-автобусной доступности спецификации и регистрации демон
[Я] приложение-эмулятор/рунк ([email protected]/29/2018): рунк контейнер CLI инструменты
[Н] приложение-эмулятор/вино-постановка ((~)3.21(3.21)): свободная реализация Windows(ТМ) на Unix, с вином-промежуточный набор патчей
[Я] Сыс-процесс/Тини ([email protected]/29/2018): небольшой, но допустимый инициализации для контейнеры
[1] "иди-оверлей" в /var/дБ/РЕПО/переход-наложение

Найдено 4 совпадений


Не установлен, но в /etc/волок/пакет.{,accept_}ключевые слова:
[Н] приложение-эмулятор/вино-постановка ((~)3.21(3.21)): свободная реализация Windows(ТМ) на Unix, с вином-промежуточный набор патчей

Никаких лишних записей в каталог /etc/волок/.маска
Не удалены записи в каталог /etc/волок/.маска
Никаких лишних записей в каталог /etc/волок/.демаскировать
Не удалены записи в каталог /etc/волок/.демаскировать
Пропуск проверить: лишние записи в /etc пакет/волок/.использовать
Вприпрыжку проверить: удалили записи в /etc пакет/волок/.использовать
Пропуск проверить: лишние записи в /etc пакет/волок/.ОКР
Вприпрыжку проверить: удалили записи в /etc пакет/волок/.ОКР
Никаких лишних записей в каталог /etc/волок/.лицензия
Не удалены записи в каталог /etc/волок/.лицензия
Никаких лишних записей в каталог /etc/волок/.accept_restrict
Не удалены записи в каталог /etc/волок/.accept_restrict
Пропуск проверить: лишние записи в /etc пакет/волок/.с CFLAGS
Вприпрыжку проверить: удалили записи в /etc пакет/волок/.с CFLAGS

Установленные пакеты с версии нет в базе данных (или в маске):
[U] и веб-клиента/браузера Firefox ([email protected]/01/2018 -> 60.4.0^д): Firefox веб-браузер
+695
Aphani 29 мая 2012 г., 23:54:35

Используя GNU СЕПГ

Это, кажется, закомментируйте строки, которые вы хотите:

СЭД -з с|HS55_LH_OPTALL_GND_Z[^;]*;|/*&*/|г' Азбука

Например:

$ СЭД -з с|HS55_LH_OPTALL_GND_Z[^;]*;|/*&*/|г' Азбука
util_minor_rev_id модуль(minor_rev);
 выход [3:0] minor_rev;
 провода [3:0] minor_rev;
 провода n_15, n_16, n_17, n_18, n_19, n_20, n_21, n_22;
 /*HS55_LH_OPTALL_GND_Z opt_plug_minor_rev_id0(.А (1'b1), .З
(minor_rev[0]));*/
 /*HS55_LH_OPTALL_GND_Z opt_plug_minor_rev_id1(.А (1'b1), .З
(minor_rev[1]));*/
АБВ
/*HS55_LH_OPTALL_GND_Z opt_plug_minor_rev_id2(.А (1'b1), .З
(minor_rev[2]));*/
 /*HS55_LH_OPTALL_GND_Z opt_plug_minor_rev_id3(.А (1'b1), .З
(minor_rev[3]));*/
endmodule

К вариант (ГНУ только) говорит sed, чтобы прочитать файл в не на время, но пока он не обнаружит нулевой символ. Поскольку разумный текстовые файлы не имеют нулевой символ, это имеет эффект читать весь файл сразу.

Выше использует один подставить команду поставить /* и */ вокруг линии интереса.

Чтобы изменить файл на месте:

СЕПГ -я.бак-з с|HS55_LH_OPTALL_GND_Z[^;]*;|/*&*/|г' Азбука

С помощью других СЭД

Для BSD/OSX или других СЭД:

е/HS55_LH_OPTALL_GND_Z/{:а; /;/{ББ}; н; Ба; :б; с|Ч|/ч|; с|;|;*/|;}' Азбука

Например:

$ е/HS55_LH_OPTALL_GND_Z/{:а; /;/{ББ}; н; Ба; :б; с|Ч|/ч|; с|;|;*/|;}' Азбука
util_minor_rev_id модуль(minor_rev);
 выход [3:0] minor_rev;
 провода [3:0] minor_rev;
 провода n_15, n_16, n_17, n_18, n_19, n_20, n_21, n_22;
 /*HS55_LH_OPTALL_GND_Z opt_plug_minor_rev_id0(.А (1'b1), .З
(minor_rev[0]));*/
 /*HS55_LH_OPTALL_GND_Z opt_plug_minor_rev_id1(.А (1'b1), .З
(minor_rev[1]));*/
АБВ
/*HS55_LH_OPTALL_GND_Z opt_plug_minor_rev_id2(.А (1'b1), .З
(minor_rev[2]));*/
 /*HS55_LH_OPTALL_GND_Z opt_plug_minor_rev_id3(.А (1'b1), .З
(minor_rev[3]));*/
endmodule

Чтобы изменить файл на месте:

СЕПГ -я.бак '/HS55_LH_OPTALL_GND_Z/{:а; /;/{ББ}; н; Ба; :б; с|Ч|/ч|; с|;|;*/|;}' Азбука

Ограничение: поскольку ни одна из этих команд sed парсим файл, там могут быть ситуации, когда они делают неправильные вещи.

Как это работает

  • /HS55_LH_OPTALL_GND_Z/{...}

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

  • Это определяет метку на.

  • /;/{ББ}

    Если шаблон пространства в настоящее время содержится ;, тут ветка для этикеток б.

  • Н

    Читайте в следующей строке из файла и сохранить его в шаблон пространство.

  • ба

    Филиал на этикетке есть.

  • Это определяет метку б.

  • з|ч|/ч|; с|;|;*/|;

    Если мы подойдем к этому, что означает, что структура пространства начинается со строки, содержащей HS55_LH_OPTALL_GND_Z и заканчивается строкой, содержащей ;. Для этого шаблона, мы ставим /* перед первым ч и */ после первого ;.

+666
mSO 23 февр. 2014 г., 15:07:18

Если команду lsusb не видит его, я не думаю, что это проблема в udev. Я думаю, что в Ubuntu просто не видит его на самом низком уровне USB для рукопожатия. Это обычно означает аппаратная проблема. Поскольку вы проверили кабель и порт, а так как он работает только в Windows, но я бы предположил проблему питания. Попробуйте использовать USB хаб между радио и узлов.

+646
ch48h2o 13 янв. 2020 г., 15:25:56

По моему сценарию я должен читать данные из файла.

Например у меня есть 2 файла: один-это текстовый файл, второй CSV-файл с 10 столбцов.

То, что я пытаюсь сделать, это прочитать CSV и изменение параметров в первом файле.

  1. Используя СЭД -н для считывания данных по одной строке за раз и сохранить это в фрлец
  2. Используя СЭД "ы/&replacefile1param/&readFileC/г"

Что у меня есть проблема, чтобы прочитать кота в readFileC в качестве параметра во втором шаге. Как я могу это сделать?

Первый файл-это файл сценария с 2 параметрами внутри. Второй файл-это CSV-файл с 200 строк 6 столбцов.

Мне нужно изменить файл шаблона, прочитав столбцы из CSV и замены параметров. Результат нужно 200 file1 и каждый результат должен быть сохранен в месте, указанном в 4-й столбец CSV-файла, а также.

Пример файла шаблона

Имя =имя_скрипта

В staments иди сюда

название работы = имя_задания

выход

Образец данных CSV

имя_скрипта,имя задания,дата,местоположение,обновленный,ОКР
противник,filetest,2001-01-01,/san00/проектов,тест
kkkkk2,filetest2,2001-01-01, проект/san00/, тест
kkkkk3,filetest3,2001-01-01,/san00/проект2,реальные

Мне нужно заменить параметры в шаблоне файл со значениями, взятыми из CSV и сохраните файл в /san00 расположение от 4-й столбец CSV-файла.

Желаемый результат

Имя скрипта гад.

В staments иди сюда

название работы = filetest

выход

Это должно быть сохранено в san00/проекта.

+607
Players Stop 18 сент. 2017 г., 12:23:35

Нет, нельзя, так как Абиразличаются. В некоторых вариантах BSD есть бинарная совместимость с Linux-программы, с некоторыми оговорками (включение виртуального режима 8086 - это общая проблема). Часто можно однако необходимо пропатчить источник, как многие бинарники будут делать предположения об их среда, основанная на том, что источник разработан для Linux. Насколько мне известно, нет в BSD-двоичной совместимости в ядре Linux в это время.

Андрей Соколов работает над созданием Линукс бинарных поддержку на изначально в Solaris использовалась файловая без зоны, но, насколько мне известно, нет в BSD-бинарная совместимость на изначально в Solaris использовалась файловая, что в настоящее время не планируется.

+576
obaidallah ali 20 мая 2016 г., 01:52:31
Пользователь@ноутбука:~/foo в/ноутбука$ судо /usr/Бен/mplayer в /Главная/пользователя/фу/Блокнот/что-то.МР3
[суда] пароль для пользователя: 
Пользователь@ноутбука:~/foo в/ноутбука$ 

Пользователей все=(все) NOPASSWD: /usr/Бен/mplayer в /Главная/пользователя/фу/Блокнот/что-то.МР3

Вопрос: команда sudo не спрашивать пароль. Теперь он спрашивает.. Почему? Пакет sudo и файлами sudoers не обновлялся, фрд пользователя не истек.

Воспроизведения MP3 через SSH и sudo нужно, потому что он не играет звук без него, странно..

Я использую Ubuntu 12.04.

+533
badgids 2 янв. 2020 г., 03:40:28

Я думаю, что я нашел решение !

Я использую скрипт, который обнаруживает больше твердотельный накопитель (жесткий диск) и большой жесткий диск (мой USB ключ), то я использую переменные для обозначения целевой установки и источника установки с
загрузчик --загрузочный диск=$BIGGER_SSD
жесткий диск --раздел=${BIGGER_HDD}1 --реж=/

+504
personal practice 22 нояб. 2018 г., 13:32:03

Почему бы не использовать Vim?

Откройте все файлы в Vim

ВИМ $(найти . -тип F)

Или открыть только соответствующие файлы (как предложил Калеб)

ВИМ $(команда grep 'от' . -РЛ)

И не запустите заменить во всех буферов

:bufdo %с/С/с/gс | обновление

Вы также можете сделать это с помощью sed, сед, но мои знания ограничены.

+492
foxter 3 мая 2016 г., 22:05:18

В моем модуле кода, я хочу создать поток, который не вилка от kthreadd, потому что kthreadd будет флаг clone_fs от init, то ПС инит был из chroot, так что это не хорошо для меня, я просто хочу создать чистую нить. Затем найдите этот API "kernel_thread", но если я называю "kernel_thread", ничего не печатать информацию в дочерний процесс. что случилось с моим код? или, как использовать "kernel_thread"? или не используйте в код модуля? Спасибо большое!

+484
GoAwayNow 20 мая 2013 г., 01:09:54

У меня есть Java-приложение, которое запускается автоматически при безголовый машина (сервер Ubuntu 14.04) загружается и работает как пользователь. При завершении приложения оно мне нужно выполнить скрипт для выключения, потому что внешний выключатель были брошены, который будет отрезать питания.

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

Мои попытки написать сценарий все выльется в запрос пароля супер-пользователя. Я могу согласиться с паролем присутствовать в тексте в сценарии как машина изолирована от интернета.

Я не эксперт в bash или Linux.

разрешения скрипта:

$ LS-Ла-выключение
-rwsr-XR-х 1 корень 209 18 марта 16:55 отключение
+466
kadashi 9 мая 2018 г., 19:01:21

У меня есть CSV-файл, который был экспортирован в двойные кавычки вокруг каждого заголовка и значение, и мне нужно, чтобы они ушли, но без удаления двойных кавычек, которые могут фактически существовать в качестве значений. Например:

"HEADER1","HEADER2","HEADER3","HEADER4","HEADER5"
"SOME_ID_0X0","SOME_ID_1X2","ложь","некоторые Blob значение с "двойные кавычки" внутри"
"SOME_ID_0X0","SOME_ID_1X2","ложь","некоторые Blob значение с "двойные кавычки" внутри"
"SOME_ID_0X0","SOME_ID_1X2","ложь","некоторые Blob значение с "двойные кавычки" внутри"

Я могу удалить первый " из каждой строки со следующим

$ СЕПГ -я.бак с/^"//г' $1

И я могу удалить все между этим:

$ СЕПГ -я.бак 'ы/","/,/г' $1

И, наконец, я думал, я мог бы удалить последний " в каждую строку с этой:

$ СЕПГ -я.бак с/"$//г' $1

Но это не работает. Я мог бы выполнить всю эту задачу в одну строку?

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

enter image description here

Похоже, некоторые замечания могут быть точным, но я не знаю, что это означает, что мне нужно еще изменить. Также есть чистый способ проверить, если файл CSV имеет эти цитаты, прежде чем пытаться удалить их? Возможно, даже просто говорится о том, что первый символ-это цитата?

+445
Kasim Husaini 10 окт. 2016 г., 21:48:08

Ответ

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

Исследования Указывают

Этот список не является исчерпывающим, но он поможет вам начать, как вы ищете хорошее решение для защиты данных в пути.

  • Протокол SSL
  • ТЛС
  • Протокол IPSec
  • Прокси СШ носки
+436
tshlns 21 янв. 2014 г., 11:32:08

Я новичок в Linux, Ubuntu и Lubuntu, которая может быть легко исправить.

Сегодня я установил Lubuntu, которая 18.04 и вдруг после перезагрузки lxterminal не запустить через контрол-альт-т больше'. Он все еще отлично работает после запуска через Run или меню. Ярлык просто больше не работает.

Я думаю, что он сломался, потому что я был возиться в 'приложений по умолчанию в lxsession'. Я поменял около некоторые программы по умолчанию, такие как VLC. Я не думаю, что я изменил 'запустить приложение Диспетчер терминала, но даже если и так, я уверен, я сбросить его с тем, что было раньше (lxterminal &) и он по-прежнему не работает. Любая помощь будет высоко оценили.enter image description here

+389
Alex Parenti 1 февр. 2012 г., 13:47:08

Стив С. Джонсона 2013 счет этого, как пользователей, где пользователи жалуются на него: и — ЛО! — проблема устранена через два дня. Но Дуглас Макилрой рассказал сказку немного по-другому четверть века раньше.

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

Кроме того, Макилрой, конечно, работаю над идеей трубопроводов в Unix для ярмарки пока, на данный момент, в том числе ряд предложений, за период не менее 2 лет; изобрел сад шланг метафора полтора десятилетия раньше. Концепция отдельного потока отличается от потока трубопровода не появляются чудесным образом из ничего всего за пару дней.

Дальнейшее чтение

+372
threed 26 апр. 2018 г., 20:41:43

Если команда завершается без разрешения отказано ошибка, значит у тебя с правами администратора, когда вы запускали его, и он пошевелился каталог ФОО в каталог /foo2, который не foo2 в текущем каталоге, но foo2 в корневом каталоге (/).

Вы хотите сделать

МВ /foo2 foo2 

в каталоге, где выдается исходная команда.

+297
emendelson 17 авг. 2017 г., 01:31:07

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

Мой вывод команды udevadm инфо-а-п /системы/класса/ЦУП/карточки1-ВГА-2:

 глядя на устройство '/устройств/pci0000:00/0000:00:02.0/DRM с/карточки1/карточки1-ВГА-2':
Ядра=="карточки1-ВГА-2"
Подсистемы=="ЦУП"
Драйвера==""
М{данные EDID}==""
М{технологии DPMS}=="о"
Привлекательность{включено}=="включено"
М{статус}=="подключен"

 глядя на родительское устройство '/устройств/pci0000:00/0000:00:02.0/DRM с/карточки1':
Ядер=="карточки1"
Подсистемы=="ЦУП"
Драйверы==""
У attrs{gt_RP1_freq_mhz}=="650"
У attrs{gt_min_freq_mhz}=="650"
У attrs{gt_RPn_freq_mhz}=="650"
У attrs{gt_RP0_freq_mhz}=="1300"
У attrs{gt_cur_freq_mhz}=="650"
У attrs{gt_max_freq_mhz}=="1300"

 глядя на родительское устройство '/устройств/pci0000:00/0000:00:02.0':
Ядер=="0000:00:02.0"
Подсистемы=="ЧКВ"
Драйверы=="i915"
У attrs{прерывание}=="48"
У attrs{subsystem_vendor}=="0x17aa"
У attrs{broken_parity_status}=="0"
У attrs{класс}=="0x030000"
У attrs{driver_override}=="(нуль)"
У attrs{consistent_dma_mask_bits}=="40"
У attrs{dma_mask_bits}=="40"
ATTRS{local_cpus}=="00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,0000000 f"
У attrs{устройство}=="0x0126"
У attrs{включить}=="1"
У attrs{msi_bus}==""
У attrs{local_cpulist}=="0-3"
У attrs{поставщик}=="0x8086"
У attrs{subsystem_device}=="0x21d3"
У attrs{boot_vga}=="1"
У attrs{numa_node}=="-1"
У attrs{d3cold_allowed}=="1"

глядя на родительское устройство '/устройств/pci0000:00':
Ядер=="pci0000:00"
Подсистемы==""
Драйверы==""

Если мои правила udev следующая:

Ядра=="карточки1", подсистемы=="ЦУП", М{состояние}=="подключено" действий=="изменить", ОКР{дисплей}=":0", ОКР{XAUTHORITY}="/главная/smidla/.Xauthority", запустить+="/home/smidla/test.sh"

ничего не происходит, но если я удалить АТР{статус}=="подключен" , то моя test.sh выполняет, когда я подключать и отключать внешний монитор.
Однако Мне нужны уведомления, если, и только если я подключаю монитор. Я не могу использовать xrandr поближе или чтение /системы/класса/ЦУП/карточки1-ВГА-2/состояние, потому что на моем железе этих операций тормозит система в течение нескольких секунд. Как я могу решить эту проблему?

+291
airbornebfp 29 мая 2013 г., 17:42:45

Использовать на awk:

на awk 'с;/^три$/{х=1} файл' 

или

на awk 'ы;$0=="три"{х=1} файл' 
  • С; будет печатать строку, если переменная х является истинным, что первое время после шаблон/слова был найден ...
  • /^три$/{х=1} будет присвоено переменной с значение true (1) если шаблон/слово не найдено.
+255
Romain Endelin 26 дек. 2017 г., 00:44:10

Как уже упоминалось, команда grep - это не лучший инструмент для этого. Если вы настаиваете на использовании его, и если ваша команда grep поддерживает (только печатать подобранная часть линии) и (использовать Perl совместимые регулярные выражения), можно сделать так:

$ грэп -ОП '^[^:]+|.*:\К[^:]+(?=:[^:]+)' /и т. д./пароль
terdon
/дома/terdon
Боб
/главная/Боб

Обратите внимание, что это будет печатать все пользователи, включая пользователей системы. Я только показать 4 линии, в качестве примера.

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

$ грэп -ОП '^[^:]+|.*:\К[^:]+(?=:[^:]+)' /и т. д/passwd и | Перл -ЧП 'с/\н/ : / если $%.2'
корень : /корень
Бен : /бин
демон : /
адрес: в /var/катушка/почты
на FTP : /СРВ/фтп
на HTTP : /СРВ/НТТР
uuidd : /
ДГУ : /
никто : /
systemd в журнал-шлюз : /
добавлена синхронизация времени : /
systemd в сети : /
systemd в-автобусе-прокси : /
добавлена решать : /
systemd в журнал-загрузки : /
добавлена произойдет : /
systemd в журнал-пульт дистанционного управления : /
terdon : /дома/terdon
система : /
polkitd : /
colord : /ВАР/Либ/colord
rtkit : /прок
ГСД : в /var/lib в/ГСД
ГИТ : /
Боб : /главная/Боб

Объяснение

Регулярное выражение состоит из двух частей, это выглядит для ^[^:]+ Или (вот что значит | означает) .*:\К[^:]+(?=:[^:]+). Первый выполняет поиск одного или больше: символы от начала строки. Это совпадает с именем пользователя. Вторая часть выглядит на столько символов, сколько возможно, пока : (.*:) и затем удаляет их (вот что значит делает), так что они не напечатаны. Затем он сопоставляет строку не: чего следует : и не:. В (?=фу) построение называется позитивным впередсмотрящим и способ сопоставления символов после шаблон без включения этих символов в сам матч.

В языке Perl команда будет заменить символы новой строки С : и пробелы, если текущий номер строки ($.) делится на 2. Так, каждую вторую линию.

+252
Halvard 2 мар. 2011 г., 18:28:21

Я играл вокруг с рыбой оболочки на несколько дней и мне нравится. Для того, чтобы запустить рыбу в терминале с помощью быстрого запуска или в меню, я использую такой скрипт:1

#!/Бен/ш

экспорт консоли=/бин/рыбы
exec в консоли # <- эмулятор терминала для KDE 

Если я запускаю этот скрипт из командной строки, он делает то, что ожидается: запускается консоль , чья оболочка рыбы.

Но работать с КДЕ лаунчер, $снаряд был сброшен, и я получаю /бин/Баш. Более того, если я заменю терминал с терминал (из Xfce), он не работает даже из командной строки; терминал начинается с $раковина сброса. Получается, что:

  • Просто наберите: это терминал сбросит $Шелл ни на что.
  • В KDE терминал не сбросить $Шелл при запуске из командной строки.
  • KDE будет сбросить $Шелл , когда приложение запускается через лаунчер.

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

Обратите внимание, что нет профиля и т. д. файлы в любом месте в системе, установить раковины. Там просто по умолчанию в файле/etc/passwd и. Кроме того, это не просто проблема в KDE (это также происходит через fvwm). Я grepped через KDE и слишком просто наберите: конф каталогах.

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


1. На самом деле это SSCCE , почему это раздражает меня, как для запуска терминала с двумя открытыми вкладками работает МС, т. е. обойти это больше, чем просто вводить рыбу. Это также объясняет, почему я не могу использовать -электронная тип коммутатора к терминалу команду; это то, что начиная с МС, который использует оболочку, основанные на $оболочке.

+239
chipped 13 мар. 2014 г., 03:50:52

Я открыл новый X сессии :1

Я запускаю игру, которая делает свой собственный указатель мыши (то есть низкий FPS), так x курсор скрыт.

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

Обс.: Я использую в JWM, поэтому нет гнома, с Compiz/Unity или KDE в :1

Неудачных Попыток:

  • Дисплей=:1 xsetroot -аргумент cursor_name left_ptr #пытается отобразить указатель мыши или изменить его графика, так что он появляется снова
  • сравнению с XInput набор-опора "для A4Tech USB мышь" "устройство включено" 1 #но мышь уже включена здесь так не получилось... (от чаевых)
+234
Gradys1142 1 мая 2014 г., 15:47:03

У меня есть команда Фу , который выводит список имен:

$ ФОО
файл1.а
файл2.б
файл file3.а

И командной строке , которая принимает имена файлы в качестве аргументов и выполняет некоторую обработку:

$ бар файл1.в файл file3.а
Большим успехом!
$ бар файл2.б
Провал

Я бы хотел совместить с трубой, как ФОО | команды xargs-бар, но мне нужно отфильтровать все имена, которые не заканчиваются . Как я могу это сделать? В идеале я хочу что-то простое я могу воткнуть между двумя командами в трубе, как ФОО | фильтр-линии ".а" | команды xargs-бар.

+224
Brandon McClelland 4 июн. 2016 г., 23:50:28

Есть ли способ, чтобы напечатать весь массив ([ключ]=значение), не перебирая все элементы?

Предположим, я создал массив с элементами:

объявить -массив
массив=([А1]=1 [А2]=2 ... [Б1]=ВВВ ... [f500]=абвгде)

Я могу печатать все время с

для меня в "${!массив[@]}"
делать
Эхо "${я}=${массив[$я]}"
сделано

Однако, похоже, Баш уже знает, как получить все элементы массива в одну "перейти" - оба ключа ${!массив[@]} и значений ${массив[@]}.

Есть ли способ, чтобы сделать Баш распечатать эту информацию без цикла?

Редактировать:
верстал -п массив это!
Однако я не могу удалить префикс и суффикс в одном замещения:

а="$(верстал -п массив)"
б="${a#по#*(}"
с="${б%% )*}"

Есть более точный способ, чтобы получить/распечатать только ключ=значение части вывода?

+172
Zeev Suraski 21 янв. 2011 г., 00:01:54

Вы подчеркнули полезность в ZFS, в которой я полностью согласен. Хотя там, кажется, несколько производных открытых Солярис, о которых сказано выше, вы могли бы рассмотреть выбор современных версиях FreeBSD. Она вобрала в ZFS уже несколько лет. Это хорошо документированные и поддерживаемые операционные системы. Я использую серию 8 уже несколько лет и недавно преобразован одна машина на FreeBSD 9.1. Хотя это не Солярис, вы можете дать ему попробовать. Я волнуюсь, когда проекты исчезают, оставляя бывших разработчиков вскарабкаться.

+112
GavinB 31 окт. 2018 г., 03:17:05

Следующий Баш-фу код прекрасно работает на Linux, но перерывы на macOS:

файлы="Foo бар"

Эхо прог 1
для файла в файлы $
делать
 файлов Echo $ | тройник -это tempfile.txt
сделано

рода -у tempfile.txt

Эхо прог 2
фокус функция {
 для файла в файлы $
делать
 файлов Echo $ | т-на $1
сделано
}

трюк >(вроде -у)

Ошибка:

Прог 1
фу
бар
бар
фу
Прог 2
тройник в /dev/ФД/63: плохой дескриптор файла 
фу
тройник в /dev/ФД/63: плохой дескриптор файла 
бар

На Linux прог 2 пишет аналогии с прог-1 без ошибок. На macOS кажется, что труба ручка либо закрыты, либо не наследуется.

Выше-это уменьшенный образец для воспроизведения проблемы. В реальности я оба выходных галстук и перенаправлены тяжело справиться. Что-то в духе

фокус функция {
 для файла в файлы $
делать
 файлов Echo $ | т-на 1 $ | грэп -Ор "^.."
сделано
}

трюк >(вроде -У | Е С|О|х|г')

Код не работает в bash 4.1, но работает в bash 4.4 в нескольких дистрибутивов (арки, Ubuntu и Debian)

+97
Ibe 28 мая 2013 г., 13:19:49

Жесткие диски имеют встроенную таблицу разделов на MBR-диск. Благодаря структуре этой таблицы диск ограничивается четырьмя разделами. Это так называемые первичные разделы.

Вы можете иметь несколько разделов путем создания виртуальной ( называемых логических ) разделов на одном из четырех первичных разделов. Есть ограничение в 24 логических разделов.

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

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

Вы должны быть в состоянии установить любую ОС на все разделы.

Видеть эту страницу для более подробной информации

В текущем архитектуры ІВМ есть таблица разделов в мастер запись диска загрузиться (раздел жесткий дирв, который содержит команды, необходимые для запуска операционной системы), или MBR, что списки информация о разделах жесткий диск. Эту таблицу разделов затем дополнительно разделены на 4 раздела записи таблицы, с каждой записи соответствующий раздел. Из-за это возможно только четыре разделы. Эти 4 секции как правило, известные как основные разделы. Чтобы преодолеть это ограничение, система разработчики решили добавить новый тип раздел называется расширенной раздел. Путем замены одного из четыре основных раздела с расширенного раздела, то вы можете сделать дополнительный 24 логических разделов в рамках расширенного одна.

+81
Rammurti Rawat 26 нояб. 2019 г., 22:53:29

В общем, скрипты не могут выполняться без "Р" разрешение, даже если вы являетесь владельцем файла

$ ЛС -л-ТСТ
---Х--Х--Х 1 sweh sweh 24 4 мая 21:22 ТСТ*

$ ./ТСТ
/бин/Баш: ./ТСТ: разрешение отклонено

$ судо кот ТСТ
#!/бин/Баш

Эхо привет

С вашего отредактированы вопрос.

На #! часть программы интерпретируется ядром в рамках метод exec() системный вызов. Так что для такого сценария не должен быть читаемым.

Эффективно то, что происходит, в моем примере, заключается в том, что ядра преобразует мой ./ТСТ в /бин/Баш ./ТСТ звонок.

Это преобразование объясняет, почему скрипты нужно иметь Р доступ должен быть обработан, но ядро просто должен х определить переводчика, который будет использоваться.

+57
Theo Scholiadis 14 апр. 2017 г., 05:19:15
+28
Eric Miller 15 мар. 2018 г., 08:04:59

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

$200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil $200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil blue chew viagra scam buy viagra buy viagra online buy viagra online canada pharmacy buy viagra online without script canada pharmacy viagra generic canadian pharcharmy online viagra canadian viagra canadian viagra without a doctor prescription cheap viagra cialis vs viagra cost of viagra female viagra female viagra pills free viagra free viagra samples generic viagra generic viagra 100mg generic viagra available generic viagra canada price generic viagra online pharmacy generic viagra sildenafil citrate generic viagra without a doctor prescription herbal viagra how does viagra work how long does viagra last how much does viagra cost how to take viagra for maximum effect i took viagra mom levitra vs viagra mom gives son viagra natural viagra natural viagra alternatives that work natural viagra substitute nizagara 100 mg vs viagra online viagra online viagra without subscription over the counter viagra real life viagra demonstration revatio vs viagra side effects of viagra sildenafil sildenafil 100mg sildenafil 20 mg sildenafil 20 mg tablet sildenafil 20 mg tablet vs viagra sildenafil citrate sildenafil citrate 100mg sildenafil citrate 20 mg sildenafil coupons sildenafil dosage sildenafil dosage recommendations sildenafil generic sildenafil side effects sophia viagra sophia viagra bikini sophia viagra hot stendra vs viagra stepmom gives son viagra viagra viagra 100mg viagra before after photo actual viagra boner viagra canada online pharmacy viagra coupon viagra coupons viagra coupons from pfizer viagra dosage viagra dosage recommendations viagra erection viagra erection after ejaculation viagra for men viagra for sale viagra for sale on amazon viagra for women viagra generic viagra generic availability viagra generic release date viagra in action viagra on line viagra online viagra online canada pharmacy viagra online pharmacy viagra patent expiration viagra pill viagra pills viagra porn viagra prank viagra prices viagra samples viagra sex viagra side effects viagra substitute viagra vs cialis viagra without a doctor prescription viagra without doctor prescription what is viagra when will generic viagra be available blue chew viagra scam buy viagra buy viagra online buy viagra online canada pharmacy buy viagra online without script canada pharmacy viagra generic canadian pharcharmy online viagra canadian viagra canadian viagra without a doctor prescription cheap viagra cialis vs viagra cost of viagra female viagra female viagra pills free viagra free viagra samples generic viagra generic viagra 100mg generic viagra available generic viagra canada price generic viagra online pharmacy generic viagra sildenafil citrate generic viagra without a doctor prescription herbal viagra how does viagra work how long does viagra last how much does viagra cost how to take viagra for maximum effect i took viagra mom levitra vs viagra mom gives son viagra natural viagra natural viagra alternatives that work natural viagra substitute nizagara 100 mg vs viagra online viagra online viagra without subscription over the counter viagra real life viagra demonstration revatio vs viagra side effects of viagra sildenafil sildenafil 100mg sildenafil 20 mg sildenafil 20 mg tablet sildenafil 20 mg tablet vs viagra sildenafil citrate sildenafil citrate 100mg sildenafil citrate 20 mg sildenafil coupons sildenafil dosage sildenafil dosage recommendations sildenafil generic sildenafil side effects sophia viagra sophia viagra bikini sophia viagra hot stendra vs viagra stepmom gives son viagra viagra viagra 100mg viagra before after photo actual viagra boner viagra canada online pharmacy viagra coupon viagra coupons viagra coupons from pfizer viagra dosage viagra dosage recommendations viagra erection viagra erection after ejaculation viagra for men viagra for sale viagra for sale on amazon viagra for women viagra generic viagra generic availability viagra generic release date viagra in action viagra on line viagra online viagra online canada pharmacy viagra online pharmacy viagra patent expiration viagra pill viagra pills viagra porn viagra prank viagra prices viagra samples viagra sex viagra side effects viagra substitute viagra vs cialis viagra without a doctor prescription viagra without doctor prescription what is viagra when will generic viagra be available $200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil