Linux命令大全:从入门到精通的终极指南
一、 Linux简介与基础
Linux是一种开源的类Unix操作系统内核,由林纳斯·托瓦兹于1991年首次发布。它以其稳定性、安全性和灵活性著称,广泛应用于服务器、嵌入式设备和个人计算机。本章将介绍Linux的基本概念和常用命令分类。
二、 文件与目录操作命令
1. 目录导航与查看
- pwd:显示当前工作目录的完整路径
- ls:列出目录内容
ls -l:长格式显示(详细信息)ls -a:显示所有文件(包括隐藏文件)ls -lh:人类可读的文件大小
- cd:切换目录
cd ..:返回上级目录cd ~:返回用户主目录cd -:返回上一个目录
2. 文件与目录管理
- mkdir:创建目录
mkdir -p dir1/dir2:创建多级目录
- rmdir:删除空目录
- rm:删除文件或目录
rm -r:递归删除目录及其内容rm -f:强制删除,不提示
- cp:复制文件或目录
cp -r source_dir target_dir:递归复制目录
- mv:移动或重命名文件/目录
- touch:创建空文件或更新文件时间戳
3. 文件内容查看与编辑
- cat:连接文件并打印到标准输出
cat file1 file2 > combined.txt:合并文件
- less/more:分页查看文件内容
- head:显示文件开头部分
head -n 20 file.txt:显示前20行
- tail:显示文件末尾部分
tail -f logfile.log:实时跟踪文件变化
- nano/vim/emacs:文本编辑器
三、 系统信息与进程管理
1. 系统信息查询
- uname:显示系统信息
uname -a:显示所有信息
- hostname:显示或设置系统主机名
- uptime:显示系统运行时间、用户数和负载
- free:显示内存使用情况
free -h:人类可读格式
- df:显示磁盘空间使用情况
df -h:人类可读格式
- du:显示目录或文件磁盘使用情况
du -sh directory:汇总显示目录大小
2. 进程管理
- ps:显示当前进程状态
ps aux:显示所有进程详细信息ps -ef:显示完整格式的进程列表
- top/htop:实时显示进程状态
- kill:终止进程
kill -9 PID:强制终止进程
- killall:按进程名终止进程
- pkill:按模式匹配终止进程
- bg/fg:后台/前台运行进程
- jobs:显示当前作业状态
四、 网络相关命令
1. 网络配置与诊断
- ifconfig/ip:显示或配置网络接口
- ping:测试网络连通性
ping -c 4 google.com:发送4个数据包
- traceroute/tracepath:跟踪数据包路径
- netstat:显示网络连接、路由表、接口统计等
netstat -tulpn:显示所有监听端口
- ss:socket统计信息(netstat的替代)
- dig/nslookup:DNS查询
- curl/wget:从网络下载文件
2. 远程连接与文件传输
- ssh:安全远程登录
ssh user@hostname:远程登录ssh -p 2222 user@hostname:指定端口
- scp:安全文件复制
scp file.txt user@remote:/path/:复制到远程scp user@remote:/path/file.txt .:从远程复制
- rsync:远程文件同步
rsync -avz source/ user@remote:/dest/:归档同步
- sftp:安全文件传输协议
五、 权限与用户管理
1. 文件权限管理
- chmod:修改文件权限
chmod 755 file.sh:设置权限为rwxr-xr-xchmod u+x file.sh:给所有者添加执行权限
- chown:修改文件所有者和组
chown user:group file.txt:修改所有者和组
- chgrp:修改文件所属组
2. 用户与组管理
- useradd/adduser:添加用户
- userdel:删除用户
- usermod:修改用户属性
- passwd:修改用户密码
- groupadd:添加用户组
- groupdel:删除用户组
- id:显示用户身份信息
- who/w:显示已登录用户
- su:切换用户身份
- sudo:以超级用户权限执行命令
六、 文本处理与搜索
1. 文本处理工具
- grep:文本搜索
grep "pattern" file.txt:搜索匹配行grep -r "pattern" directory/:递归搜索grep -i "pattern" file.txt:忽略大小写
- awk:文本处理语言
awk '{print $1}' file.txt:打印第一列awk -F',' '{print $2}' file.csv:指定分隔符
- sed:流编辑器
sed 's/old/new/g' file.txt:全局替换sed -n '10,20p' file.txt:打印10-20行
- cut:提取文件部分内容
cut -d',' -f1,3 file.csv:提取第1、3列
- sort:排序文件内容
- uniq:报告或忽略重复行
- wc:统计文件行数、单词数、字节数
wc -l file.txt:统计行数
2. 文件查找
- find:查找文件
find /home -name "*.txt":按名称查找find . -type f -mtime -7:查找7天内修改的文件find . -size +100M:查找大于100MB的文件
- locate:快速查找文件(基于数据库)
- which:显示命令的完整路径
- whereis:定位命令的二进制、源码和手册页
七、 压缩与归档
- tar:归档文件
tar -czvf archive.tar.gz directory/:创建gzip压缩包tar -xzvf archive.tar.gz:解压gzip压缩包tar -cjvf archive.tar.bz2 directory/:创建bzip2压缩包
- gzip/gunzip:压缩/解压.gz文件
- bzip2/bunzip2:压缩/解压.bz2文件
- zip/unzip:压缩/解压.zip文件
- 7z:7-Zip压缩工具
八、 软件包管理
1. Debian/Ubuntu (APT)
- apt update:更新软件包列表
- apt upgrade:升级所有已安装软件包
- apt install package_name:安装软件包
- apt remove package_name:卸载软件包
- apt search keyword:搜索软件包
- apt show package_name:显示软件包信息
- dpkg -i package.deb:安装.deb包
2. Red Hat/CentOS (YUM/DNF)
- yum install package_name:安装软件包
- yum remove package_name:卸载软件包
- yum update:更新所有软件包
- yum search keyword:搜索软件包
- yum info package_name:显示软件包信息
- rpm -i package.rpm:安装.rpm包
- dnf:DNF(YUM的下一代版本)
3. Arch Linux (Pacman)
- pacman -S package_name:安装软件包
- pacman -R package_name:卸载软件包
- pacman -Syu:更新系统
- pacman -Ss keyword:搜索软件包
- pacman -Qi package_name:显示软件包信息
九、 系统服务管理
1. Systemd (现代Linux发行版)
- systemctl start service_name:启动服务
- systemctl stop service_name:停止服务
- systemctl restart service_name:重启服务
- systemctl status service_name:查看服务状态
- systemctl enable service_name:设置开机自启
- systemctl disable service_name:禁用开机自启
- systemctl list-units --type=service:列出所有服务
- journalctl -u service_name:查看服务日志
2. SysVinit (传统系统)
- service service_name start:启动服务
- service service_name stop:停止服务
- service service_name restart:重启服务
- service service_name status:查看服务状态
- chkconfig service_name on:设置开机自启
- chkconfig service_name off:禁用开机自启
十、 实用技巧与快捷键
1. 命令行快捷键
- Ctrl+C:终止当前命令
- Ctrl+Z:暂停当前进程(可用fg恢复)
- Ctrl+D:退出当前shell(EOF)
- Ctrl+L:清屏
- Ctrl+A:移动到行首
- Ctrl+E:移动到行尾
- Ctrl+U:删除光标前所有内容
- Ctrl+K:删除光标后所有内容
- Ctrl+R:搜索命令历史
- Tab:命令/文件名自动补全
2. 实用组合命令
- command1 | command2:管道,将前一个命令的输出作为后一个命令的输入
- command > file:将输出重定向到文件(覆盖)
- command >> file:将输出追加到文件
- command 2>&1:将标准错误重定向到标准输出
- command &:在后台运行命令
- command1 && command2:前一个命令成功才执行后一个
- command1 || command2:前一个命令失败才执行后一个
十一、 总结
Linux命令是系统管理和开发的基础工具,掌握这些命令能极大提高工作效率。本文涵盖了Linux系统中最常用和最重要的命令,从基础的文件操作到高级的系统管理。建议读者在实际操作中多加练习,结合man手册(man command)和--help选项(command --help)深入学习每个命令的详细用法。随着经验的积累,你会逐渐发现Linux命令行的强大与灵活。
