Linux 命令行是系统管理员和开发人员日常工作的基本工具,掌握常用的 Linux 命令和 Shell 脚本能够极大提高效率。以下是详细的 Linux 命令和 Shell 脚本教程,涵盖了 命令行基本操作、常用命令、文本处理、文件管理、进程管理、网络管理、Shell 脚本基础等方面,帮助你系统掌握 Linux 的核心操作。
1. Linux 基本命令
1.1 文件和目录管理
- ls:列出目录内容
ls -l # 显示详细信息 ls -a # 显示隐藏文件 ls -lh # 以人类可读的方式显示文件大小 ls -R # 递归显示子目录的内容
- cd:切换目录
cd /path/to/directory # 进入指定目录 cd ~ # 进入当前用户的 home 目录 cd .. # 返回上级目录
- pwd:显示当前目录
pwd # 显示当前工作目录的绝对路径
- mkdir:创建目录
mkdir new_directory # 创建一个目录 mkdir -p path/to/directory # 递归创建目录
- rmdir:删除空目录
rmdir directory # 删除空目录
- rm:删除文件或目录
rm file.txt # 删除文件 rm -r dir_name # 删除目录及其内容 rm -f file.txt # 强制删除文件
- cp:复制文件或目录
cp source.txt dest.txt # 复制文件 cp -r source_dir dest_dir # 复制目录及其内容
- mv:移动文件或目录
mv source.txt dest.txt # 移动或重命名文件 mv dir1/ dir2/ # 移动目录
- find:查找文件
find /path -name "*.txt" # 查找指定目录下的 .txt 文件 find /path -type f -name "file_name" # 查找特定文件
1.2 权限管理
- chmod:改变文件权限
chmod 755 file # 设置文件权限 rwxr-xr-x chmod u+x file # 增加文件的执行权限 chmod g-w file # 移除文件的写权限
- chown:更改文件的所有者
chown user:group file # 更改文件的拥有者
- chgrp:更改文件的所属组
chgrp group file # 更改文件的所属组
- umask:查看或设置默认权限掩码
umask 022 # 设置文件创建时的默认权限
2. Shell 常用命令
2.1 查看文件内容
- cat:查看文件内容
cat file.txt # 显示文件内容
- more:逐页显示文件内容
more file.txt # 分页查看文件
- less:更强大的分页显示文件内容
less file.txt # 向前向后滚动查看文件内容
- head:查看文件的前几行
head -n 10 file.txt # 查看文件的前 10 行
- tail:查看文件的后几行
tail -n 10 file.txt # 查看文件的最后 10 行 tail -f log.txt # 实时查看文件更新(日志文件常用)
2.2 文本处理
- grep:搜索文本内容
grep "pattern" file.txt # 搜索文件中包含特定模式的行 grep -r "pattern" dir/ # 在目录中递归搜索 grep -i "pattern" file.txt # 忽略大小写进行搜索
- awk:文本模式扫描与处理
awk '{print $1}' file.txt # 打印文件的第一列 awk -F',' '{print $2}' file.txt # 按逗号分割并打印第二列
- sed:流编辑器,用于修改文件内容
sed 's/old/new/' file.txt # 替换文件中的第一个匹配项 sed 's/old/new/g' file.txt # 替换文件中的所有匹配项 sed -i 's/old/new/' file.txt # 直接修改文件
- sort:排序文本
sort file.txt # 按字典序排序文件内容 sort -n file.txt # 按数字大小排序
- uniq:去重
uniq file.txt # 去除相邻重复的行
- cut:按列提取数据
cut -d',' -f1 file.txt # 按逗号分隔并提取第一列
3. 进程管理
3.1 查看进程
- ps:查看当前进程
ps aux # 显示所有进程的详细信息 ps -ef # 显示系统中所有的进程
- top:实时显示进程信息
top # 持续显示系统资源占用的进程信息
- htop:增强版的 top,提供更友好的界面(需要安装)
htop # 类似于 top,但界面更加友好
- pgrep:根据名称查找进程
pgrep nginx # 查找 nginx 进程
3.2 管理进程
- kill:杀死进程
kill PID # 通过进程ID终止进程 kill -9 PID # 强制终止进程
- pkill:按名称杀死进程
pkill nginx # 通过进程名称终止进程
- nice:设置进程优先级
nice -n 10 command # 以较低的优先级运行命令
- renice:改变进程优先级
renice -n 5 -p PID # 改变指定进程的优先级
4. 网络管理
4.1 网络命令
- ping:测试网络连通性
ping www.google.com # 测试与 Google 的网络连接
- ifconfig:查看或配置网络接口
ifconfig # 显示网络接口信息 ifconfig eth0 # 查看特定接口的信息
- ip:更现代化的网络管理工具
ip addr show # 显示所有网络接口的地址信息 ip link set eth0 up # 启动网络接口
- netstat:显示网络连接、路由表、接口状态
netstat -tuln # 显示所有监听的端口
- ss:查看网络连接
ss -tuln # 显示所有 TCP 和 UDP 连接
- wget:下载文件
wget http://example.com/file.txt # 下载文件
5. Shell 脚本基础
5.1 基本结构
#!/bin/bash # 指定脚本使用的解释器
echo "Hello, World!" # 输出信息
5.2 变量和输入
name="John" # 定义变量
echo $name # 输出变量的值
read -p "Enter your name: " user_name # 用户输入
echo "Hello, $user_name!" # 使用输入的变量
5.3 条件判断
if [ $age -ge 18 ]; then # 判断年龄是否
大于等于18
echo “Adult”
else
echo “Minor”
fi
### **5.4 循环**
- **for 循环**:
```bash
for i in {1..5}; do
echo "Iteration $i"
done
- while 循环:
count=1 while [ $count -le 5 ]; do echo "Iteration $count" ((count++)) done
5.5 函数
function greet {
echo "Hello, $1!" # $1 是第一个传递给函数的参数
}
greet "Alice" # 调用函数并传参
5.6 脚本调试
bash -x script.sh # 显示脚本的执行过程
总结
以上内容涵盖了 Linux 的常用命令以及 Shell 脚本的基础。掌握这些命令和技巧可以大大提高你在运维、开发中的效率。如果你是刚入门的 Linux 用户,可以从常用命令和基础脚本开始,逐步提升自己的技能,逐步深入理解系统内部的工作原理。
发表回复