Это разбиение является частью стандарта POSIX?

Это вопрос, который я собиралась разместить здесь несколько недель назад. Как terdon, я понял, что .bashrc и является только источником для интерактивного в bash, так что нет необходимости для .bashrc следующее , чтобы проверить, если он работает в интерактивную оболочку. К сожалению, все дистрибутивы, которые я использую (в Ubuntu, RHEL и под Cygwin) имели какой-либо проверки (тестирования $- или $ПС1) для обеспечения текущей оболочки является интерактивной. Мне не нравится культ карго программирования, поэтому я о понимание цели этот код в мой .bashrc следующее.

Баш имеет специальный чехол для удаленных оболочек

Изучив вопрос, я обнаружил, что удаленные оболочки относятся по-разному. При неинтерактивном в bash, не нормально запустить ~/.bashrc и команды на запуск, особый случай, когда оболочка вызывается удаленной оболочки демона:

Баш пытается определить, когда он работает со стандартной входной подключен к сети связи, а при выполнении удаленной оболочки демон, обычно rshd, или безопасная оболочка демона демон. Если Bash определяет его работать в этой моде, она читает и выполняет команды из ~/.bashrc и, если этот файл существует и доступен для чтения. Он не будет делать это, если вызывается, как СГ. В --нсопр опция может быть использована для подавления такого поведения, и --rcfile опция может быть использована, чтобы заставить другой файл для чтения, но ни rshd , ни демон , как правило, вызвать оболочку с этих вариантов или позволить им быть указаны.

Пример

Вставить в начало пульт .bashrc следующее. (Если .bashrc и добыт .профиль или .файл, временно отключите при тестировании):

Эхо bashrc следующее
удовольствие()
{
 функции Эхо работы
}

Выполните следующие команды локально:

$ СШ remote_host 'Эхо $- $0'
bashrc следующее
ЖСК Баш
  • Нет я в $- указывает, что оболочка является неинтерактивной.
  • Никаких ведущих - в $0 указывает на то, что оболочки не оболочки входа в систему.

Оболочка функции, определенные в удаленном .bashrc и может также быть запущен:

$ СШ remote_host удовольствие
bashrc следующее
функции работы

Я заметил, что ~/.bashrc и это только получены, когда команда задается как аргумент для СШ. В этом есть смысл: при СШ используется для запуска обычной оболочки входа в систему, .профиль или .файл запуска (а .bashrc и только источников, если явно это сделал один из этих файлов).

Основное преимущество я вижу в наличие .bashrc и источников при выполнении (не интерактивный) удаленной команды, что функции Shell можно запускать. Однако, большинство команд в типичном .bashrc и имеют значение только в интерактивной оболочке, например, псевдонимы не расширяются, если оболочка является интерактивной.

Удаленная передача файлов может не

Обычно это не проблема, когда РШ или СШ используются для запуска интерактивной оболочки входа в систему или при неинтерактивном снаряды используются для выполнения команд. Однако, это может быть проблемой для программ, таких как РКП, УПП и по SFTP , использующих дистанционные снаряды для передачи данных.

Получается, что удаленный пользователь по умолчанию оболочки (например, bash) начинается неявно при использовании УПП команды. Нет никакого упоминания об этом в MAN-странице – только упоминания о том, что УПП использует протокол SSH для передачи данных. Это значит, что если .bashrc и содержит все команды, которые выводят на стандартный вывод, передача файлов будет выполнена, электронная.г SCP не без ошибок.

См. Также этот красный шляпа баг-репорт от 15 лет назад, УПП перерывы, когда есть эхо команду в /etc/bashrc и (который в итоге был закрыт как WONTFIX).

Почему УПП и по SFTP не

УПП (безопасная копия) и SFTP (безопасный протокол передачи файлов) имеют свои собственные протоколы для локальных и удаленных концах в отношении обмена информацией о файл(ы) передается. Любой неожиданный текст от удаленного конца (ошибочно) трактуют как часть протокола и происходит сбой передачи. Согласно справке из улиток книга

