Linux shell编程学习笔记55:hostname命令——获取或设置主机名,显示IP地址和DNS、NIS

本文主要是介绍Linux shell编程学习笔记55:hostname命令——获取或设置主机名,显示IP地址和DNS、NIS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


0 前言

2024年的网络安全检查又开始了,对于使用基于Linux的国产电脑,我们可以编写一个脚本来收集系统的有关信息。其中主机名也是我们要收集的信息之一。

1. hostname命令 的功能、格式和选项说明
我们可以使用命令 hostname --help 来查看hostname命令的帮助信息。
 

[purpleendurer @ bash ~ ]hostname --help
Usage: hostname [-b] {hostname|-F file}         set host name (from file)hostname [-a|-A|-d|-f|-i|-I|-s|-y]       display formatted namehostname                                 display host name{yp,nis,}domainname {nisdomain|-F file}  set NIS domain name (from file){yp,nis,}domainname                      display NIS domain namednsdomainname                            display dns domain namehostname -V|--version|-h|--help          print info and exitProgram name:{yp,nis,}domainname=hostname -ydnsdomainname=hostname -dProgram options:-a, --alias            alias names-A, --all-fqdns        all long host names (FQDNs)-b, --boot             set default hostname if none available-d, --domain           DNS domain name-f, --fqdn, --long     long host name (FQDN)-F, --file             read host name or NIS domain name from given file-i, --ip-address       addresses for the host name-I, --all-ip-addresses all addresses for the host-s, --short            short host name-y, --yp, --nis        NIS/YP domain nameDescription:This command can get or set the host name or the NIS domain name. You canalso get the DNS domain or the FQDN (fully qualified domain name).Unless you are using bind or NIS for host lookups you can change theFQDN (Fully Qualified Domain Name) and the DNS domain name (which ispart of the FQDN) in the /etc/hosts file.
[purpleendurer @ bash ~ ]

 

1.1 hostname命令的功能

此命令可以获取或设置主机名或 NIS 域名。

1.2 hostname命令的格式

 

命令功能
hostname [-b] {hostname|-F file}设置主机名称(或从文件获取)
hostname [-a|-A|-d|-f|-i|-I|-s|-y]显示格式化的名称
hostname显示主机名称
hostname -V|--version|-h|--help打印版本或帮助信息并退出

1.3 hostname命令的选项说明 

以下是将内容转换为网页表格的结果:

选项说明备注

-a

--alias

显示主机别名

-A

--all-fqdns

显示所有FQDN名称FQDN:Fully Qualified Domain Name,详见3.3

-b

--boot

如果没有可用的主机名,则设置默认主机名

-d,

--domain

显示DNS域名DNS:Domain Name System

-f

--fqdn

--long

显示FQDN名称
-F, --file从给定文件中读取主机名或NIS域名

-h

--help

打印帮助信息并退出

-i,

--ip-address

显示主机的ip地址

-I

--all-ip-addresses

显示主机所有的ip地址NIS:Network Information Service,详见:3.4

-s

--short

显示短主机名称,在第一个点处截断

-V

--version

打印版本信息并退出

-y

--yp

--nis

显示NIS域名

 2 hostname命令使用实例

2.1  hostname : 显示主机名

[purpleendurer @ bash ~ ]hostname # 显示主机名
edu
[purpleendurer @ bash ~ ]

主机名为:edu 

2.2 hostname 临时主机名 : 临时修改主机名

[purpleendurer @ bash ~ ]hostname bash # 将主机名临时必为bash
hostname: you must be root to change the host name
[purpleendurer @ bash ~ ]

修改主机名需要root权限。 

2.3 hostname -a :显示主机别名

[purpleendurer @ bash ~ ]hostname -a # 显示主机别名[purpleendurer @ bash ~ ]

当前主机没有别名

2.4 hostname -A  : 显示所有FQDN名称

[purpleendurer @ bash ~ ]hostname -A # 显示所有FQDN名称
edu 
[purpleendurer @ bash ~ ]

2.5 hostname -b 主机名:如果没有可用的主机名,则设置默认主机名
 

[purpleendurer @ bash ~ ]hostname -b
edu
[purpleendurer @ bash ~ ]hostname -b bash
hostname: you must be root to change the host name
[purpleendurer @ bash ~ ]

2.6 hostname -d : 显示DNS域名

