shell/sh/bash的区别和联系
shell
shell是“为使用者提供操作界面”的软件(command interpreter,命令解析器),也指在命令解析器中用到的程序设计语言。
shell的作用:用户输入指令,通过Shell和内核沟通,控制硬件正常工作
sh
shell包括很多种,最常用的几种是 Bourne shell (sh), C shell (csh), 和 Korn shell (ksh)。
Bourne shell (sh)是 UNIX 最初使用的shell ,在每种 UNIX 上都可以使用。Bourne shell 在 shell 编程方面相当优秀,但在处理与用户的交互方面作得不如其他几种 shell。
bash
Bourne Again shell (bash) 是 sh 的扩展,在 Bourne shell 的基础上增加和增强了很多特性。bash 也包含了很多 C 和 Korn shell 里的优点。bash 有很灵活和强大的编程接口,同时又有很友好的用户界面。
Bourne shell 最大的缺点在于它处理用户的输入方面。在 Bourne shell 里键入命令会很麻烦,而 bash 使命令的输入变得更容易。
mac上的终端使用的就是bash。
bash常用命令
- cd:进入某目录
cd ~:进入用户目录
cd …:返回上层目录
cd …/…/返回上上层目录 - ls:显示本层目录的所有文件夹和文件
- 命令补全功能:连按两次tab键,显示所有某些字母开头的命令;按一次tab键,按照所有命令的顺序选择补全该字母开头的命令。
- ./FileName:读取并执行FileName中的命令
如运行脚本文件(文件第一行必须是:#!/bin/sh):
进入目录→./start.sh(若提示权限拒绝:chmod 764 start.sh→./start.sh) - source FileName:通常用于执行刚修改的初始化文档
- vi/vim:编辑文件
i:进入插入模式;esc:进入命令模式;
英文冒号+wq:保存并退出;英文冒号+q!:不保存并退出 - echo:输出
- export:显示或设置环境变量
设置环境变量:vim ~./bashrc(or other files)→export path="/your path:$PATH"→source ~/.bashrc(or other files) - 变量赋值:SPARK_STABLE=/opt/tiger/spark_deploy/spark-stable,不需声明
变量使用:${SPARK_STABLE}/bin/spark-submit - REPO_ROOT:一般设为pwd(根目录),PYTHONPATH:引入包的目录,在默认值后面加上包目录即可
- ctrl+c:结束命令,返回输入状态
- mkdir file:新建文件夹;rm file:删除文件
- 压缩与解压
解压:tar -xf ${待解压文件名.tar} ${解压路径}
压缩:tar -cvf ${压缩文件名.tar} ${待压缩文件名.扩展名} - ssh:用于在客户端登录服务器时进行加密,还能对操作者进行认证和授权。
登录服务器:ssh hostname→输入账户的密码→登录 - cp: 复制文件
cp ${file_name} ${destination_dictionary}