# Shell 常用命令

# 文件和目录操作

# 1. 目录操作

# 显示当前目录
pwd

# 切换目录
cd /path/to/directory  # 切换到指定目录
cd ..                  # 切换到上级目录
cd ~                   # 切换到用户主目录

# 创建目录
mkdir directory_name
mkdir -p dir1/dir2/dir3  # 创建多级目录

# 删除目录
rmdir directory_name     # 删除空目录
rm -r directory_name     # 递归删除目录及其内容

# 2. 文件操作

# 创建文件
touch filename

# 复制文件
cp source destination
cp -r source_dir destination_dir  # 复制目录

# 移动/重命名文件
mv old_name new_name

# 删除文件
rm filename
rm -f filename  # 强制删除

# 3. 文件权限

# 查看文件权限
ls -l

# 修改文件权限
chmod 755 filename
chmod u+x filename  # 给所有者添加执行权限

# 修改文件所有者
chown user:group filename

# 文件内容操作

# 1. 查看文件内容

# 查看整个文件
cat filename

# 分页查看
less filename
more filename

# 查看文件头部
head filename
head -n 20 filename  # 查看前20行

# 查看文件尾部
tail filename
tail -f filename     # 实时查看文件更新

# 2. 文本处理

# 搜索文件内容
grep "pattern" filename
grep -r "pattern" directory  # 递归搜索

# 统计行数
wc -l filename

# 排序
sort filename

# 去重
uniq filename

# 系统信息

# 1. 系统状态

# 系统信息
uname -a

# 磁盘使用情况
df -h

# 内存使用情况
free -h

# 进程信息
ps aux
top

# 2. 网络操作

# 网络连接测试
ping hostname

# 查看网络接口
ifconfig
ip addr

# 查看端口占用
netstat -tuln

# 压缩和解压

# tar 操作
tar -czf archive.tar.gz files/    # 压缩
tar -xzf archive.tar.gz           # 解压

# zip 操作
zip archive.zip files
unzip archive.zip

# 进程管理

# 后台运行
command &

# 查看后台任务
jobs

# 将进程放到前台
fg %job_number

# 终止进程
kill process_id
kill -9 process_id  # 强制终止

# 环境变量

# 查看环境变量
env
echo $PATH

# 设置环境变量
export VAR_NAME=value

# 在配置文件中添加环境变量
echo 'export VAR_NAME=value' >> ~/.bashrc
source ~/.bashrc

# 最佳实践

  1. 使用命令别名

    # 在 ~/.bashrc 中添加
    alias ll='ls -l'
    alias la='ls -la'
    
  2. 使用命令历史

    • 使用 history 查看命令历史
    • 使用 !number 执行历史命令
    • 使用 Ctrl+R 搜索历史命令
  3. 使用通配符

    # 删除所有.txt文件
    rm *.txt
    
    # 查找所有以test开头的文件
    ls test*
    

# 练习题

  1. 创建一个目录结构并进行文件操作
  2. 使用不同方式查看和处理文件内容
  3. 编写简单的命令组合完成特定任务

# 下一步

学习Shell脚本编写,包括变量、控制流程和函数等内容。