linux常见命令(Linux基础指令)


Linux作为全球广泛使用的开源操作系统,其命令行工具以高效、灵活和强大的特性著称。通过数百个内置命令,用户可完成从文件管理到系统维护的各类任务。这些命令遵循统一的语法规则,支持管道符(|)和重定向(>/<)实现复杂操作,且多数命令可通过组合参数(如-l、-a)扩展功能。与图形化界面相比,命令行操作更适用于批量处理和远程运维场景,但其学习曲线较陡,需掌握核心命令的逻辑关联。例如,grep用于文本搜索,awk擅长字段处理,而sed则专注于流编辑,三者常协同工作以实现数据清洗。
一、文件与目录操作
文件系统管理是Linux操作的核心基础,涵盖创建、查看、移动、删除等操作。
命令 | 功能描述 | 常用参数 | 典型场景 |
---|---|---|---|
ls | 列出目录内容 | -l(详细信息) -a(显示隐藏文件) | 快速查看当前目录下文件属性 |
cp | 复制文件或目录 | -r(递归复制) -i(交互式确认) | 备份配置文件时保留目录结构 |
mv | 移动/重命名文件 | -f(强制覆盖) -u(仅当源文件更新时覆盖) | 批量迁移日志文件至归档目录 |
rm | 删除文件或目录 | -rf(递归强制删除) -v(显示处理过程) | 清理临时缓存目录 |
进阶操作中,find命令可结合条件表达式实现精准查找,如find /var/log -name ".gz" -exec gunzip ;
可自动解压指定目录下所有gzip文件。
二、用户与权限管理
多用户体系是Linux的重要特性,权限管理通过UGO(用户-组-其他)模型实现。
命令 | 功能描述 | 权限变更方式 | 适用场景 |
---|---|---|---|
useradd | 创建新用户 | -m(创建主目录) -s(指定默认shell) | 部署多用户开发环境 |
chmod | 修改文件权限 | 符号模式(u+x) 数字模式(755) | 设置Web服务器目录访问规则 |
chown | 变更文件所有者 | user:group格式直接赋值 | 修复误删文件后的所有权恢复 |
sudo | 临时提权执行 | /etc/sudoers配置权限白名单 | 非root用户执行系统级操作 |
特殊权限位设置需注意安全性,例如设置/bin/ping
为suid程序(chmod 4755)可使普通用户执行ping命令,但滥用可能引发权限提升漏洞。
三、系统状态监控
实时监控系统资源是运维核心技能,以下命令提供多维度观测能力:
命令 | 监测对象 | 输出特征 | 组合应用案例 |
---|---|---|---|
top/htop | 进程与资源占用 | 动态排序实时刷新 | 配合kill终止异常进程 |
vmstat | 虚拟内存状态 | procs/memory/io/system四维数据 | 分析磁盘I/O瓶颈时使用 |
iostat | 存储设备性能 | tps(每秒事务)、%util(利用率) | |
df/du | 磁盘空间使用 | df统计文件系统剩余空间,du计算目录实际占用 | |
netstat | 网络连接状态 | 显示监听端口、TCP连接状态分布 | |
典型故障排查流程:使用dmesg查看内核日志→通过sar分析历史负载→执行lsof -i :80定位Web服务端口占用情况。
四、网络配置与诊断
Linux提供完整网络工具链,覆盖配置、测试到故障排查:
- ifconfig/ip addr:查看/设置网络接口参数,如临时禁用网卡可执行
ifconfig eth0 down
- ping/traceroute:测试连通性,
traceroute www.baidu.com
可绘制路由路径图 - netcat:端口扫描与传输测试,
nc -zv 192.168.1.1 22
检测SSH端口开放状态 - ss/netstat:查看监听端口,
ss -tuln
显示所有TCP/UDP服务端口
防火墙配置需结合iptables(旧版)或firewalld(新版),例如允许特定端口可执行:firewall-cmd --permanent --add-port=8080/tcp
五、文本处理工具链
文本处理是Linux命令生态的核心优势,三大支柱工具各司其职:
工具类型 | 核心功能 | 典型用法 | 处理效率对比 |
---|---|---|---|
grep | 模式匹配搜索 | grep -E 'b[A-Z]3b' file.txt | 正则表达式引擎优于纯脚本循环 |
awk | 字段分割与计算 | awk -F',' '$2=="Error"print $1' log.csv | 单次扫描完成复杂条件筛选 |
sed | 流式文本编辑 | sed -i 's/foo/bar/g' . | 直接修改文件内容无需中间变量 |
实际场景中常组合使用,如ps aux | grep python | awk 'print $2' | xargs kill -9
可强制终止所有Python进程。
六、软件包管理
不同发行版采用差异化包管理工具,但核心逻辑相似:
发行版 | 包管理工具 | 安装命令 | 依赖解决方案 |
---|---|---|---|
Debian/Ubuntu | apt/dpkg | apt install tree | 自动解决依赖冲突 |
RedHat/CentOS | yum/rpm | yum localinstall .rpm | 启用额外仓库扩展源 |
ArchLinux | pacman | pacman -Syu | 滚动更新机制减少版本跳跃 |
OpenSUSE | zypper | zypper ar -f repo.repo | |
通用方案 | Snap/Flatpak | snap install vlc | 沙箱化封装解决跨发行版兼容 |
高级操作包括编译安装(./configure && make && sudo make install)和源码包管理(rpmbuild工具链)。
七、进程与作业控制
进程管理能力直接影响系统稳定性,关键命令对比如下:
操作类型 | 基础命令 | 增强型工具 | 适用场景差异 |
---|---|---|---|
进程查看 | ps aux | htop/glances | 后者提供可视化界面和实时图表 |
后台运行 | & | nohup/screen/tmux | 长期任务需防SIGHUP信号中断 |
优先级调整 | renice | nice -n | 启动前设定优先级比运行时调整更有效 |
定时任务 | at/cron | systemd.timer单元 | 后者支持更精细的触发条件配置 |
特殊场景处理:僵尸进程需找到其父进程终止,可使用pstree -p $(pgrep -f '[d]efunct'')
定位问题源头。
不同压缩格式对应特定应用场景,工具选择影响效率:
压缩格式 | )以及脚本自动化(bash/python),可使运维效率产生质的飞跃。建议通过 |
---|