写点什么

什么是 Shell?从小白到入门你只差一个它

  • 2022 年 8 月 08 日
  • 本文字数:2120 字

    阅读完需:约 7 分钟

一、编程语言介绍

编程语言是指计算机能理解的语言,人类通过使用计算机语言可以给计算机批量下达任务,让其按照人类的思想去完成工作


最常见的语言有:汇编语言、C 语言、java 语言、php 语言、Python 语言、golang 语言等等

编程语言分类

  • 编译型语言

  • 程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如 C、C++、java

  • 解释型语言

  • 程序不需要编译,程序在运行时由解释器翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。比如 Python/JavaScript/ Perl /ruby/Shell 等都是解释型语言



二、shell 介绍

shell 在计算机中起到什么作用呢?为什么要求 shell 呢,可以看看计算机操作系统的组成



问大家个问题,两个人在电话聊天:只会说法语的法国人,只会说汉语的你。如何沟通呢?


请个翻译在你两中间


同理,系统内核只知道二进制


如果你想给计算机内核下任务,让其驱动硬件干活,那么有两种选择


1、你学会二进制


2、找个翻译

1、shell 介绍

shell 就是我们找来的翻译


shell 是一个程序,采用 C 语言编写,是用户和 linux 内核沟通的桥梁。它既是一种命令语言,又是一种解释性的编程语言。通过一个图表来查看一下 shell 的作用


2、bash shell 基本特性

如何应用 Bash shell,先看看他的特性,有助于快速应用

2.1、 命令和文件自动补全

Tab 只能补全命令和文件 (RHEL7/Centos7)

2.2、 常见的快捷键—提升操作熟练度

^c    终止前台运行的程序^z    将前台运行的程序挂起到后台^d    退出 等价exit^l    清屏 ^a |home   光标移到命令行的最前端^e |end   光标移到命令行的后端^u    删除光标前所有字符^k    删除光标后所有字符^r   搜索历史命令
复制代码

3、shell 脚本介绍

shell 脚本是什么


简单来说就是将需要完成某个任务所执行的命令按照执行顺序保存到文本中,并给予执行权限。


                                             shell脚本精髓 学会60%
复制代码


按照顺序执行。


它是解释型的,意味着不需要编译。


准确来说


若干命令 + 脚本的基本格式 + 脚本特定语法 + 思想= shell 脚本


脚本命令演示创建一个用户:harry     useradd harry密码设置为:redhat echo "redhat"|passwd --stdin harry该用户创建文件夹/tmp/liza   mkdir /tmp/liza该用户创建文件/tmp/liza/README  touch /tmp/liza/README将“hello world“输入到/tmp/liza/README  echo 'hello world' > /tmp/liza/README
实现代码 命名:task.sh#!/bin/bash
#DESC: this is a test script #AUTHOR: Bai Shuming#RELEASE: 1.0
#main
#创建用户harryuseradd harry
#设置用户密码 yunwei.98989echo "redhat"|passwd --stdin harry

#使用harry创建文件夹,文件,输入文件中内容su - harry -c "mkdir /tmp/liza"su - harry -c "touch /tmp/liza/README"su - harry -c "echo 'hello world' > /tmp/liza/README"
复制代码


什么时候用到脚本?


重复化、复杂化的工作,通过把工作的命令写成脚本,以后仅仅需要执行脚本就能完成这些工作。


①自动化分析处理


②自动化备份


③自动化批量部署安装


④等等…


如何学习 shell 脚本?


尽可能记忆更多的命令


掌握脚本的标准的格式(指定魔法字节、使用标准的执行方式运行脚本)


必须熟悉掌握脚本的基本语法(重点)


学习脚本的秘诀:


多看(看懂)——>多模仿(多练)——>多思考

4、shell 脚本语法

何书写一个脚本呢,写好一个脚本有哪些规范呢?



  • 脚本命名 nginx_install.sh 脚本名称 脚本扩展名 .sh 名字不要太长 26 个字节内

  • 代码规范:


1、#!/bin/bash//脚本第一行, #!魔法字符,指定脚本代码执行的程序。即它告诉系统这个脚本需要什么解释器来执行,也就是使用哪一种Shell
2、#代表注释,#!特例
3、//以下内容是对脚本的基本信息的描述,大家可以根据实际情况尽可能的写详细一些,方便后续使用者# Name: 脚本名字# Desc:描述describe# Path:存放路径# Usage:用法# Update:更新时间# Author:作者# Release: 分发版本
//下面就是脚本的具体内容commands...
复制代码


  • 脚本执行方法:– 标准脚本执行方法(建议):


[root@liza shell01]# cat 1.sh #!/bin/bash#xxxx#xxx#xxxhostnamedate[root@liza shell01]# chmod +x 1.sh [root@zutuanxue shell01]# lltotal 4-rwxr-xr-x 1 root root 42 Jul 22 14:40 1.sh[root@liza shell01]# /shell/shell01/1.sh zutuanxueSun Jul 22 14:41:00 CST 2018[root@liza shell01]# ./1.sh lizaSun Jul 22 14:41:30 CST 2018
复制代码


– 非标准的执行方法(不建议):


[root@liza shell01]# bash 1.sh lizaSun Jul 22 14:42:51 CST 2018[root@liza shell01]# sh 1.shlizaSun Jul 22 14:43:01 CST 2018[root@liza shell01]# [root@liza shell01]# bash -x 1.sh+ hostnameliza+ dateSun Jul 22 14:43:20 CST 2018
-x:一般用于排错,查看脚本的执行过程-n:用来查看脚本的语法是否有问题
注意:如果脚本没有加可执行权限,不能使用标准的执行方法执行,bash 1.sh
其他:[root@liza shell01]# source 2.shserverThu Nov 22 15:45:50 CST 2018[root@liza shell01]# . 2.shserverThu Nov 22 15:46:07 CST 2018
source 和 . 表示读取文件,执行文件里的命令
复制代码


发布于: 刚刚阅读数: 2
用户头像

🏅️ InfoQ 专家博主 2022.03.08 加入

CSDN:飞向星的客机

评论

发布
暂无评论
什么是Shell?从小白到入门你只差一个它_Linux_飞向星的客机_InfoQ写作社区