bash编程-Shell基础
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基础的更多相关文章
- bash编程-Shell变量
bash中,所有变量的值默认均为字符串. 1. 变量操作 调用变量 $变量 查看变量(所有类型) set 删除变量 unset 变量 2. 变量分类 2.1 自定义变量 自定义变量仅对当前Shell有 ...
- Bash编程(1) 基础
1. 基本知识 (1) $HOME: 当前用户的家目录 (2) `pwd`或$PWD:当前目录 (3) 脚本命名避免使用test,通过type -a test,可以查看所有匹配test的命令 gas@ ...
- [shell] Bash编程总结
由于工作需要,之前的几个月写了一些Bash脚本,主要完成自动测试.打包.安装包等.虽然相比C++编程,要简单.傻瓜,但其在类Unix系统中可以大大提高工作的效率.所以在此对脚本编程过程中一些注意事项进 ...
- shell基础之二 bash特性详解
https://blog.51cto.com/13520779/2093146 合格linux运维人员必会的30道shell编程面试题及讲解:https://blog.51cto.com/oldboy ...
- 【Linux基础总结】Shell 基础编程
Shell 基础编程 重启虚拟机遇到磁盘损坏如何解决 Shell编程中变量的声明.引用及作用域 Shell程序 概述 以文件形式存放批量的Linux命令集合,该文件能够被Shell解释执行,这种文件就 ...
- shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)
如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...
- Shell基础知识和编程规范
一,Shell环境查看 1.1 查看系统Shell支持情况 [root@linux-node1 ~]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin ...
- bash编程基础
bash变量 变量命名: 1.不能使用程序中的关键字(保留字) 2.只能使用数字.字母和下划线,且不能以数字开头 3.要见名知义 变量类型: 数值型:精确数值(整数),近似数值(浮点型) 字符型:ch ...
- 怎样用 Bash 编程:逻辑操作符和 shell 扩展
学习逻辑操作符和 shell 扩展,本文是三篇 Bash 编程系列的第二篇. Bash 是一种强大的编程语言,完美契合命令行和 shell 脚本.本系列(三篇文章,基于我的 三集 Linux 自学课程 ...
随机推荐
- jQuery动画函数回调
$("#show").click(function () { //function 是显示完成之后的回调函数 $("p").show(2000,function ...
- solr搜索配置权重
配置权重 <requestHandler name="/browse" class="solr.SearchHandler" default=" ...
- import this
import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than ...
- Windows8 App Store 开发者会关心的文档
在远程计算机上从 Visual Studio 调试和测试 Windows 应用商店应用程序 http://msdn.microsoft.com/zh-cn/library/windows/apps/h ...
- rpm安装jdk7
原文:http://www.centoscn.com/image-text/config/2015/0208/4658.html 系统环境:centos-6.5 安装方式:rpm安装 软件:jdk-7 ...
- Python之tornado
一.快速了解Tornado框架 1)tornado简介 Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快.得利于其 ...
- flask框架基础
一 web的一些框架介绍 Flask:短小精悍,内部没有包含多少组件,但是第三方的组件是非常丰富的. Django:django是一个重武器,内部包含了非常多的组件:orm,form,modelFor ...
- centos7 安装网卡
1.虚拟机测试,先开启命令行 su systemctl set-default multi-user.target reboot 2.编辑网卡 虚拟机网络设置成桥接模式 vi /etc/sysconf ...
- 671. Second Minimum Node In a Binary Tree
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...
- 2019.02.09 bzoj4455: [Zjoi2016]小星星(容斥原理+dp)
传送门 题意简述:给一张图和一棵树(点数都为n≤17n \le17n≤17),问有多少种给树的标号方法方法使得图中去掉多余的边之后和树一模一样. 思路: 容斥好题啊. 考虑fi,jf_{i,j}fi, ...