shell脚本介绍及基本功能

目录

1. 什么是shell

2. hello word

2.1 echo

2.2 第一个脚本

3. Bash的基本功能

3.1别名

3.2 常用快捷键

 3.3 输入输出

3.4 输出重定向 

3.5 多命令执行

3.6 管道符

3.7 通配符和特殊符号


1. 什么是shell

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。 Shell 既是一种命令语言,又是一种程
序设计语言。 shell 是解释执行的。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务
shell 的类型:
shell 有两种主要的语法类型: Bourne C ,这两种语法是互不兼容的。 Bourne 主要包括 sh ksh
Bash psh zsh ,其中 Bash linux 中使用最广; C 家族主要包括: csh tcsh
# 查询系统中支持的shell
[lisen@localhost root]$ vi /etc/shells/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

2. hello word

2.1 echo

echo shell 编程中经常使用,可以将信息输出到终端,也可以将字符重定向到文件等。
echo 命令格式: echo [ 选项 ] [ 输出内容 ]
选项 -e 表示支持反斜杠控制的字符转换

 示例:

[lisen@localhost root]$ echo -e "ab\bc"
ac
[lisen@localhost root]$ echo -e "a\tb\tc\nd\te\tf"
a b c
d e f
[lisen@localhost root]$ echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66"
a b c
d e f
## \e[1 表示开启颜色输出, 31m为定义颜色, \e[0m 表示结束颜色输出
## 30m 黑色;31m 红色;32m绿色;33m黄色;34m蓝色; 35m洋红;36m青色; 37m白色
[root@localhost ~]# echo -e "\e[1;31m abcd \e[0m"
abcd #字体为红色

2.2 第一个脚本

[root@localhost ~]# mkdir sh
[root@localhost ~]# cd sh
[root@localhost sh]# vim hello.sh#!/bin/bash
# hello.shecho "hello world"# 在执行前需要为脚本赋予可执行权限
[root@localhost sh]# ./hello.sh
-bash: ./hello.sh: 权限不够
[root@localhost sh]# chmod 755 hello.sh
[root@localhost sh]# ./hello.sh
hello world

3. Bash的基本功能

3.1别名

