Как запустить файлы сценариев (.sh) в новом терминале после подключения к серверу Ubuntu 16.04 через ssh?

Я приведу пример, чтобы показать, что эти три специальных переменных используют 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"
Обратите внимание на «привет» «слово»
2
задан 26 May 2018 в 15:40

9 ответов

Предполагая, что Ubuntu для Ubuntu

Если вы установили соответствующее программное обеспечение на сервере, вы можете удаленно войти в систему с помощью ssh -X, а затем запустить графические прикладные программы, такие как terminator и gnome-terminal. См. Эту ссылку. Что такое самый простой способ получить кэш у продукта "Ubuntu 16.04"? Вы также можете просто запускать другие терминальные окна локально, и в этих окнах удаленно с помощью ssh и таким образом запускать несколько приложений приложений текстового режима на сервере (каждый в своем окне терминала).

Если вы используете рабочий стол Windows 10 и хотите подключиться к вашему серверу ubuntu

Простым решением является установка и использование Putty в Windows по следующей ссылке:

www.putty.org /

PuTTY - это клиент SSH и telnet, разработанный Simon Tatham для платформы Windows. PuTTY - это программное обеспечение с открытым исходным кодом, которое доступно с исходным кодом и разрабатывается и поддерживается группой добровольцев. Здесь вы можете скачать PuTTY.

Вы можете запустить одно или несколько окон Putty и запустить различные задачи с помощью ssh.

Как описано в комментарии @SergiyKolodyazhnyy, вы можете использовать xrdp, чтобы открыть сеанс удаленного рабочего стола из Windows в Ubuntu.

Как описано в комментарии от @PerlDuck, вы можете установить и использовать X-сервер в Windows, чтобы иметь возможность запускать графические прикладные программы через ssh, но в зависимости от вашего оригинального вопроса, это может быть чрезмерным.

3
ответ дан 8 June 2018 в 13:54
  • 1
    Что делать, если я использую рабочий стол Windows 10, и я хочу подключиться к моему серверу ubuntu? – Avery 26 May 2018 в 16:44
  • 2
    @Эйвери тогда вам нужно установить x-сервер на Windows, например МФУ. – PerlDuck 26 May 2018 в 17:21
  • 3
    Это не кажется правильным. Вы могли бы использовать положении, чтобы открыть сеанс удаленного рабочего стола с Windows на Ubuntu, но установки x-сервер, кажется, перебор, особенно учитывая, что ОП должен клиент , а не сервер, технически. – Sergiy Kolodyazhnyy 27 May 2018 в 12:02
  • 4
    Он должен работать с Putty из одного или нескольких окон командной строки в Windows. – sudodus 27 May 2018 в 12:22

Предполагая, что Ubuntu для Ubuntu

Если вы установили соответствующее программное обеспечение на сервере, вы можете удаленно войти в систему с помощью ssh -X, а затем запустить графические прикладные программы, такие как terminator и gnome-terminal. См. Эту ссылку. Что такое самый простой способ получить кэш у продукта "Ubuntu 16.04"? Вы также можете просто запускать другие терминальные окна локально, и в этих окнах удаленно с помощью ssh и таким образом запускать несколько приложений приложений текстового режима на сервере (каждый в своем окне терминала).

Если вы используете рабочий стол Windows 10 и хотите подключиться к вашему серверу ubuntu

Простым решением является установка и использование Putty в Windows по следующей ссылке:

www.putty.org /

PuTTY - это клиент SSH и telnet, разработанный Simon Tatham для платформы Windows. PuTTY - это программное обеспечение с открытым исходным кодом, которое доступно с исходным кодом и разрабатывается и поддерживается группой добровольцев. Здесь вы можете скачать PuTTY.

Вы можете запустить одно или несколько окон Putty и запустить различные задачи с помощью ssh.

Как описано в комментарии @SergiyKolodyazhnyy, вы можете использовать xrdp, чтобы открыть сеанс удаленного рабочего стола из Windows в Ubuntu.

Как описано в комментарии от @PerlDuck, вы можете установить и использовать X-сервер в Windows, чтобы иметь возможность запускать графические прикладные программы через ssh, но в зависимости от вашего оригинального вопроса, это может быть чрезмерным.

3
ответ дан 17 July 2018 в 13:22

