菜鸟科技网

Unix主机常用命令有哪些必备技巧?

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

Unix主机常用命令有哪些必备技巧?-图1
(图片来源网络,侵删)

文件与目录管理

文件管理是Unix操作的基础,lscdcpmvrm等命令构成了日常操作的基石。ls命令用于列出目录内容,通过-l选项可显示详细信息(如权限、所有者、大小),-a选项会隐藏以开头的文件,例如ls -la /home可查看用户主目录下的所有文件,包括隐藏文件。cd命令用于切换目录,cd ..返回上级目录,cd ~切换至当前用户主目录。cp命令复制文件或目录,-r选项用于递归复制整个目录,如cp -r /source /targetmv命令兼具移动和重命名功能,mv old_name new_name可重命名文件,mv /file /new/location/可移动文件位置。rm命令删除文件,-r选项递归删除目录,-f选项强制删除不提示,需谨慎使用,尤其是rm -rf组合,一旦执行无法恢复。

mkdirrmdir分别用于创建和删除空目录。mkdir -p parent/child可递归创建多级目录结构,而rmdir仅能删除空目录,删除非空目录需使用rm -rtouch命令用于创建空文件或更新文件时间戳,如touch newfile.txtfind命令是强大的文件搜索工具,可通过文件名、类型、大小、修改时间等条件查找文件,例如find /var -name "*.log" -mtime +30可在/var目录下查找30天前修改过的所有日志文件。du命令用于查看目录或文件占用的磁盘空间,-h选项以人类可读格式显示(如KB、MB),-s选项仅显示总计,如du -sh /home可查看用户主目录的总大小。

系统监控与进程管理

了解系统状态是维护Unix主机的重要环节。top命令实时显示进程信息和系统资源占用,按P键按CPU占用排序,M键按内存占用排序,q键退出。htoptop的增强版,提供更直观的界面和交互操作,部分系统需单独安装。ps命令查看当前进程状态,aux选项显示所有进程的详细信息,如ps aux | grep nginx可查找nginx相关进程。killkillall命令用于终止进程,kill通过进程ID(PID)终止进程,如kill 1234killall通过进程名终止,如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端口是否被监听。

Unix主机常用命令有哪些必备技巧?-图2
(图片来源网络,侵删)

网络工具与通信

网络配置和故障排查离不开专用命令。ping命令测试网络连通性,如ping www.google.com发送ICMP包测试与目标主机的连接延迟。ifconfigip命令配置和显示网络接口信息,ifconfig eth0查看以太网接口状态,ip addr show是现代系统推荐使用的命令。ssh命令用于远程登录,如ssh user@192.168.1.100以user身份登录到192.168.1.100主机,-p选项指定端口号,如ssh -p 2222 user@hostscp命令在主机间安全复制文件,如scp /local/file user@remote:/remote/path将本地文件复制到远程主机,-r选项递归复制目录。wgetcurl命令用于下载文件,wget https://example.com/file.zip直接下载文件,curl -O https://example.com/file.zip也可实现下载,且支持更多高级功能。

traceroutetracert(Windows)命令跟踪数据包到目标主机的路径,如traceroute www.google.com显示数据包经过的路由节点。nslookupdig命令用于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强大的文本处理能力源于grepsedawk等工具。grep命令在文件中搜索匹配的文本,-i选项忽略大小写,-r选项递归搜索目录,如grep -r "error" /var/log在日志目录中搜索包含"error"的行。cat命令查看文件内容,moreless命令分页查看大文件,less支持上下滚动和搜索功能。headtail命令查看文件开头和结尾部分,-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主机常用命令有哪些必备技巧?-图3
(图片来源网络,侵删)

用户与权限管理

Unix系统的安全基于严格的权限控制。chmod命令修改文件权限,r(读)、w(写)、x(执行)分别对应4、2、1,如chmod 755 script.sh设置所有者可读写执行,组用户和其他用户可读执行。chown命令修改文件所有者,-R选项递归修改目录,如chown user:group file.txt将文件所有者改为user,组改为group。useradduserdel命令添加和删除用户,useradd -m -s /bin/bash newuser创建新用户并创建主目录,userdel newuser删除用户,-r选项同时删除用户主目录。passwd命令修改用户密码,普通用户只能修改自己的密码,root可修改所有用户密码。sudo命令允许普通用户以超级用户权限执行命令,需配置/etc/sudoers文件,如sudo apt update以root权限更新软件包。

groupaddgroupdel命令添加和删除用户组,groupadd developers创建developers组,usermod -aG developers username将用户添加到developers组。su命令切换用户,su -切换到root用户并加载其环境变量,exit返回原用户。whow命令查看当前登录用户,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_aachunk_ab等,若需按行数分割,可使用-l选项,如split -l 1000 largefile.txt part_,每个文件包含1000行,合并文件时,使用cat chunk_* > mergedfile.log即可恢复原文件。

分享:
扫描分享到社交APP
上一篇
下一篇