Unix主机作为服务器和开发环境的核心,其强大的命令行工具是高效管理系统的关键,熟练掌握常用命令不仅能提升工作效率,还能更好地理解系统运行机制,以下从文件管理、系统监控、网络工具、文本处理和用户管理五个维度,详细介绍Unix主机常用命令及其应用场景。

文件与目录管理
文件管理是Unix操作的基础,ls
、cd
、cp
、mv
、rm
等命令构成了日常操作的基石。ls
命令用于列出目录内容,通过-l
选项可显示详细信息(如权限、所有者、大小),-a
选项会隐藏以开头的文件,例如ls -la /home
可查看用户主目录下的所有文件,包括隐藏文件。cd
命令用于切换目录,cd ..
返回上级目录,cd ~
切换至当前用户主目录。cp
命令复制文件或目录,-r
选项用于递归复制整个目录,如cp -r /source /target
。mv
命令兼具移动和重命名功能,mv old_name new_name
可重命名文件,mv /file /new/location/
可移动文件位置。rm
命令删除文件,-r
选项递归删除目录,-f
选项强制删除不提示,需谨慎使用,尤其是rm -rf
组合,一旦执行无法恢复。
mkdir
和rmdir
分别用于创建和删除空目录。mkdir -p parent/child
可递归创建多级目录结构,而rmdir
仅能删除空目录,删除非空目录需使用rm -r
。touch
命令用于创建空文件或更新文件时间戳,如touch newfile.txt
。find
命令是强大的文件搜索工具,可通过文件名、类型、大小、修改时间等条件查找文件,例如find /var -name "*.log" -mtime +30
可在/var
目录下查找30天前修改过的所有日志文件。du
命令用于查看目录或文件占用的磁盘空间,-h
选项以人类可读格式显示(如KB、MB),-s
选项仅显示总计,如du -sh /home
可查看用户主目录的总大小。
系统监控与进程管理
了解系统状态是维护Unix主机的重要环节。top
命令实时显示进程信息和系统资源占用,按P
键按CPU占用排序,M
键按内存占用排序,q
键退出。htop
是top
的增强版,提供更直观的界面和交互操作,部分系统需单独安装。ps
命令查看当前进程状态,aux
选项显示所有进程的详细信息,如ps aux | grep nginx
可查找nginx相关进程。kill
和killall
命令用于终止进程,kill
通过进程ID(PID)终止进程,如kill 1234
,killall
通过进程名终止,如killall nginx
,-9
选项强制终止,应尽量避免使用。
df
命令查看磁盘空间使用情况,-h
选项以人类可读格式显示,如df -h
可查看各分区的使用率。free
命令显示内存使用情况,-m
选项以MB为单位,如free -m
查看内存占用详情。uname
命令显示系统信息,-a
选项显示所有信息,包括内核版本、主机名等。uptime
命令显示系统运行时间和负载平均值,如uptime
输出10:30:45 up 10 days, 2:30, 1 user, load average: 0.05, 0.10, 0.15
,表示系统已运行10天2小时30分钟,1分钟、5分钟、15分钟的平均负载分别为0.05、0.10、0.15。netstat
命令查看网络连接状态,-tuln
选项显示所有监听的TCP和UDP端口,如netstat -tuln | grep :80
可查看80端口是否被监听。

