Shell 命令入门到精通
基础概念
Shell 是什么
Shell 是用户与 Linux 系统交互的接口
常见的 Shell:bash(默认)、zsh、fish 等
Shell 脚本是命令的集合
Shell 类型
查看当前系统支持的 Shell
cat /etc/shells
查看当前使用的 Shell
echo $SHELL
基本命令语法
命令格式
command [options] [arguments]
常用快捷键
Ctrl + C: 中断当前命令
Ctrl + L: 清屏
Ctrl + R: 搜索历史命令
Ctrl + A: 光标移到行首
Ctrl + E: 光标移到行尾
Ctrl + U: 删除光标前内容
Ctrl + K: 删除光标后内容
文件操作
基本操作
列出文件
ls -la # 详细信息
ls -R # 递归显示
创建目录
mkdir -p dir1/dir2 # 创建多级目录
复制文件
cp file1 file2
cp -r dir1 dir2 # 复制目录
移动/重命名
mv file1 file2
删除
rm file
rm -r dir # 删除目录
rm -f file # 强制删除
查看文件内容
cat file # 显示全部
head -n 10 # 显示前10行
tail -f file # 实时查看文件末尾
文件权限
修改权限
chmod 755 file
chmod u+x file # 给用户添加执行权限
修改所有者
chown user:group file
文本处理
文本搜索
grep 搜索
grep “pattern” file
grep -r “pattern” dir # 递归搜索
grep -i “pattern” file # 忽略大小写
find 查找文件
find /path -name “*.txt”
find /path -type f -size +100M # 查找大文件
文本编辑
sed 替换
sed ‘s/old/new/g’ file
sed -i ‘s/old/new/g’ file # 直接修改文件
awk 处理
awk ‘{print $1}’ file # 打印第一列
awk -F: ‘{print $1}’ file # 指定分隔符
系统管理
进程管理
查看进程
ps aux
top
htop # 更友好的界面
结束进程
kill PID
killall process_name
系统监控
系统资源
free -h # 内存使用
df -h # 磁盘使用
du -sh * # 目录大小
网络相关
netstat -tunlp # 查看端口
ifconfig # 网络接口
ip addr # 新版本网络配置
网络操作
远程连接
SSH
ssh user@host
scp file user@host:/path # 复制文件
下载
wget url
curl -O url
环境变量
变量操作
设置变量
export PATH=$PATH:/new/path
查看变量
echo $PATH
env # 显示所有环境变量
Shell 脚本编程
基本语法
#!/bin/bash
变量
name=“value”
echo $name
条件判断
if [ “$1” == “test” ]; then
echo “test”
else
echo “not test”
fi
循环
for i in {1…5}; do
echo $i
done
while [ $count -lt 5 ]; do
echo $count
((count++))
done
函数
定义函数
function_name() {
echo “参数1: $1”
return 0
}
调用函数
function_name “参数”
管道和重定向
管道
管道操作
command1 | command2 # 将command1输出传给command2
实例
ps aux | grep nginx
重定向
输出重定向
command > file # 覆盖
command >> file # 追加
错误重定向
command 2> error.log
command > output.log 2>&1 # 同时重定向
实用技巧
命令历史
查看历史命令
history
执行历史命令
!number # 执行第number条命令
!! # 执行上一条命令
别名设置
创建别名
alias ll=‘ls -la’
永久生效,添加到 ~/.bashrc
echo “alias ll=‘ls -la’” >> ~/.bashrc
source ~/.bashrc
作业控制
command & # 后台运行
Ctrl + Z # 暂停当前任务
bg # 后台继续运行
fg # 前台继续运行
jobs # 查看后台任务
调试技巧
脚本调试
调试模式运行
bash -x script.sh
在脚本中开启调试
set -x # 开启
set +x # 关闭