一、Shell 基础概念
Shell 是一种命令行解释器,它是一个用户与操作系统内核交互的接口。当用户输入命令时,Shell 解释并执行这些命令,并将结果输出给用户。 在 Shell 中,用户可以使用各种命令来执行不同的任务,例如浏览文件目录、创建、复制或删除文件、安装软件包等等。Shell 还支持变量、条件语句和循环等控制结构,使得用户可以根据需要编写脚本来自动化工作流程。 在 Linux 系统中,默认的 Shell 是 Bash(Bourne-Again SHell),但也有其他 Shell 可供选择,例如 Zsh、Fish 等。此外,Shell 还支持管道、重定向和通配符等高级特性,可以帮助用户更加高效地处理数据和执行任务。
二、命令和语法
可以在 Shell 脚本中使用哪些类型的变量?
在 Shell 脚本,我们可以使用两种类型的变量:
系统定义变量
系统变量是由系统系统自己创建的。这些变量通常由大写字母组成,可以通过 set 命令查看。
用户定义变量
用户变量由系统用户来生成和定义,变量的值可以通过命令 "echo $<变量名>" 查看。
Shell脚本中 $? 标记的用途是什么?
在写一个 Shell 脚本时,如果你想要检查前一命令是否执行成功,在 if 条件中使用 $? 可以来检查前一命 令的结束状态。
如果结束状态是 0 ,说明前一个命令执行成功。例如:
root@localhost:~## ls /usr/bin/shar
/usr/bin/shar
root@localhost:~## echo $?
0
如果结束状态不是0,说明命令执行失败。例如:
root@localhost:~## ls /usr/bin/share
ls: cannot access /usr/bin/share: No such file or directory
root@localhost:~## echo $?
2
Bourne Shell(bash) 中有哪些特殊的变量?
下面的表列出了 Bourne Shell 为命令行设置的特殊变量。
内建变量 解释
$0 命令行中的脚本名字
$1 第一个命令行参数
$2 第二个命令行参数
….. …….
$9 第九个命令行参数
$## 命令行参数的数量
$* 所有命令行参数,以空格隔开
如何取消变量或取消变量赋值?
unset 命令用于取消变量或取消变量赋值。语法如下所示:
## unset <变量名>
三、执行过程和原理
-
用户输入命令:用户在终端中输入命令,按下回车键。
-
Shell读取命令:Shell读取并解析用户输入的命令,将其转换为可执行的格式。
-
Shell查找命令:Shell根据输入的命令查找可执行程序的路径,并确定要执行的命令。
-
Shell创建子进程:如果要执行的命令是可执行程序,则Shell会创建一个新的子进程来运行该程序。
-
子进程执行命令:Shell将子进程执行的命令传递给它,并等待子进程执行完毕。
-
子进程退出:子进程完成任务后,Shell将结果返回给用户,并退出子进程。
四、调试和前端集成
VS Code断点调试
VS Code是一款非常流行的跨平台代码编辑器,可以支持多种编程语言的调试,其中包括断点调试。下面是VS Code断点调试的基本步骤:
1. 在VS Code中打开你需要调试的源文件。
2. 点击左侧窗口栏中的调试按钮。
3. 在左侧窗口中选择“添加配置”(Add Configuration)。
4. 选择需要调试的编程语言和运行环境,例如Python和Node.js。
5. VS Code会自动创建一个默认的调试配置文件,你可以在其中设置一些参数,例如启动程序的命令、传递给程序的参数等等。
6. 设置好调试配置后,你可以在源代码中点击左侧行号旁边的空白区域来设置断点。
7. 启动调试器,在左侧窗口中选择对应的调试配置,点击“启动调试”或按F5键。
8. 当程序执行到断点处时,调试器会停在该处,并且你可以通过调试器中的工具栏来查看变量值、控制程序执行等等。
9. 调试完成后,你可以选择继续执行或停止程序。
总之,VS Code 的断点调试功能非常强大,可以帮助你快速定位和解决代码中的问题。
五、总结
shell在Linux系统功能非常强大,同时学习到shell开发中运用,提高代码开发效率,前端的调试,我一般在浏览器进行代码断点,在课程中进行重新学习一些遗忘的知识点,更加深入学习VS Code 的断点调试功能