bash shell相关知识

shell与bash

什么是shell

bash shell相关知识

bash shell相关知识

——以上图片摘自《鸟哥的Linux私房菜》

系统核心不能随意地被操作,所以就设计出了壳程序shell,一方面保护了系统核心,另一方面提供了人机交互的渠道。

bash与shell的关系

bash是众多shell的一种,/bin/bash是Linux的预设shell。

shell的变量

变量的设定

var_name=value

var_name=char

var_name=”$LANG” # attribute is preserved

var_name=’$LANG’ # 单括号内的内容被转为了字符型

取消设定的变量 unset var_name

变量的有效范围:环境变量和自定义变量

环境变量通过env查看,set命令可以查看所有类型的变量,系统变量名称用全大写字母表示,自己定义的变量用小写表示。

echo $?回传上次命令执行的结果,0表示命令正确执行,127表示存在错误。

想要自定义变量能够给子程序用,export var_name。我的理解是,通过export将自定义变量临时提升为了环境变量。

通配符和特殊符号

  • 代表任意多个任意字符

? # 代表一个任意字符

[] # 代表有一个字符满足括号内给定范围的条件,可以不连续

find / -iname [1,z,b]* # 找到根目录下以1或z或b开头命名的文件

[-] # 代表有一个字符满足括号编码顺序范围内的条件,如[1-9], [a-z]

find / -iname [1-3]* # 找到根目录下所有以在数字1-3范围内开头命名的文件

[^] # 代表有一个字符满足不包含在^号后内的条件

find / -iname [^1-9] # 找到根目录下所有不以数字1-9范围内开头命名的文件

find / -iname [^1,2] # 找到根目录下不以数字1和数字2开头命名的文件!注意2之前没加^!

数据流重导向

标准输入stdin、标准输出stdout与标准错误输出stderr

bash shell相关知识
  1. 标准输入 (stdin) :代码为 0 ,使用 < 或 << ;
  2. 标准输出 (stdout):代码为 1 ,使用 > 或 >> ;
  3. 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>>
  • 1> :以覆盖的方法将『正确的数据』输出到指定的文件或装置上;
  • 1>>:以累加的方法将『正确的数据』输出到指定的文件或装置上;
  • 2> :以覆盖的方法将『错误的数据』输出到指定的文件或装置上;
  • 2>>:以累加的方法将『错误的数据』输出到指定的文件或装置上;

——以上摘自《鸟哥的Linux私房菜》

&&与||

bash shell相关知识

——以上摘自《鸟哥的Linux私房菜》

管道符相关

cut与grep

cut -d ‘分隔字符’ -f fields(number, number)

[root@study_rhel ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@study_rhel ~]# echo $PATH | cut -d ':' -f 1    # /usr/local/sbin 按:分割后是第一段
/usr/local/sbin
[dmtsai@study ~]$ echo ${PATH} | cut -d ':' -f 3,5

grep,输出符合给定条件的所在行

grep后面所跟需要被查找的字符需要加引号吗?

如果只是一串普通字符可以不加。如果是两个字符中间包含空格,就需要加引号。一般常量、字符串用单引号,变量用双引号。(参考”变量的设定”一节)

grep “$a” file # 查找变量a的值,输出所在行

grep ‘$a’ file # 查找”$a”字符串,输出所在行

grep ‘\’ file # 查找’\’字符,输出所在行

双重定向命令tee

bash shell相关知识

bash shell相关知识

——以上摘自《鸟哥的Linux私房菜》

文件分割命令split

bash shell相关知识

——以上摘自《鸟哥的Linux私房菜》

参数传递过滤命令xargs

x -arguments

使用xargs 的原因是, 很多指令其实并不支持管道符,因此我们可以通过xargs来为后面的指令使用standard input中的数据(参数)。

bash shell相关知识

bash shell相关知识

-的用途

减号”-“就是代表标准输出/标准输入, 视命令而定. “-“代替stdin和stdout的用法:

tar -cvf – /home | tar -xvf –

tar -cvf – /home 把/home压缩后,打印在stdout上,tar -xvf – 从stdin读取内容,并在当前目录解压

tar cf – access.log | tar xf – -C /opt # 把access.log文件打包,通过管道符,把前一个命令的输出变为后一个命令的输入,在/opt目录解压。等效于复制文件到/opt目录

