Linux简介与常用命令
一、Linux系统简介
1.1 什么是Linux
Linux是一种自由和开放源代码的类UNIX操作系统,由林纳斯·托瓦兹(Linus Torvalds)于1991年首次发布。它基于POSIX标准,支持多用户、多任务、多线程和多CPU架构,广泛应用于服务器、嵌入式系统、移动设备等领域。
1.2 Linux的主要特点
开源免费:用户可自由获取、修改和分发源代码
稳定性与安全性:系统运行稳定,安全机制完善
多任务与多用户:支持同时运行多个程序和多个用户登录
高度可定制:可根据需求裁剪系统组件
强大的网络功能:内置丰富的网络协议和工具
1.3 Linux的应用领域
服务器系统(Web服务器、数据库服务器等)
嵌入式设备(智能手机、路由器、智能家居等)
云计算与大数据平台
科研与高性能计算
桌面操作系统(如Ubuntu、Fedora等发行版)
二、Linux常用命令
2.1 文件与目录操作
ls - 列出目录内容
bash
ls # 列出当前目录文件
ls -l # 详细格式显示
ls -a # 显示隐藏文件
ls /home/user # 列出指定目录内容
cd - 切换目录
bash
cd /path/to/dir # 切换到指定目录
cd ~ # 切换到用户主目录
cd .. # 切换到上级目录
cd - # 切换到上一次访问的目录
pwd - 显示当前目录
bash
pwd # 显示当前工作目录的绝对路径
mkdir - 创建目录
bash
mkdir newdir # 创建单个目录
mkdir -p a/b/c # 创建多级目录
rm - 删除文件/目录
bash
rm file.txt # 删除文件
rm -r dir # 删除目录及其内容
rm -f file.txt # 强制删除文件(无提示)
rm -rf dir # 强制删除目录(无提示)
cp - 复制文件/目录
bash
cp src.txt dest.txt # 复制文件
cp -r src_dir dest_dir # 复制目录
mv - 移动/重命名文件/目录
bash
mv old.txt new.txt # 重命名文件
mv file.txt /path/to/dir # 移动文件
2.2 文件内容查看
cat - 查看文件内容
bash
cat file.txt # 显示文件全部内容
cat -n file.txt # 显示行号
more/less - 分页查看文件
bash
more file.txt # 分页显示(空格键翻页,q退出)
less file.txt # 更灵活的分页查看(支持上下滚动)
head/tail - 查看文件开头/结尾
bash
head file.txt # 显示文件前10行
head -n 5 file.txt # 显示文件前5行
tail file.txt # 显示文件后10行
tail -f log.txt # 实时查看文件更新(常用于日志)
2.3 系统管理
ps - 查看进程
bash
ps # 显示当前用户进程
ps aux # 显示系统所有进程
ps aux | grep "nginx" # 查找特定进程
top - 实时系统监控
bash
top # 实时显示系统资源使用和进程信息
df/du - 磁盘空间查看
bash
df -h # 显示磁盘分区使用情况(人类可读格式)
du -sh /path/to/dir # 显示目录大小(人类可读格式)
free - 内存使用情况
bash
free -h # 显示内存使用情况(人类可读格式)
2.4 网络操作
ping - 测试网络连接
bash
ping www.example.com # 测试与目标主机的连接
ifconfig/ip - 网络接口配置
bash
ifconfig # 显示网络接口信息(旧版)
ip addr # 显示网络接口信息(新版)
netstat - 网络状态查看
bash
netstat -tuln # 显示监听的TCP/UDP端口
ssh - 远程登录
bash
ssh user@remote_host # 通过SSH协议登录远程主机
2.5 权限管理
chmod - 修改文件权限
bash
chmod 755 file.sh # 设置文件所有者可读可写可执行,其他用户可读可执行
chmod +x script.sh # 为文件添加执行权限
chown - 修改文件所有者
bash
chown user:group file.txt # 修改文件所有者和所属组
三、总结
Linux命令是使用Linux系统的基础,掌握常用命令可以极大提高工作效率。本文介绍的只是Linux命令的冰山一角,建议通过man 命令名(如man ls)查看完整的命令手册,深入学习和实践。
随着使用经验的积累,你会发现Linux系统的强大功能和灵活性,它将成为你工作和学习的得力助手。
四、常用命令高级用法与实战技巧
4.1 文件操作进阶
ls 命令高级用法
bash
ls -lh # 以人类可读格式显示文件大小
ls -lt # 按修改时间排序(最新在前)
ls -lSr # 按文件大小排序(从小到大)
ls -l | grep ".txt" # 结合管道筛选特定文件
实用场景:
bash
# 统计当前目录下不同类型文件数量
ls -l | awk '{print $1}' | grep -v '^d' | wc -l # 统计普通文件数量
ls -l | awk '{print $1}' | grep '^d' | wc -l # 统计目录数量
find 命令 - 高级文件搜索
bash
find / -name "*.log" # 从根目录搜索所有.log文件
find ~ -type d -name "test*" # 在主目录搜索以test开头的目录
find . -mtime -7 # 查找7天内修改过的文件
find . -size +100M # 查找大于100MB的文件
find . -perm 777 # 查找权限为777的文件
find . -name "*.txt" -exec rm {} \; # 查找并删除所有.txt文件(谨慎使用)
cp 命令高级复制
bash
cp -a src_dir dest_dir # 保留文件属性的递归复制
cp -r --parents a/b/c dest # 复制文件并保留目录结构
cp -v file1 file2 dest_dir # 显示复制过程
4.2 文本处理工具
grep - 文本搜索神器
bash
grep "error" log.txt # 在文件中搜索"error"
grep -i "Error" log.txt # 忽略大小写搜索
grep -r "pattern" /path/to/dir # 递归搜索目录下所有文件
grep -n "keyword" file.txt # 显示匹配行号
grep -v "exclude" file.txt # 排除包含"exclude"的行
grep -E "pattern1|pattern2" file # 搜索多个模式(正则表达式)
实用案例:
bash
# 从日志中提取IP地址并统计出现次数
grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' access.log | sort | uniq -c | sort -nr
sed - 流编辑器
bash
sed 's/old/new/' file.txt # 将每行第一个"old"替换为"new"
sed 's/old/new/g' file.txt # 全局替换所有"old"为"new"
sed '/pattern/d' file.txt # 删除包含"pattern"的行
sed -n '5,10p' file.txt # 显示第5到10行内容
sed 's/^/#/' file.txt # 给文件所有行添加注释(#)
awk - 文本处理语言
bash
awk '{print $1}' file.txt # 打印文件第一列
awk -F ',' '{print $2}' data.csv # 处理CSV文件,打印第二列
awk '$3 > 100 {print $0}' data.txt # 第三列大于100的行
awk 'BEGIN{sum=0} {sum+=$1} END{print sum}' numbers.txt # 计算第一列总和
4.3 系统监控与管理
ps 进程管理进阶
bash
ps aux --sort=-%cpu | head # 按CPU使用率排序进程(前10)
ps aux --sort=-%mem | head # 按内存使用率排序进程(前10)
ps -ef | grep "process_name" # 查看进程完整信息
top 高级用法
bash
top -d 2 # 每2秒刷新一次
top -p 1234 # 只监控PID为1234的进程
top -u username # 只显示指定用户的进程
在top界面按:
P - 按CPU使用率排序
M - 按内存使用率排序
q - 退出
netstat/ss 网络连接监控
bash
netstat -anp | grep ESTABLISHED # 查看已建立的连接
netstat -tulnp # 查看监听端口及对应进程
ss -lntu # 更高效的端口查看(ss是netstat的替代工具)
4.4 权限与用户管理
文件权限详解
Linux文件权限由9个字符表示,分为3组:所有者(u)、所属组(g)、其他用户(o)
每组包含r(读)、w(写)、x(执行)权限,对应数值:r=4, w=2, x=1
bash
chmod u+x file.sh # 仅给所有者添加执行权限
chmod g=rw file.txt # 设置所属组权限为读写
chmod o-rwx file.txt # 移除其他用户所有权限
chmod ug+rwx,o-rwx dir # 目录权限设置
sudo 权限管理
bash
sudo command # 以root权限执行命令
sudo -i # 切换到root用户环境
sudo visudo # 安全编辑sudoers文件
用户与组管理
bash
useradd newuser # 创建新用户
passwd newuser # 设置用户密码
usermod -aG sudo newuser # 将用户添加到sudo组
groupadd newgroup # 创建新组
chown -R user:group /path/to/dir # 递归修改目录所有者和组
4.5 实用系统工具
tar - 归档与压缩
bash
tar -cvf archive.tar file1 file2 # 创建归档文件
tar -xvf archive.tar # 解压缩归档
tar -zcvf archive.tar.gz dir # 创建gzip压缩包
tar -jcvf archive.tar.bz2 dir # 创建bzip2压缩包
tar -zxvf archive.tar.gz # 解压gzip压缩包
tar -tf archive.tar # 查看归档内容而不解压
wget/curl - 网络下载工具
bash
wget https://example.com/file.iso # 下载文件
wget -c URL # 断点续传
wget -P /path/to/save URL # 指定保存路径
curl -O URL # 下载文件
curl -L URL # 跟随重定向
curl -X POST -d "data=1" URL # 发送POST请求
history - 命令历史
bash
history # 显示命令历史
history 10 # 显示最近10条命令
!100 # 执行历史中第100条命令
!ls # 执行最近一次以ls开头的命令
history | grep "command" # 搜索历史命令
4.6 系统性能优化
vmstat - 系统性能监控
bash
vmstat 2 5 # 每2秒采样一次,共5次
vmstat -s # 显示内存统计信息
iostat - 磁盘I/O监控
bash
iostat # 显示CPU和磁盘I/O统计
iostat -x 2 # 每2秒显示一次详细磁盘统计
系统资源限制临时调整
bash
ulimit -n 65535 # 临时调整文件描述符限制
ulimit -u 1024 # 调整最大用户进程数
五、Linux命令速查表
5.1 常用快捷键
5.2 必备命令分类汇总
六、Linux学习资源推荐
官方文档:各Linux发行版官方文档
在线教程:Linux中国、菜鸟教程、LinuxTOY
书籍推荐:
《鸟哥的Linux私房菜》
《Linux命令行与shell脚本编程大全》
《Unix/Linux系统管理手册》
实践平台:
虚拟机(VMware/VirtualBox)
云服务器(AWS EC2, 阿里云ECS等)
在线实验平台(如Katacoda, Linux Academy)
通过持续实践这些命令和技巧,你将逐渐掌握Linux系统的强大功能,提高工作效率。记住,熟练掌握Linux的最佳途径是多动手、多尝试、多解决实际问题。