Предполагая, что Ubuntu для Ubuntu

Если вы установили соответствующее программное обеспечение на сервере, вы можете удаленно войти в систему с помощью ssh -X, а затем запустить графические прикладные программы, такие как terminator и gnome-terminal. См. Эту ссылку. Что такое самый простой способ получить кэш у продукта "Ubuntu 16.04"? Вы также можете просто запускать другие терминальные окна локально, и в этих окнах удаленно с помощью ssh и таким образом запускать несколько приложений приложений текстового режима на сервере (каждый в своем окне терминала).

Если вы используете рабочий стол Windows 10 и хотите подключиться к вашему серверу ubuntu

Простым решением является установка и использование Putty в Windows по следующей ссылке:

www.putty.org /

PuTTY - это клиент SSH и telnet, разработанный Simon Tatham для платформы Windows. PuTTY - это программное обеспечение с открытым исходным кодом, которое доступно с исходным кодом и разрабатывается и поддерживается группой добровольцев. Здесь вы можете скачать PuTTY.

Вы можете запустить одно или несколько окон Putty и запустить различные задачи с помощью ssh.

Как описано в комментарии @SergiyKolodyazhnyy, вы можете использовать xrdp, чтобы открыть сеанс удаленного рабочего стола из Windows в Ubuntu.

Как описано в комментарии от @PerlDuck, вы можете установить и использовать X-сервер в Windows, чтобы иметь возможность запускать графические прикладные программы через ssh, но в зависимости от вашего оригинального вопроса, это может быть чрезмерным.

3
ответ дан 20 July 2018 в 13:29

вот в чем дело: [Ф1] и [Ф2] это GUI-приложения. Если ваш скрипт не требует GUI и простой Shell-скрипт, то можно запустить его в сессию SSH без необходимости эмуляции терминала. Конечно, ваш скрипт должен жить в файловой системе, где вы пытаетесь запустить скрипт.

если по каким-то причинам вам совершенно необходимо [Ф3] или [F4] для того, вы всегда можете воспользоваться положении, чтобы начать сеанс удаленного рабочего стола. Конечно, если система Ubuntu вы пытаетесь получить доступ и X-сервер на всех; серверных компьютеров, например, часто не имеет графического интерфейса, потому что это риск для безопасности.

2
ответ дан 8 June 2018 в 13:54

можно запустить приложение, которое требует графического интерфейса пользователя из сеанса 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], например:

1
ответ дан 8 June 2018 в 13:54

Можно запустить приложение, которое требует 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>, например:

1
ответ дан 17 July 2018 в 13:22

Вот что: terminator и gnome-terminal - графические приложения. Если ваш скрипт не требует графического интерфейса и представляет собой простой скрипт оболочки, то вы можете запустить его в своей сессии ssh просто отлично, не имея эмулятора терминала. Конечно, ваш скрипт должен жить в файловой системе, где вы пытаетесь запустить скрипт.

Если по какой-то причине вам абсолютно необходимо terminator или gnome-terminal, вы всегда можете использовать xrdp для запуска сеанса удаленного рабочего стола. Это конечно, если система Ubuntu, к которой вы пытаетесь получить доступ, имеет сервер X вообще; серверные компьютеры, например, часто не имеют никакого графического интерфейса, поскольку это риск безопасности.

2
ответ дан 17 July 2018 в 13:22

Можно запустить приложение, которое требует 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>, например:

1
ответ дан 20 July 2018 в 13:29

Вот что: terminator и gnome-terminal - графические приложения. Если ваш скрипт не требует графического интерфейса и представляет собой простой скрипт оболочки, то вы можете запустить его в своей сессии ssh просто отлично, не имея эмулятора терминала. Конечно, ваш скрипт должен жить в файловой системе, где вы пытаетесь запустить скрипт.

Если по какой-то причине вам абсолютно необходимо terminator или gnome-terminal, вы всегда можете использовать xrdp для запуска сеанса удаленного рабочего стола. Это конечно, если система Ubuntu, к которой вы пытаетесь получить доступ, имеет сервер X вообще; серверные компьютеры, например, часто не имеют никакого графического интерфейса, поскольку это риск безопасности.

2
ответ дан 20 July 2018 в 13:29

Другие вопросы по тегам:

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