网络工具与通信
网络配置和故障排查离不开专用命令。ping
命令测试网络连通性,如ping www.google.com
发送ICMP包测试与目标主机的连接延迟。ifconfig
或ip
命令配置和显示网络接口信息,ifconfig eth0
查看以太网接口状态,ip addr show
是现代系统推荐使用的命令。ssh
命令用于远程登录,如ssh user@192.168.1.100
以user身份登录到192.168.1.100主机,-p
选项指定端口号,如ssh -p 2222 user@host
。scp
命令在主机间安全复制文件,如scp /local/file user@remote:/remote/path
将本地文件复制到远程主机,-r
选项递归复制目录。wget
或curl
命令用于下载文件,wget https://example.com/file.zip
直接下载文件,curl -O https://example.com/file.zip
也可实现下载,且支持更多高级功能。
traceroute
或tracert
(Windows)命令跟踪数据包到目标主机的路径,如traceroute www.google.com
显示数据包经过的路由节点。nslookup
或dig
命令用于DNS查询,nslookup www.google.com
查询域名的IP地址,dig www.google.com
提供更详细的DNS信息。telnet
命令测试端口连通性,如telnet localhost 80
测试本地80端口是否开放,Ctrl+]
退出。iptables
命令配置Linux防火墙规则,如iptables -A INPUT -p tcp --dport 22 -j ACCEPT
允许22端口(SSH)的TCP连接。
文本处理与搜索
Unix强大的文本处理能力源于grep
、sed
、awk
等工具。grep
命令在文件中搜索匹配的文本,-i
选项忽略大小写,-r
选项递归搜索目录,如grep -r "error" /var/log
在日志目录中搜索包含"error"的行。cat
命令查看文件内容,more
或less
命令分页查看大文件,less
支持上下滚动和搜索功能。head
和tail
命令查看文件开头和结尾部分,-n
选项指定行数,如tail -n 100 /var/log/syslog
查看系统日志的最后100行。wc
命令统计文件行数、单词数和字节数,-l
选项仅统计行数,如wc -l file.txt
查看文件行数。
sed
流编辑器用于文本替换和删除,如sed 's/old/new/g' file.txt
将文件中所有"old"替换为"new",-i
选项直接修改文件。awk
文本处理工具基于列处理数据,如awk '{print $1, $3}' file.txt
打印文件的第一列和第三列。sort
命令对文件内容排序,-n
选项按数字排序,-r
选项降序排列,如sort -n -r numbers.txt
对数字文件降序排序。uniq
命令去除重复行,需先配合sort
使用,如sort file.txt | uniq
去除重复行。tar
命令用于打包和解压文件,-c
选项创建包,-x
选项解压,-v
显示过程,-f
指定文件名,如tar -czvf archive.tar.gz /dir
将目录打包为gzip压缩的tar包,tar -xzvf archive.tar.gz
解压。

用户与权限管理
Unix系统的安全基于严格的权限控制。chmod
命令修改文件权限,r
(读)、w
(写)、x
(执行)分别对应4、2、1,如chmod 755 script.sh
设置所有者可读写执行,组用户和其他用户可读执行。chown
命令修改文件所有者,-R
选项递归修改目录,如chown user:group file.txt
将文件所有者改为user,组改为group。useradd
和userdel
命令添加和删除用户,useradd -m -s /bin/bash newuser
创建新用户并创建主目录,userdel newuser
删除用户,-r
选项同时删除用户主目录。passwd
命令修改用户密码,普通用户只能修改自己的密码,root可修改所有用户密码。sudo
命令允许普通用户以超级用户权限执行命令,需配置/etc/sudoers
文件,如sudo apt update
以root权限更新软件包。
groupadd
和groupdel
命令添加和删除用户组,groupadd developers
创建developers组,usermod -aG developers username
将用户添加到developers组。su
命令切换用户,su -
切换到root用户并加载其环境变量,exit
返回原用户。who
和w
命令查看当前登录用户,w
显示用户正在执行的命令。last
命令查看用户登录历史,如last root
查看root用户的登录记录。
相关问答FAQs
Q1: 如何在Unix系统中查找包含特定字符串的所有文件?
A1: 可使用grep
命令结合-r
选项递归搜索目录,在当前目录及其子目录中查找包含"error"字符串的文件,命令为grep -r "error" .
,若需忽略大小写,可添加-i
选项,即grep -ri "error" .
,搜索结果会显示匹配的文件路径及内容行。
Q2: 如何将一个大文件分割成多个小文件?
A2: 可使用split
命令分割文件,将largefile.log
分割成每个文件大小为10MB的小文件,命令为split -b 10M largefile.log chunk_
,分割后文件会自动命名为chunk_aa
、chunk_ab
等,若需按行数分割,可使用-l
选项,如split -l 1000 largefile.txt part_
,每个文件包含1000行,合并文件时,使用cat chunk_* > mergedfile.log
即可恢复原文件。