Ищите перенаправление портов или инициирование порта или "NAT" или подобный термин в интерфейсе маршрутизатора. Порт передачи 22 (или независимо от того, что Вы переместили его в то, если Вы переместили его) к IP Вашего сервера Ubuntu. Вы захотите установить статический IP для сервера Ubuntu.
После того как Вы имеете SSH и выполнение и можете быть достижимыми на внешней стороне, можно передать примерно любой порт от машины, Вы продолжаете работать к серверу Ubuntu или чему-либо в той же сети с ним.
Знайте, что некоторый ISP имеет тенденцию манипулировать IP-адресами для постоянных домашних пользователей, таким образом, можно хотеть изучить что-то как услуги DynDNS или записать собственный сценарий зондирования, чтобы послать Вам по электронной почте, и т.д. если Ваш домашний IP-адрес изменяется.
Используйте -n
параметр для выполнения rename
в режиме пробного прогона, который очень полезен, когда Вы хотите протестировать свой шаблон:
martin@martin ~ % rename -n s/list/list.disable/g /etc/apt/sources.list.d/*.list | sed 's/renamed as/\n =>/g'
[...]
/etc/apt/sources.list.d/spotify.list
=> /etc/apt/sources.list.disable.d/spotify.list.disable
/etc/apt/sources.list.d/steam.list
=> /etc/apt/sources.list.disable.d/steam.list.disable
[...]
Очевидная ошибка здесь состоит в том что шаблон list
соответствия sources.list.d
, таким образом, Вы пытаетесь переименовать и папку и ее содержавшие файлы.
Используйте этот шаблон вместо этого:
rename -n 's/\.list$/.list.disable/' /etc/apt/sources.list.d/*.list | sed 's/renamed as/\n =>/g'
[...]
/etc/apt/sources.list.d/spotify.list
=> /etc/apt/sources.list.d/spotify.list.disable
/etc/apt/sources.list.d/steam.list
=> /etc/apt/sources.list.d/steam.list.disable
[...]
Различия:
Заключение в кавычки .
в шаблоне поиска как \.
гарантирует, что точка только соответствует реальной точке и не любому символу (это - то, что неупомянутая точка в regex обычно делает).
$
после того, как список означает "конец строки". Это гарантирует, что только ".list" в конце соответствий имени файла и будет заменен, не ".list", который находится где-то в другом месте в пути или имени файла.
Вы не должны заключать точку в кавычки в замещающей строке; ".list.disable" поэтому работает без обратных косых черт, потому что .
больше не имеет особое значение там.
Также обратите внимание, что я заключил regex в кавычки в одинарных кавычках, чтобы препятствовать тому, чтобы оболочка изменила его всегда.
Проблема использует глобальный переключатель g
когда действительно необходимо было привязать шаблон вместо этого. Поскольку Вы записали это:
s/a/b/g
заменяет каждый b везде в строке. Это заставляет Вас пытаться переименовать к путям, для которых не существует никакой каталог. Это также, почему проблема исчезла, когда Вы сделали операцию в рамках каталога, таким образом, было только одно соответствие для замены.
Я думаю, что Вы, возможно, намеревались привязать шаблон
s/\.list$/.list.disable/
который предотвратил бы попытку переместить файл в каталог,/etc/apt/sources.list.disable.d/, который не существует (таким образом, Вы не можете переместить файл в него).
g
флаг является просто неправильным, извините. Не привязка шаблона является реальной проблемой.
– Martin von Wittich
27.09.2013, 23:55
-n
переключатель – msw 28.09.2013, 00:06