前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >01 . Shell详细入门介绍及简单应用

01 . Shell详细入门介绍及简单应用

作者头像
iginkgo18
修改2021-05-14 14:14:31
7430
修改2021-05-14 14:14:31
举报
文章被收录于专栏:devops_k8sdevops_k8s
Shell简介

Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 解释处理Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出显示到屏幕给用户.

Shell分为两类

图形界面 Shell(GUI Shell)

GUI为 Unix 或者类 Unix 操作系统构造一个功能完善、操作简单以及界面友好的桌面环境。主流桌面环境有 KDE,Gnome 等。

命令行界面 Shell(CLI Shell)

CLI是在用户提示符下键入可执行指令的界面,用户通过键盘输入指令,完成一系列操作。 在 Linux 系统上主流的 CLI 实现是 Bash,是许多 Linux 发行版默认的 Shell。还有许多 Unix 上Shell,例如 tcsh、csh、ash、bsh、ksh 等。

如何查看系统支持的shell

一个系统中可以存在多个shell,可以通过cat /etc/shells命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同的,但是最常用的shell还是/bin/bash

代码语言:javascript
复制
cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
Shell命令基本格式

shell命令可以分为两大类

  • 一类是内置命令,即系统自带的命令,如ls,这是显示文件夹下文件的命令;
  • 另一类是外置命令,如vi,是调用vi编辑器的命令,而vi编辑器是一个软件,这类命令由独立的程序实现的命令,用于对linux的扩展,是外置命令

shell命令格式如下

代码语言:javascript
复制
命令名 [选项] <参数1> <参数2>…
# 方括号内为可选的,命令可能有0个或者多个参数。
shell命令小知识

1.shell自动补齐和历史记录

shell会在用户输入命令前几个字母后按 键自动补齐,如果有多个候选命令会显示出全部命令。 shell会自动记录用户使用的命令,用户可以按 上 下 键 来查看。

2.shell提示符

shell提示符有两种,一种是 $结尾,为普通用户权限下的提示符号,一种是#结尾,为管理员权限,用户可以用su命令切换用户,如下图:

3.输入输出重定向

shell命令是控制台命令,使用标准输入和输出设备,即从键盘接受输入,将结果显示在显示器上。重定向可以将shell的输入输出重定向到文件或设备。 输入重定向符号为”<”,输出重定向符号为”>”和”>>”。如果shell命令 “X”在执行过程中,需要从控制台获得数据,那么执行”X < file”可以从file文件中获得所需数据。如果X在执行过程中产生数据,可以用 “X > file”和”X >> file”将结果输入到文件。”>”为覆盖输入,”>>”为追加输入

4.管道

linux系统中,管道是一种先进先出的单数据通道,利用管道符号”|”可以将多个命令组合到一起,把一个命令的输出传递给下一个命令作为输入,最终得到经过多个命令一次处理的结果。如,用ll和grep结合来查找当前目录是否有这个文件:

什么是Shell脚本

脚本就是shell命令组成的文件,这些命令都是可执行程序的名字,脚本不用编译即可通过解释器解释运行。  它是一种解释型语言,我们可以用shell脚本操存执行动作,用脚本判定命令的执行条件,用脚本来实现动作的批量执行

Shell简单使用
脚本开头

为了便于脚本的使用者可以快捷的了解到脚本的用途与其使用的解释器,通常我们需要在脚本的开头加上注释。

代码语言:javascript
复制
#!/bin/bash		 脚本使用的解释器,通常用幻数“#!”指定
# Autho:				脚本作者
# Create_date		脚本创作时间
# Mail:					脚本作者联系方式
# Description:	脚本作用解释
# Version:			脚本的版本
脚本内容

在shell脚本中可以出现任何系统命令,输入你想要执行的命令即可,我们创建一个hello.sh

代码语言:javascript
复制
cat hello.sh
#!/bin/bash		 脚本使用的解释器,通常用幻数“#!”指定
# Autho:				脚本作者
# Create_date		脚本创作时间
# Mail:					脚本作者联系方式
# Description:	脚本作用解释
# Version:			脚本的版本
echo hello
shell脚本的执行方法

首先我们给脚本执行权限

代码语言:javascript
复制
chmod +x 脚本路径/脚本名

执行方式1: 输入脚本的绝对路径或者相对路径

代码语言:javascript
复制
# 注意: 如果不给+x权限是不能这种方式执行脚本的
# 绝对路径
/root/test.sh 
hello

# 相对路径
./test.sh 
hello

执行方式2: sh +脚本

代码语言:javascript
复制
sh /root/test.sh
hello

执行方式3: source + 脚本

代码语言:javascript
复制
source /root/test.sh
hello

执行方式4: . + 脚本

代码语言:javascript
复制
 . test.sh 
hello

区别

代码语言:javascript
复制
# 第一种和第二种会新打开一个bash,不同bash中的变量无法共享,
# 第三种和第四种是直接使用当前运行环境作为解释器运行环境
sudo 执行脚本带不出环境变量
代码语言:javascript
复制
# 有时候sudo ./test.sh执行脚本找不到一些java环境变量,可以通过
sudo -E ./test.sh
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Shell简介
    • Shell分为两类
      • 如何查看系统支持的shell
        • Shell命令基本格式
          • shell命令小知识
            • 什么是Shell脚本
            • Shell简单使用
              • 脚本开头
                • 脚本内容
                  • shell脚本的执行方法
                    • sudo 执行脚本带不出环境变量
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档