[purpleendurer @ bash ~ ]hostname -d # 显示DNS域名
[purpleendurer @ bash ~ ]

 

2.7 hostname -f : 显示FQDN名称
 

[purpleendurer @ bash ~ ]hostname -f # 显示FQDN名称
edu
[purpleendurer @ bash ~ ]

 

2.8 hostname -i  : 显示主机的ip地址
 

[purpleendurer @ bash ~ ]hostname -i  # 显示主机的ip地址
172.25.109.178
[purpleendurer @ bash ~ ]

当前主机的IP地址是:172.25.109.178

2.9 hostname -I : 显示主机所有的ip地址

[purpleendurer @ bash ~ ]hostname -I # 显示主机所有的ip地址
172.25.109.175 
[purpleendurer @ bash ~ ]

当前主机只有一个IP地址:172.25.109.178

2.10 hostname -s :显示短主机名称,在第一个点处截断

[purpleendurer @ bash ~ ]hostname -s # 显示短主机名称,在第一个点处截断
edu
[purpleendurer @ bash ~ ]

2.11 hostname -y :显示NIS域名

[purpleendurer @ bash ~ ]hostname -y # 显示NIS域名
hostname: Local domain name not set
[purpleendurer @ bash ~ ]

3 补充说明

3.1 环境变量 HOSTNAME 也保存了当前的主机名。

[purpleendurer @ bash ~ ]echo $HOSTNAME
edu
[purpleendurer @ bash ~ ]

 3.2 使用 hostname 命令设置的主机名是有效期的

在使用 hostname 命令设置主机名后,系统并不会永久保存新的主机名,重启之后还是原来的主机名。

如果需要永久修改主机名,需要修改 /etc/hosts 和 /etc/sysconfig/network 的相关内容并进行重启;也可以使用 hostnamectl 命令进行永久修改。

3.3 Fully Qualified Domain Name (FQDN)

Fully Qualified Domain Name (FQDN)是一种网络标识符,用于唯一地标识互联网上的主机。它是一个包含主机名和域名的完整字符串,表示一个特定的网络资源的位置。FQDN在互联网基础设施中扮演着重要的角色,它不仅提供了对网络资源的唯一标识,还有助于实现域名解析、路由和通信等网络功能。

一个标准的FQDN通常包含三个部分:主机名、二级域名和顶级域名。这三部分之间通过点号(.)连接,形成一个层次结构。以下是一个FQDN的示例:www.example.com。

  • 主机名(Hostname):主机名是FQDN的第一个部分,它标识了特定网络中的主机或服务器。在示例中,主机名是www,通常用于表示网络服务器。
  • 二级域名(Second-level Domain):二级域名是主机名后面的部分,提供更具体的信息或定位。在示例中,二级域名是example,它通常是组织、公司或个人的名称。
  • 顶级域名(Top-level Domain):顶级域名是FQDN的最后一部分,通常表示国家、组织或类型。在示例中,顶级域名是com,代表商业类域名。

FQDN的示例不仅限于网站地址,还可以用于标识网络上的任何资源,例如邮件服务器、文件服务器或数据库服务器。这种层次结构使得FQDN成为一个可扩展、有层次的命名系统,为互联网上的资源提供了清晰的标识。

3.4 Network Information Service(NIS)

NIS 是 Network Information Service 的缩写,是一个分布式数据库,可帮助您在网络中一致地维护配置文件。它提供存储和循环服务器配置信息的大型机客户端索引服务。值得注意的是,它有助于管理 PC 网络环境中计算机之间的主机和客户端名称。

在一个大型的网域当中有多部 Linux 主机,并且每部主机都需要设定相同的账号与密码时,如果能够有一部账号主控服务器来管理网域中所有主机的账号, 当其他的主机有用户登入的需求时,才到这部主控服务器上面要求相关的账号、密码等用户信息, 如此一来,如果想要增加、修改、删除用户数据,只要到这部主控服务器上面处理即可, 这样就能够降低重复设定使用者账号的步骤了。

一般一个稍微大点儿的环境中, NIS 的组成有:一台 NIS Master Server、一台或者多台 NIS Slave Server、多台 NIS Client。这样组成了一个稍微“冗余”的结构,可以避免核心的 NIS Master 故障后,整个网络无法进行登录。

这篇关于Linux shell编程学习笔记55:hostname命令——获取或设置主机名,显示IP地址和DNS、NIS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1025044

相关文章

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自