Вы можете использовать ps
для этого, ps
сообщит снимок текущих процессов. То, что вы ищете, может быть ps aux
.
a = показать процессы для всех пользователей
u = отобразить пользователя / владельца процесса
x = также показать процессы, не подключенные к терминалу
https://unix.stackexchange.com/a/106848 / 149009
Вы также можете использовать ps x -u user
, чтобы увидеть, какие процессы выполняет конкретный пользователь.
Это попытка ответить, как это сделать с помощью bash
или zsh
В zsh
функция precmd
аналогична PROMPT_COMMAND
в bash
тем, что она выполняется перед каждым новым приглашением.
Пример использования bash:
$ function precmd() {
echo ssh copy the files to another machine
}
$ export OLD_PROMPT=$PROMPT_COMMAND
$ unset PROMPT_COMMAND && export PROMPT_COMMAND="precmd; $PROMPT_COMMAND"
ssh copy the files to another machine
$ pwd
/home/jmunsch
ssh copy the files to another machine
$ export PROMPT_COMMAND=$OLD_PROMPT
Пример использования zsh:
% function precmd() {
echo ssh copy the files to another machine
}
% pwd
/home/jmunsch
ssh copy the files to another machine
% unset -f precmd
Добавьте это в.zshrc
:
function precmd() {
# across terminals, sessions
setopt APPEND_HISTORY
export machines="192.168.43.70 192.168.43.71 192.168.43.72"
for m in $machines; do
scp ~/.zsh_history $m:~/.zsh_history
done
}
Для.bashrc
:
function precmd() {
# since bash generally saves history on session exit
history -a # append session to history
history -c # clear session
history -r # read from history
export machines="192.168.43.70 192.168.43.71 192.168.43.72"
for m in $machines; do
scp ~/.zsh_history $m:~/.zsh_history
done
}
export PROMPT_COMMAND="precmd; $PROMPT_COMMAND"
Чтобы было проще это сделать
.ssh/ssh_config
. связанные:
Некоторые предположения об использовании здесь: только 1 человек использует 1 сеанс одновременно, все машины подключены к сети, и все истории успешно обновляются.
Возможно, вы сможете добавить несколько дополнительных шагов для объединения историй или сохранить порядок историй.
Использование git:
Насколько я понимаю, это нетривиальная проблема. Скажем, например, вы входите на две машины с одной и той же историей, но затем одновременно вводите две разные команды; сохраняются ли обе команды, расходятся ли истории, перезаписывают ли они друг друга?
Для дальнейших исследований изучите распределенную согласованность/консенсус: