Если вас интересуют не только bash и zsh, вас может заинтересовать совершенно другой метод, который был представлен командным интерпретатором UNOS в 1980 году. Этот командный интерпретатор реализует постоянные псевдонимы, которые хранятся в файле $HOME/.globals
Этот метод теперь доступен в bsh и в последней версии Bourne Shell, которую вы можете получить из Schily-Tools.
Пожалуйста, взгляните на свежую man-страницу Bourne Shell по адресу:
http://schillix.sourceforge.net/man/man1/bosh.1.html
Причина, по которой я упоминаю этот метод, в том, что сложные алисы в синтаксисе Korn Shell трудно набирать с правильным цитированием, а Bourne Shell реализует (как дополнительный метод, помимо alias
) так называемые хэш-команды, которые позволяют вводить алисы в raw режиме.
BTW: правильный способ сохранения псевдонимов для других оболочек, не поддерживающих постоянные псевдонимы:
alias -p > file
Если вы просто вызовете alias
с помощью ksh93, вы получите вывод вроде этого:
autoload='typeset -fu'
command='command'
compound='typeset -C'
но когда вы вызываете alias -p
, вы получаете:
alias autoload='typeset -fu'
alias command='command'
alias compound='typeset -C'
Как видите, вам нужен alias -p
, потому что он возвращает что-то, что позже может быть использовано в качестве входных данных оболочки, снова вызвав:
. file
Edit: alias -p
не является POSIX, но ни одна оболочка, кроме bash, не производит разборчивый вывод по умолчанию. Некоторые оболочки никогда не производят разборчивый вывод!
Оболочки, которым нужен -p
для разборчивого
вывода:
bash разрешает -p...
BTW: dash вообще не поддерживает ни разборчивый вывод, ни -p.
zsh реализует эквивалент alias -p
через alias -L
.
Как описано в RFC6763 и Спецификация печати Bonjour , тип службы _printer._tcp
является «флагманским именем» для печати. Идея, по-видимому, заключается в том, что вы можете найти все принтеры и службы печати любого типа, выполнив поиск _printer._tcp
service.
Более формально, тип службы _printer._tcp
относится к протоколу печати Unix LPD, который обычно можно найти в TCP-порту 515 на поддерживающих сетевых принтерах и серверах печати. Но если принтер не поддерживает LPD или у него отключена поддержка LPD, он все равно должен объявить _printer._tcp
, но с номером порта 0.
Используйте avahi-discover
или avahi-browse -r _printer._tcp
, чтобы найти IP-адрес и порт, связанные с этой службой. Вы можете обнаружить, что он исходит либо от самого принтера, либо от вашего CUPS, если он настроен на совместное использование любых настроенных принтеров.
Поскольку Brother HL -L2340DW явно поддерживает AirPrint, вероятным источником является сам принтер. Если автоматическое обнаружение -приводит к неработоспособному принтеру -в приложениях, вы можете настроить CUPS, чтобы он не обнаруживал принтеры автоматически -. В моей версии CUPS (Debian 9 )это можно было сделать, остановив cups-browsed
, отредактировав /etc/cups/cups-browsed.conf
, установив для BrowseRemoteProtocols
значение none
, и перезапустив cups-browsed
.
Кроме того, вы можете использовать BrowseDeny <printer's IP address>
в том же файле, чтобы явно скрыть автоматически обнаруженную запись -для этого конкретного принтера,при сохранении функции автоматического обнаружения принтера -в целом.