Что часто происходит, хотя, является то, что есть заявления в системы или пользователя оболочки автозагрузки файлов на сервер (.bashrc следующее, .профиль, файл/etc/хсг.cshrc по, .логини т. д.) какой выход текстовых сообщений на логин, предназначен для чтения людьми (как удача, Эхо "Привет!", и т. д.).

Такой код должен производить только выход на интерактивных входов, когда есть телетайп добавленные к стандартному вводу. Если этого не сделать этот тест, он будет вставьте эти текст сообщения, где они не принадлежат: в этом случае, загрязняющих протокол потока между scp2/по SFTP и SFTP клиент-сервер.

Причина оболочки загрузочные файлы актуальны во все, что демон использует пользовательскую оболочку при запуске любой программы от имени пользователя (используя например /bin/ш-С "команда"). Это традиция Unix, и преимущества:

  • Обычные настройки пользователя (псевдонимы команд, переменные среды, значение umask, и т. д.) в действительности, когда удаленные команды.
  • Обычная практика создания аккаунта шелл на /bin/false, чтобы отключить это позволит предотвратить владельца от выполнения каких-либо команд, следует проверка подлинности еще случайно получится по некоторым причинам.

УПП детали протокола

Для тех, кого интересуют подробности того, как работает УПП, я нашел интересную информацию в УПП, как работает протокол , который содержит сведения о Работает УПП с болтливым оболочки профилей на удаленной стороне?:

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

Эхо ""

Почему он просто висит? Это происходит от того, как УПП в исходныйрежим ждет подтверждения первого сообщения протокола. Если это не бинарный 0, он ожидает, что это уведомление об удаленных проблему и ждет больше символов, чтобы сформировать сообщение об ошибке до тех пор, пока новая линия прибывает. Так вы не распечатайте еще одну новую строку после первого, локальный УППпросто остается в петле, заблокирована на чтение(2). В то же время, после оболочки профиль был обработан на удаленной стороне, УПП в раковине режим был запущен, который также блокирует на чтение(2), ждет бинарный ноль, обозначив начало передачи данных.

Заключение / номер

Большинство заявлений в типичном .bashrc и полезны только для интерактивной оболочки – не для выполнения удаленных команд с РШ или СШ. В большинстве таких ситуаций, установка раковины переменные, псевдонимы и определение функции не нужные и печать любого текста к стандарту активно вреден ли передача файлов с помощью программ, таких как УПП или по SFTP. Выход после проверки того, что в текущей оболочке является интерактивным является самым безопасным поведением для .bashrc следующее.

+504
Themos Stafylakis 5 июн. 2020 г., 02:54:10
21 ответов

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

Это оставляет мне интересно, если я должен избегать пояснице упражнения или если традиционные советы снятия с них обратно-это плохо.

Итак, я должен быть обучение с моей поясницей?

+953
mesbahuk 03 февр. '09 в 4:24

Firejail-это хороший инструмент в тюрьму любого процесса, с или без корневого доступа с большим количеством вариантов и очень гибкий:

+944
Teymour Aldridge 12 окт. 2022 г., 11:13:39
Другие ответы

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


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

У меня нет опыта с Sony Erricsson программного обеспечения, но я думаю, что их ПК сьют решение (нашел здесь) касается синхронизации контактов и т. д.

+930
Sithanary KIm 15 июн. 2020 г., 19:15:49

Возможно это поможет:

Общ -1 *|е с/^\(.*\).ПНГ/\1\/\1,/г ; : 1 ; с|_\([^/]*$\)|\1|; Т 1'

Или если только 1 _ в имени файла

Общ -1 *|е с/^\(.*\).ПНГ/\1\/\1,/г ; с|_||2'
+928
Vorlox 24 авг. 2013 г., 22:34:31

Вполне вероятно, вашему местному времени машина снимков.

В Сьерра, они хранятся в /.MobileBackups/компьютер, но не желательно манипулировать этой папки напрямую. Либо использовать время применения машины для удаления отдельных снимков или отключить локальные моментальные снимки всего, выполнив следующую команду терминала:

