Если Вы хотите, чтобы Ваша сессия заблокировалась при всех обстоятельствах, Вам нужны полномочия пользователя root. Нет никакого пути вокруг этого. Пользовательский корень всегда может kill -9
Ваши процессы. Я удивлен, что завершение работы не заставляет гнома испустить, "сохраняют - самостоятельно" сигнал. Также я полагаю, что скрипты "Постсессии" только запущены после того, как сессия гнома завершилась и (я верю) непосредственно перед тем, как Xserver завершается, подразумевая, что это не место, где Вы хотели бы поместить предупреждение, что это, как предполагается, обнаруживается на экране (если я корректен).
То, что может работать, является приложением Gnome, которое a) воздействует, "сохраняют - самостоятельно" событие гнома И b) воздействует на SIGTERM таким же образом, он реагирует на "сейф - самостоятельно". Кроме того существует мало, можно сделать, особенно без полномочий пользователя root.
Однако можно решить некорневую проблему: Запишите сценарий PostSession, который делает то, что Вы хотите и предлагаете кому-то с полномочиями пользователя root развернуть его на всех машинах, поскольку это - разумный инструмент, который помогает пользователям много. Обычно парням с полномочиями пользователя root платят для делания/сохранения пользователей счастливыми.:-)
Какова проблема, которую Вы пытаетесь решить? Почему может Вы не выход из системы Вашей сессии, когда pendrive включается?
У Вас может быть dbus клиент, который отображается, "Не забывают отключать устройство!" когда gvfs объявляет о размонтировании Файловой системы на USB-устройстве. Но я не знаю, как хорошо, который работает или даже служит Вашим целям.
При выполнении vi или энергия с '-', поскольку аргумент заставляет его считать файл для редактирования от стандартного входа. Следовательно:
grep -e Peugeot -e PeuGeot carlist.txt | vi -
сделает то, в чем Вы нуждаетесь.
Необходимо использовать перенаправление вывода:
grep ... > newfile.txt && vi newfile.txt
Кроме того, я думаю Ваш grep
может быть улучшен:
grep 'Peu[gG]eot' carlist.txt > newfile.txt && vi newfile.txt
В ~/bin/r
:
#!/bin/sh
[ $# -eq 0 ] && set -- -;
exec vi -R "$@"
в ~/.vimrc
:
: au StdinReadPost * set buftype=nofile
Затем:
ls |r
grep -e Peugeot -e PeuGeot carlist.txt | r
и я имею
r- () { "$@" | r; }
в моем ~/.bashrc,
так
r- ls -l
Существует много эффективных способов сделать то, что Вы хотите, или в vi (m) или снаружи vi (m).
Выполните свою команду, произведите (временный) файл, затем отредактируйте файл (см. Joseph R. 's ответ),
grep -e"Peu[gG]eot" carlist.txt && vi /tmp/peugeot.txt
Выполните свою команду (в фоновом режиме), чтобы произвести временный файл и отредактировать файл, с помощью ": e!" для обновления файла, поскольку это производится (это полезно для файлов журнала и других файлов, производимых другим процессом, например, кроном?),
grep -e "Peu[gG]eot" carlist.txt > /tmp/peugeot.txt &
vi /tmp/peugeot.txt
Выполненный vi (m), и выполненный дочерний процесс, чтобы создать временный файл и затем считать его,
vi
:!grep -e "Peu[gG]eot" carlist.txt > /tmp/peugeot.txt
:r /tmp/peugeot.txt
Или, просто переключитесь на файл,
:e /tmp/peugeot.txt
Выполненный vi (m), и использование двойной удар"!!" чтобы иметь vi выполняет дочернюю команду, беря результаты и вставляя их в текущее местоположение (перезаписывает текущую строку, поэтому удостоверьтесь, что у Вас есть пустая строка),
vi
i
here
empty
there
<esc>
kk
!!grep -e "Peu[gG]eot" carlist.txt
И теперь можно записать файл (если Вы хотите к) к любому имени файла,
:w /tmp/someotherfilename.txt
И ответ Petr Uzel также хорош,
grep -e "Peu[gG]eot" carlist.txt | vi -
Который читает из stdin
Перенаправление вывода может также использоваться как это:
vi <(grep ...)
Даже несколько выводов команды могут быть перенаправлены, как будто они были сохранены в отдельных файлах:
vim -d <(ls) <(ls -a)
Помимо vim -
, вы также можете использовать подстановку процесса, используя синтаксис <(command)
в пример:
vim <(echo This is example.)
vim <(cat /etc/hosts)
См. также:
stdin
. В некоторых случаях необходимо будет перенаправить отstderr
кому:stdin
, например:valgrind my_file.out 2>&1 | vi -
– Ciro Costa 30.09.2015, 06:08grep
поиск, окрашивающий (состоявший из непечатаемых символов) в Vim? Можно всегда просто делать поиск в Vim. – Wildcard 15.11.2016, 08:25