Используя сочетание клавиш Ctrl+B в менее в tmux

Я использую сочетание клавиш Ctrl+Б команда префикс в tmux, однако это идет в разрез с сочетание клавиш Ctrl+Б в Меньше, которая используется для прокрутки вверх файл.

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

+26
programmer1 27 окт. 2018 г., 09:39:56
35 ответов

Вы можете добавить функцию _BQC в ДСДТ переопределить;

Способ (_BQC, 0, NotSerialized) // _BQC: яркость запрос
{
 Возвращение (0x1E)
}
+987
Kayce Basques 03 февр. '09 в 4:24

У меня есть файл, который периодически пишет программы на Java.
Если он переписан с точно таким же содержанием, модификации файлов изменение времени?
Кажется, что это не так; что меня удивило - я не думаю, что все проверки старый контент с новым содержанием.

Упс, понял, что если контент не изменился, Java-программа не пишет в файл. Мое плохое. Но хорошо, чтобы получить окончательный ответ.



+963
Hima KJ 5 мая 2019 г., 18:49:21
Другие ответы

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


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

Это ошибка: https://bugs.freedesktop.org/show_bug.cgi?id=54247

Единственное решение на данный момент, является использование тихой параметр в ядре линии.

+936
Thamaraiselvam 3 февр. 2017 г., 21:10:22

Вы усложнять вещи. Тот факт, что команда

судо смонтировать /dev/sda1, поскольку в каталог /mnt/hdd_moc

работает корректно показывает вам, что ваша система имеет возможность монтирования файловая система ext4 без конкретных вариантов. На самом деле, ext4 является одним из самых распространенных ФС для Linux (если не самая большая).

Варианты крепления вы пытаетесь использовать, не существует для ext4 ФС. Все, что вам нужно сделать, это переписать соответствующий файл/etc/fstab в строке как таковой:

Идентификатор UUID=b9b47e44-db76-40de-a0ed-940c9699799a /тугриков/hdd_moc системы ext4 по умолчанию,nofail,существует два метода 0 0
+929
Phlip 12 окт. 2014 г., 11:39:00

$Столбцов дает терминал ширину. Что касается использования с помощью dpkg -л, вы должны смотреть на самой длинной линии (т. е. не используйте команды grep , как это, вероятно, откажитесь от этой линии). И конечно, если $столбцов слишком мала, например, 1 или 13, один ничего не может сделать для вас.

Редактировать: если с помощью dpkg -л выходные данные не подключен к терминалу, например, при передаче команде grep, с помощью dpkg использует столбец размеров на основе самого длинного поля; при этом на выходе может быть шире, чем терминал. Если вы хотите взять ширину терминала в учетную запись, используйте:

Колонки=$столбцов с dpkg -л | грэп ...

Обратите внимание, что оболочка переменной $столбцов не экспортируются по умолчанию (т. е. не является переменной окружения), а столбцы=$столбцов имеет влияние для того чтобы обеспечить столбцы как переменную среды для dpkg.

+927
Akashad 28 сент. 2015 г., 09:11:29

Я не могу дать вам окончательную рекомендацию, но я могу поделиться несколькими мыслями на эту тему. Учитывая, что /etc обычно невелик, вы можете просто пойти по простому сжатых tar-шар решение. Если вам не нужно, чтобы пойти через историю, это может быть простым решением для настройки.

Для меня это было бы утомительно для управления логическими томами просто не уследить /и т. д. И тем более, что я не думаю, что снимки LVM были разработаны, чтобы регулярно создавались как средство для резервного копирования небольшого объема данных.

ее мне кажется будет гораздо лучше оборудовать для этого, но он по-прежнему не так стабильна, как, например, Ext{2,3,4} и инструмент для fsck тоже не сделали. Но он постоянно становится лучше.

Лично я использую Git для отслеживания /и т. д., Но вы должны иметь в виду, что Git не хранит метаинформации файла как собственности или разрешения! А также проверить, что .каталог git имеет право разрешение. Есть несколько инструментов, которые помогают эти проблемы. Вы, возможно, захотите взглянуть на пр-хранитель, который был разработан именно для отслеживания /и т. д. или использовать хотя бы использовать что-то вроде gitperms или хранилищем для отслеживания метаинформации.

+878
German Lado 1 янв. 2016 г., 17:05:44

Я работаю на скрипт для сортировки Мои загрузки папке по дате создания файла. Этот скрипт я использую:

#!/бин/Баш

команда CD ~/загрузки
с именем в *
делать
 если [[ -Ф $имя_файла ]]; затем
 дата="$(ЛС-л $именем | тр -з ''| вырезать -Д ' - Ф 6 | тр -д '.')"
 команды mkdir -ВП "$дата"
 найти . -параметр maxdepth 1 -тип F -имя файла -exec МВ {} "$дата" \;
