Обновите огибающие переменные после редактирования bashrc файл

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

iptables -A INPUT -s x.x.x.x -p ICMP --icmp-type 8 -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type 8 -j DROP

Что касается подвешивать проблемы Вы, кажется, имеете, действительно ли Вы уверены, что ввели допустимый IP-адрес? Возможно, можно снабдить префиксом ту команду strace iptables … видеть то, что это делает, в то время как это, кажется, зависает.

59
13.12.2011, 07:41
5 ответов

В том же окне можно просто ввести bash запустить новый. Это эквивалентно закрытию окна и повторному открытию нового.

С другой стороны, можно ввести source ~/.bashrc к источнику .bashrc файл.

79
27.01.2020, 19:33
  • 1
    Никакая потребность выполнить другую оболочку. source корректный путь –  Matteo 13.12.2011, 08:18
  • 2
    также нет никакой потребности ввести длинное слово source. можно просто ввести точку вместо него: . ~/.bashrc. ввод –  rush 13.12.2011, 08:31
  • 3
    @Rush source показывает пользователю, которым называют команду. Я не верю в показ неукомплектованных команд новым пользователям, пока они не понимают то, что делает код. –  n0pe 13.12.2011, 08:34
  • 4
    , что просто определение источника bashrc не обязательно равно перезапуску удара. определенные переменные не являются автоматически неопределенными. опции оболочки автоматически не сброшены. определение источника bashrc только выполняет то, что записано в bashrc., это не откатывает никакие другие изменения в среде. запуск новой сессии удара в старом также не обязательно равен перезапуску удара, поскольку новый процесс наследовал среду от старого. –  lesmana 13.12.2011, 22:57
  • 5
    @MaxMackie, Рассматривающий, как source bashism, который длиннее для ввода все же предложений никакие преимущества перед его портативным устройством через все эквивалентные оболочки, ., Я не вижу точку поощрения никого, нового или опытного, для использования его. –  jw013 15.12.2011, 04:27

Просто используйте

source ~/.bashrc

или

. ~/.bashrc
21
27.01.2020, 19:33

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

3
27.01.2020, 19:33

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

alias refreshenv="bash;exit"

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

3
28.01.2020, 10:51

Поскольку этот вопрос возникает в Google, когда вы ищете, как перезагрузить среду внутри сценария оболочки, вот один из них:

Если вы находитесь внутри скрипта Bash и вам нужно повторно -загрузить переменные среды заново:

Создайте оболочку входа в систему с пустой средой, а затем проверьте ее состояние:

eval "$(exec /usr/bin/env -i "${SHELL}" -l -c "export")"

Обратите внимание, что этот не будет учитывать не -экспортированные переменные . Вместо этого я бы предложил set -o posix && set, но у него есть проблема, заключающаяся в том, что он может сломаться, так как вы не можете просто написать каждую переменную в Bash. Анализ его вывода также непрост, поэтому я бы не рекомендовал его. Хотя вряд ли это то, что вы хотите.

2
22.04.2020, 04:43

Теги

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