Установка и использование sudo
. Это - то и самый нормальный способ сделать эти вещи. dhclient
действительно полномочия пользователя root потребностей, нет никакого пути вокруг этого.
Позвольте определенным пользователям выполнять единственную команду с полномочиями пользователя root. Это может быть настроено в a /etc/sudoers
файл как это (использование редактирования visudo
):
Cmnd_Alias DHCP = /usr/sbin/dhclient
User_Alias DCHPUSERS = millert, mikef, dowdy
DCHPUSERS ALL = NOPASSWD: DHCP
Выше всего один способ настроить sudo. Если у Вас есть много пользователей для администрирования как это, я предлагаю использовать группу локального пользователя вместо того, чтобы указать отдельных пользователей.
в VI
DO
:1,$d
, чтобы удалить все строки.
:
вводит команду (и перемещает курсор на дно).
1, $
является признаком того, какие строки следующие команды ( D
) должны работать над. В этом случае диапазон от линии один до последней строки (указан $
, поэтому вам не нужно знать количество строк в документе).
Финал D
означает удалить указанные строки.
Существует более короткая форма (:% D
, но я не нахожусь, никогда не использую его. : 1, $ D
может быть легче «адаптировано» к E.G. : 4, $ - 2d
Оставляя только первые 3 и последние 2 строки, удаляя остальные.
Я бы порекомендовал, чтобы вы только что сделали это (должны работать в любой SCIX-совместимой оболочке):
> test.txt
Если вы действительно хотите сделать это с VI, вы можете сделать:
Я всегда использую ggVG
gg
прыжки к началу текущего файла редактирования V
(с заглавной буквы v) выберет текущую строку. В этом случае первая строка текущего файла редактированияG
(заглавная g) перепрыгнет в конец файла. В этом случае, так как я выбрал первую строку, G
выберет весь текст в этом файле. Затем можно просто нажать d
или x
, чтобы удалить все строки.
Если ваш курсор находится на первой строке (если нет, введите: GG
или 1G
), то вы можете просто использовать DG
. Он удалит все строки из текущей строки до конца файла. Итак, чтобы убедиться, что вы удалите все строки из файла, вы можете смешивать оба вместе, что было бы: GGDG
(в то время как в командном режиме).
ИЛИ % D
в режиме EX, пример командной строки: VIM +% D Foo.bar
.
Связан: Как я могу удалить в Vim весь текст из текущей строки до конца файла?
Я ленивый чувак, и мне нравится держать это просто. GGDG
- пять клавишных конструкций, в том числе Shift
GG
идет к первой строке в файле, D
- это начало D
Элете глагол и G
- это движение, чтобы перейти к нижней части файла. Вербозливо, он идет к началу файла и удалить все до конца плитки.
В VI I использую
:%d
, где
:
говорит VI в командный режим %
означает все линии D
: Удалить в командной строке,
> test.txt
также будет делать.
В чем проблема с DD?
dd if=/dev/null of=test.txt
, где
/ dev / null
- это специальный файл байта , если
является входным файлом
Опутский файл обратите внимание, что в вашем вопросе echo > test.txt
создает файл с разрывом в одну строку, а не пустой файл.
Из оболочки, рассмотрите возможность использования echo -n > test.txt
или : > test.txt
.
Хотя я обычно использую команду редактирования vi (я использую ggdG
), вы также можете вызвать оболочку со ссылкой на текущий файл так:
:!:>%
Он почти такой же лаконичный, как ggdG
, но более трудный для ввода, и вы также должны подтвердить, что хотите перезагрузить измененный файл, поэтому я не особо рекомендую это делать в данном случае, но знать, как использовать команды оболочки от vi вроде этой, очень полезно.
:
:
инициирует команду vi!
инициализируйте команду оболочки :
это команда сборки оболочки с пустым выводом>
перенаправить вывод%
vi заменяет это на имя текущего файла Предлагаемая : 1,$d
тоже неплохо, и пока я этим занимаюсь, есть еще 1GdG
Вы можете использовать трюк, чтобы удалить большое количество строк. Убедитесь, что вы не находитесь в режиме вставки (, нажмите ESC ), затем введите 1000dd.
Я набираю gg
, чтобы добраться до верхней части строк, а затем делаю 100 dd
. Это переводит указатель на верхнюю строку редактора и очищает оттуда 100 строк. Возможно, вам придется изменить число, чтобы добавить больше строк, если файл длиннее.
> file.txt
Вам даже не нужно открывать vi, если вы действительно этого не хотите.
Тип :
и%d
(Не в режиме вставки. Если это так, сначала нажмите escape)
Я делаю dgg
, который удаляет все строки из курсора (, который обычно является EOF, когда вы открываете файл )вверху, что является самым быстрым.