开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第14天,点击查看活动详情
什么是 Shell
shell 是我们与计算机最原始也是最基本的交互方式,在日常开发、服务器管理或是自动化脚本中都会用到。现在的操作系统都自带华丽的图形界面,但是在早期的操作系统中是没有图形化界面概念的,用户和操作系统的基本交互是通过一个叫做 Shell 的东西来完成,就像是我们可以触碰的操作系统的外壳,所以叫做 Shell。
在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(command interpreter,命令解析器)。它类似于DOS下的COMMAND.COM和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。
同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
用 Shell 的原因
虽然说图形化界面已经非常的常见,但是 Shell 并没有完全丧失作用,比如你租了个服务器,对服务器的管理通常需要 Shell 来完成,因为图形界面通常会占用一定的系统资源,服务器默认不会安装。另外图形界面对网络带宽的要求比纯文本的 Shell 要多的多。
Shell 本身也是一种脚本语言,我们可以用它来做一些自动化的事情,比如定时关机,批量处理图片,自动生成文件列表等等,
Bash
Bash 是 Shell 的一种,在 Windows 操作系统下有两种方法使用 Bash,一种是安装 WSL,linux 子系统。另一种是安装 git,git 自带一个轻量级的 Bash,使用起来也更加方便。
常见命令
ls(list) -> 命令来列举当前目录下的文件
pwd(print working directory) -> 输出当前目录的完整路径
cd(change directory) -> 切换当前路径
.. -> 上一级目录
~ -> 当前 home 路径
-a -> 表示显示目录下的所有文件包括隐藏文件
-l -> 以列表形式显示文件详细信息
--help ->命令的帮助信息
man -> 用来显示命令的操作手册
mkdir(make directory) -> 创建文件夹
rmdir(remove directory) -> 删除文件夹
touch -> 创建文件
cp(copy) -> 复制文件
mv(move) -> 移动文件
rm -r (move) -> 递归地删除目录下的所有文件
cat(concatenate) -> 显示文件的内容
grep -> 文件搜索
| -> pipe 管道,可以将一个命令的输出变成另一个命令的输入