команду sudo tmutil disablelocal

Я не могу сказать, почему в macOS не почистить их после того, как вы запустите внешних машину времени резервного копирования. Редактировать: на моем MacBook Pro, я также вижу некоторые старые резервные копии, которые предварительно дата моего последнего внешнего резервного копирования.

+905
deebian 2 февр. 2021 г., 05:31:18

Я пытаюсь установить RealPlayer?

Кто-нибудь знает как я могу достичь этого?

+905
Neecoe Moreno 6 февр. 2016 г., 06:29:57

Я используйте OS X Эль-Капитан. Я установил Xcode версии 7 из AppStore и MacPorts с официального сайта.

Когда я пытаюсь установить что-то с помощью системы MacPorts: судо порт установить nodejs4, я получаю следующее предупреждение: предупреждение: в Xcode инструментов командной строки не появляются, чтобы быть установленным; большинство портов, вероятно, не сможет построить.. Но компилятор (ГК) работает, сделать работает, и я на самом деле установлено несколько системы MacPorts пакеты без каких-либо проблем.

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

$ в Xcode-выберите -Р
/Применения/Xcode.приложение/содержание/разработчик

Итак, вопрос: это какая-то ошибка в MacPorts или есть некоторые инструменты не в комплекте с Xcode 7, которые должны быть установлены отдельно с помощью Xcode версии-выбрать --установить? Я не хочу вводить ненужную.

+791
Eric E 13 апр. 2016 г., 23:18:07

Не только на уровне страны, но, возможно, на областном уровне, а также для Индии. Особенно это относится к КНР. Я в Австралии, и я должен применять независимо от моей жены, потому что мы официально проживают в различных государствах. Попробуйте соблюдать требования, Юг, Запад, Юго-Запад, и "Мумбаи, Ахмедабад и Пуне" в Малайзию в @phoogs ссылке выше....

+688
Katelona 4 окт. 2020 г., 03:14:37

По данным на официальном сайте в процессор Intel® двухдиапазонный беспроводной-АС 8265 будет работать на 4.6 версию ядра и выше

1) обновить версию ядра : в 4.8 и 4.10 ядра для Линукс Минт.

2) установить драйвер WiFi

с wget https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi-8265-ucode-22.361476.0.tgz
деготь xvf iwlwifi-8265-ucode-22.361476.0.тгз
компакт-диск iwlwifi-8265-ucode-22.361476.0
iwlwifi СР* /lib/встроенного
команды modprobe iwlwifi
+662
Harish Ravi 23 окт. 2022 г., 16:20:24

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

Короче, вы положить немного масла, положите слой яиц и свернуть его. Затем повторите.

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

Результаты всегда одинаковы: она прилипает к "антипригарным" Пан и она развалится.

В чем же секрет?

Вот основные успешные tamagoyaki обучающее видео

Вот мой результат

+624
twerk741 30 нояб. 2022 г., 13:25:57

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

+548
Paul Carpenter 2 авг. 2012 г., 06:31:28
+457
faheem ahmad 29 сент. 2019 г., 12:40:44

Вам придется бежать в космос

команды mkdir привет\ есть

Вы также можете поместить строку, таким образом вам не придется бежать в космос.

команды mkdir 'привет'
+441
prostoludin 11 мая 2011 г., 03:15:01

У меня есть сервис под названием [email protected] что instanciated с использованием соответствующего сервиса идентификатора.
Этот блок может быть активирован [email protected], который instanciated в том же стиле.

Однако я также хочу, чтобы иметь возможность активировать [email protected] через [email protected] который инстанцируют, используя в POSIX путь в локальной системе.

У меня есть скрипт, который переводит соответствующие пути для соответствующих идентификаторов услуг.

Как я могу вызвать его в [email protected] так что [email protected] получает идентификатор службы, а не путь?

+377
Nex 22 февр. 2018 г., 13:13:39

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

