欢迎各位兄弟 发布技术文章
这里的技术是共享的
我自己亲自做的 OK 有大用
计算机名 计算机版本 ip 序列号 无线mac地址 有线mac地址 当前工号 ,当前姓名 包含关键字的文件
ok ok ok ok ok ok ok ok ok
计算机名称: scutil --get ComputerName
序列号: system_profiler SPHardwareDataType | grep "Serial Number" | awk '{print $4}'
计算机版本: sw_vers -productName # 产品名 (如 "macOS") sw_vers -productVersion # 系统版本号 (如 "12.5.1")
ip: echo "$(ifconfig | grep "inet " | grep -v 127.0.0.1 | head -n 1 | awk '{print $2}')"
有线mac地址: networksetup -listallhardwareports | awk '/Hardware Port: Ethernet/{getline; getline; print $3}'
无线mac地址: networksetup -listallhardwareports | awk '/Hardware Port: Wi-Fi/{getline; getline; print $3}'
当前帐户名称: whoami 或者 id -un
包含关键字的文件: 可以得到
macos 的 shell 得到本机的ip 和 无线mac地址和有线mac地址
1) echo "IP地址: $(ifconfig | grep "inet " | grep -v 127.0.0.1 | head -n 1 | awk '{print $2}')"
你可以结合 networksetup -listallhardwareports
命令和 awk
或 grep
来提取有线和无线接口的 MAC 地址。下面是如何使用这些工具来获取信息的示例:
解释:
networksetup -listallhardwareports
会列出所有网络硬件接口。
awk '/Hardware Port: Ethernet/{getline; print $2}'
会查找包含 "Hardware Port: Ethernet" 的行,然后使用 getline
获取下一行(即设备信息),然后再使用 getline
获取下一行(即设备信息),并打印出 MAC 地址(第二列,通常是 Ethernet Address
)。
解释:
这个命令与上面的命令类似,但它查找的是 Wi-Fi
硬件端口,并打印出与无线网络接口相关的 MAC 地址。
grep
和 awk
组合:如果你想使用 grep
和 awk
来提取 MAC 地址,可以这样做:
grep -A 2 "Hardware Port: Ethernet"
:查找并打印 Hardware Port: Ethernet
这一行及其后面的两行(即设备信息)。
grep "Ethernet Address"
:从结果中查找包含 Ethernet Address
的行。
awk '{print $3}'
:从结果中提取第三列,即 MAC 地址。
这个脚本会输出有线网卡和无线网卡的 MAC 地址。
networksetup
输出的接口名称和顺序可能会有所不同,取决于硬件配置,使用 grep
和 awk
进行文本提取时要确保提取正确的字段。
如果有多个无线或有线接口(比如同时使用多个网络适配器),你可能需要更具体的接口名或者手动检查输出。
macos 的 shell 得到本机的计算机名 和版本号
在 MacOS 的 shell 中,可以使用以下命令获取计算机名:
bash# 简短主机名 (通常设置的计算机名) scutil --get ComputerName # 完整主机名 (包括.domain后缀) scutil --get HostName # 本地主机名 (用于Bonjour/mDNS) scutil --get LocalHostName
bash# 获取完整的系统版本信息 sw_vers # 单独获取各部分版本信息 sw_vers -productName # 产品名 (如 "macOS") sw_vers -productVersion # 系统版本号 (如 "12.5.1") sw_vers -buildVersion # 构建版本号
bashecho "计算机信息:" echo "------------------" echo "计算机名(ComputerName): $(scutil --get ComputerName)" echo "主机名(HostName): $(scutil --get HostName)" echo "本地主机名(LocalHostName): $(scutil --get LocalHostName)" echo echo "系统版本:" echo "------------------" echo "产品名: $(sw_vers -productName)" echo "系统版本: $(sw_vers -productVersion)" echo "构建版本: $(sw_vers -buildVersion)"
bash# 获取硬件信息 system_profiler SPHardwareDataType # 获取操作系统发布日期 system_profiler SPInstallHistoryDataType | grep -A 1 "macOS Installer" | tail -n 1
注意:
如果 HostName
未设置,scutil --get HostName
可能会返回错误
LocalHostName
是网络可见的名称,通常用于本地网络服务发现
macos 的 shell 得到本机的 序列号
在 MacOS 的 shell 中,可以使用以下方法获取设备的序列号:
system_profiler
命令(推荐)bashsystem_profiler SPHardwareDataType | grep "Serial Number" | awk '{print $4}'
或更简洁的版本:
bashsystem_profiler SPHardwareDataType | awk '/Serial/ {print $4}'
ioreg
命令bashioreg -l | grep IOPlatformSerialNumber | awk -F'"' '{print $4}'
nvram
命令bashnvram -p | grep -i "system.serial" | awk '{print $2}'
bash/usr/sbin/system_profiler SPHardwareDataType | awk '/Serial/ {print $4}'
sysctl
查看硬件信息(包含部分序列号数据)bashsysctl -n hw.model
bashecho "序列号: $(system_profiler SPHardwareDataType | awk '/Serial/ {print $4}')" echo "硬件型号: $(sysctl -n hw.model)" echo "硬件UUID: $(ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}')"
注意:
这些命令都需要在管理员权限下运行(虽然通常用户权限也能获取序列号)
不同 Mac 机型、不同 macOS 版本可能有略微不同的输出格式
序列号是设备的唯一标识符,分享时请注意隐私安全