Bash特性

Shell

  • shell(外壳),广义的shell可以理解为是用户的工作环境,在windows看来桌面就是一个shell,在linux看来终端就是shell
  • 常见的shell有两种,一种是图形界面,即GUI,一种是命令行终端,即CLI。

1. 常用的GUI:Graphic User Interface

  • Windows
  • X-Window

    -- Gnome

    -- KDE

    -- Xface

2. 常用的CLI:Command Line Interface

  • bash
  • sh
  • csh
  • zsh
  • ksh
  • tcsh

Bash特性

bash支持以下特性:

  • 支持命令历史、命令补全
  • 支持管道、重定向
  • 支持命令别名
  • 支持命令行编辑
  • 支持命令行展开
  • 支持文件名通配
  • 支持变量
  • 支持编程

Bash常用操作

//光标跳转
Ctrl+a //跳到命令行首
Ctrl+e //跳到命令行尾
Ctrl+u //删除光标至命令行首的内容
Ctrl+k //删除光标至命令行尾的内容
Ctrl+<-- //光标定位到离自己最近的一个单词前面
Ctrl+l //清屏 //命令历史
history //查看命令历史
-c //清空命令历史
-d OFFSET [n] //删除指定位置的命令历史
-w //保存命令历史至历史文件~/.bash_history中 //命令历史的使用技巧
!n //执行命令历史中的第n条命令
!-n //执行命令历史中倒数第n条命令
!! //执行上一条命令
!string //执行命令历史中最近一个以指定字符串开头的命令
!$ //引用前一个命令的最后一个参数
esc,. //按下esc松开后按.,引用前一个命令的最后一个参数 //控制命令历史的记录方式
//环境变量 HISTCONTROL
ignoredups //忽略重复的命令(连续且相同方为“重复”)
ignorespace //忽略所有以空格开头的命令,如“ ls -l”
ignoreboth //ignoredups和ignorespace均生效 修改环境变量HISTCONTROL值的方式
export HISTCONTROL=ignoreboth //命令补全
搜索PATH环境变量所指定的每个路径下以我们给出的字符串开头的可执行文件, \
如果多于一个,两次tab,可以给出列表,否则将直接补全 //路径补全
搜索我们给出的起始路径下的每个文件名,并试图补全 //命令别名:
alias CMDALIAS='COMMAND [options] [arguments]' 在shell中定义的别名仅在当前shell生命周期中有效,别名的有效范围为当前的shell进程。 //命令替换(把命令中某个子命令替换为其执行结果的过程)
$(COMMAND) //推荐方式

`COMMAND` //命令行展开
~ //展开为用户的家目录
~USERNAME //展开为指定用户的家目录
{} //可承载一个以逗号分隔的列表,并将其展开为多个路径
/tmp/{a,b} = /tmp/a, /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi //文件名通配 globbing
* //匹配任意长度的任意字符
? //匹配任意单个字符
[] //匹配指定范围内的任意单个字符
[abc],[a-m],[0-9]
[[:space:]] //表示空白字符
[[:punct:]] //表示标点符号
[[:lower:]] //表示小写字母
[[:upper:]] //表示大写字母
[[:alpha:]] //表示大小写字母
[[:digit:]] //表示数字
[[:alnum:]] //表示数字和大小写字母 使用man 7 glob命令可以获得以上字符集合的帮助信息!!! [^] //匹配指定范围之外的任意单个字符 //环境变量
PATH //命令搜索路径
HISTSIZE //命令历史缓冲区大小
SHELL //当前shell
//bash内置变量
RANDOM //保存着0-32768之间的随机数

Bash字符串处理

