Хорошо, я потратил слишком много времени на выяснение того, как заставить это работать.
По крайней мере, последняя его часть.
Последний шаг, с mkdir CD_root и mkisofs слегка выключен .
Если вы сделали
sudo mount -o loop mini.iso /mnt
cp -fr /mnt/ ./new_image
sudo umount /mnt
Следующие шаги в вашем примере нечеткие. Редактирование text.cfg и размещение нажатия.txt (имя, которое я использовал) является правильным. Итак, следующее:
cd new_image
chmod 777 .
vim pressed.txt
vim text.cfg
Следующий шаг:
cd ..
mkisofs -o output.iso -b isolinux.bin -l -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table new_image
Я потерялся при работе с isolinux / isoliunux.bin и CD_root. Appartnetly копия-паста, которую вы украли с сайта syslinux, не относится к изображениям ubuntu.
Надеюсь, это поможет всем!
У меня есть еще одно приятное решение, которое добавляет немного доверия:
Использовать завершение bash для автоматической замены слов позади sudo
с их псевдонимами при нажатии вкладки.
Сохраните это как /etc/bash_completion.d/sudo-alias.bashcomp
, и он должен автоматически загружаться при запуске интерактивной оболочки:
_comp_sudo_alias ( ) {from = "$ 2"; COMPREPLY = (), если [[$ COMP_CWORD == 1]]; затем COMPREPLY = ("$ (alias -p | grep" ^ * alias $ from = "| sed -r" s / ^ * alias [^ =] + = '(. *)' $ / \ 1 / ")" ) return 0 fi return 1} complete -o bashdefault -o default -F _comp_sudo_alias sudo
Затем войдите в новый терминал, и вам должно быть хорошо идти.
У меня есть другое решение, в котором вам не нужно добавлять sudo
в качестве псевдонима. Я запускаю Linux Mint 17.3, но он должен быть очень похож на Ubuntu.
Когда вы являетесь пользователем root, тогда .profile
запускается из его домашнего каталога. Если вы не знаете, что такое домашний каталог под root, вы можете проверить:
sudo su echo $ HOME
Как вы можете видеть, дом root
- / root /
. Проверьте его содержимое:
cd $ HOME ls -al
Должен быть файл .profile
. Откройте файл и добавьте следующие строки:
, если ["$ BASH"]; то если [-f ~ / .bash_aliases], то. ~ / .bash_aliases fi fi
В основном, этот скрипт bash выполняет проверку файла с именем .bash_aliases
. Если файлы присутствуют, он выполняет файл.
Сохраните файл .profile
и создайте свои псевдонимы в .bash_aliases
. Если вы уже подготовили файл псевдонимов, скопируйте файл в это место
Перезапустите терминал, и вы готовы к работе!
Высший проголосовавший ответ - отличный. Однако, если вы наберете sudo -i
и поднимите сообщение sudo ( #
), вы не будете использовать псевдонимы, которые хотите использовать.
To используйте свои псевдонимы (и все остальное) в приглашении #
, используйте:
sudo cp "$ PWD" /. bashrc /root/.bashrc
Где «$ PWD» автоматически расширяется до «/ home / YOUR_USER_NAME»
Псевдонимы специфичны для пользователя - вам нужно определить их в /root/.bashrc
Я написал для него функцию Bash, которая затеняет sudo
.
Он проверяет, имеет ли я псевдоним для данной команды и запускает команду aliased вместо буквенного с sudo
в этом случае.
Вот моя функция как однострочный:
sudo () {если псевдоним «$ 1» & amp; gt; ; / dev / null; затем $ (введите «$ 1» | sed -E '/ ^ .* `(. *). $ / \ 1 /')" $ {@: 2} "; else command sudo $ @; fi}
Или красиво отформатирован:
sudo () {если псевдоним «$ 1» & gt; & gt; / dev / null; затем $ (введите «$ 1» | sed -E 's /^.* `(. *). $ / \ 1 /')" $ {@: 2} "else command sudo" $ @ "fi}
Вы можете добавить его в свой файл .bashrc
, не забудьте его загрузить или перезапустить сеанс терминала, чтобы применить изменения.
@ Алвинс самый короткий. Без сомнений! : -)
Однако я подумал о решении командной строки для выполнения команды aliased в sudo, где нет необходимости переопределять sudo
с псевдонимом
Вот мое предложение для тех, кому это может быть интересно:
type -a & YOUR COMMAND HERE & gt; | grep -o -P "(? & lt; = \`). * (? = ') "| xargs sudo
В случае команды ll
type -a ll | grep -o -P "(? & lt; = \`). * (? = ') "| xargs sudo
, когда у вас есть псевдоним (например: ll
), команда типа -a
] возвращает выражение с псевдонимом:
$ type -a ll ll является псевдонимом `ls -l '
с grep
вы выбираете текст между акцентом `и апострофом 'в этом случае ls -l
И xargs
выполняет выделенный текст ls -l
как параметр sudo
.
Да, немного дольше, но полностью чист ;-) Не нужно переопределять sudo
как псевдоним. [ ! d24]
У меня есть еще одно приятное решение, которое добавляет немного доверия:
Использовать завершение bash для автоматической замены слов позади sudo
с их псевдонимами при нажатии вкладки.
Сохраните это как /etc/bash_completion.d/sudo-alias.bashcomp
, и он должен автоматически загружаться при запуске интерактивной оболочки:
_comp_sudo_alias ( ) {from = "$ 2"; COMPREPLY = (), если [[$ COMP_CWORD == 1]]; затем COMPREPLY = ("$ (alias -p | grep" ^ * alias $ from = "| sed -r" s / ^ * alias [^ =] + = '(. *)' $ / \ 1 / ")" ) return 0 fi return 1} complete -o bashdefault -o default -F _comp_sudo_alias sudo
Затем войдите в новый терминал, и вам должно быть хорошо идти.
У меня есть другое решение, в котором вам не нужно добавлять sudo
в качестве псевдонима. Я запускаю Linux Mint 17.3, но он должен быть очень похож на Ubuntu.
Когда вы являетесь пользователем root, тогда .profile
запускается из его домашнего каталога. Если вы не знаете, что такое домашний каталог под root, вы можете проверить:
sudo su echo $ HOME
Как вы можете видеть, дом root
- / root /
. Проверьте его содержимое:
cd $ HOME ls -al
Должен быть файл .profile
. Откройте файл и добавьте следующие строки:
, если ["$ BASH"]; то если [-f ~ / .bash_aliases], то. ~ / .bash_aliases fi fi
В основном, этот скрипт bash выполняет проверку файла с именем .bash_aliases
. Если файлы присутствуют, он выполняет файл.
Сохраните файл .profile
и создайте свои псевдонимы в .bash_aliases
. Если вы уже подготовили файл псевдонимов, скопируйте файл в это место
Перезапустите терминал, и вы готовы к работе!
Высший проголосовавший ответ - отличный. Однако, если вы наберете sudo -i
и поднимите сообщение sudo ( #
), вы не будете использовать псевдонимы, которые хотите использовать.
To используйте свои псевдонимы (и все остальное) в приглашении #
, используйте:
sudo cp "$ PWD" /. bashrc /root/.bashrc
Где «$ PWD» автоматически расширяется до «/ home / YOUR_USER_NAME»
Псевдонимы специфичны для пользователя - вам нужно определить их в /root/.bashrc
Я написал для него функцию Bash, которая затеняет sudo
.
Он проверяет, имеет ли я псевдоним для данной команды и запускает команду aliased вместо буквенного с sudo
в этом случае.
Вот моя функция как однострочный:
sudo () {если псевдоним «$ 1» & amp; gt; ; / dev / null; затем $ (введите «$ 1» | sed -E '/ ^ .* `(. *). $ / \ 1 /')" $ {@: 2} "; else command sudo $ @; fi}
Или красиво отформатирован:
sudo () {если псевдоним «$ 1» & gt; & gt; / dev / null; затем $ (введите «$ 1» | sed -E 's /^.* `(. *). $ / \ 1 /')" $ {@: 2} "else command sudo" $ @ "fi}
Вы можете добавить его в свой файл .bashrc
, не забудьте его загрузить или перезапустить сеанс терминала, чтобы применить изменения.
@ Алвинс самый короткий. Без сомнений! : -)
Однако я подумал о решении командной строки для выполнения команды aliased в sudo, где нет необходимости переопределять sudo
с псевдонимом
Вот мое предложение для тех, кому это может быть интересно:
type -a & YOUR COMMAND HERE & gt; | grep -o -P "(? & lt; = \`). * (? = ') "| xargs sudo
В случае команды ll
type -a ll | grep -o -P "(? & lt; = \`). * (? = ') "| xargs sudo
, когда у вас есть псевдоним (например: ll
), команда типа -a
] возвращает выражение с псевдонимом:
$ type -a ll ll является псевдонимом `ls -l '
с grep
вы выбираете текст между акцентом `и апострофом 'в этом случае ls -l
И xargs
выполняет выделенный текст ls -l
как параметр sudo
.
Да, немного дольше, но полностью чист ;-) Не нужно переопределять sudo
как псевдоним. [ ! d24]
У меня есть еще одно приятное решение, которое добавляет немного доверия:
Использовать завершение bash для автоматической замены слов позади sudo
с их псевдонимами при нажатии вкладки.
Сохраните это как /etc/bash_completion.d/sudo-alias.bashcomp
, и он должен автоматически загружаться при запуске интерактивной оболочки:
_comp_sudo_alias ( ) {from = "$ 2"; COMPREPLY = (), если [[$ COMP_CWORD == 1]]; затем COMPREPLY = ("$ (alias -p | grep" ^ * alias $ from = "| sed -r" s / ^ * alias [^ =] + = '(. *)' $ / \ 1 / ")" ) return 0 fi return 1} complete -o bashdefault -o default -F _comp_sudo_alias sudo
Затем войдите в новый терминал, и вам должно быть хорошо идти.
У меня есть другое решение, в котором вам не нужно добавлять sudo
в качестве псевдонима. Я запускаю Linux Mint 17.3, но он должен быть очень похож на Ubuntu.
Когда вы являетесь пользователем root, тогда .profile
запускается из его домашнего каталога. Если вы не знаете, что такое домашний каталог под root, вы можете проверить:
sudo su echo $ HOME
Как вы можете видеть, дом root
- / root /
. Проверьте его содержимое:
cd $ HOME ls -al
Должен быть файл .profile
. Откройте файл и добавьте следующие строки:
, если ["$ BASH"]; то если [-f ~ / .bash_aliases], то. ~ / .bash_aliases fi fi
В основном, этот скрипт bash выполняет проверку файла с именем .bash_aliases
. Если файлы присутствуют, он выполняет файл.
Сохраните файл .profile
и создайте свои псевдонимы в .bash_aliases
. Если вы уже подготовили файл псевдонимов, скопируйте файл в это место
Перезапустите терминал, и вы готовы к работе!
Высший проголосовавший ответ - отличный. Однако, если вы наберете sudo -i
и поднимите сообщение sudo ( #
), вы не будете использовать псевдонимы, которые хотите использовать.
To используйте свои псевдонимы (и все остальное) в приглашении #
, используйте:
sudo cp "$ PWD" /. bashrc /root/.bashrc
Где «$ PWD» автоматически расширяется до «/ home / YOUR_USER_NAME»
Я написал для него функцию Bash, которая затеняет sudo
.
Он проверяет, имеет ли я псевдоним для данной команды и запускает команду aliased вместо буквенного с sudo
в этом случае.
Вот моя функция как однострочный:
sudo () {если псевдоним «$ 1» & amp; gt; ; / dev / null; затем $ (введите «$ 1» | sed -E '/ ^ .* `(. *). $ / \ 1 /')" $ {@: 2} "; else command sudo $ @; fi}
Или красиво отформатирован:
sudo () {если псевдоним «$ 1» & gt; & gt; / dev / null; затем $ (введите «$ 1» | sed -E 's /^.* `(. *). $ / \ 1 /')" $ {@: 2} "else command sudo" $ @ "fi}
Вы можете добавить его в свой файл .bashrc
, не забудьте его загрузить или перезапустить сеанс терминала, чтобы применить изменения.
Псевдонимы специфичны для пользователя - вам нужно определить их в /root/.bashrc
@ Алвинс самый короткий. Без сомнений! : -)
Однако я подумал о решении командной строки для выполнения команды aliased в sudo, где нет необходимости переопределять sudo
с псевдонимом
Вот мое предложение для тех, кому это может быть интересно:
type -a & YOUR COMMAND HERE & gt; | grep -o -P "(? & lt; = \`). * (? = ') "| xargs sudo
В случае команды ll
type -a ll | grep -o -P "(? & lt; = \`). * (? = ') "| xargs sudo
, когда у вас есть псевдоним (например: ll
), команда типа -a
] возвращает выражение с псевдонимом:
$ type -a ll ll является псевдонимом `ls -l '
с grep
вы выбираете текст между акцентом `и апострофом 'в этом случае ls -l
И xargs
выполняет выделенный текст ls -l
как параметр sudo
.
Да, немного дольше, но полностью чист ;-) Не нужно переопределять sudo
как псевдоним. [ ! d24]
У меня есть еще одно приятное решение, которое добавляет немного доверия:
Использовать завершение bash для автоматической замены слов позади sudo
с их псевдонимами при нажатии вкладки.
Сохраните это как /etc/bash_completion.d/sudo-alias.bashcomp
, и он должен автоматически загружаться при запуске интерактивной оболочки:
_comp_sudo_alias ( ) {from = "$ 2"; COMPREPLY = (), если [[$ COMP_CWORD == 1]]; затем COMPREPLY = ("$ (alias -p | grep" ^ * alias $ from = "| sed -r" s / ^ * alias [^ =] + = '(. *)' $ / \ 1 / ")" ) return 0 fi return 1} complete -o bashdefault -o default -F _comp_sudo_alias sudo
Затем войдите в новый терминал, и вам должно быть хорошо идти.
У меня есть другое решение, в котором вам не нужно добавлять sudo
в качестве псевдонима. Я запускаю Linux Mint 17.3, но он должен быть очень похож на Ubuntu.
Когда вы являетесь пользователем root, тогда .profile
запускается из его домашнего каталога. Если вы не знаете, что такое домашний каталог под root, вы можете проверить:
sudo su echo $ HOME
Как вы можете видеть, дом root
- / root /
. Проверьте его содержимое:
cd $ HOME ls -al
Должен быть файл .profile
. Откройте файл и добавьте следующие строки:
, если ["$ BASH"]; то если [-f ~ / .bash_aliases], то. ~ / .bash_aliases fi fi
В основном, этот скрипт bash выполняет проверку файла с именем .bash_aliases
. Если файлы присутствуют, он выполняет файл.
Сохраните файл .profile
и создайте свои псевдонимы в .bash_aliases
. Если вы уже подготовили файл псевдонимов, скопируйте файл в это место
Перезапустите терминал, и вы готовы к работе!
Высший проголосовавший ответ - отличный. Однако, если вы наберете sudo -i
и поднимите сообщение sudo ( #
), вы не будете использовать псевдонимы, которые хотите использовать.
To используйте свои псевдонимы (и все остальное) в приглашении #
, используйте:
sudo cp "$ PWD" /. bashrc /root/.bashrc
Где «$ PWD» автоматически расширяется до «/ home / YOUR_USER_NAME»
Псевдонимы специфичны для пользователя - вам нужно определить их в /root/.bashrc
sudo -s
или sudo -i
(и only < / i>, если он запускается сам по себе, чтобы получить корневую оболочку, not i> с командой sudo -s ...
или sudo -i command ...
) или sudo bash
или sudo su
, или ситуация, когда вы включили учетные записи root и таким образом имеете корневую оболочку. Когда пользователь, не являющийся пользователем root, запускает команду sudo ...
из своей оболочки, расширение псевдонима выполняется их собственной оболочкой без полномочий root. sudo
сам не расширяет псевдонимы, поэтому применительно к ситуации, описанной в вопросе i>, этот ответ неверен.
– Eliah Kagan
17 September 2017 в 10:31
Я написал для него функцию Bash, которая затеняет sudo
.
Он проверяет, имеет ли я псевдоним для данной команды и запускает команду aliased вместо буквенного с sudo
в этом случае.
Вот моя функция как однострочный:
sudo () {если псевдоним «$ 1» & amp; gt; ; / dev / null; затем $ (введите «$ 1» | sed -E '/ ^ .* `(. *). $ / \ 1 /')" $ {@: 2} "; else command sudo $ @; fi}
Или красиво отформатирован:
sudo () {если псевдоним «$ 1» & gt; & gt; / dev / null; затем $ (введите «$ 1» | sed -E 's /^.* `(. *). $ / \ 1 /')" $ {@: 2} "else command sudo" $ @ "fi}
Вы можете добавить его в свой файл .bashrc
, не забудьте его загрузить или перезапустить сеанс терминала, чтобы применить изменения.
@ Алвинс самый короткий. Без сомнений! : -)
Однако я подумал о решении командной строки для выполнения команды aliased в sudo, где нет необходимости переопределять sudo
с псевдонимом
Вот мое предложение для тех, кому это может быть интересно:
type -a & YOUR COMMAND HERE & gt; | grep -o -P "(? & lt; = \`). * (? = ') "| xargs sudo
В случае команды ll
type -a ll | grep -o -P "(? & lt; = \`). * (? = ') "| xargs sudo
, когда у вас есть псевдоним (например: ll
), команда типа -a
] возвращает выражение с псевдонимом:
$ type -a ll ll является псевдонимом `ls -l '
с grep
вы выбираете текст между акцентом `и апострофом 'в этом случае ls -l
И xargs
выполняет выделенный текст ls -l
как параметр sudo
.
Да, немного дольше, но полностью чист ;-) Не нужно переопределять sudo
как псевдоним. [ ! d24]
, так как его вывод чище. alias ll
выводит alias ll = 'ls -ahlF'
.
– muru
15 February 2015 в 23:41
alias ll | sed "s / .* '\ (. * \)'. * / \ 1 / g" | xargs sudo
.
– ACK_stoverflow
27 July 2016 в 20:07
sudo -i
, чтобы запустить команду aliased, но сразу же это сделало. Такая сложная команда побеждает. Вы могли бы просто сделать первое, и быть намного быстрее.
– Evi1M4chine
8 September 2017 в 18:13
У меня есть еще одно приятное решение, которое добавляет немного доверия:
Использовать завершение bash для автоматической замены слов позади sudo
с их псевдонимами при нажатии вкладки.
Сохраните это как /etc/bash_completion.d/sudo-alias.bashcomp
, и он должен автоматически загружаться при запуске интерактивной оболочки:
_comp_sudo_alias ( ) {from = "$ 2"; COMPREPLY = (), если [[$ COMP_CWORD == 1]]; затем COMPREPLY = ("$ (alias -p | grep" ^ * alias $ from = "| sed -r" s / ^ * alias [^ =] + = '(. *)' $ / \ 1 / ")" ) return 0 fi return 1} complete -o bashdefault -o default -F _comp_sudo_alias sudo
Затем войдите в новый терминал, и вам должно быть хорошо идти.
compgen -a
– muru
8 September 2017 в 20:04
sudo ll
), нажмите [TAB ↹], и сценарий находит ll
в списке назначений псевдонимов, вырезает то, что ему назначено к нему, и вставляет это. (Таким образом, вы получите, например, sudo ls -lahvF --color = auto -time-style = long-iso
.)
– Evi1M4chine
9 September 2017 в 04:29
У меня есть другое решение, в котором вам не нужно добавлять sudo
в качестве псевдонима. Я запускаю Linux Mint 17.3, но он должен быть очень похож на Ubuntu.
Когда вы являетесь пользователем root, тогда .profile
запускается из его домашнего каталога. Если вы не знаете, что такое домашний каталог под root, вы можете проверить:
sudo su echo $ HOME
Как вы можете видеть, дом root
- / root /
. Проверьте его содержимое:
cd $ HOME ls -al
Должен быть файл .profile
. Откройте файл и добавьте следующие строки:
, если ["$ BASH"]; то если [-f ~ / .bash_aliases], то. ~ / .bash_aliases fi fi
В основном, этот скрипт bash выполняет проверку файла с именем .bash_aliases
. Если файлы присутствуют, он выполняет файл.
Сохраните файл .profile
и создайте свои псевдонимы в .bash_aliases
. Если вы уже подготовили файл псевдонимов, скопируйте файл в это место
Перезапустите терминал, и вы готовы к работе!
@ WinEunuuchs2Unix: $PWD
расширяется до «настоящего рабочего каталога». Я думаю, вы хотите $HOME
.
Кроме того, для большинства ситуаций, вероятно, лучше иметь отдельный файл .bashrc для root. Фактически, я сделал бы это реальный файл в /root
, софт-ссылку на него в домашнем каталоге пользователя (например, .bashrc_root
) и отправил его из файла .bashrc
пользователя. Если в более позднее время эта привилегированная учетная запись пользователя больше не присутствует, файл root .bashrc
по-прежнему доступен для других пользователей.