setid по умолчанию в терминале

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

grep -zPo '(?s)\nif.*\nendif' file

, либо используйте более гибкий инструмент, такой как pcregrep [!d1 ]

pcregrep -M '(?s)\nif.*?\nendif' file

или perl self

perl -00 -ne 'print if m/^if.*?endif/s' file

В качестве альтернативы для сопоставления структурированного ввода по grep-подобному способу существует sgrep

sgrep '"if" .. ("endif") containing "SOME CODE"' file
2
задан 15 May 2012 в 23:18

5 ответов

Помимо создания псевдонимов для ваших программ, на самом деле невозможно setsid автоматически префикс перед каждой командой , введенной в терминал. Тем не менее, я считаю, что очень полезно создать .inputrc в вашей домашней папке и разместить в нем (наблюдая за цитированием):

Control-o: "setsid "

Теперь вы можете нажать Ctrl + o в терминале, а затем введите команду; это экономит много времени, если вам нужно продолжать повторять его. В размещении кавычек нет ошибки: он позволяет сразу же вводить команду после использования ярлыка. Эта функциональность и многое другое предоставляется библиотекой bash's readline: см. man bash или Ubuntu manpages online .

Что касается вашего второго вопроса, неплохо использовать setsid много и просто зависит от ваших конкретных потребностей. На самом деле это чрезвычайно полезно, потому что, как отмечено в kernel.org ,

setsid создает новый сеанс, если вызывающий процесс не является лидером группы процессов. Вызывающий процесс является лидером нового сеанса, лидером группы процессов новой группы процессов и не имеет управляющего tty ... Вызывающий процесс будет единственным процессом в этой новой группе процессов и в этом новом сеансе.

Следовательно, программа, запущенная с setsid, имеет полную независимость от терминала, с которого он был запущен, поскольку новый процесс был раздвоен.

Существуют также другие подобные, но разные способы отсоединения программы от терминала, такие как nohup или disown. (Следует сказать, что setsid является программой из пакета util-linux, тогда как disown является встроенным bash.) Этот вопрос может представлять большой интерес, поскольку он затрагивает такие смежные темы:

1
ответ дан 2 August 2018 в 01:02

Помимо создания псевдонимов для ваших программ, на самом деле невозможно setsid автоматически префикс перед каждой командой , введенной в терминал. Тем не менее, я считаю, что очень полезно создать .inputrc в вашей домашней папке и разместить в нем (наблюдая за цитированием):

Control-o: "setsid "

Теперь вы можете нажать Ctrl + o в терминале, а затем введите команду; это экономит много времени, если вам нужно продолжать повторять его. В размещении кавычек нет ошибки: он позволяет сразу же вводить команду после использования ярлыка. Эта функциональность и многое другое предоставляется библиотекой bash's readline: см. man bash или Ubuntu manpages online .

Что касается вашего второго вопроса, неплохо использовать setsid много и просто зависит от ваших конкретных потребностей. На самом деле это чрезвычайно полезно, потому что, как отмечено в kernel.org ,

setsid создает новый сеанс, если вызывающий процесс не является лидером группы процессов. Вызывающий процесс является лидером нового сеанса, лидером группы процессов новой группы процессов и не имеет управляющего tty ... Вызывающий процесс будет единственным процессом в этой новой группе процессов и в этом новом сеансе.

Следовательно, программа, запущенная с setsid, имеет полную независимость от терминала, с которого он был запущен, поскольку новый процесс был раздвоен.

Существуют также другие подобные, но разные способы отсоединения программы от терминала, такие как nohup или disown. (Следует сказать, что setsid является программой из пакета util-linux, тогда как disown является встроенным bash.) Этот вопрос может представлять большой интерес, поскольку он затрагивает такие смежные темы:

1
ответ дан 4 August 2018 в 16:34

Помимо создания псевдонимов для ваших программ, на самом деле невозможно setsid автоматически префикс перед каждой командой , введенной в терминал. Тем не менее, я считаю, что очень полезно создать .inputrc в вашей домашней папке и разместить в нем (наблюдая за цитированием):

Control-o: "setsid "

Теперь вы можете нажать Ctrl + o в терминале, а затем введите команду; это экономит много времени, если вам нужно продолжать повторять его. В размещении кавычек нет ошибки: он позволяет сразу же вводить команду после использования ярлыка. Эта функциональность и многое другое предоставляется библиотекой bash's readline: см. man bash или Ubuntu manpages online .

