1. Shell脚本执行方式

  • 直接运行,需要在脚本文件头部指定解释器,如#!/bin/bash
./myshell.sh
  • 运行时指定shell解释器
bash myshell.sh

2. Shell命令历史

  • 查看所有历史命令
history
  • 执行上一条历史命令
!!
  • 执行历史命令中第n条命令
!n
  • 执行历史命令中最后一个以"str"字符串开头的命令
# 不建议使用,尤其是创建、修改、删除文件这样的操作
!str
  • 在历史命令中搜索匹配命令
快捷键:control + r

3. 别名

注意:通过命令方式设置别名只对当前shell有效,希望永久生效需要修改~/.bashrc文件

  • 查看别名
alias
  • 定义别名(尽量不要与原始命令重名,避免引起不必要的麻烦)
alias 别名='命令'
  • 删除别名
unalias 别名

4. 快捷键

  • control + a

    光标移动到命令行开头
  • control + e

    光标移动到命令行结尾
  • control + c

    终止当前命令
  • control + u

    删除(剪切)光标之前的命令
  • control + k

    删除(剪切)光标之后的命令
  • control + y

    粘贴control+u或control+k剪切的内容
  • control + r

    在历史命令中搜索匹配命令
  • control + d

    退出当前终端
  • control + s

    暂停屏幕输出
  • control + q

    恢复屏幕输出

5. 输入输出与重定向

参考:IO重定向与管道

6. 多命令顺序执行

  • ;

    命令之间无任何逻辑关系
  • &&

    逻辑与:前面的命令执行成功,后面的命令才会执行
  • ||

    逻辑或:前面的命令执行失败,后面的命令才会执行

7. 通配符

  • ?

    匹配一个任意字符

匹配0个或多个任意字符

  • [xyz...]

    匹配括号中的一个字符(如:[abc]表示匹配a或b或c)
  • [x-y]

    匹配括号中的范围,常见格式如下
[a-z]:一个小写字母( x )
[A-Z]:一个大写字母( x )
[a-z0-9]:所有小写字母和数字( x )
[0-9]:0-9所有数字
[[:upper:]]:所有大写字母
[[:lower:]]:所有小写字母
[[:alpha:]]:所有字母
[[:digit:]]:0-9所有数字
[[:alnum:]]:所有的字母和数字
[[:space:]]:所有空白字符
[[:punct:]]:所有标点符号
  • [^xyz]

    匹配指定范围外的任意单个字符,常见格式如下
[^[:upper:]]:非大写字母
[^[:lower:]]:非大写字母
[^0-9]:非数字
[^[:alnum:]]:非字母和数字

8. 特殊符号

  • ''

    单引号中的所有特殊符号都没有特殊含义
  • ""

    双引号中的所有特殊符号都没有特殊含义(除$、``、\ )
  • `命令`

    反引号表示命令结果
  • $(命令)

    表示命令结果,同`命令`(建议使用这种,避免``与''看不清)
  • $

    $+字符串表示变量,如$PATH
  • **\ **

    转义符

bash编程-Shell基础的更多相关文章

  1. bash编程-Shell变量

    bash中,所有变量的值默认均为字符串. 1. 变量操作 调用变量 $变量 查看变量(所有类型) set 删除变量 unset 变量 2. 变量分类 2.1 自定义变量 自定义变量仅对当前Shell有 ...

  2. Bash编程(1) 基础

    1. 基本知识 (1) $HOME: 当前用户的家目录 (2) `pwd`或$PWD:当前目录 (3) 脚本命名避免使用test,通过type -a test,可以查看所有匹配test的命令 gas@ ...

  3. [shell] Bash编程总结

    由于工作需要,之前的几个月写了一些Bash脚本,主要完成自动测试.打包.安装包等.虽然相比C++编程,要简单.傻瓜,但其在类Unix系统中可以大大提高工作的效率.所以在此对脚本编程过程中一些注意事项进 ...

  4. shell基础之二 bash特性详解

    https://blog.51cto.com/13520779/2093146 合格linux运维人员必会的30道shell编程面试题及讲解:https://blog.51cto.com/oldboy ...

  5. 【Linux基础总结】Shell 基础编程

    Shell 基础编程 重启虚拟机遇到磁盘损坏如何解决 Shell编程中变量的声明.引用及作用域 Shell程序 概述 以文件形式存放批量的Linux命令集合,该文件能够被Shell解释执行,这种文件就 ...

  6. shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)

    如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...

  7. Shell基础知识和编程规范

    一,Shell环境查看 1.1 查看系统Shell支持情况 [root@linux-node1 ~]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin ...

  8. bash编程基础

    bash变量 变量命名: 1.不能使用程序中的关键字(保留字) 2.只能使用数字.字母和下划线,且不能以数字开头 3.要见名知义 变量类型: 数值型:精确数值(整数),近似数值(浮点型) 字符型:ch ...

  9. 怎样用 Bash 编程:逻辑操作符和 shell 扩展

    学习逻辑操作符和 shell 扩展,本文是三篇 Bash 编程系列的第二篇. Bash 是一种强大的编程语言,完美契合命令行和 shell 脚本.本系列(三篇文章,基于我的 三集 Linux 自学课程 ...

随机推荐

  1. Codeforces 757B. Bash's Big Day GCD

    B. Bash's Big Day time limit per test:2 seconds memory limit per test:512 megabytes input:standard i ...

  2. 客户端服务端web问题

    情况是这样: 我这边是C++socket/TCP服务器,然后有几万台客户端长连接我的服务器,这时,web端想对客户端进行参数设置,于是web端连到我的TCP服务器发来它想设置的客户端的ID和设置参数, ...

  3. idea部署tomcat-404错误

    今天在部署数据质量web工程在tomcat后,访问时报404错误,在网上搜了很多相关配置,也都是一步一步来的 Application Context 也配置好了,Artifact也添加了,就是访问不了 ...

  4. DB2 sql报错后查证原因与解决问题的方法

    1.对于执行中的报错,可以在db2命令行下运行命令 : db2=>? SQLxxx 查看对应的报错原因及解决方法. 2.错误SQL0206N SQLSTATE=42703  检测到一个未定义的列 ...

  5. php file_get_contents 使用3法

    <?php //GET function http_get($url, $params){ return file_get_contents($url.'?'.http_build_query( ...

  6. 关于传统项目打成war包的的分析

    技术在不断的革新,以前的项目没有jar管理工具时,都是手动将依赖的jar拷贝到项目之下,然后Build Path,之后Maven出现了,出现了jar包中央仓库,所有的jar包资源集中在这里,免去频繁去 ...

  7. 数据分析计算xgboost模块

    一.安装xgboost方法 摘要:之前为了安装xgboost,少不了进入各种坑,但最终安装成功了!首先, 准备的工作:,下载mingw64,链接https://pan.baidu.com/s/1i5C ...

  8. 3.The significance of Books 书本的意义

    3.The significance of Books 书本的意义 (1)A bookless life is an imcomplete life.Books influence the depth ...

  9. c#编程模仿的1stopt界面

    * Levenberg-Marquardt法 (LM)+ 通用全局优化算法(Universal Global Optimization - UGO) * Quasi-Newton法 (BFGS)+ 通 ...

  10. c# radiobutton

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...