Я приведу пример, чтобы показать, что эти три специальных переменных используют case:
$# количество аргументов, переданных int переменной:$ bash -c 'echo number of args to this script are "$#"' _ hello word
number of args to this script are 2
наши args приветствуют и слово, поэтому «2 «Правильно $* будет расширен до всех позиционных параметров, таких как:« $ 1 $ 2 »: $ bash -c 'echo -n "args are: "; printf \"%s\" "$*"' _ hello word
args are: "hello word"
Примечание« hello word »$@: похоже на массив всех позиционных параметров« $ 1 »,« $ 2 ».. . $ bash -c 'echo -n "args are: "; printf \"%s\" "$@"' _ hello word
args are: "hello""word"
Обратите внимание на «привет» «слово» Простым решением является установка и использование Putty в Windows по следующей ссылке:
www.putty.org /
PuTTY - это клиент SSH и telnet, разработанный Simon Tatham для платформы Windows. PuTTY - это программное обеспечение с открытым исходным кодом, которое доступно с исходным кодом и разрабатывается и поддерживается группой добровольцев. Здесь вы можете скачать PuTTY.Вы можете запустить одно или несколько окон Putty и запустить различные задачи с помощью ssh.
Как описано в комментарии @SergiyKolodyazhnyy, вы можете использовать xrdp, чтобы открыть сеанс удаленного рабочего стола из Windows в Ubuntu.
Как описано в комментарии от @PerlDuck, вы можете установить и использовать X-сервер в Windows, чтобы иметь возможность запускать графические прикладные программы через ssh, но в зависимости от вашего оригинального вопроса, это может быть чрезмерным.
Простым решением является установка и использование Putty в Windows по следующей ссылке:
www.putty.org /
PuTTY - это клиент SSH и telnet, разработанный Simon Tatham для платформы Windows. PuTTY - это программное обеспечение с открытым исходным кодом, которое доступно с исходным кодом и разрабатывается и поддерживается группой добровольцев. Здесь вы можете скачать PuTTY.Вы можете запустить одно или несколько окон Putty и запустить различные задачи с помощью ssh.
Как описано в комментарии @SergiyKolodyazhnyy, вы можете использовать xrdp, чтобы открыть сеанс удаленного рабочего стола из Windows в Ubuntu.
Как описано в комментарии от @PerlDuck, вы можете установить и использовать X-сервер в Windows, чтобы иметь возможность запускать графические прикладные программы через ssh, но в зависимости от вашего оригинального вопроса, это может быть чрезмерным.
Простым решением является установка и использование Putty в Windows по следующей ссылке:
www.putty.org /
PuTTY - это клиент SSH и telnet, разработанный Simon Tatham для платформы Windows. PuTTY - это программное обеспечение с открытым исходным кодом, которое доступно с исходным кодом и разрабатывается и поддерживается группой добровольцев. Здесь вы можете скачать PuTTY.Вы можете запустить одно или несколько окон Putty и запустить различные задачи с помощью ssh.
Как описано в комментарии @SergiyKolodyazhnyy, вы можете использовать xrdp, чтобы открыть сеанс удаленного рабочего стола из Windows в Ubuntu.
Как описано в комментарии от @PerlDuck, вы можете установить и использовать X-сервер в Windows, чтобы иметь возможность запускать графические прикладные программы через ssh, но в зависимости от вашего оригинального вопроса, это может быть чрезмерным.
вот в чем дело: [Ф1] и [Ф2] это GUI-приложения. Если ваш скрипт не требует GUI и простой Shell-скрипт, то можно запустить его в сессию SSH без необходимости эмуляции терминала. Конечно, ваш скрипт должен жить в файловой системе, где вы пытаетесь запустить скрипт.
если по каким-то причинам вам совершенно необходимо [Ф3] или [F4] для того, вы всегда можете воспользоваться положении, чтобы начать сеанс удаленного рабочего стола. Конечно, если система Ubuntu вы пытаетесь получить доступ и X-сервер на всех; серверных компьютеров, например, часто не имеет графического интерфейса, потому что это риск для безопасности.
можно запустить приложение, которое требует графического интерфейса пользователя из сеанса SSH на рабочем столе, если вам это действительно нужно. Я использую следующий подход для запуска виртуальных машин VMware, когда я нуждаюсь в них, но я не на передней панели компьютера.
я хотел бы подчеркнуть, вы упомянули, что вы подключаетесь к Ubuntu сервер, что не есть среда рабочего стола, установленные по умолчанию. И в этом случае стоит использовать [Ф4] или [F5] или нажимаем скрипта в фоновом режиме, или использовать вторую сессию SSH. Если среда рабочего стола устанавливается на сервер следующие шаги могут быть применены.
следующие сценарии работы с языка и единство, которые по умолчанию в Ubuntu 16.04.
следующие сценарии работы с языка и единство, которые по умолчанию в Ubuntu 16.04. первое требование заключается в том, что ваш пользователь должен войти в сеанс рабочего стола. Что я использую для достижения этой цели является следующий сценарий (источник и пояснениями):
[Ф1] скрипт должен быть выполнен как обычный пользователь (который принадлежит к группе пользователям использовать sudo?). Я бы предпочел поместить скрипт в [F6], чтобы быть доступными широкой системе команд оболочки. Не забудьте сделать его исполняемым.2. Во-вторых, несколько переменных окружения (как [ф7] и т. д.) должны быть вывезены с рабочего стола в SSH-сессии. Следующий скрипт будет делать это, и также запустить команды, которые передаются как позиционные параметры (источник и объяснения):
[Ф2] скрипт должен быть выполнен как обычный пользователь (который принадлежит к группе пользователям использовать sudo?).скрипт должен быть выполнен как обычный пользователь (который принадлежит к группе пользователям использовать sudo?).
я бы предпочел поместить скрипт в нажать [F8], чтобы быть доступными широкой системе команд оболочки. Не забудьте сделать его исполняемым.
скрипт должен быть выполнен как обычный пользователь (который принадлежит к группе пользователям использовать sudo?).
я бы предпочел поместить скрипт в [F6], чтобы быть доступными широкой системе команд оболочки. Не забудьте сделать его исполняемым.я бы предпочел поместить скрипт в [F6], чтобы быть доступными широкой системе команд оболочки. Не забудьте сделать его исполняемым.
[Ф3] обратите внимание на последнюю команду Sub [ф11] будет держать запустил [ф12] открытия, после предыдущей команды будет готово.[dиода d17]2.[!dиода d17] использование:
выполнить [ф10], например:
Можно запустить приложение, которое требует GUI из сеанса SSH в сеанс рабочего стола, если вам это действительно нужно. Я использую следующий подход для запуска виртуальных машин VMWare, когда они мне нужны, но я не на передней панели компьютера.
Я хотел бы подчеркнуть, что вы упомянули, что подключаетесь к серверу Ubuntu, у которого нет установленной Desktop среды по умолчанию. И в этом случае стоит использовать tmux или screen или нажать сценарий в фоновом режиме или использовать второй сеанс SSH. Если среда рабочего стола установлена на сервере, следующие шаги могут быть применены.
Следующие сценарии работают с Lightdm и Unity, которые по умолчанию для Ubuntu 16.04.
Следующие сценарии работают с Lightdm и Unity, которые по умолчанию для Ubuntu 16.04. Первое требование заключается в том, что ваш пользователь должен войти в систему на рабочем столе. Для этого я использую следующий сценарий (источник и объяснения):
#!/bin/bash
# NAME: lightdm-auto-login
main() {
# If the file '/etc/lightdm/lightdm.conf' exists create a backup copy
[[ -f /etc/lightdm/lightdm.conf ]] && mv /etc/lightdm/lightdm.conf{,.bak}
# Create autologin configuration for the current $USER = $1
echo -e "[Seat:*]\nautologin-user=$1" > /etc/lightdm/lightdm.conf
# Restart 'lightdm' while autologin option is enabled
systemctl restart lightdm.service
# Wait for a moment to complete the login process and remove the conf file
sleep 30 && rm /etc/lightdm/lightdm.conf
# Restore the backup if exists
[[ -f /etc/lightdm/lightdm.conf.bak ]] && mv /etc/lightdm/lightdm.conf{.bak,}
}
# Execute the 'main()' function with root privileges in the background 'sudo -b'
# Pass the curent $USER as arg (https://unix.stackexchange.com/a/269080/201297)
sudo -b bash -c "$(declare -f main); main $USER"
Сценарий должен выполняться как обычный пользователь (принадлежащий группе sudoers). Я предпочел бы, чтобы сценарий в /usr/local/bin был доступен как система командной оболочки в целом. Не забудьте сделать его исполняемым. 2. Во-вторых, несколько переменных среды (как $DISPLAY и т. Д.) Должны быть экспортированы из сеанса рабочего стола в сеанс SSH. Следующий скрипт сделает это, а также запустит команды, которые передаются как позиционные параметры (источник и объяснения ):
#!/bin/bash -e
# NAME: gui-launcher
# Check whether the user is logged-in
while [ -z "$(pgrep gnome-session -n -U $UID)" ]; do sleep 3; done
# Export the current desktop session environment variables
export $(xargs -0 -a "/proc/$(pgrep gnome-session -n -U $UID)/environ")
# Execute the input command
nohup "$@" >/dev/null 2>&1 &
exit 0
Сценарий должен быть выполнен как Сценарий должен выполняться как обычный пользователь (принадлежит группе sudoers).
Я предпочел бы, чтобы сценарий в /usr/local/bin был доступен как система команд оболочки. Не забудьте сделать его исполняемым.
Сценарий должен выполняться как обычный пользователь (принадлежащий группе sudoers).
Я предпочел бы, чтобы сценарий в /usr/local/bin был доступен как система командной оболочки в целом. Не забудьте сделать его исполняемым.Я предпочел бы, чтобы сценарий в /usr/local/bin был доступен как система командной оболочки в целом. Не забывайте сделать его исполняемым.
gui-launcher gnome-terminal -x bash -c "<my command or script>; exec bash"
Обратите внимание, что последняя вспомогательная команда exec bash будет удерживать запущенный gnome-terminal открытым после завершения предыдущей команды. 2. Использование:
Выполнить gui-launcher <commands or script>, например:
Вот что: terminator и gnome-terminal - графические приложения. Если ваш скрипт не требует графического интерфейса и представляет собой простой скрипт оболочки, то вы можете запустить его в своей сессии ssh просто отлично, не имея эмулятора терминала. Конечно, ваш скрипт должен жить в файловой системе, где вы пытаетесь запустить скрипт.
Если по какой-то причине вам абсолютно необходимо terminator или gnome-terminal, вы всегда можете использовать xrdp для запуска сеанса удаленного рабочего стола. Это конечно, если система Ubuntu, к которой вы пытаетесь получить доступ, имеет сервер X вообще; серверные компьютеры, например, часто не имеют никакого графического интерфейса, поскольку это риск безопасности.
Можно запустить приложение, которое требует GUI из сеанса SSH в сеанс рабочего стола, если вам это действительно нужно. Я использую следующий подход для запуска виртуальных машин VMWare, когда они мне нужны, но я не на передней панели компьютера.
Я хотел бы подчеркнуть, что вы упомянули, что подключаетесь к серверу Ubuntu, у которого нет установленной Desktop среды по умолчанию. И в этом случае стоит использовать tmux или screen или нажать сценарий в фоновом режиме или использовать второй сеанс SSH. Если среда рабочего стола установлена на сервере, следующие шаги могут быть применены.
Следующие сценарии работают с Lightdm и Unity, которые по умолчанию для Ubuntu 16.04.
Следующие сценарии работают с Lightdm и Unity, которые по умолчанию для Ubuntu 16.04. Первое требование заключается в том, что ваш пользователь должен войти в систему на рабочем столе. Для этого я использую следующий сценарий (источник и объяснения):
#!/bin/bash
# NAME: lightdm-auto-login
main() {
# If the file '/etc/lightdm/lightdm.conf' exists create a backup copy
[[ -f /etc/lightdm/lightdm.conf ]] && mv /etc/lightdm/lightdm.conf{,.bak}
# Create autologin configuration for the current $USER = $1
echo -e "[Seat:*]\nautologin-user=$1" > /etc/lightdm/lightdm.conf
# Restart 'lightdm' while autologin option is enabled
systemctl restart lightdm.service
# Wait for a moment to complete the login process and remove the conf file
sleep 30 && rm /etc/lightdm/lightdm.conf
# Restore the backup if exists
[[ -f /etc/lightdm/lightdm.conf.bak ]] && mv /etc/lightdm/lightdm.conf{.bak,}
}
# Execute the 'main()' function with root privileges in the background 'sudo -b'
# Pass the curent $USER as arg (https://unix.stackexchange.com/a/269080/201297)
sudo -b bash -c "$(declare -f main); main $USER"
Сценарий должен выполняться как обычный пользователь (принадлежащий группе sudoers). Я предпочел бы, чтобы сценарий в /usr/local/bin был доступен как система командной оболочки в целом. Не забудьте сделать его исполняемым. 2. Во-вторых, несколько переменных среды (как $DISPLAY и т. Д.) Должны быть экспортированы из сеанса рабочего стола в сеанс SSH. Следующий скрипт сделает это, а также запустит команды, которые передаются как позиционные параметры (источник и объяснения ):
#!/bin/bash -e
# NAME: gui-launcher
# Check whether the user is logged-in
while [ -z "$(pgrep gnome-session -n -U $UID)" ]; do sleep 3; done
# Export the current desktop session environment variables
export $(xargs -0 -a "/proc/$(pgrep gnome-session -n -U $UID)/environ")
# Execute the input command
nohup "$@" >/dev/null 2>&1 &
exit 0
Сценарий должен быть выполнен как Сценарий должен выполняться как обычный пользователь (принадлежит группе sudoers).
Я предпочел бы, чтобы сценарий в /usr/local/bin был доступен как система команд оболочки. Не забудьте сделать его исполняемым.
Сценарий должен выполняться как обычный пользователь (принадлежащий группе sudoers).
Я предпочел бы, чтобы сценарий в /usr/local/bin был доступен как система командной оболочки в целом. Не забудьте сделать его исполняемым.Я предпочел бы, чтобы сценарий в /usr/local/bin был доступен как система командной оболочки в целом. Не забывайте сделать его исполняемым.
gui-launcher gnome-terminal -x bash -c "<my command or script>; exec bash"
Обратите внимание, что последняя вспомогательная команда exec bash будет удерживать запущенный gnome-terminal открытым после завершения предыдущей команды. 2. Использование:
Выполнить gui-launcher <commands or script>, например:
Вот что: terminator и gnome-terminal - графические приложения. Если ваш скрипт не требует графического интерфейса и представляет собой простой скрипт оболочки, то вы можете запустить его в своей сессии ssh просто отлично, не имея эмулятора терминала. Конечно, ваш скрипт должен жить в файловой системе, где вы пытаетесь запустить скрипт.
Если по какой-то причине вам абсолютно необходимо terminator или gnome-terminal, вы всегда можете использовать xrdp для запуска сеанса удаленного рабочего стола. Это конечно, если система Ubuntu, к которой вы пытаетесь получить доступ, имеет сервер X вообще; серверные компьютеры, например, часто не имеют никакого графического интерфейса, поскольку это риск безопасности.