Linux 命令行与 Shell 脚本编程:从入门到精通Linux 命令行是 Linux 系统的核心,掌握命令行操作是高效使用 Linux 的基础。而 Shell 脚本编程则是将一系列命令组合起来,实现自动化任务的强大工具。本文将带您从入门到精通,全面掌握 Linux 命令行和 Shell 脚本编程。1. Linux 命令行基础1.1 常用命令`ls`:列出目录内容。`ls -l`:显示详细信息。`ls -a`:显示所有文件,包括隐藏文件。`cd`:切换目录。`cd ~`:回到家目录。`cd ..`:回到上级目录。`pwd`:显示当前工作目录。`mkdir`:创建目录。`mkdir -p a/b/c`:递归创建目录。`rmdir`:删除空目录。`touch`:创建空文件或更新文件时间戳。`cp`:复制文件或目录。`cp -r source_dir target_dir`:递归复制目录。`mv`:移动或重命名文件或目录。`rm`:删除文件或目录。`rm -r dir`:递归删除目录。`rm -f file`:强制删除文件。`rm -rf dir`:强制递归删除目录(慎用!)。`cat`:查看文件内容。`more` / `less`:分页查看文件内容。`head` / `tail`:查看文件头部/尾部内容。`tail -f file`:实时查看文件尾部内容(常用于查看日志)。`grep`:在文件中搜索匹配的行。`grep "pattern" file`:搜索文件中的模式。`grep -r "pattern" dir`:递归搜索目录。`find`:在文件系统中搜索文件。`find . -name "*.txt"`:在当前目录及其子目录中查找所有 .txt 文件。`man`:查看命令的帮助手册。1.2 文件系统与权限文件系统结构:`/` (根目录)、`/bin` (二进制命令)、`/etc` (配置文件)、`/home` (用户家目录) 等。文件权限:`r` (读)、`w` (写)、`x` (执行)。`chmod`:修改文件权限。`chown`:修改文件所有者。`chgrp`:修改文件所属组。2. Shell 脚本编程Shell 脚本是一种解释型语言,用于自动化执行一系列命令。2.1 脚本结构#!/bin/bash # 这是一个 Shell 脚本示例 echo "Hello, Shell Script!" `#!/bin/bash`:Shebang,指定解释器。`#`:注释。2.2 变量定义变量:`name="World"` (等号两边不能有空格)。使用变量:`echo "Hello, $name!"` 或 `echo "Hello, ${name}!"`。特殊变量:`$0`:脚本文件名。`$1`, `$2`, ...:传递给脚本的参数。`$#`:参数个数。`$*`:所有参数,作为一个字符串。`$@`:所有参数,每个参数独立。`$?`:上一个命令的退出状态码。`$$`:当前脚本的进程 ID。2.3 流程控制2.3.1 `if` 语句if [ condition ]; then echo "Condition is true" elif [ another_condition ]; then echo "Another condition is true" else echo "Condition is false" fi 条件判断:`[ ]` 或 `[[ ]]`。`-f file`:文件存在且是普通文件。`-d dir`:目录存在。`-z string`:字符串长度为零。`-n string`:字符串长度不为零。`string1 = string2`:字符串相等。`num1 -eq num2`:数字相等。`num1 -ne num2`:数字不相等。`num1 -gt num2`:num1 大于 num2。2.3.2 `for` 循环for i in 1 2 3 4 5; do echo "Number: $i" done for file in $(ls *.txt); do echo "Processing file: $file" done 2.3.3 `while` 循环count=1 while [ $count -le 5 ]; do echo "Count: $count" count=$((count + 1)) done 2.3.4 `case` 语句read -p "Enter a choice (a/b): " choice case $choice in a) echo "You chose A" ;; b) echo "You chose B" ;; *) echo "Invalid choice" ;; esac 2.4 函数function greet() { echo "Hello, $1!" } greet "Alice" 2.5 输入输出重定向与管道`>`:重定向标准输出到文件 (覆盖)。`>>`:重定向标准输出到文件 (追加)。`<`:重定向标准输入。 *``:管道,将一个命令的输出作为另一个命令的输入。* `ls -lgrep ".txt"`:列出所有 .txt 文件。3. 实际应用示例3.1 备份脚本#!/bin/bash BACKUP_DIR="/tmp/backup_$(date +%Y%m%d%H%M%S)" SOURCE_DIR="/home/user/documents" mkdir -p $BACKUP_DIR cp -r $SOURCE_DIR $BACKUP_DIR echo "Backup completed to $BACKUP_DIR" 3.2 系统监控脚本#!/bin/bash CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%*id.*/\1/" | awk '{print 100 - $1}') MEM_USAGE=$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }') echo "CPU Usage: ${CPU_USAGE}%" echo "Memory Usage: ${MEM_USAGE}" 4. 总结Linux 命令行和 Shell 脚本是 Linux 系统管理员和开发者必备的技能。通过本文的学习,您应该对常用命令、文件系统、权限管理以及 Shell 脚本编程有了全面的了解。不断实践和探索,您将能够利用这些强大的工具,更高效地管理和自动化您的 Linux 系统。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
2.303973s