Original: https://www.cnblogs.com/randyszone/p/16285541.html
Author: randy198
Title: bash shell相关知识

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583084/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • jmeter并发设置的原理

    简介 广义并发 绝对并发 简介 ​ 性能测试过程中是否需要进行同步定时器的设置,需要根据实际情况来考虑。 ​ 举个栗子来讲是我们的双十一秒杀活动,这时候就必须实现请求数量达到一定数…

    Linux 2023年6月14日
    0147
  • 代码规范浅谈

    代码规范这东西网上很容易百度到一堆,除了天下文章一大抄的问题,另外,多数只给了结果,原因没有充分说明,或者非常的纠结于大写小写,一个函数可以写几行的细节。感觉有点容易让新人误入歧途…

    Linux 2023年6月13日
    0104
  • MySQL PXC集群的实现

    MHA:一主多从,主节点挂了就提升一个从节点作为主节点。 缺点:提升从节点为主节点需要时间,且只有一个节点能进行写操作,所以写的性能不高。 双主架构:两个主节点,两个节点都能进行读…

    Linux 2023年6月7日
    081
  • LVS 负载均衡集群

    1.1 LVS介绍 LVS 是 Linux Virtual Server 的简写,即 Linux 虚拟服务器,是一个虚拟的服务器集群系统。此项目在 1998 年 5 月由章文嵩博士…

    Linux 2023年6月6日
    094
  • Python环境安装

    一、下载地址: Python:Download Python | Python.org PyCharm:Download PyCharm: Python IDE for Profe…

    Linux 2023年6月13日
    0111
  • ElasticSearch7.2安装

    下载JDK压缩包,通过SFTP客户端(WinSCP)上传到CentOS7相应的目录下。然后解压JDK,解压命令为: tar -zxvf jdk-12.0.2_linux-x64_b…

    Linux 2023年6月7日
    0110
  • 我叫Mongo,干了「查询终结篇」,值得您拥有

    这是mongo第三篇”查终结篇”,后续会连续更新5篇 mongodb的文章总结上会有一系列的文章,顺序是先学会怎么用,在学会怎么用好,戒急戒躁,循序渐进,跟…

    Linux 2023年6月14日
    0129
  • MySQL Performance Schema详解

    MySQL的performance schema 用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况。 1 performance schema特…

    Linux 2023年6月13日
    099
  • Action Sheets 和 Activity Views

    行动表行动表是一种特殊的提醒方式,它展示了与当前环境相关的两个或多个选择。在较小的屏幕上,动作表会从屏幕的底部滑上去;在较大的屏幕上,动作表会以弹出式的方式一次性出现。 在执行一个…

    Linux 2023年6月7日
    0100
  • jarwarSpringBoot加载包内外资源的方式,告别FileNotFoundException吧

    工作中常常会用到文件加载,然后又经常忘记,印象不深,没有系统性研究过,从最初的war包项目到现在的springboot项目,从加载外部文件到加载自身jar包内文件,也发生了许多变化…

    Linux 2023年6月6日
    0108
  • Java基础之接口篇

    Overload和Override的区别?重载Overload:表示同⼀个类中可以有多个名称相同的⽅法,但这些⽅法的参数列表各不相同,参 数个数或类型不同 重写Override:表…

    Linux 2023年6月7日
    097
  • mycat2 读写分离配置(详解)

    mycat2相对mycat1来说升级还挺多的,但是全网资料太少了,这里尽可能详细的将读写分离说清楚,目前这套配置已经在我司生产环境应用,日UV6W左右,暂时没发现问题。 1.1下载…

    Linux 2023年6月6日
    0105
  • 句柄过多导致SSH失败

    现象描述 scp文件的时候,突然有一个节点拷贝失败了。以为免密被修改了,结果一问说原因是:句柄过多。 以前这种情况接触较少,就顺带查了一下资料。 句柄的定义 这个标题隐含的一个前提…

    Linux 2023年6月8日
    0108
  • 飞鸽传书:一个局域网QQ

    推荐一个类似局域网QQ的免费软件——飞鸽传书,支持windows、mac、Linux、安卓、苹果手机。 飞鸽传书:一个局域网QQ 局域网文件和消息互传应该用什么呢?在这里推荐一个类…

    Linux 2023年6月6日
    0108
  • RISC-V汇编指南

    The RISC-V Assembly Programmer’s Manual is I think it’s probably better to bee…

    Linux 2023年6月6日
    072
  • 六、基本权限

    (一)基本权限 文件系统权限1、权限的作用:保证系统安全性,称为普通权限或文件系统权限,作用是保护文件,让有权限的用户可以访问,否则不能访问,linux文件系统权限,主要设置在文件…

    Linux 2023年6月7日
    0105
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球