作用: 可以为我们常用的命令指定一个容易记的别名,方便使用。 在命令指定别名后,别名有优先执行
如何指定别名: alias 别名 =‘ 原命令
如果查看别名: alias
示例:
[root@localhost ~]# alias vi='vim'
[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias vi='vim'
关于命令的执行顺序:
  • 如果使用绝对路径或相对路径执行命令,则执行是命令本身
  • 如果没有指定相对或绝对命令,有别名优先执行别名
  • 如果没有指定别名则,执行 Bash 的内部命令
  • 优先级最后的是按照 $PATH 环境变量定义的目录查找顺序找到的第一个命令

注意: 原则上在定义别名时不要与原有的命令,这样容易混淆

别名的持久化: 以命令的方式定义的别名重启之后就不再有效了,如果需要持久化的保持别名在需要在配置文件中指定。该文件在用户主目录下。
[root@localhost ~]# vi .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
#在下面定义自己的别名,该别名永久生效
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

3.2 常用快捷键

 3.3 输入输出

标准输入输出:

3.4 输出重定向 

3.5 多命令执行

 示例:

# 如果ls命令正确执行,则会执行后一个命令
ls /home/fafd && cd /home/fafd# 如果ls /home/fafd没有正确执行,则执行后一个命令
ls /home/fafd || mkdir /home/fafd

3.6 管道符

命令格式:命令 1 | 命令 2  
命令 1 的正确输出作为命令 2 的操作对象。注意:如果命令 1 不能正确输出则命令 2 不能执行。
示例:
# 当显示的结果比较多,则可以进行分屏显示
ls /etc | more# 查看当前的连接
[root@localhost ~]# netstat -an | grep ESTABLISHED
tcp 0 0 192.168.114.128:22 192.168.114.1:3293 ESTABLISHED

3.7 通配符和特殊符号

示例:

[root@localhost ~]# name='zs'
[root@localhost ~]# echo $name
zs
[root@localhost ~]# echo '$name'
#在单引号中失去了$符号的特殊含义
$name
[root@localhost ~]# echo "$name"
#在双引号中$没有失去特殊含义
zs
[root@localhost ~]#[root@localhost ~]# d=`date`#将date命令的结果赋给变量d
[root@localhost ~]# echo $d
2021年 11月 14日 星期日 13:01:38 CST
[root@localhost ~]# dd=$(date)#将date命令的结果赋给变量d
[root@localhost ~]# echo $dd
2021年 11月 14日 星期日 13:01:58 CST

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/704545.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32--低功耗模式详解

一、PWR简介 正常模式与睡眠模式耗电是mA级,停机模式与待机模式是uA级。 二、电源框图 供电区域有三处,分别是模拟部分供电(VDDA),数字部分供电,包括VDD供电区域和1.8V供电区域,后备供电&…

mysql和redis双写一致性策略分析

mysql和redis双写一致性策略分析 一.什么是双写一致性 当我们更新了mysql中的数据后也可以同时保证redis中的数据同步更新; 数据读取的流程: 1.读取redis,如果value!null,直接返回; 2.如果redis中valuenull,读取mysql中数据对应的…

Leaflet-学习

一、官网 英文官网:Leaflet 中文官网:Leaflet 二、介绍 Leaflet 是一个开源并且对移动端友好的交互式地图 JavaScript 库。 它大小仅仅只有39 KB, 并且拥有绝大部分开发者所需要的所有地图特性。 Leaflet 简单、高效并且易用。 它可以高效的运行在桌…

uni-app原生api的promise化以解决异步等待问题分析

相信各位在进行uni-app开发的时候会遇到各种关于异步回调问题,例如要传code给后端以换取session_key,在这之前需要先调用 uni.login,所以执行的顺序是必须同步等待的。在写这篇文章之前对于整体的流程概念需要做一个梳理,以便能更…

SSMBUG之 url +

1. Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured. 经查, 书写一切正常. 注意到此时yml文件的图标是一个红色的Y而不是绿色的spring , 推测没有正确加载. 重新创建项目, 所有东西拷贝一份便恢复正常…

猫头虎分享已解决Bug || AttributeError: ‘Sequential‘ object has no attribute ‘session‘

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

MySQL报错:sql_mode=only_full_group_by解决方法

Linux环境 ubuntu 22.04 MySQL是8.0.35版本 问题描述 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column auth_system.t_class_temp_config.id which is not functionally dependent on columns in GROUP BY clause; this is inco…

Delphi之后的接班人?国产可视化编程工具重塑经典

Delphi,这个名字对于许多80后的程序员来说,无疑是一种深深的情怀。它曾是可视化编程的王者,承载着无数开发者的青春记忆。 在Pascal语言盛行的年代,Delphi以其独特的魅力,迅速在编程界崭露头角。当时流传着这样一句话&…

Java实现公司货物订单管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 客户管理模块2.2 商品维护模块2.3 供应商管理模块2.4 订单管理模块 三、系统展示四、核心代码4.1 查询供应商信息4.2 新增商品信息4.3 查询客户信息4.4 新增订单信息4.5 添加跟进子订单 五、免责说明 一、摘要 1.1 项目…

开启数字内容创作的新时代

目录 技术解析 未来展望 技术解析 Sora是一款由OpenAI开发的先进AI视频模型,其技术架构基于深度学习和自然语言处理技术。该模型的核心算法原理包括使用深度神经网络进行视频内容的理解、生成和互动。 在技术架构方面,Sora采用了一种混合的神经网络结…

架构设计:流式处理与实时计算

引言 随着大数据技术的不断发展,流式处理和实时计算在各行各业中变得越来越重要。那么什么是流式处理呢?我们又该怎么使用它?流式处理允许我们对数据流进行实时分析和处理,而实时计算则使我们能够以低延迟和高吞吐量处理数据。本…

【MySQL高可用集群】MySQL的MGR搭建

前情提要: MySQL官方在 5.7.17版本正式推出组复制(MySQL Group Replication,简称MGR),使用类似 zookeeper 的多于一半原则。在一个集群由 2N1 个节点共同组成一个复制组,一个事务的提交,必须经过…

蛋白结构预测模型评价指标

欢迎浏览我的CSND博客! Blockbuater_drug …点击进入 文章目录 前言一、蛋白结构预测模型评价指标TM-scorelDDT 二、Alphafold中的评价指标pLDDTpTMPAE 三、AlphaFold-multimer 蛋白结构的评价指标DockQipTM 总结参考资料 前言 本文汇总了AlphaFold和AlphaFold-mul…

tigramite教程(二)生物地球科学案例研究

文章目录 数据生成与绘图因果发现分析平稳性假设、确定性、潜在混杂因素结构假设参数假设使用PCMCIplus的滑动窗口分析聚合因果图非参数因果效应估计假设的图形和调整集干预的真实情况假设的参数模型和因果效应的估计使用关于图的不同假设进行估计非因果估计项目地址 这个文件…

LeetCode_Java_动态规划(2)(题目+思路+代码)

131.分割回文串 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1: 输入:s "aab" 输出:[["a&qu…

ActiveMq PUT任意文件上传漏洞(CVE-2016-3088)漏洞复现

ActiveMQ ActiveMQ Web控制台分为三个应用程序:其中admin,api和fileserver,其中admin是管理员页面,api是界面,fileserver是用于存储文件的界面;admin和api需要先登录才能使用,fileserver不需要…

智慧餐饮系统架构的设计与实现

随着科技的不断发展,智慧餐饮系统在餐饮行业中扮演着越来越重要的角色。智慧餐饮系统整合了信息技术,以提高餐饮企业的管理效率、客户服务质量和市场竞争力。本文将探讨智慧餐饮系统架构的设计与实现,并探讨其在餐饮行业中的应用前景。 架构…

matlab采用不同数值方法求解微分方程

1、内容简介 略 60-可以交流、咨询、答疑 欧拉方法、改进欧拉、RK4、米尔斯坦方法求解微分方程 2、内容说明 略 lc; close all; clear all; % 参数赋值 global a global b global h a 1; b 2; Ni 1000; % 总步数 h 0.001; % 步长Xt1(1:Ni) 0; Xt2(…

【前端素材】推荐优质后台管理系统PORTAL平台模板(附源码)

一、需求分析 后台管理系统是一种具有多层次结构的软件系统,用于管理网站、应用程序或系统的后台操作和管理。下面是对后台管理系统的分层次、详细分析: 第一层:用户界面层 登录界面:提供用户登录验证,确保只有经过授…

MySQL 数据优化技巧:提升百万级数据聚合统计速度

MySQL 数据优化技巧:提升百万级数据聚合统计速度 MySQL 数据优化技巧:提升百万级数据聚合统计速度摘要引言索引优化1. 使用合适的索引类型2. 聚簇索引的应用 查询优化3. 减少数据检索范围4. 避免全表扫描 数据库设计优化5. 合理划分数据表6. 使用分区表 …