在计算机科学中,Shell 俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(command interpreter,命令解析器),它接收用户命令,然后调用相应的应用程序。
Shell 同时也是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
在 Linux/Unix 平台上,Shell 一般默认为 Bash Shell,也有其他 Shell,比如 C Shell 等;Mac 平台,从 Catalina 版本开始,默认 Shell 从 Bash 改为 Zsh;Windows 平台上,Shell = CMD(Command Shell 的简写,也叫做命令提示符)。
Mac 平台通过 terminal.app、Windows 平台通过 cmd.exe 来运行 shell。
在 Linux/Mac 上,通过如下命令查看当前系统所有的 shell:
1 | cat /etc/shells |
结果如下:
1 | # List of acceptable shells for chpass(1). |
查看当前使用的 shell:
1 | echo $0 |
结果如下:
1 | -zsh |
修改系统默认 shell 为 bash:
1 | chsh -s /bin/bash |
查看结果(需要重启终端):
1 | xiongxiangdeAir:~ xiongxiaoyang$ echo $0 |
切换目录
无论是 Linux 平台、Mac 平台还是 Windows 平台,都是通过 cd
+目录名进入目录, cd ..
返回上级目录。我们还可以通过pushd
+目录名进入新目录同时记住之前的目录名,之后可以使用 popd
返回之前的目录。
1 | xiongxiaoyang@xiongxiangdeAir ~ % pushd java/novel |
目录列表
Linux/Mac 平台通过ls
命令查看当前目录下的所有文件和子目录,Windows 平台通过dir
命令查看。可以使用通配符*
对显示的内容进行过滤。
1 | xiongxiaoyang@xiongxiangdeAir manager % ls *Cache*.java |
新建目录
Linux/Mac 平台通过mkdir
命令新建目录,Windows 平台通过md
命令新建目录。
删除文件
Linux/Mac 平台通过rm
+文件名删除文件,Windows 平台通过del
+文件名删除文件。
删除目录
Linux/Mac 平台通过rm -r
命令删除目录及其包含的所有文件,Windows 平台通过deltree
命令实现。
重复命令
所有平台都可以通过⬆️
键来显示上一条命令,Linux/Mac 平台可以通过!!
来执行上一条命令,!n
来执行第 n 条命令。
命令历史
Linux/Mac 平台通过 history
命令来查看所有使用过的命令,Windows 平台通过F7
键来实现。Linux/Mac 平台还会显示历史序号,这样就可以通过上面的!n
命令来方便重复执行。
1 | xiongxiaoyang@xiongxiangdeAir bin % history |
1 | xiongxiaoyang@xiongxiangdeAir bin % !1006 |
解压文件
Linux/Mac 平台通过unzip
命令来解压.zip
后缀的压缩包文件,Windows 平台需要通过互联网安装unzip
命令。
…