2016-02-16 2 views
0

У меня есть сервер в Amazon Elastic Beanstalk, в котором команда hostname выводит имя хоста, которое не является полным доменом и не существует в файле/etc/host.Добавить команду Hostname в/etc/hosts

Я работаю с некоторым программным обеспечением, которое по какой-то причине полагается на системное имя хоста для работы.

Я хотел добавить файл команды hostname в файл/etc/hosts, ссылаясь на локальную машину.

Прямо сейчас у меня есть хост-файл, который выглядит следующим образом:

127.0.0.1 localhost localhost.localdomain 

Я бег команды, как это добавить в файл.

hostname | tr '\n' ' ' >> /etc/hosts 

Проблема в том, что имя хоста добавляется в новую строку. Например:

127.0.0.1 localhost localhost.localdomain 
ip-10-0-1-162 

Я хочу, чтобы он был присоединен к той же линии.

ответ

2

Вы можете использовать sed отредактировать первую строку файла:

sed -i "1s/$/ $(hostname | tr '\n' ' ')/" /etc/hosts 
+0

Это сработало! Спасибо. – lordmj

0

Вы могли бы использовать что-то вроде

echo "`cat /etc/hosts` `hostname`" 

Вы могли бы написать, что прямо назад /и т.д./хосты, но я бы скорее написал его во временный файл, а затем заменил /etc/hosts.

Если вы не хотите никакой новой строки в конце файла, используйте

echo -n 

вместо этого.

Предполагается, что вы хотите добавить к последней строке в файле.

+0

Если бы мне нужна команда с одной строкой для выполнения этого метода, как бы я это сделал? – lordmj