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 用户,可以从常用命令和基础脚本开始,逐步提升自己的技能,逐步深入理解系统内部的工作原理。