Linux/Unix命令

这篇是另一篇内容的前置知识。因为项目部署测试需要,向公司申请了一个虚拟机做服务器用。以下是回溯的命令,多了解了解,拓宽知识面吧。PS:本人unix/linux知识0,见啥都稀奇,小白一个,知识浅显,勿喷。

linux/unix查看操作系统命令

在 Linux/Unix 系统中,有多种命令可以用来查看操作系统的详细信息。以下是一些常用的命令及其用途:

  1. uname:

    • 显示系统信息,如内核名称、内核释放号、内核版本、机器硬件名称、处理器类型等。

    • 使用示例:

      sh 复制代码
      uname -a
  2. lsb_release:

    • 显示 Linux 标准基础 (LSB) 版本信息,适用于遵循 LSB 规范的发行版。

    • 使用示例:

      sh 复制代码
      lsb_release -a
  3. hostnamectl:

    • 显示系统主机名和相关的系统信息,也可以用于更改系统主机名。

    • 使用示例:

      sh 复制代码
      hostnamectl
  4. hostname:

    • 显示或设置系统的主机名。

    • 使用示例:

      sh 复制代码
      hostname
  5. cat /etc/*release:

    • 显示特定于发行版的操作系统信息,如名称、版本等。

    • 使用示例:

      sh 复制代码
      cat /etc/os-release
  6. cat /proc/version:

    • 显示 Linux 内核的版本信息。

    • 使用示例:

      sh 复制代码
      cat /proc/version
  7. dmidecode:

    • 显示硬件信息,如 BIOS 版本、系统制造商等。需要 root 权限。

    • 使用示例:

      sh 复制代码
      sudo dmidecode
  8. lscpu:

    • 显示 CPU 架构信息。

    • 使用示例:

      sh 复制代码
      lscpu
  9. free:

    • 显示内存状态,包括已使用、空闲、交换分区等信息。

    • 使用示例:

      sh 复制代码
      free -h
  10. df:

    • 显示磁盘空间使用情况。

    • 使用示例:

      sh 复制代码
      df -h
  11. tophtop:

    • 实时显示系统进程和资源使用情况。

    • 使用示例:

      sh 复制代码
      top

      sh 复制代码
      htop
  12. vmstat:

    • 显示虚拟内存统计信息。

    • 使用示例:

      sh 复制代码
      vmstat
  13. iostat:

    • 显示 CPU 和输入/输出统计信息。

    • 使用示例:

      sh 复制代码
      iostat
  14. netstatss:

    • 显示网络连接和统计信息。

    • 使用示例:

      sh 复制代码
      netstat

      sh 复制代码
      ss
  15. whoami:

    • 显示当前用户的名称。

    • 使用示例:

      sh 复制代码
      whoami

hostnamectl set-hostname XXX

hostnamectl 是一个在基于 systemd 的 Linux 发行版(如 Fedora、CentOS 7+、RHEL 7+、Debian 8+ 和 Ubuntu 16.04+)中用于控制主机名的工具。使用 hostnamectl set-hostname XXX 命令可以设置系统的主机名为 XXX

以下是使用 hostnamectl set-hostname 命令设置主机名的步骤:

  1. 打开终端:

    • 在你的 Linux 系统中打开一个终端窗口。
  2. 执行命令:

    • 输入命令 hostnamectl set-hostname XXX 并按下回车键,其中 XXX 是你想要设置的新主机名。
  3. 权限:

    • 更改系统主机名通常需要管理员权限,因此你可能需要使用 sudo

      sh 复制代码
      sudo hostnamectl set-hostname XXX
  4. 临时更改:

    • 使用 hostnamectl 更改的主机名是临时的,重启后会恢复到 /etc/hostname 文件中设置的值。
  5. 永久更改:

    • 要永久更改主机名,你需要同时更改 /etc/hostname/etc/hosts 文件中的相应条目。
  6. 编辑 /etc/hostname:

    • 使用文本编辑器编辑 /etc/hostname 文件,例如:

      sh 复制代码
      sudo nano /etc/hostname
    • 将文件中的现有主机名替换为新的主机名 XXX

  7. 编辑 /etc/hosts:

    • 同样,编辑 /etc/hosts 文件,找到所有引用旧主机名的地方,并将它们替换为新的主机名 XXX
  8. 重启:

    • 更改 /etc/hostname/etc/hosts 文件后,重启系统以使更改生效:

      sh 复制代码
      sudo reboot
  9. 验证更改:

    • 重启后,使用 hostnamectl 或简单的 hostname 命令来验证新的主机名是否设置成功:

      sh 复制代码
      hostnamectl

      或者

      sh 复制代码
      hostname

请确保选择一个合适的、符合网络策略的主机名 XXX,并且不要使用不允许的字符或空格。更改主机名可能会影响系统中的一些服务和配置,因此在执行此操作之前,请确保你了解更改的影响。

apt 安装软件命令

sh 复制代码
apt update && apt install nmon strace  pciutils tmux rsync telnet bash-completion iotop mtr nmap easy-rsa iftop less libtool numactl lsof ftp at vim unzip   wget  perl make tree rsync curl tcpdump  htop traceroute lsof net-tools  htop  pv arping  iptables sudo dnsutils -y

apt 命令行,用于在 Debian 或 Ubuntu 系统上安装一系列常用的软件包。这个命令使用了 -y 选项,它的作用是在安装过程中自动回答所有的提示问题,以实现无需人工干预的自动化安装。

以下是您列出的软件包及其一般用途:

  • nmon: 一个系统监控工具,可以显示 CPU、磁盘、网络等的使用情况。
  • strace: 一个调试工具,用于监控程序执行时的系统调用和信号。
  • pciutils: 包含工具来列出 PCI 设备信息。
  • tmux: 一个终端复用器,允许多个终端会话共享单个窗口。
  • rsync: 一个文件同步和传输工具。
  • telnet: 一个网络协议,用于远程登录到服务器。
  • bash-completion: 提供命令行自动补全功能的 bash 扩展。
  • iotop: 一个显示磁盘 I/O 使用情况的工具。
  • mtr: 一个网络诊断工具,结合了 tracerouteping 的功能。
  • nmap: 一个网络扫描工具,用于发现网络上的设备和开放的端口。
  • easy-rsa: 一个简单的 PKI 和 SSL 证书管理工具。
  • iftop: 一个实时网络带宽监控工具。
  • less: 一个文件查看器,用于查看文件内容。
  • libtool: 一个库的依赖管理工具。
  • numactl: 一个控制 NUMA 策略的命令行界面。
  • lsof: 一个列出当前系统打开文件的工具。
  • ftp: 一个文件传输协议客户端。
  • at: 一个安排一次性任务的工具。
  • vim: 一个高度可配置的文本编辑器。
  • unzip: 一个解压 ZIP 文件的工具。
  • wget: 一个从网络上下载文件的工具。
  • perl: 一种高级、通用的脚本编程语言。
  • make: 一个构建自动化工具。
  • tree: 一个以树状图显示目录结构的工具。
  • curl: 一个客户端 URL 传输工具。
  • tcpdump: 一个强大的网络抓包工具。
  • htop: 一个交互式的进程查看器。
  • traceroute: 一个网络诊断工具,用于追踪数据包到目的地的路径。
  • lsof: 再次列出,它是一个列出系统打开文件的工具。
  • net-tools: 包含多个网络诊断工具,如 ifconfignetstat
  • pv: 一个管道查看器,用于监控数据流。
  • arping: 一个发送 ARP 请求的工具。
  • iptables: 一个网络防火墙规则管理工具。
  • sudo: 一个允许授权用户以超级用户权限执行命令的安全政策。
  • dnsutils: 包含多个 DNS 工具,如 dignslookup

请注意,在执行此命令之前,确保您已经通过 sudo apt update 更新了您的软件包列表,以确保安装的是最新版本的软件包

apt update 命令

apt 是 Debian 和 Ubuntu 系统上的一个包管理工具,用于安装、更新和删除软件包。apt update 命令用于更新本地包索引,这是执行包管理任务之前的一个必要步骤。

以下是 apt update 命令的详细说明:

  1. 更新软件包列表:

    • apt update 命令会从你的系统的软件源列表中获取最新的软件包列表和版本信息。
  2. 不安装软件:

    • 这个命令本身不会安装或更新任何软件包,它只是更新本地的软件包索引。
  3. 提高效率:

    • 通过使用 apt update,你可以确保在执行 apt installapt upgrade 等命令时,你拥有最新的软件包信息。
  4. 使用 sudo:

    • 由于更新软件包列表可能会影响系统设置,通常需要管理员权限,因此你可能需要使用 sudo 来执行这个命令:

      sudo apt update
      
  5. 定期执行:

    • 建议定期运行 apt update 来保持你的软件包列表是最新的,这有助于避免安装过时的软件包。
  6. 与 apt upgrade 结合使用:

    • 在运行 apt upgrade 之前,通常先运行 apt update 来确保你安装的是最新版本的软件包:

      sudo apt update
      sudo apt upgrade
      
  7. 错误处理:

    • 如果 apt update 命令在执行过程中遇到问题,它可能会显示错误信息。根据错误的性质,你可能需要检查你的网络连接、软件源列表或使用 sudo 来解决权限问题。

apt update 是维护 Linux 系统的一个重要命令,确保你总是使用最新的软件包和安全更新。

ifconfig 命令

ifconfig 是一个在 Unix 和类 Unix 系统中广泛使用的命令行工具,用于显示和配置网络接口参数。这个命令的名称来源于 "interface configuration"。它可以用来查看网络接口的状态、分配的 IP 地址、网络掩码、广播地址以及其他网络相关的信息。

以下是 ifconfig 命令的一些基本用法:

  1. 查看所有接口的状态:

    ifconfig
    
  2. 查看特定接口的状态:

    ifconfig [interface_name]
    

    [interface_name] 替换为你想要查看的接口名称,例如 eth0wlan0

  3. 配置网络接口:

    • ifconfig 也可以用来配置网络接口,例如启用或禁用接口,或者为接口分配 IP 地址。但请注意,使用 ifconfig 进行配置可能需要管理员权限。
  4. 启用接口:

    sudo ifconfig [interface_name] up
    
  5. 禁用接口:

    sudo ifconfig [interface_name] down
    
  6. 为接口分配 IP 地址:

    sudo ifconfig [interface_name] [ip_address] netmask [netmask]
    

    [interface_name] 替换为接口名称,[ip_address] 替换为要分配的 IP 地址,[netmask] 替换为相应的网络掩码。

  7. 删除接口的 IP 地址:

    sudo ifconfig [interface_name] -alias [ip_address] down
    
  8. 退出 ifconfig:

    • 如果你在使用 ifconfig 的交互模式,可以通过输入 exitq 退出。

请注意,ifconfig 命令在一些现代 Linux 发行版中已经被 ip 命令所取代,因为 ip 提供了更多的功能和灵活性。如果你的系统上没有 ifconfig,你可以使用 ip aip link 来获取类似的信息。

ip a 命令

ip a 是一个在类 Unix 系统中使用的命令行工具,用于显示和操作路由、网络设备、接口和隧道。这个命令是 ip 命令的别名,ip 是一个功能强大的网络配置工具,它能够替代旧的 ifconfigroute 命令。

当你执行 ip a 命令时,它会显示当前系统的网络接口的详细信息,包括:

  • 接口的名称(例如 eth0, wlan0 等)
  • 接口的状态(例如 UP 或 DOWN)
  • 接口的硬件地址(MAC 地址)
  • 接口的 MTU(最大传输单元)
  • 接口的 QoS(服务质量)标记
  • 接口的链接层(例如以太网、无线等)
  • 接口的 IPv4 和 IPv6 地址
  • 接口的广播地址(如果有)
  • 接口的任何其他相关配置信息

使用 ip a 命令的步骤如下:

  1. 打开终端:

    • 在你的 Linux 或 Unix-like 系统中打开一个终端窗口。
  2. 执行命令:

    • 输入 ip a 并按下回车键。
  3. 查看输出:

    • 命令执行后,你将看到当前系统所有网络接口的详细信息。
  4. 使用选项:

    • 你可以使用不同的选项来获取特定的信息。例如:
      • ip a show [interface]:显示特定接口的详细信息。
      • ip a help:显示 ip 命令的帮助信息。
  5. 权限问题:

    • 通常,查看网络接口信息不需要特殊权限,但如果你想要更改网络配置,可能需要使用 sudo
  6. 网络故障排查:

    • ip a 命令是网络故障排查的常用工具,因为它提供了接口的全面信息。

ip a 命令是了解系统网络状态和配置的有用工具,对于系统管理员和用户来说都是一个重要的命令。

w 命令

在 Unix 和类 Unix 系统中,w 命令用于显示当前登录到系统的用户列表,以及他们正在执行的命令和系统负载情况。这个命令提供了关于谁在系统上活动、他们正在做什么以及系统在过去一段时间内的平均负载的有用信息。

以下是 w 命令的一些关键特性和用法:

  1. 显示登录用户:

    • 运行 w 命令将显示当前登录到系统的所有用户的列表。
  2. 显示用户活动:

    • 对于每个用户,w 会显示他们从哪个终端登录、登录时间、空闲时间、正在运行的命令以及JCPU和PCPU时间。
  3. 系统负载:

    • 命令底部显示了系统在过去1分钟、5分钟和15分钟的平均负载。
  4. 使用示例:

    w
    
  5. 显示特定用户:

    • 如果你想查看特定用户的活动,可以使用 -w 选项:

      w [username]

  6. 显示所有用户的详细活动:

    • 使用 -h 选项可以显示所有用户的详细活动,包括他们正在运行的完整命令行:

      w -h

  7. 显示用户从哪里登录:

    • 使用 -l 选项可以显示用户的远程主机地址:

      w -l

  8. 显示用户会话信息:

    • 使用 -s 选项可以显示简化格式的用户会话信息:

      w -s

w 命令对于系统管理员来说非常有用,因为它可以快速提供关于系统用户活动和系统负载的概览。然而,由于安全原因,在一些系统中可能会限制 w 命令的使用,以防止未经授权的用户查看其他用户的活动。

df -h 命令

df -h 是一个在 Unix 和类 Unix 系统中使用的命令,用于显示文件系统的磁盘空间使用情况。df 代表 "disk free",而 -h 是一个选项,表示 "human-readable",使得输出结果以易读的格式显示,例如以 K(千字节)、M(兆字节)、G(吉字节)等单位。

以下是 df -h 命令的一些关键特性:

  1. 显示磁盘空间:

    • 该命令显示每个已挂载的文件系统的总空间、已用空间、可用空间和使用率。
  2. 易读格式:

    • 使用 -h 选项,输出结果以易读的格式显示,例如 2,0G 表示 2 G字节。
  3. 使用示例:

    df -h
    
  4. 显示特定文件系统:

    • 如果你想查看特定文件系统的磁盘使用情况,可以使用 df 命令后跟文件系统的路径或名称:

      df -h /path/to/mountpoint

  5. 显示所有文件系统:

    • 默认情况下,df 命令会显示所有已挂载的文件系统。如果只想显示特定类型的文件系统,可以使用 -x 选项排除其他类型的文件系统。
  6. 显示文件系统的类型:

    • 使用 -t 选项可以显示文件系统的类型:

      df -ht ext4

  7. 显示磁盘使用百分比:

    • 默认情况下,df 命令也会显示每个文件系统的使用百分比。
  8. 显示inode使用情况:

    • 如果你还想查看 inode 的使用情况,可以使用 -i 选项:

      df -hi

df -h 是一个非常有用的命令,特别是当你需要快速了解磁盘空间的使用情况,或者在进行系统维护和性能调优时。通过这个命令,你可以确定哪些文件系统接近满容量,可能需要清理或扩展。

route -n

route 命令在 Unix 和类 Unix 系统中用于显示或操作网络路由表。使用 route 命令时加上 -n 选项可以以数值形式显示路由表,不进行名称解析,这通常可以加快命令的执行速度,并且有时可以避免由于 DNS 解析问题导致的延迟。

以下是 route -n 命令的一些关键点:

  • route -n 显示当前的路由表,包括目的网络、网关、子网掩码、使用的接口等信息。
  • 使用 -n 选项时,IP 地址和端口号将显示为数字形式,而不是尝试将它们解析为主机名或服务名。

使用示例:

sh 复制代码
route -n

输出示例:

text 复制代码
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth0
192.168.1.0     *               255.255.255.0   U         0 0          0 eth0

在这个输出中:

  • Destination 列显示目的网络或主机的 IP 地址。
  • Gateway 列显示到达目的地的下一跳地址(网关)。
  • Genmask 列显示目的网络的子网掩码。
  • Flags 列显示路由条目的各种标志,如 U 表示路由是活动的,G 表示使用网关。
  • MSS 列显示最大报文段大小。
  • Window 列显示窗口大小。
  • irtt 列显示往返时间的估计。
  • Iface 列显示数据包将通过的网络接口。

请注意,route 命令在一些现代系统中可能已被 ip route 命令取代。例如,你可以使用 ip route show table all 来显示所有路由表。如果你的系统提示 route 命令不存在或不被识别,可以尝试使用 ip 命令。

init 0 命令

init 0 是一个在类 Unix 系统中使用的命令,用于将系统切换到运行级别(runlevel)0。运行级别0是一个特殊的状态,通常用于系统关机。在大多数现代 Linux 发行版中,这个命令会安全地关闭所有服务,然后关闭系统。

以下是 init 0 命令的一些关键点:

  1. 关闭系统:

    • init 0 命令会关闭系统上运行的所有进程和服务,并最终关闭系统。
  2. 不需要 sudo:

    • 通常,关机命令不需要管理员权限,但出于安全考虑,一些系统可能要求使用 sudo 来执行 init 0
  3. shutdown 命令的区别:

    • shutdown 命令提供了更多的选项和灵活性,例如指定关机时间或发送消息给所有用户。init 0 是一个更简单、更直接的命令,只用于关机。
  4. 使用示例:

    • 如果你需要使用 sudo,命令如下:

      sudo init 0
      
    • 或者,如果你不需要管理员权限,直接执行:

      init 0
      
  5. 现代 Linux 发行版:

    • 在一些现代的 Linux 发行版中,如使用 systemd 的系统,init 命令可能不再使用或被其他命令替代。在这些系统中,使用 systemctl 命令来管理服务和系统状态。
  6. 替代命令:

    • 如果 init 0 在你的系统上不起作用,你可以尝试使用 shutdown 命令来关机,例如:

      shutdown -h now
      

      或者

      poweroff
      
  7. 系统兼容性:

    • 在使用 init 0 命令之前,请确保了解你的系统使用的是哪种初始化系统(如 System V init、Upstart 或 systemd)以及相应的命令。

在执行 init 0 或任何关机命令之前,请确保保存所有工作,因为这些命令将关闭所有应用程序并关闭系统。

相关推荐
轩辰~5 分钟前
网络协议入门
linux·服务器·开发语言·网络·arm开发·c++·网络协议
wanhengidc44 分钟前
短视频运营行业该如何选择服务器?
运维·服务器
s_yellowfish1 小时前
Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人
linux·服务器·chatgpt
vvw&1 小时前
如何在 Ubuntu 22.04 上安装 Ansible 教程
linux·运维·服务器·ubuntu·开源·ansible·devops
我一定会有钱1 小时前
【linux】NFS实验
linux·服务器
王铁柱子哟-1 小时前
解决 正在下载VS Code 服务器... 问题
运维·服务器
Ven%1 小时前
如何在防火墙上指定ip访问服务器上任何端口呢
linux·服务器·网络·深度学习·tcp/ip
泰伦闲鱼1 小时前
nestjs:GET REQUEST 缓存问题
服务器·前端·缓存·node.js·nestjs
是阿建吖!2 小时前
【Linux】基础IO(磁盘文件)
linux·服务器·数据库
m0_748236582 小时前
《Web 应用项目开发:从构思到上线的全过程》
服务器·前端·数据库