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 故障后,整个网络无法进行登录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/339237.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux服务器扩容及磁盘分区(LVM和非LVM)

Linux扩容及磁盘分区(LVM和非LVM) 本文主要介绍了阿里云服务器centos的扩容方法:非LVM分区扩容方法(系统盘),以及磁盘改LVM并分区(数据盘)。主要是ext4文件系统及xfs磁盘scsi MBR分…

每日一题《leetcode-- LCR 025.两数相加||》

https://leetcode.cn/problems/lMSNwu/ 分别把给定的两个链表翻转,然后从头开始相加。 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ //反转链表 struct ListNode* reverselist(struct ListNode*h…

虚拟现实环境下的远程教育和智能评估系统(七)

在后端代码的基础上,利用vue框架设计前端界面,至此,用户界面基本成型,后续添加其他进阶功能; 另,前后端交互相关: UsersVO.java package com.roncoo.education.user.feign.interfaces.vo;impor…

解决torch.cuda.is_available()一直为false的问题

一、检测脚本 import torchprint(torch.__version__) print(torch.cuda.is_available()) print(torch.version.cuda) 输出 二、解决排查 1、安装CUDA 根据驱动选择要安装的版本 安装网站:CUDA Toolkit Archive | NVIDIA Developer 安装成功后 2、安装cuDNN 注…

OJ1230进制的转换

答案&#xff1a; #include <bits/stdc.h> using namespace std; using lllong long; const int N10; int a[10]; char ch[]{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}; void solve() {int n,m;cin>>n>>m;string str;cin>>str;for(int i0;i<str.size();i)…

糖果促销【百度之星】/思维

糖果促销 思维 大佬的解法&#xff1a; #include<bits/stdc.h> using namespace std; typedef long long ll; int main() {ll t;cin>>t;for(int i0;i<t;i){ll p,k;cin>>p>>k;if(k0) cout<<0<<endl;else{k-(k-1)/p;cout<<k<…

2024最新 Jenkins + Docker实战教程(七)- Jenkins实现远程传输和自动部署

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

prometheus的rules配置

说明&#xff1a;本文介绍prometheus中的规则配置&#xff1b; 规则说明 groups:- name: MySQLAlertsrules:- alert: MysqlDownexpr: mysql_up 0for: 0mlabels:severity: criticalannotations:summary: MySQL down (实例&#xff1a;{{ $labels.instance }})description: &q…

Adversarial Nibbler挑战:与多元社区持续开展开放红队测试

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

11.4 插入排序

目录 11.4 插入排序 11.4.1 算法流程 11.4.2 算法特性 11.4.3 插入排序的优势 11.4 插入排序 插入排序&#xff08;insertion sort&#xff09;是一种简单的排序算法&#xff0c;它的工作原理与手动整理一副牌的过程非常相似。 具体来说&#xff0c;我们在未排…

RTOS(ENV)串口DMA接收GPS数据并解析

RTOS&#xff08;ENV&#xff09;配置STM32串口DMA接收模式 环境&#xff1a; RTOS 4.0.3Keil5ENVSTm32l475 ENV配置 使能串口&#xff1a; 2. 使能DMA&#xff0c;并设置接收缓冲区大小&#xff1a; 创建工程 scons --targetmdk工程配置 1. 创建串口设备句柄 #define SA…

LLaMA-Factory实战推理

LLaMA-Factory官网&#xff1a;https://github.com/hiyouga/LLaMA-Factory 安装环境 git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory/ conda create -n py310 python3.10 conda activate py310按照llama-factory要求的标准格式组织数据集&#xff…

linux tomcat版本漏洞升级

Tomcat Session 反序列化代码执行漏洞(CVE-2020-9484) Tomcat 安全限制绕过漏洞(CVE-2018-8034) Tomcat远程代码执行漏洞(CVE-2017-12615) 以上均可以升级版本处理&#xff0c;小版本升级方法 tomcat安装请查看https://blog.csdn.net/qq_42250832/article/details/139015573 1、…

数学建模 —— 人工神经网络(6)

目录 一、人工神经网络 1.1 人工神经网络结构 1.2 神经元/感知器 1.3 激活函数 1.3.1 sign函数 1.3.2 sigmoid函数&#xff08;Logistic函数&#xff09; 1.3.3 tanh双曲正切函数 1.3.4 ReLU函数 1.4 分类 二、BP人工神经网络 2.1 概述 2.2 处理过程 2.3 例题 2.…

本地安装AI大模型

使用ollmam安装llmama3等模型 1.打开ollmam下载对应系统的软件&#xff0c;安装即可 官网&#xff1a;Ollama&#xff0c; 安装直接点就就行了&#xff0c;没有其他操作 2.安装模型 在官网找到对于的模型下载命令 记录命令:ollama run llama3 打开一个cmd窗口&#xff0c;输…

272 基于matlab的形态滤波和局域值分解(LMD)的齿轮故障诊断

基于matlab的形态滤波和局域值分解&#xff08;LMD&#xff09;的齿轮故障诊断&#xff0c;GUI交互界面。通过形态滤波对一维信号进行降噪处理&#xff0c;并通过LMD局部均值分解提取故障信号&#xff0c;最后提取处故障频率。程序已调通&#xff0c;可直接运行。 272 形态滤波…

Thinkphp5响应式进销存仓库管理系统

随着企业规模的不断扩大和市场竞争的日益激烈&#xff0c;进销存管理在企业的运营中扮演着越来越重要的角色。为了提高企业的运营效率&#xff0c;降低库存成本&#xff0c;提升客户满意度&#xff0c;越来越多的企业开始引入进销存仓库管理系统。 进销存仓库管理系统是一种集…

汽车数据应用构想(二)

一直说数据价值场景&#xff0c;啥叫有价值&#xff1f;啥样的场景有价值&#xff1f;按互联网的价值观来看&#xff0c;用户的高频需求就是价值。用户也许不会付费&#xff0c;但只要他天天用&#xff0c;那就是流量&#xff0c;就是用户黏性&#xff0c;就是价值&#xff01;…

夜天之书 #98 Rust 程序库生态合作的例子

近期主要时间都在适应产品市场&#xff08;Product Marketing&#xff09;的新角色&#xff0c;不少想法还在酝酿和斟酌当中&#xff0c;于是文章输出没有太多时间来推敲和选题&#xff0c;只能保持每月发布相关的进展或一些零碎的思考。或许我可以恢复最早的模式&#xff0c;多…

kotlin1.8.10问题导致gson报错TypeToken type argument must not contain a type variable

书接上回&#xff0c;https://blog.csdn.net/jzlhll123/article/details/139302991。 之前我发现gson报错后&#xff1a; gson在2.11.0给我的kotlin项目代码报错了。 IllegalArgumentException: TypeToken type argument must not contain a type variable 上次解释原因是因为&…