Linux命令是系统管理和开发的基石。掌握常用命令、Shell脚本、系统编程和运维工具,将极大提升您的效率与能力。本文将为您系统梳理这些技能,助您成为Linux领域的高手。
文件与目录操作
文件和目录是Linux系统中最基本的存储单元。熟练掌握这些命令,是进行系统管理和开发的前提。
ls:列出目录内容
ls 是最基础的命令之一,用于列出目录中的文件和子目录。
ls [选项] [目录或文件]
常用选项包括:
- -a:显示隐藏文件
- -l:以长格式显示文件信息(包括权限、所有者、大小等)
- -h:以更易读的格式显示文件大小(如 KB、MB)
cd:切换工作目录
cd 用于切换当前工作目录,是导航文件系统的核心命令。
cd [目录路径]
注意:~ 表示当前用户的主目录,. 表示当前目录,.. 表示上一级目录。
cp:复制文件或目录
cp 用于复制文件或目录。
cp [选项] 源文件 目标文件
常用选项包括:
- -r:递归复制目录
- -p:保留文件属性(如时间戳、权限)
mv:移动或重命名文件
mv 用于移动文件或重命名文件。
mv [选项] 源文件 目标文件
注意:若目标文件已存在,mv 会覆盖它,因此使用前需确认。
rm:删除文件或目录
rm 用于删除文件或目录。
rm [选项] 文件或目录
常用选项包括:
- -r:递归删除目录
- -f:强制删除,不提示
mkdir:创建新目录
mkdir 可以创建一个或多个目录。
mkdir [选项] 目录名
常用选项包括:
- -p:递归创建目录(适用于多级目录)
find:搜索文件
find 是一个强大的文件搜索工具,可以在指定目录中查找文件。
find [路径] [表达式]
常用用法包括:
- find /path -name "filename":根据文件名搜索文件
- find /path -type f:只搜索文件
- find /path -mtime -7:搜索7天内修改过的文件
系统信息查询
系统信息查询是系统管理的重要部分,通过这些命令可以了解系统的状态和配置。
uname:显示系统信息
uname 用于显示系统信息,如内核版本、主机名等。
uname [选项]
常用选项包括:
- -a:显示所有信息
- -r:显示内核版本
- -m:显示机器硬件类型
top/htop:实时显示进程状态
top 和 htop 都是用于实时监控系统进程的工具。
top
特点:
- top 是标准工具,但界面较为基础
- htop 提供更友好的图形化界面,支持鼠标操作
df:显示磁盘空间使用情况
df 用于显示磁盘空间使用情况。
df [选项]
常用选项包括:
- -h:以易读格式显示空间(如 GB、MB)
- -a:显示所有文件系统
free:显示内存使用情况
free 用于显示系统内存使用情况,包括物理内存和交换内存。
free [选项]
常用选项包括:
- -h:以易读格式显示内存
- -m:以 MB 为单位显示内存
uptime:显示系统运行时间
uptime 用于显示系统自启动以来的运行时间。
uptime
输出格式:
- 04:50:22 up 1 day, 2:30, 1 user, load average: 0.00, 0.01, 0.05
网络管理命令
网络管理是Linux系统中不可或缺的一部分,掌握这些命令可以快速诊断网络问题。
ping:测试网络连接
ping 用于测试网络连接是否通畅。
ping [主机名或IP地址]
特点: - 通过发送ICMP请求包来检测网络延迟和丢包率 - 常用于排查网络故障
ifconfig/ip:网络接口配置
ifconfig 和 ip 都是用于配置和查看网络接口信息的命令。
ip addr show
特点:
- ip 是更现代的工具,支持更多功能
- ifconfig 已逐渐被弃用,建议使用 ip
netstat:网络状态统计
netstat 用于显示网络连接、路由表、接口统计等信息。
netstat [选项]
常用选项包括:
- -tun:显示TCP和UDP连接状态
- -p:显示进程信息
ssh:安全远程登录
ssh 用于通过加密连接安全地登录远程主机。
ssh 用户名@主机地址
特点: - 支持多种加密协议,如SSHv1和SSHv2 - 可以用于远程执行命令或传输文件
scp:安全文件传输
scp 是基于SSH的文件传输工具。
scp 源文件 用户名@主机地址:目标路径
特点: - 支持加密传输,安全性高 - 可以用于在本地和远程主机之间传输文件
高级命令与技巧
文本处理
文本处理是Linux系统中常见任务,掌握这些命令可以显著提升效率。
grep:文本搜索
grep 用于在文件中搜索特定字符串。
grep "搜索字符串" 文件
常用选项包括:
- -i:忽略大小写
- -r:递归搜索目录中的文件
- -n:显示匹配行的行号
awk:强大的文本分析工具
awk 是一个强大的文本处理工具,可以用于数据提取和格式化。
awk '条件 {动作}' 文件
特点: - 支持正则表达式 - 能够处理复杂的文本分析任务
sed:流编辑器
sed 用于对文本进行流式编辑。
sed [选项] '命令' 文件
常用选项包括:
- -i:直接修改文件内容
- -n:禁用默认输出
- -e:执行多个编辑命令
sort:排序文本
sort 用于对文本内容进行排序。
sort [选项] 文件
常用选项包括:
- -r:逆序排序
- -n:按数值排序
- -u:去除重复行
wc:统计字数、行数
wc 用于统计文件中的行数、单词数和字符数。
wc [选项] 文件
常用选项包括:
- -l:统计行数
- -w:统计单词数
- -c:统计字符数
权限管理
权限管理是保护系统安全的重要手段,合理配置权限可以防止未经授权的访问。
chmod:修改文件权限
chmod 用于修改文件或目录的权限。
chmod [权限模式] 文件或目录
权限模式包括:
- u:文件所有者
- g:文件所属组
- o:其他用户
- a:所有用户
示例:
- chmod 755 文件:设置所有者权限为读、写、执行,其他用户权限为读、执行
chown:修改文件所有者
chown 用于修改文件或目录的所有者。
chown [用户] 文件或目录
特点: - 可以同时修改所有者和所属组 - 支持递归修改目录及其子目录中的文件
sudo:以超级用户权限执行命令
sudo 用于以超级用户权限执行命令。
sudo 命令
特点: - 提供权限提升,但需谨慎使用 - 可以设置权限限制,防止误操作
passwd:修改用户密码
passwd 用于修改用户的密码。
passwd 用户名
特点: - 用于本地用户密码修改 - 可以设置密码策略,如最小长度、复杂度要求
进程管理
进程管理是系统监控和资源控制的重要部分,掌握这些命令可以有效管理运行中的程序。
ps:显示当前进程
ps 用于显示当前运行的进程。
ps [选项]
常用选项包括:
- -ef:显示所有进程的详细信息
- -aux:显示所有进程及其资源使用情况
kill:终止进程
kill 用于向进程发送信号,通常用于终止进程。
kill [选项] 进程ID
常用信号包括:
- SIGTERM(15):礼貌终止进程
- SIGKILL(9):强制终止进程
bg/fg:后台/前台运行进程
bg 和 fg 用于在后台和前台之间切换进程。
bg 进程ID
fg 进程ID
注意:后台运行的进程可以使用 jobs 命令查看。
jobs:显示后台任务
jobs 用于显示当前后台运行的进程。
jobs
特点:
- 显示进程的编号和状态
- 支持对后台进程进行操作,如 kill %1 终止编号为1的进程
运维工具
Docker
Docker 是一种容器化技术,广泛用于开发和部署应用。
常用命令包括:
- docker run:运行容器
- docker ps:列出运行中的容器
- docker images:列出本地镜像
- docker build:构建镜像
- docker stop:停止容器
- docker rm:删除容器
优势: - 提供一致的开发和运行环境 - 支持快速部署和扩展
监控工具
监控工具是运维中不可或缺的一部分,能够帮助您实时监控系统状态。
top/htop
如前所述,top 和 htop 是常用的进程监控工具。
特点:
- htop 支持更友好的界面和鼠标操作
- 可以实时查看CPU、内存、磁盘等资源使用情况
netstat
netstat 用于监控网络连接和端口状态。
常用命令:
- netstat -tun:查看TCP和UDP连接状态
- netstat -l:查看监听端口
iostat
iostat 用于监控磁盘和CPU的使用情况。
iostat [选项] [时间间隔] [次数]
常用选项包括:
- -d:显示磁盘使用情况
- -c:显示CPU使用情况
sar
sar 是系统活动报告工具,用于收集和报告系统性能数据。
sar [选项] [时间间隔] [次数]
常用选项包括:
- -u:显示CPU使用情况
- -r:显示内存使用情况
- -d:显示磁盘使用情况
日志分析
日志分析是系统运维的重要环节,可以帮助您诊断问题和优化性能。
tail
tail 用于查看文件的末尾内容。
tail [选项] 文件
常用选项包括:
- -f:实时查看文件末尾内容
- -n:显示指定行数
grep
如前所述,grep 用于搜索文本内容。
常用用法:
- grep "关键字" 日志文件:查找日志中的关键字
- grep -i "关键字" 日志文件:忽略大小写搜索
less
less 用于分页查看文件内容。
less 文件
特点:
- 支持向前和向后翻页
- 可以使用 q 键退出
logrotate
logrotate 是一个用于管理日志文件的工具,可以自动轮转和压缩日志。
logrotate [选项] 配置文件
常用选项包括:
- -f:强制轮转日志
- -d:仅显示日志轮转过程,不执行
journalctl
journalctl 是一个用于查询系统日志的工具,支持实时查看和筛选日志。
journalctl [选项]
常用选项包括:
- -f:实时查看日志
- -u:查看特定服务的日志
- -b:查看当天的日志
结语
Linux命令是系统管理和开发的核心工具。无论是初学者还是经验丰富的系统管理员,都需要掌握这些命令。通过系统学习和实践,您可以更高效地完成各种任务,提升工作效率。建议收藏本页面,随时查阅Linux命令的详细用法和技巧。
关键字列表:Linux命令, 文件管理, 进程管理, 权限管理, 系统监控, 网络管理, Shell脚本, Docker, 日志分析, 系统编程