Ну, не, что Вы ожидаете, но это работает:
history | fgrep -v history | tail -3 | sed 's_^ *__' | cut -f 2- | bash
И можно создать функцию для этого:
myFunc(){
history | egrep -v 'history|myFunc' | tail ${1} | sed 's_^ *__' | cut -f 2- | bash
}
Таким образом, можно назвать его как:
myFunc -3
Да, все, что необходимо знать, является идентификатором процесса (PID) процесса. Можно найти это с ps
команда, или pidof
команда.
kill $(pidof ping)
Должен работать от любой другой оболочки. Если это не делает, можно использовать PS и grep для ping.
Если Вы вводите top
в другом окне терминала это перечислит все выполнение процесса. Отметьте идентификатор процесса Вашего job
там, Затем нажмите q
оставить тот экран. Затем kill
процесс, как обычно.
top
кажется, не показывает все определенные процессы, работающие в оболочке (например, она не показывает ping
). Это действительно дает мне PID для эмулятора терминала, но это уничтожает эмулятор терминала, как Вы ожидали бы.
– DQdlM
11.12.2012, 21:51
top -U yourusername
в терминале это перечислит только процесс, который Вы используете.
– arthankamal
12.12.2012, 05:25
Я обычно делаю что-то вроде этого:
ps aux | grep $PROCESS | grep -v grep | awk '{print $2 " " $11}'
Например, если $PROCESS = "удар", то это - вывод от моей текущей сессии:
2683 bash
4481 bash
5695 bash
Затем я был бы kill $PID
поскольку, какой бы ни /bin/bash
Я больше не хочу работать.
ps
, grep
и (дополнительно) awk
полезны для выслеживания PIDs к kill
.