интернет
сделано
компакт -

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

Если я делаю просто

ЛС-л test0 | тр -з ''| вырезать -Д ' - Ф 6 | тр -д '.'

дату показывает 19062014 правильно.

Это результат Баш-х скрипта:

Сигурд@Голиаф ~ -> Баш-X чистой
+ СD /домашний/Сигурд/загрузок
+ с именем в '*'
+ [[ -Ф test0 ]]
++ ЛС-л test0
++ тр -ы ' '
++ вырезать -Д '' -Ф 6
++ тр -д .
+ дата=июнь
+ команды mkdir -ВП июня
команды mkdir: создал директорию 'июн'
+ найти . -параметр maxdepth 1 -тип F -имя test0 -exec МВ '{}' июня ';'
+ с именем в '*'
+ [[ -Ф условие_1 ]]
++ ЛС-л тест1
++ тр -ы ' '
++ вырезать -Д '' -Ф 6
++ тр -д .
+ дата=июнь
+ команды mkdir -ВП июня
+ найти . -параметр maxdepth 1 -тип F -имя тест1 -exec МВ '{}' июня ';'
+ компакт -
/дома/Сигурд

Функциональность я ищу, что сценарий должен перемещать файлы в папки по имени 19_06_2014, 20_06_2014 и т. д. основываясь на том, когда файл был создан.

+864
Ishimwe Taylor Olivier 31 июл. 2016 г., 10:37:56

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

это мой скрипт:

#!/бин/Баш 

monitordir="/главная/пользователя/монитор/" 
tempdir="/главная/пользователя в/tmp/" 
логфайл="/главная/пользователя/советник" 

inotifywait -м -р-е создать ${monitordir} | 
в то время как чтение файла newfile; делать 
 Эхо "$(дата +'%м-%Д%Г %р') ${файл}" >> ${журнала}; 
 basefile=$(Эхо ${файл} | вырезать -д" " -Ф1,3 --выходной-разделитель="" | тр -д '\н');
 КП-у ${basefile} ${tempdir}; 
сделано

когда я запускаю inotify-create.sh и я создаю новый файл в "monitordir"

Я получаю:

[@Баш]$ ./inotify-create.sh 
Настройка часов. Будьте осторожны: с -р было дано, это может занять некоторое время!
Часы установлены.
./inotify-create.sh: строка 9: предупреждение: подстановка команд: игнорировать null-байт на входе
+860
Crazometer 25 янв. 2013 г., 01:01:41

Я подключил плодовитый 2303 USB-последовательный адаптер на борту Линукс языка (Linux версия 3.4.90+ (корень@дебиан) (GCC версии 4.7.1 (в Debian 4.7.1-7) )

и по какой-то причине устройство поддерживает переподключение. Это может быть аппаратная проблема или какая-то проблема с оборудованием на другом конце порта. Каждый раз, когда он воссоединяется с шагом в udev имя ядра на единицу. Я создал символическую ссылку на этот прибор, чтобы справиться с этим. Но после того, как фактическое имя устройства достигает 255 он больше не работает и только возвращается в 0 после перезагрузки устройства.

Редактировать: Каждый раз, когда он отключает команды dmesg показывает, pl2303_read_int_callback - usb_submit_urb не с результатом -19 (без прибора) и он сразу подключается

+852
Julia Adams Richardson 6 сент. 2016 г., 11:25:48

На Perl:

на Perl -0777 -ЧП 'с/{.*?}//файл СГ' 

Если вы хотите редактировать на месте

на Perl -0777 -я -пе 'с/{.*?}//файл СГ' 

Что читает файл как одну строку и делает глобальный поиск и замену.

Это позволит обрабатывать вложенные приготовился:

перл -не делать {$Б++, если $_ эквалайзера "{"; печать, если в $b==0; $б-- если $_ эквалайзера "}"} для разделения //'
+827
dusan90 28 янв. 2011 г., 06:44:08

Вы не можете достигнуть этого в ~/.по SSH/config и при использовании IP-адресов в имена узлов. Дополнительную сложность представляет тот факт, что вы не просто подключаетесь к разным IP-адресам, но и другие порты, так что практически исключает какие-либо настройки вашего разрешения DNS.

Я признаю свою ошибку - вы можете использовать Матч originalhost ... старпома ... комбо в ~/.СШ/конфиг - см. @MichałPolitowski ответ. Однако, хотя он будет работать прекрасно для OpenSSH, вы не обязательно найдете схожим функционалом в других клиентов SSH.

Вы можете обойти эту проблему, используя простой обертке (либо оболочки функции или скрипта, если вам нужно использовать его с различных снарядов) для СШ, который будет проверять, какой сети вы находитесь, и использовать соответствующий узел входа. Большой вопрос, как надежно определить какой сети вы находитесь. Локальный IP-адрес приходит в голову, но это не надежный способ, поскольку вы можете также быть подключения из локальной сети, который использует тот же подсети, что и ваша работа сети.

Если вы можете иметь один и тот же порт для локальных и удаленных сетей, вы можете отредактировать файл/etc/файл resolv.конф в зависимости от сети вы находитесь на - очевидно, это должно быть сделано автоматически (скорее всего от крючка скрипт DHCP-клиента). Или - лучше - запустить локальный сервер имен (как, например, раздача) и снабжает соответствующей конфигурации. Что выходит за рамки этот вопрос.

Другой вариант - если вам нужно только подключить в интерактивном режиме - это выполнить команду завершения работы, которая будет сканировать ~/.по SSH/config файл. Что бы сэкономить вам текста (особенно если у вас есть достаточно разной размещения статей). Что-то вроде этого (на баш инициализации):

# полный сеанс имена для СШ
заявляю-г _ssh_complete_hostlist 2> /dev/нуль
_ssh_complete_init функция () {
 _ssh_complete_hostlist=$( \
 СЭД -НР '/^\с*рать\с*=/{С/^[^=]+= *//;С/ /\Н/Г;р}' ~/.по SSH/config в \
 | рода )
}
_ssh_complete_init

_ssh_complete функция () {
 локальный матч=${COMP_WORDS[${COMP_CWORD}]}
 локальные узлы=
 местные по умолчанию=
 для H в $_ssh_complete_hostlist; делать
 если [[ $час =~ ^$матч ]]; затем
 хосты="$хозяев $ч"
интернет
сделано
 если ! (( ${COMP_CWORD} == ${#COMP_WORDS[@]}-1 )); тогда
 по умолчанию=$( compgen -Ф ${COMP_WORDS[${COMP_CWORD}]} )
интернет
 COMPREPLY=($хозяев $по умолчанию)
}
полное -Ф _ssh_complete СШ

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

Все это говорит, правильно подойти к решению данной проблемы является подключение к рабочей сети через VPN и, таким образом, местные работают IP-адресу можно, как если бы вы находились в офисе. Вы можете затем жесткой проволоки адресу в то, что какой бы слой вы предпочитаете: ~/.по SSH/config файл, файл/etc/файл resolv.конф или (имхо лучший вариант) офис имя сервера.

+819
jim miller 25 дек. 2012 г., 20:25:25

Если настройки почтового транспортного агента ("МТА" - то есть postfix, sendmail-а, Эксим и т. д.), Чтобы сохранить копию каждого сообщения, отправленного на вашей системе, вы не будете иметь полную копию сообщения.

МТС, Тем не менее, просмотр журнала событий каждого сообщения отправлено или получено - минимум деталей регистрируется, как правило, включают, по крайней мере, адрес отправителя, адрес получателя, идентификатор сообщения и/или идентификатор очереди сообщений, и дату и время, когда сообщение было отправлено.

Этот журнал обычно регистрируется через syslog в каталоге/var/журнал/почта.журнал. Если вы используете systemd не в syslog поддержка инвалидов, вы должны выполнить journalctl -у <unitname>, где <unitname> - имя вашего МТА systemd в блок - например, постфикс или экзим или с sendmail.

+799
user291375 4 авг. 2019 г., 00:14:23

Вот код -

бюджетные график {
 Country_Budget -- Profit_and_Loss_Account [тип=с];
 Country_Budget -- Balance_Sheet [тип=с];
 Profit_and_Loss_Account -- прибыль [тип=с];
 Profit_and_Loss_Account -- расходы [тип=с];
 Доход -- Revenue_Income [тип=с];
 Доход -- Capital_Income [тип=с];
 Расходы -- Revenue_Expenditure [тип=с];
 Расходы -- Capital_Expenditure [тип=с]; 
 Balance_Sheet -- активы [тип=с]; 
 Balance_Sheet -- обязательства [тип=с];
}

а вот рендеринг при использовании инструмента Дотти -

rough sketch of country budget

А он дает детали и структуры, кто-нибудь знает способ, чтобы украсить графика/сделать его более красочным или что-то ?

Запуск программ 2.38.0-16 на Debian.

+778
JonyB 12 сент. 2015 г., 20:53:44

Наши установленной системе системе hpux есть ВГ под названием "vg00", чьи данные были сохранены в разделе "файл/dev/ДСК/c3t5d0s2"

Теперь этот диск не удалось, и мы имеем точную копию этого диска. Однако, когда мы используем новый диск, система присваивает ему имя "/Дев/ДСК/c3t4d0s2", независимо от физического щель в машине, где мы устанавливаем на компьютер.

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

+685
Chitra Eka Wael 8 мар. 2017 г., 08:37:36

(От удаленного сервера Debian) Когда вы даете команду sudo прямо с visudo в первый раз при первой загрузке нового пользователя, Су - <новый_пользователь> не будет достаточно, чтобы предложить право использовать команду sudo , а затем перезагрузить сервер для того, чтобы получить право использовать команду sudo команда.

Потом ты вернешься:

[команда sudo] пароль для <новый_пользователь>: 
<новый_пользователь> не в файлами sudoers. В этом инциденте будет доложено.

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

:~$ getent группу sudo
судо:х:27:<новый_пользователь>
:~$ судо Баш
[команда sudo] пароль для <новый_пользователь>: 
<новый_пользователь> не в файлами sudoers. В этом инциденте будет доложено.

Как вы думаете, есть эффективный способ сделать это?

Информация о конфигурации: в Debian Wheezy и

Редактор=ВИМ visudo

комментарии: судо все=(все:) все

программа gpasswd -в <новый_пользователь> судо

+680
Lee Wang 19 нояб. 2018 г., 19:31:48

в моей версии GNOME 2 в Ubuntu я использовал эту команду, чтобы открыть новое окно для просмотра файлов в какую-нибудь папку:

Наутилус ./

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

кд /дома/Сантьяго/музыка/блюз/ВВ-Король/видео/Видео по...
Наутилус ./

И эта папка отображалась в окне, и я мог просматривать его регулярно.

Но теперь у меня есть гном 3 в Федора 15 и что они больше не работают.

Я думаю, это потому, что процесс не возвращает управление в консоли, так что если я хочу делать это в разное время, в subsequents звонки на "Наутилус". / откройте первое место.

Спасибо!

+664
mijiturka 28 июл. 2012 г., 04:44:49

В чем проблема

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

Ш-с 'встроенный скрипт SH здесь другие аргументы

Остальные аргументы передаются встроенные ш сценария; с помощью Perl эквивалент,

на Perl -е 'инлайн скрипт на Perl здесь другие аргументы

Другие аргументы проверяются на больше вариантов на Perl , а не для встроенного сценария. Так, например, если есть файл с названием -eBEGIN{сделать что-то плохое} в текущем каталоге,

перл -не встроенные сценарии здесь на Perl;' *

(С или без ) будет делать что-то злое.

Как и за другие коммунальные услуги, работа вокруг для этого является использование конечных вариантов маркер (--):

на Perl -не встроенные сценарии здесь на Perl;' -- *

Но даже тогда, она все равно опасна и что к <> оператор на /.

Вопрос описано в perldoc perlop документации.

Это специальный оператор используется, чтобы прочитать одну строку (одну запись, записей, строк по умолчанию) вход, где этот вход приходит от каждого из аргументов, в свою очередь, прошел в @АГДУ.

В:

на Perl -ЧП " б

-п предполагает в то время как (<>) петли вокруг кода (здесь пусто).

<> сначала открыть себя, читать записи по одной строке за раз, пока файл не будет исчерпан, а затем открыть б...

Проблема в том, что, чтобы открыть файл, он использует первое, небезопасные формы открытия:

открыть АГДУ, "файл, как это предусмотрено"

С этой формой, если аргумент

  • "> файл", он открывает файл в режиме записи,
  • "УМК|", он запускает ЦМД и читает это выход.
  • "|ЦМД", Вы поток открыт для записи на вход УМК.

Так, например:

на Perl -ЧП " выполнения команды 'uname|'

Не выводит содержимое файла под названием команды uname| (вполне допустимое имя файла, кстати), но вывод команды uname команды.

Если вы работаете:

на Perl -не 'что-то' -- *

И кто-то создал файл с названием ПМ -РФ "в$Home"| (опять-таки вполне допустимое имя файла) в текущей директории (например, потому что каталог был некогда доступен для записи другим, или ты извлек хитроумный архиве, или вы запустите некоторые изворотливые команды, или еще одна уязвимость в какой-то другой программы была использована), то вы в большой беде. Областях, где важно быть в курсе этой проблемы является инструментов для обработки файлов автоматически в общественных местах, как в/tmp (или инструменты, которые могут быть вызваны такими инструментами).

Файлы > фу, фу,|, |ФОО - проблема. Но в меньшей степени < фу и Фу с начальных и конечных символов ASCII символов (включая пробел, табуляцию, перевод строки, КР...), а также это означает, что эти файлы не будут обработаны или не тот будет.

Также помните, что некоторые символы в некоторых многобайтовых наборов символов (как ǖ в БИГ5-стандарт hkscs) в конце 0x7c байт, кодирование |.

$ е ǖ | с iconv -Т БИГ5-стандарт hkscs | ОД -тх1-ТК
0000000 88 7С
 210 |
0000002

Так в языков, использующих эту кодировку,

 Перл -Пе " ./nǖ

Попытаюсь запустить ./Н\x88 команду как на Perl бы не попробовать понять, что название файла в локали пользователя!

Как исправить/обойти

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

Во-первых, проблема возникает только с символами в начале и конце имени файла. Так, в то время как Перл-нэ "* или на Perl -нэ " *.тхт - это проблема,

на Perl -не 'код' ./*.тхт

не потому, что все доводы сейчас начать с ./ и закончиться .тхт (так не -, <, >, |, космос...). В целом, это хорошая идея, чтобы префикс Глобс с ./. Это также позволяет избежать проблем с файлами под названием - или начиная с - со многими другими утилитами (и здесь, это означает, что вам не нужно в конце-опции (--) маркер больше).

Используя , чтобы включить душок режим помогает в некоторой степени. Он прервет команду, если такого вредоносного файла (только для > и | случаях, Не < или пробел, хотя).

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

Если вы хотите обрабатывать каждый файл, независимо от их названия, можно использовать в АГДУ::только для чтения на Perl модуль на CPAN (к сожалению, как правило, не устанавливаются по умолчанию). Это очень короткий модуль, который обладает:

импорт суб{
 # Том Кристиансен в сообщении-код: <[email protected]>
 # рекомендую в основном в следующем:
 Для (@из argv){
 с/^(\с+)/.\/$1/; # ведущие пробельные символы сохраняются
 с/^/< /; # принудительно открыт для ввода
 $_.=с QQ/\0/; # пробельный сохранились и труб запрещается
};
};

В основном, это санирует @АГДУ, превратив в" Foo|" например в "< ./ ФОО|\0".

Вы можете сделать то же самое в начала заявление в перле -Н/-П приказываю:

Перл -ЧП 'начало{$_.="\0" для @АГДУ} ваш код здесь' ./*

Здесь мы упрощаем ее на предположении, что ./ используется.

Побочным эффектом этого (и АГДУ::только для чтения), однако, что $АГДУ в ваш код здесь показывает, что трейлинг-нулевой символ.

Обновления 2015-06-03

на Perl У5.21.5 и выше новый <<>> оператор, который ведет себя как <> кроме того, что не делать специальную обработку. Аргументы будут считаться только имена файлов. Так с тех версий, теперь вы можете писать:

на Perl -е 'а(<<>>){ ...;}' -- *

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

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

+661
Kevin Paul Jeater 9 июн. 2010 г., 09:13:13

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

Это мой скрипт конфиг.

#!/бин/Баш

понятно

компакт-диск /домашний/ГИТ/хранилищ/

Чаун -Р ГИТ:тест тест.ГИТ/
команду chmod -Р тест 775.ГИТ/
+639
Nikhil Gupte 30 мая 2019 г., 21:12:32

Я хочу удалить определенный элемент меню на Наутилусе Правой Кнопкой Мыши контекстное меню - "упорядочить по алфавиту" вариант - поскольку, будучи сразу после "вставить запись", неточное кнопку может привести к очень неутешительным беспорядок среди икон на моем столе... как просто произошло еще раз минут назад.

Можно ли изменить Наутилус контекстного меню как-то? Спасибо всем

+598
Deus Mort 31 янв. 2013 г., 16:09:40

ОК, проблема решена. Я добавил использование="модуль" в мире и пересобрал мир. Такие пакеты включают, но не ограничиваются QtGui пакет и GTK+, это должно быть главным пакетов, который изменяет результат. Так simpile...

+497
Will Wang 18 окт. 2015 г., 22:16:12

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

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

Если я отключения в Apache и postfix, команды netstat показывает не удаленных подключений, кроме моего входа через SSH. Если потом запустить postfix (но оставить Апач перестал), 100 из удаленных подключений к порту 25 сразу открыть. Это приводит меня к мысли, что какой-то процесс на хост делает это, а не что-то шло через WordPress/сценарий изгоев, которые мы пропустили в субботнике. Там также были IRC боты здесь, но мы убрали этих, и netstat не показывает все открытые соединения с IRC.

Когда я смотрю на PS axjf - все SMTP обрабатывает закатать в /usr/IP-адресов/постфикс/Master, которая обладает родительским идентификатором 1. Это действительно не дает мне представление о том, где почта создается.

Ни ПС, ни сверху показывают никаких подозрительных процессов (насколько я могу судить).

Что еще я могу посмотреть, чтобы увидеть, что создание/отправку почты? Я могу отправить вывод команды ps whatever_flags_you_want так и без постфикс работает, если это поможет.

Спасибо.

+456
Sidou 6 сент. 2019 г., 22:02:38

Я file1.txt и file2.txtоба содержат URL-адреса, я хочу создать новый файл с уникальным URL-адресов, присутствующих в file2.txt и не в file1.txt.

Пример url-адреса файла:

aspencabinets.ком.АУ
iiatca.org
energyoil.ко.з
tevelatino.com
handball-schule.com
lindaestelle.com
latindancegrooves.com
ugurlu-ozturk.com
robertsdoneright.com
pactoconvex.com
ghaudit.org
keiramontalli.net
taksid.ee
katanics.ху
baggotpureescape.com
naechstenliebe.net
wiki.mbremer.de
boxplandesign.ком.СГ
Лхасе.Калифорния
roboticengineeringprojects.com
killergaming.info
nhswga.com
culnue.ЕС
fmovers.com
corpuschristicarolstream.org
promedmedikal.com
creationprints.ком.АУ
tsukihime.com
+441
user2183837 26 нояб. 2016 г., 22:14:54

Мне нужно пройти определенную переменную до н. э. , Чтобы получить выход в плавающей точкой,

переменная var1=$((<операция>))
переменная2=$((<операция>)) #должен вар1
var3=$((<операция>)) #должен переменная2
до н. э. -л <<< $var3 #нужен выход в плавающей точки

Выход:

(standard_in) 1: запрещенный символ: $

В любом случае, чтобы преодолеть это?

Обновление:

дифф=$(($epoc2-$epoc1))
переменная var1=$(($дифф / 60))
переменная2=$(($переменная1 / 57))
шкала var3=`БЦ < < < '=2; $переменная2"
+405
Theory Nombre 25 авг. 2012 г., 22:35:22

В Иссе вы описываете вполне может быть проблема брандмауэра (если подождать достаточно долго, то есть сообщение о тайм-ауте?). keys.gnupg.net по сути, указывает на pool.sks-keyservers.net (технически реализован как запись CNAME в DNS псевдоним):

$ нарыть запись CNAME keys.gnupg.net

; <<>> Копать 9.10.3-П4-Дебиан <<>> запись CNAME keys.gnupg.net
;; глобальные опции: +УМК
;; Получили ответ:
;; ->>Заголовок<<- код: запрос, статус: Нет, идентификатор: 63954
;; флаги: в QR АА РД РА; запрос: 1, ответов: 1, Авторитет: 0, дополнительную: 1

;; ОПТ ПСЕВДОРАЗРЕЗ:
; EDNS: версия: 0, флаги:; УДП: 1280
;; РАЗДЕЛ ВОПРОС:
;keys.gnupg.net. В ВИМЯ

;; РАЗДЕЛ ОТВЕТ:
keys.gnupg.net. 81999 в ВИМЯ pool.sks-keyservers.net.

;; Время запроса: 1 мсек
;; Сервер: 192.168.0.1#53(192.168.0.1)
;; Когда: СБ 05 авг 17:20:28 мск 2017
;; МСГ размер принято: 80

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

$ хозяин pool.sks-keyservers.net
pool.sks-keyservers.net адрес 81.187.55.68
pool.sks-keyservers.net адрес 155.94.209.99
pool.sks-keyservers.net адрес 195.181.242.148
pool.sks-keyservers.net адрес 37.97.128.99
pool.sks-keyservers.net адрес 80.108.201.53
pool.sks-keyservers.net адрес 176.9.147.41
pool.sks-keyservers.net адрес 178.254.42.45
pool.sks-keyservers.net адрес 130.206.1.111
pool.sks-keyservers.net адрес 130.133.110.62
pool.sks-keyservers.net адрес 190.202.122.122
pool.sks-keyservers.net имеет адрес IPv6 2001:41d0:1:сила ac90::1
pool.sks-keyservers.net имеет адрес IPv6 2a00:f820:177:0:84:200:66:125
pool.sks-keyservers.net имеет IPv6-адреса 2a03:b0c0:1:н0::18c2:6001
pool.sks-keyservers.net имеет адрес IPv6 2610:81:3001:53::231
pool.sks-keyservers.net имеет IPv6 адрес 2607:5300:60:3308::1
pool.sks-keyservers.net имеет адрес IPv6 2a01:7e00::f03c:91ff:fe69:8da9
pool.sks-keyservers.net имеет адрес IPv6 2001:648:2ffc:1225:а800:1ff:fee4:5da4
pool.sks-keyservers.net имеет адрес IPv6 2001:4c80:40:628:5c70:d1ff:fe44:1424
pool.sks-keyservers.net имеет адрес IPv6 2600:3c03::f03c:91ff:fe96:bd1a
pool.sks-keyservers.net имеет IPv6-адрес 2a02:7b40:c3b5:ф294::1

Это также означает, что вы не можете определить правила брандмауэра для одного статического IP (даже не куча, а они меняются регулярно) для подключения к keys.gnupg.net.

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

  • pgp.mit.edu
  • keyserver.ubuntu.com
  • pgp.surfnet.nl
  • pgp.uni-mainz.de

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

+370
Emily Mendez 19 февр. 2011 г., 08:25:13

Вы можете создать скрипт с командой:

\ЛС *-*.формат PDF | СЭД с/\(.*\)-\(.*\).формат PDF/МВ \1-\2.формат PDF \2-\1.формат PDF/' > script_mv.Баш

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

. ./script_mv.Баш

Я написал \ЛС, потому что это отменяет вариантов на общ.

СЕПГ шаблон означает:

  • найти anything1, а "-", anything2, ".в формате PDF" .
  • Как угодно, заключенные в (), так что они получают имена \1 и \2 .
  • затем я копирую линию МВ за то, что я могу восстановить имена благодаря \1 и \2 .
+365
CFP 11 нояб. 2012 г., 01:17:44

Системы:

  • 10.12.6 в macOS Сьерра

Сырые входные данные(пример):

.
├── Ф1.МД
├── Ф2.МД
├── Ф3.МД
├── f4.txt
├── Ф5.КШМ
└── f6.doc

0 каталогов, файлов: 6.

В тестовую папку, есть 6 файлов.

Ожидаемые результаты:

.
├── все.тар
├── Ф1.МД
├── Ф2.МД
├── Ф3.МД
├── f4.txt
├── Ф5.КШМ
└── f6.doc

0 каталогов, файлов: 7

Попытке и проблемы:

тар-cvf все.тар Ф1.МД Ф2.МД Ф3.МД Ф5 f4.txt .КШМ f6.doc 

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

Надежда:

метод командной строки без ввода конкретных имен файлов.

+351
Greg O 27 окт. 2015 г., 19:41:58

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

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

Так вот что я хочу сделать. У меня роутер (Debian, в коробке с компилятором) со статическим IP cable.example.com. У меня есть внутренний файловый сервер, назначенный 192.168.0.3. Я могу сейчас по SSH в роутер, а оттуда СШ в filesever. Однако, я хочу сделать сервер доступен снаружи для меня и людей с типичными и SFTP клиент.

Может кто-нибудь дать мне представление о том, что я ищу? Туннель, тоннель в, переадресации портов, в iptables – они все, кажется, чтобы описать то, что я хочу сделать, но я не могу получить твердое представление о том, как заставить его работать.

+292
Richwel Batbat 15 мая 2010 г., 05:06:57

Следующий цикл будет обрабатывать каждый каталог в текущем каталоге в способ, что вы описали:

для dir В */; сделать
 кошка "каталог$dir"/*.тхт >"${реж%/}.тхт"
сделано

В ${Реж%/} вещь, удаляет конечные / от $Дир , который есть от Глоб матч в петлю головой.

Ошибки, которые вы получаете, вероятно, из-за написания сценария на машине с ОС Windows (с окна). Windows (и DOS) текстовых файлов есть символ возврата каретки перед символом перевода строки в конце каждой строки, в то время как текстовые файлы Unix только символ. Вы можете преобразовать скрипт в Unix и текстовый файл с помощью dos2unix полезности.

+288
Mohammad ershad Ullah mir 11 мар. 2014 г., 19:59:15

У меня есть 2 шлюза по умолчанию, если мы рассматриваем пункт 6 и 8? (там может быть только 1 шлюз по умолчанию, так что я знаю, я ошибаюсь, но может не оправдать) (наверное, ответил, см. ниже)

Линии 6ст определяет диапазон 0.0.0.0 - 127.255.255.255 и 7-я строчка-это определение диапазона 128.0.0.0 - 255.255.255.255.

У меня есть 2 шлюза по умолчанию, если мы рассматриваем пункт 6 и 8?

Нет, есть только один шлюз по умолчанию, а именно :

0.0.0.0 0.0.0.0 10.0.2.2 в UG 0 0 0 eth0 в

Учитывая пункт 1 и 2, что-нибудь для 10.8.0.1 не реально через любой шлюз, через tun0. Это правильно?

Нет не правильно, пакеты, предназначенные для 10.8.0.1 бы быть направлены на 10.8.0.5(который можно tun0 локальной сети, как указано на первой линии).
вы были правы, если маска не 255.255.255.255

Учитывая пункт 3 и 4, что для 54.202.18.143 не реально через любой шлюз через интерфейс eth0. Это правильно?

Нет не правильно, пакеты, предназначенные для 54.202.18.143 будет направляться на 10.0.2.2(который является другой узел на eth0 в локальную сеть и доступна по 4-й линии)

+263
andream 26 дек. 2018 г., 19:56:19

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

#!/Бен/ш

экспорт х=правда
запустить() {
ловушка х=ложные USR1
в то время как [ $Х = "правда" ]; делать
 Эхо работает...
 сон 1
сделано
}

начало &
сон 5
убить -USR1 $!
ждать

производит этот выход:

$ ./testit.sh
работает...
работает...
работает...
работает...
работает...
$
+255
amemni 7 янв. 2020 г., 10:01:56

Я сделал это:

судо СЕПГ -я с/роса/Сара/г' /и т. д./кв/источников.список.официальный-пакет-хранилищ д/.список
судо СЕПГ -я с/верный/xenial/г' /и т. д./кв/источников.список.официальный-пакет-хранилищ д/.список

И я прокомментировал

#деб http://extra.linuxmint.com Роза-главная

Тогда

меткое обновление 
меткое обновление
АПТ дист-апгрейд
перезагрузка
меткое обновление && APT для обновления && АПТ дист-апгрейд
судо apt-получить autoremove

→ Все было хорошо, но странно мой mintsources остаются в "росу", а не "Сара"/

+217
aladinsane7 17 авг. 2013 г., 22:09:38

Селектор от 10.10.10.73 матч, потому что Эхо-ответов выдаются с этого адреса. Однако в этом случае это не рекомендуемый способ, чтобы продолжить. Потому что от 10.10.10.73 можете обратиться к, что уходит к другому интерфейсу, чем через eth0 сделать плохой маршрута в этом случае. Вы должны использовать , чтобы 172.16.1.1 в ваш IP править вместо.

Дело в соответствие адреса источника связана с тем, что используя правило IP маршрутизации принять решение, связанное с выделенной таблицы подстановки принять пакет игнорировать ГНЦ - адрес по умолчанию, указанный маршруте из этого интерфейса, как тот, который вы увидите в маршрутизации IP список таблица местных

Что произошло в красную часть на этой схеме : ядра пакета путешествия схема

Без правило IP пакета прибыть в ВЫ аппарат для локального процесса, а из-за маршрута по умолчанию ответ пришел из интерфейсов eth0 (очевидно, с через eth0 IP-адрес). Потому что правило IP добавить из 10.10.10.73 таблица тест маршрутизации процесса изменений, поиска в таблице, а не использовать по умолчанию IP-адрес интерфейса, держа путь до места назначения, так что теперь использовать IP-адрес из ответа интерфейса.

+139
MoribundMurdoch Polyglotism 29 окт. 2016 г., 18:50:26

У меня была такая же проблема с дегтем исключения после обновления от Debian Jessie в участке, и я исправил это путем изменения параметров командной строки заказа

от:
тар cvzpf backup.tar.gz /DirToBackup1 /DirToBackup2 --exclude-from=/path/to/backup_exclude.txt

к:
тар cvzpf backup.tar.gz --exclude-from=/path/to/backup_exclude.txt /DirToBackup1 /DirToBackup2

мой backup_exclude.txt выглядит так /ВАР/лог/* /кэш/* /.кэш/*








(ссылаюсь на конце страницы https://www.gnu.org/software/tar/manual/html_section/tar_49.html)

+84
Lalu Fernandez 12 июн. 2013 г., 01:16:33

Для подключения нескольких конечные точки туннеля в единый интерфейс моста, мне нужно создать слой 2 туннель через SSH. Сервер с Ubuntu 10.04, клиент в Ubuntu 14.04. У меня включен

PermitTunnel да
Настроен с параметром да

в сервера в /etc/sshd_config в. Когда я общаюсь с суда SSH -W любой:любой -о "туннель=локальные сети" корень@дистанционного я вам бочку устройство вместо ожидаемого нажмите устройство. Если я изменю "PermitTunnel да" на "PermitTunnel локальных сетей" на сервере, я получаю "0 каналов: не удалось открыть: административно запрещается: не удалось открыть" сообщения об ошибке и нет тоннеля устройство на все.

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

+81
Kerline 5 февр. 2012 г., 16:25:38

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

+61
Raz Reed 7 окт. 2015 г., 05:34:51

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

$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