//bash特性之截取变量的字符串
FILE=/usr/local/src
echo ${FILE#*/} 结果为 usr/local/src
echo ${FILE##*/} 结果为 src
echo ${FILE%/*} 结果为 /usr/local //字符串切片
${var:offset:number} //取字符串的最右侧几个字符(自右向左取)
${var: -lengh}
//注意:冒号后必须有一空白字符 //查找替换
${var/pattern/substi} //查找var所表示的字符串中,第一次被pattern所匹配到字符串,以substi替换之
${var//pattern/substi} //查找var所表示的字符串中,所有能被pattern所匹配到字符串,以substi替换之
${var/#pattern/substi} //查找var所表示的字符串中,行首被pattern所匹配到字符串,以substi替换之
${var/%pattern/substi} //查找var所表示的字符串中,行尾被pattern所匹配到字符串,以substi替换之 //查找并删除
${var/pattern} //查找var所表示的字符串中,第一次被pattern所匹配到字符串,删除之
${var//pattern} //查找var所表示的字符串中,所有被pattern所匹配到字符串,删除之
${var/#pattern} //查找var所表示的字符串中,行首被pattern所匹配到字符串,删除之
${var/%pattern} //查找var所表示的字符串中,行尾被pattern所匹配到字符串,删除之 //字符大小写转换
${var^^} //所有小写转换成大写
${var,,} //所有大写转换成小写
//注意:这里使用的是两个逗号“,,”

获取命令帮助

//内部命令
help COMMAND
//外部命令
COMMAND --help
//在线文档
info COMMAND
//命令手册 manual
man COMMAND
//文档
/usr/share/doc whatis COMMAND //用于查看COMMAND出现在man的哪一章节中。 //man是分章节的,以下是每一章节的内容介绍:
1 用户命令(/bin,/usr/bin,/usr/local/bin);
2 系统调用;
3 库调用;
4 特殊文件(设备文件);
5 文件格式(配置文件 的语法);
6 游戏;
7 杂项(Miscellaneous);
8 管理命令(/sbin,/usr/sbin,/usr/local/sbin) //man手册注意事项:
[] //可选
<> //必选
... //可以出现多次
| //多选一
{} //分组
NAME //命令名称及功能简要说明
SYNOPSIS //用法说明,包括可用的选项
DESCRIPTION //命令功能的详尽说明,可能包括每一个选项的意义
OPTIONS //说明每一个选项的意义
FILES //此命令相关的配置文件
BUGS //报告bug
EXAMPLES //使用示例
SEE ALSO //另外参照 //man翻屏
向后翻一屏 //SPACE
向前翻一屏 //b
向后翻一行 //enter
向前翻一行 //k //查找
/KEYWORD //向后
?KEYWORD //向前
n //下一个
N //前一个
q //退出

Linux基本原则的更多相关文章

  1. linux 基本原则和常用命令

    Linux的基本原则:1.由目的单一的小程序组成,组合小程序完成复杂的功能:2.一切皆文件:3.尽量避免捕获用户接口:4.配置文件保存为纯文本格式. CLI接口的命令提示符:#(root)$(普通用户 ...

  2. 初识Linux 命令

    1.linux基本原则 (1)有目的单一的小程序组成:组合小程序完成复杂任务 (2)一切皆文件 (3)尽量避免捕获用户接口 (4)配置文件保存为纯文本格式 2.命令格式 命令 选项 参数 短选项 - ...

  3. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  4. [Linux] 概念

    操作系统包括: 内核:管理硬件资源 库:没有执行入口的程序,用于提升软件开发效率 应用程序:有执行入口的程序 常见库文件: windows系统:dll(dynamic link library)动态链 ...

  5. 尚学linux课程---6、linux命令介绍

    尚学linux课程---6.linux命令介绍 一.总结 一句话总结: linux中命令的一般格式:命令关键字 选项 参数1 参数2 1.linux基本原则? 一切皆文件 配置文件保存为纯文本格式 2 ...

  6. Linux的基本原则

    Linux的基本原则:1.由目的单一的小程序组成,一个程序只做一件事,且做好: 2.’组合小程序完成复杂任务: 3.一切皆文件: 4.尽量避免捕获用户接口: 5.配置文件保存为纯文本格式: 6.提供机 ...

  7. [原创]Linux-day1

    原创:转发务必注明出处http://www.cnblogs.com/0zcl/p/6077298.html 一.Linux的基本原则 由目的单一的小程序组成:组合小程序完成复杂任务 一切皆文件 尽量避 ...

  8. linux基本知识0

    linux的基本原则: 1.有目的单一的小程序组成,组合小程序完成复杂任务. 2.一切皆文件 3.尽量避免捕获用户接口 4.配置文件保存为纯文本格式 CLI接口: 命令提示符,prompt,bash ...

  9. Linux NFS服务器的安装与配置

    一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...

随机推荐

  1. maven setting.xml 阿里云镜像 没有一句废话

    <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Soft ...

  2. OO第二单元作业——魔鬼电梯

    简介 本单元作业分为三次 第一次作业:第一次作业要实现单部简单电梯,停靠所有楼层,无载客容量,性能分考量电梯运行时间. 第二次作业: 第二次作业实现多部电梯,电梯数量由初始化设定,每部电梯都停靠所有楼 ...

  3. DDD实战让中台和微服务的落地如虎添翼

    微服务到底怎么拆分和设计才算合理,拆多小才叫微服务?有没有好的方法来指导微服务和中台的设计呢? 深入DDD的核心知识体系与设计思想,带你掌握一套完整而系统的基于DDD的微服务拆分与设计方法,助力落地边 ...

  4. 鹏城杯_2018_treasure

    鹏城杯_2018_treasure 首先检查一下保护: IDA分析 我们先来看看settreasure()函数 申请了两个内存空间,并往sea中复制了shellcode 看看这个shellcode,不 ...

  5. 0702-计算机视觉工具包torchvision

    0702-计算机视觉工具包torchvision 目录 一.torchvision 概述 二.通过 torchvision 加载模型 三.通过 torchvision 加载并处理数据集 四.通过 to ...

  6. scrapy爬虫框架调用百度地图api数据存入数据库

    scrapy安装配置不在本文 提及, 1.在开始爬取之前,必须创建一个新的Scrapy项目.进入自定义的项目目录中,运行下列命令 scrapy startproject mySpider 其中, my ...

  7. [BUAA2021软工助教]案例分析作业总结

    目录 一.作业链接 二.优秀作业推荐 A+作业推荐 A作业推荐 三.总结 所有案例分析总结 特色与优点 问题与建议 不同类产品案例分析Bug汇总 CSDN问答社区.Stack Overflow.Seg ...

  8. 日志配置文件读取spring boot配置文件中的属性

    如果是读取 application.properties 这种spring boot的默认配置文件时 其中 scope固定为context  指明从上下文中获取, name 根据自己的意思给, sou ...

  9. php 日志处理工具 SeasLog 的使用

    首先附上seaslog github地址: https://github.com/Neeke/SeasLog/blob/master/README_zh.md php官方文档地址: https://w ...

  10. Java中的反射机制Reflection

    目录 什么是反射? 获取.class字节码文件对象 获取该.class字节码文件对象的详细信息 通过反射机制执行函数 反射链 反射机制是java的一个非常重要的机制,一些著名的应用框架都使用了此机制, ...