определения -формат "%[FX:в туре(100000*АБС((4/3)-(в/ч)))]:%г\н" *.формат JPG | \
 сортировка -Н -К1 -Т:

должен делать то, что вы хотите. Обратите внимание, что в 4/3 есть постоянные, нужные пропорции. Можно, конечно, найти, что как выход из предыдущего определения (к играм "наиболее близок к этому образу").

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

редактировать

Получается, вроде кажется не рационалы, а не только целые числа. Его даже указано в Единой спецификации Unix и (В4). Таким образом, вы можете избавиться от этого решение:

определить-формат "%[FX:в АБС((4/3)-(в/ч))]:%г\н" *.формат JPG | \
 сортировка -Н -К1 -Т:
+362
rowtricker 28 окт. 2017 г., 06:14:45

Какие аппаратные датчики поддерживаются на Android? Есть любые мыслимые датчики, которые могут быть запланированы, чтобы быть поддержаны в будущем?

Для каждого датчика:

  • Как датчик полезное?
  • Который в настоящее время устройств имеют его? (Только для новых датчиков)
  • Что делать заметных приложений использовать датчик?

Вот список поддерживаемых аппаратных датчиков:

Датчики Окружающей Среды

  • влажность окружающей среды
  • освещенность
  • атмосферное давление
  • температура окружающей среды
  • Температура устройства

Датчики движения

  • акселерометр
  • волчок

Датчики положения

  • геомагнитное поле датчика
  • датчик приближения

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

+351
Haroon Ali 8 окт. 2023 г., 01:33:12

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

#!/бин/Баш

комплект -е

on_exit () {
 Echo "сценарий вышел по ошибке"
}

ловушка on_exit подстраховаться

Эхо " да " | команда grep "$1"

В использовании:

$ ./script.sh да
да
$ ./script.sh нет
Этот скрипт завершился с ошибкой
+268
lenfien 20 сент. 2019 г., 00:19:10

Скрипты инициализации в Gentoo не работает хорошо, когда субантарктический работает в chroot. В Gentoo обычно взаимозависимостей, где Апач не заводится пока "чистая" была запущена, и так далее, и поскольку ни одна из этих ран при запуске (потому что в Gentoo не хост-системы) все вообще будет нарушена. В худшем случае, Gentoo может испортить ваши сетевые настройки или запустить fsck на ваше мышление жесткого диска, который пока не установлен.

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

Я бы предложил пропустить сценария, и просто пройти Апачи пользовательский файл config, как вы запустите его в chroot. Что-то вроде:

из chroot /путь/к/Gentoo в каталог /usr на/sbin/apache2 не -е в /etc/apache2 не/файл httpd.конф

Я также рекомендую запускать эту команду в наружную систему с руководителем программы, как преступник или Рунит или С6. См http://skarnet.org/software/s6/why.html

Это также может быть, что нужно иметь /proc монтируется в chroot. Помните, что если прок монтируется в chroot, все в chroot сможете получить список процессов из хост-системы, что может быть плохо. Я полагаю, ты делаешь это потому, что вы не доверяете сценарий, который вы будете обслуживать с Apache?

+263
tyolab 18 февр. 2018 г., 17:40:28

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

Если я закрыть панель это происходит даже на новом окне я создал.

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

+195
buikoto 5 июл. 2013 г., 03:46:48

У меня была аналогичная проблема. Я не уверен, если это сработает для вас, но я был в состоянии исправить это, добавив GtkScrolledWindow с GtkViewport, который имеет GtkBox в нем. Вроде такой:

Image of object stack within glade

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

+92
user35267 22 янв. 2018 г., 13:04:47

Я добавил макрос для моего .muttrc , что переключает на боковой панели с б:

макрос индекс б "<введите->команда переключения sidebar_visible<ввод>"
макро-пейджер б "<введите->команда переключения sidebar_visible<ввод>"

Чистки рядов, это бы тоже сработало:

индекс макро, пейджер б "<введите->команда переключения sidebar_visible<ввод>"

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

+27
Srikanth Girbhone 30 сент. 2013 г., 06:32:35

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