Что касается вашего второго вопроса, неплохо использовать setsid много и просто зависит от ваших конкретных потребностей. На самом деле это чрезвычайно полезно, потому что, как отмечено в kernel.org ,

setsid создает новый сеанс, если вызывающий процесс не является лидером группы процессов. Вызывающий процесс является лидером нового сеанса, лидером группы процессов новой группы процессов и не имеет управляющего tty ... Вызывающий процесс будет единственным процессом в этой новой группе процессов и в этом новом сеансе.

Следовательно, программа, запущенная с setsid, имеет полную независимость от терминала, с которого он был запущен, поскольку новый процесс был раздвоен.

Существуют также другие подобные, но разные способы отсоединения программы от терминала, такие как nohup или disown. (Следует сказать, что setsid является программой из пакета util-linux, тогда как disown является встроенным bash.) Этот вопрос может представлять большой интерес, поскольку он затрагивает такие смежные темы:

1
ответ дан 7 August 2018 в 18:39

Помимо создания псевдонимов для ваших программ, на самом деле невозможно setsid автоматически префикс перед каждой командой , введенной в терминал. Тем не менее, я считаю, что очень полезно создать .inputrc в вашей домашней папке и разместить в нем (наблюдая за цитированием):

Control-o: "setsid "

Теперь вы можете нажать Ctrl + o в терминале, а затем введите команду; это экономит много времени, если вам нужно продолжать повторять его. В размещении кавычек нет ошибки: он позволяет сразу же вводить команду после использования ярлыка. Эта функциональность и многое другое предоставляется библиотекой bash's readline: см. man bash или Ubuntu manpages online .

Что касается вашего второго вопроса, неплохо использовать setsid много и просто зависит от ваших конкретных потребностей. На самом деле это чрезвычайно полезно, потому что, как отмечено в kernel.org ,

setsid создает новый сеанс, если вызывающий процесс не является лидером группы процессов. Вызывающий процесс является лидером нового сеанса, лидером группы процессов новой группы процессов и не имеет управляющего tty ... Вызывающий процесс будет единственным процессом в этой новой группе процессов и в этом новом сеансе.

Следовательно, программа, запущенная с setsid, имеет полную независимость от терминала, с которого он был запущен, поскольку новый процесс был раздвоен.

Существуют также другие подобные, но разные способы отсоединения программы от терминала, такие как nohup или disown. (Следует сказать, что setsid является программой из пакета util-linux, тогда как disown является встроенным bash.) Этот вопрос может представлять большой интерес, поскольку он затрагивает такие смежные темы:

1
ответ дан 10 August 2018 в 07:19

Помимо создания псевдонимов для ваших программ, на самом деле невозможно setsid автоматически префикс перед каждой командой , введенной в терминал. Тем не менее, я считаю, что очень полезно создать .inputrc в вашей домашней папке и разместить в нем (наблюдая за цитированием):

Control-o: "setsid "

Теперь вы можете нажать Ctrl + o в терминале, а затем введите команду; это экономит много времени, если вам нужно продолжать повторять его. В размещении кавычек нет ошибки: он позволяет сразу же вводить команду после использования ярлыка. Эта функциональность и многое другое предоставляется библиотекой bash's readline: см. man bash или Ubuntu manpages online .

Что касается вашего второго вопроса, неплохо использовать setsid много и просто зависит от ваших конкретных потребностей. На самом деле это чрезвычайно полезно, потому что, как отмечено в kernel.org ,

setsid создает новый сеанс, если вызывающий процесс не является лидером группы процессов. Вызывающий процесс является лидером нового сеанса, лидером группы процессов новой группы процессов и не имеет управляющего tty ... Вызывающий процесс будет единственным процессом в этой новой группе процессов и в этом новом сеансе.

Следовательно, программа, запущенная с setsid, имеет полную независимость от терминала, с которого он был запущен, поскольку новый процесс был раздвоен.

Существуют также другие подобные, но разные способы отсоединения программы от терминала, такие как nohup или disown. (Следует сказать, что setsid является программой из пакета util-linux, тогда как disown является встроенным bash.) Этот вопрос может представлять большой интерес, поскольку он затрагивает такие смежные темы:

1
ответ дан 15 August 2018 в 19:20

Другие вопросы по тегам:

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