Метод 1:
Для выполнения "df-h" управляют как корень:
su -c "df -h"
Это предложит пользователю пароль root.
Метод 2:
С другой стороны, в/etc/sudoers находят эту строку:
базируйтесь ВСЕ = (ВСЕ) ВСЕ
и копируйте его для своего пользователя johnsmith, что Вы хотите дать административные привилегии:
johnsmith ВСЕ = (ВСЕ) ВСЕ
Таким образом, johnsmith сможет выполнить любую команду, требующую корневых прав первым вводом "sudo" перед командой:
sudo df -h
Метод 3:
Можно использовать ssh для выполнения команды на той же машине:
ssh root@localhost "def -h"
выполнит ту же команду в Вашем сервере. Если Вы не хотите быть предложенными пароль, следовать этому учебному руководству для ssh без пароля:
http://linuxproblem.org/art_9.html
Метод 4:
Используйте gksudo (графический sudo):
gksudo "gnome-open %u"
Или, на KDE kdesu
:
kdesu
Односторонняя дорога:
sed -e :a -e 's/^.\{1,29\}$/&0/;ta' -e n file
Соответствуйте любому символу (.) и соответствуйте 1 - 29 символам того же типа (1,29). Если успешное соответствие, помещенное '0' позади подобранного шаблона (&
). Когда сбои соответствия, что означает, когда количество символов, исключая первый символ превышает 29, остановите его, и следовательно мы получаем строковый нуль, дополненный 30.
n
в конце просто читает следующую строку и печатает его. Таким образом, четные строки печатаются нетронутые.
Выполнение вышеупомянутого сценария:
$ sed -e :a -e 's/^.\{1,29\}$/&0/;ta' -e n file
FSDFDSFSD000000000000000000000
FDSFD
FHGDHFDHGHFGHGHGF0000000000000
HHGDF
GFDGDFGFDG00000000000000000000
GFDGFDGFDGDFGDGD
Другой подход:
sed 's/$/000000000000000000000000000000/;s/\(.\{30\}\).*/\1/;n'
Это было бы быстрее, чем итерационный подход при добавлении одного символа за один раз, но отметило бы, что усечет строки, которые были дольше, чем 30 символами во-первых.
00000000000000000000 FDSFD 000000000000HGHGF HHGDF 0000000000000000000 GFDGFDGFDGDFGDGD
– Mirage 06.02.2013, 10:12