理解Linux Shell
Shell:Shell 是基于命令行的解释器,它连接用户和操作系统,允许通过编写脚本来执行系统的命令。
进程:用户在系统中运行的任何一个任务都以进程的形式存在。进程比任务要稍微复杂一些。
文件:存储于硬盘之上,包含用户拥有的数据。
X-窗口:Linux 运行的一种模式。它可以将显示器分为若干个不同的窗口,允许用户并行做几件事情,并可以通过图形界面的方式从一个任务切换到另一个任务。
字符终端:只能显示字符或者非常简单的图形界面。
会话:登陆系统和登出系统之间的时间。
标准 Linux 发行版常见的 Shell 类型
Bourne shell:这是 Linux 下最常见的 shell 之一。它是由贝尔实验室的 Stephen Bourne 编写的。每一个类 Unix 的系统都至少包含一个与其兼容的 shell。Bourne shell 的名字叫做 sh
,通常它被放置在 /bin/sh
。
C shell:它是 Bill Joy 为伯克利软件发行创建的。它的语法基于 C 编程语言。它主要被用于交互式终端,很少用于编写脚本语言和系统控制。C shell 有很多交互式的命令。
Shell 编程基础
- 打开一个终端;
- 查看当前使用的是哪种
shell:echo $SHELL
; - 在 Linux 下,美元符号
($)
后面跟着的是 shell 变量; echo
命令返回你紧随其后输入的内容;- 管道符号
(|)
用来连接不同的命令; #!/bin/sh
——被称为shebang
。它出现在每个 shell 脚本的第一行,用来指明这个脚本被/bin/sh
执行。
关于 Shell 脚本
Shell 脚本是以 .sh
为后缀的文本文件,它可以被赋予可执行的权限。
编写和执行脚本的过程
- 打开终端;
- 通过
cd
命令切换到你想保存 shell 脚本的目录; - 使用
touch
命令创建一个文件,如 touch hello.sh; - 使用
vi hello.sh
或者nano hello.sh
编辑文件; - 赋予
hello.sh
可执行的权限:chmod 744 hello.sh
; - 运行脚本:
sh hello.sh
或者./hello.sh
编写第一个脚本
#!/bin/bash
# My first script
echo "Hello World!"
将上面的内容保存到一个文件,赋予其可执行的权限并运行它,输出结果如下所示:
Hello World!
在上面的代码中:
#!/bin/bash (is the shebang.)
# My first script (is comment, anything following '#' is a comment)
echo “Hello World!” (is the main part of this script)
编写第二个脚本
这个脚本会打印出你的名字和当前正在运行的进程。
#! /bin/bash
echo "Hello $USER"
echo "Hey i am" $USER "and will be telling you about the current processes"
echo "Running processes List"
ps
脚本运行的结果:
编写第三个脚本
这个脚本演示如何与 shell 脚本进行交互
#! /bin/bash
echo "Hey what's Your First Name?";
read a;
echo "welcome Mr./Mrs. $a, would you like to tell us, Your Last Name";
read b;
echo "Thanks Mr./Mrs. $a $b for telling us your name";
echo "*******************"
echo "Mr./Mrs. $b, it's time to say you good bye"
脚本运行的结果:
apple@ubuntu:~/Desktop$ . name.sh
Hey what's Your First Name?
chen
welcome Mr./Mrs. chen, would you like to tell us, Your Last Name
binbin
Thanks Mr./Mrs. chen binbin for telling us your name
*******************
Mr./Mrs. binbin, it's time to say you good bye