Я, должно быть, упустил суть здесь, потому что я использовал бы:
:find **/somefile.txt
(если я знал, что был только один в моем :echo &path
) или, если я хотел их всех:
:args **/somefile.txt
Править: Стоп! Хорошо, таким образом, я действительно упускал суть - Вы хотите список находки, не фактические открытые файлы? Попробуйте (снова из Vim):
!!find . -name somefile.txt
- мое плохое :)
Так как Вы - корень, Вы всегда могли strace -f -e execve -p her_bash_pid
. -f
необходимо, потому что ее оболочка разветвит новый процесс перед exec
, но это также означает наблюдение чего-либо, что дочерние процессы выполняют также.
Если Ваш коллега может изменить некоторые настройки истории для их оболочки удара, то можно получить эту информацию от хвоста-f/home/user/.bash_history. Вот установка, Вам будет нужно, чтобы .bash_history был записан после каждой команды, а не на выходе оболочки:
export PROMPT_COMMAND="history -a"
shopt -s histappend
Я полагал бы, что экранная сессия "идеальное" решение все же.
После быстрого исследования (и некоторые взгляды) я могу дать Вам следующий список возможных вариантов:
conspy
.screen
. Если Вы просто хотите помочь, и не шпионить за нею она могла бы быть готова выполнить свою сессию в экране. Затем можно просто присоединить к ее сессии sudo -u herUsername screen -x
cat /dev/pts/X | tee /dev/pts/X
была первая вещь, которая прибыла по моему мнению. Но после того, как попытка действительно не работает и является очень грязным решением. Каждый символ только печатается к одному из приложенных терминалов (который является причиной вызова tee
также). При испытании его я мог шпионить за каждым вторым символом. С небольшим воображением Вы могли предположить то, что она готова...Экран GNU является IMO лучшая благодарность до сих пор. Если экран GNU (или tmux) не доступен, выполните Вашего коллегу script -f
.
И затем можно наблюдать то, что она делает путем выполнения tail -fn +0 /path/to/typescript
.
Для совместного использования терминала экрана Unix, таким образом, Вы видите исходные данные своего коллеги и производите в режиме реального времени, используют Unix screen
команда.
Вы вводите в команде
screen -d -m -S myscreenname
screen -x myscreenname
(Конечно, замените myscreenname тем, чем Вы хотите, чтобы псевдоним был).
Коллега вводит команду
screen -x myscreenname
Для окончания с совместным использованием терминалов Unix любой человек может ввести в команде
exit
Замечательная особенность экрана - то, что можно ввести в командах от терминала Unix, и коллега видит вывод на своем экране. Это - отличный способ сделать парное администрирование и юниора наставника администраторы Unix.
Чтобы завершить ответ @jordanm ... если вы оба используете одну и ту же учетную запись пользователя, то есть вывод из
echo $HOSTNAME
echo $USER
то же самое для вас и вашего коллеги -, тогда мы можем немного повеселиться.
Мы можем разрешить просмотр вызванных команд в одном терминале, чтобы они сразу же были доступны в другом
Если вы вызовете history
в своем терминале, вы увидите свои предыдущие команды. По умолчанию bash записывает свою историю в конце каждого сеанса в ~/.bash_history file
, перезаписывая существующий файл обновленной версией. Это означает, что если вы вошли в систему с несколькими сеансами bash, только последний из них сохранит свою историю.
-------------------------------------------------------
Отредактируйте свой ~/.bashrc
и добавьте к нему
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
где
history -a
добавляется в файл ~/.bash_history
сразу, а не в конце сеанса
history -c
очищает текущую историю сеансов
history -r
читает файл ~/.bash_history
, к которому мы добавили, обратно в нашу историю сеансов
Примечание:параметр PROMPT_COMMAND
содержит команды, которые выполняются перед каждой новой командной строкой. поэтому команда1 будет сохранена в истории только при выполнении команда2
Вы также можете добавить временную метку рядом с каждой командой для удобства просмотра истории. Снова отредактируйте ~/.bashrc
и добавьте
export HISTTIMEFORMAT="%d/%m/%y %T "
Также хороший хак, если вы хотите использовать несколько терминалов и хотите, чтобы ваша история команд была доступна:)
exec
s. – Jim Paris 08.11.2012, 22:28