Я могу вставить sudo через команду ^?

Проверьте дескриптор файла № 1 (STDOUT) в /proc/$PID/fd/. Ядро представляет этот файл как символьную ссылку на файл, к которому перенаправляется дескриптор.

$ readlink -f /proc/20361/fd/1
/tmp/file
4
28.04.2011, 14:11
3 ответа

Я думаю с помощью завершения истории, намного более универсальный способ сделать это

$ sudo !!

Большинство оболочек имеет некоторый ярлык для предыдущей команды. Тот работает в ударе и zsh. Существуют различные способы, которыми можно сделать замену, но обычно они лучше всего оставлены для удаления или изменения битов, если Вы хотите расшириться, это, просто захватив все это является самый простой путь. Можно добавить, что Вы любите прежде и после!! подробно остановиться на предыдущей команде.

Править: Исходный вопрос был о предварительном ожидании к предыдущей команде который вышеупомянутые покрытия приятно. Если бы Вы хотите изменить что-то в нем, когда комментатор ниже синтаксиса пошел бы как это:

$ sudo !!:s/search/replace/

... где 'поиск' является строкой для соответствия против и замена... хорошо Вы получаете идею.

6
27.01.2020, 20:49
  • 1
    Так, более того, что, если я работаю echo Calen и требуемый, чтобы вместо этого работать sudo echo Caleb.. Я мог затем сделать что-то как.. sudo !!^Calen^Caleb ? –  Default 28.04.2011, 14:56
  • 2
    Правильный синтаксис для этого был бы sudo !!:s/Calen/Caleb/ –  Caleb 28.04.2011, 15:08
  • 3
    С ударом Вы можете set +o histexpand если Вы хотите выключить его. Это - то, что я делаю, потому что любой ! в двойных кавычках инициирует ошибку (как echo "Hello, World!") –  Benoit 28.04.2011, 15:41

Не работает на меня в ударе:

$ whoami
mikel
$ ^^sudo
-bash: :s^^sudo: no previous substitution

или zsh:

$ ^^sudo
$

или даже tcsh, который я думаю изобретенный что синтаксис:

% ^^sudo
No previous left hand side.

!! делает задание:

$ whoami
mikel
$ sudo !!
sudo whoami
root
3
27.01.2020, 20:49

ДА. Можно сделать это. например, работать ls команда в / корневом каталоге, можно сделать это как:

$ ls
$ ^ ^sudo 

Вторая команда выполнится как "sudo ls"

Следите к нему, что Вы добавляете одно "пространство" после sudo во второй строке.

0
27.01.2020, 20:49
  • 1
    Интересная идея, но это не работает ни один (по крайней мере, в моей системе). Я не вижу, как это было бы также, потому что нет никакого пространства в ls занимать место. –  Mikel 28.04.2011, 14:25
  • 2
    Это действительно работало над моей debian системой с версией удара как> удар GNU, версия 3.2.39 (1) - команда Free Software Foundation, Inc. –  SHW 28.04.2011, 14:27
  • 3
    не работает на меня. Я думаю sudo !! лучшее решение здесь. –  Caleb 28.04.2011, 14:47
  • 4
    Наверное. Я думаю,> sudo!! хороший ответ на этот вопрос. –  SHW 28.04.2011, 14:48
  • 5
    Для этого (поскольку Вы ввели его) для работы в большинстве версий удара у Вас также будет к оставленному пространство ПРЕЖДЕ ls в предыдущей команде. –  Caleb 28.04.2011, 15:18

Теги

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