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常用操作

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

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

Bash字符串处理

  1. //bash特性之截取变量的字符串
  2. FILE=/usr/local/src
  3. echo ${FILE#*/} 结果为 usr/local/src
  4. echo ${FILE##*/} 结果为 src
  5. echo ${FILE%/*} 结果为 /usr/local
  6. //字符串切片
  7. ${var:offset:number}
  8. //取字符串的最右侧几个字符(自右向左取)
  9. ${var: -lengh}
  10. //注意:冒号后必须有一空白字符
  11. //查找替换
  12. ${var/pattern/substi} //查找var所表示的字符串中,第一次被pattern所匹配到字符串,以substi替换之
  13. ${var//pattern/substi} //查找var所表示的字符串中,所有能被pattern所匹配到字符串,以substi替换之
  14. ${var/#pattern/substi} //查找var所表示的字符串中,行首被pattern所匹配到字符串,以substi替换之
  15. ${var/%pattern/substi} //查找var所表示的字符串中,行尾被pattern所匹配到字符串,以substi替换之
  16. //查找并删除
  17. ${var/pattern} //查找var所表示的字符串中,第一次被pattern所匹配到字符串,删除之
  18. ${var//pattern} //查找var所表示的字符串中,所有被pattern所匹配到字符串,删除之
  19. ${var/#pattern} //查找var所表示的字符串中,行首被pattern所匹配到字符串,删除之
  20. ${var/%pattern} //查找var所表示的字符串中,行尾被pattern所匹配到字符串,删除之
  21. //字符大小写转换
  22. ${var^^} //所有小写转换成大写
  23. ${var,,} //所有大写转换成小写
  24. //注意:这里使用的是两个逗号“,,”

获取命令帮助

  1. //内部命令
  2. help COMMAND
  3. //外部命令
  4. COMMAND --help
  5. //在线文档
  6. info COMMAND
  7. //命令手册 manual
  8. man COMMAND
  9. //文档
  10. /usr/share/doc
  11. whatis COMMAND //用于查看COMMAND出现在man的哪一章节中。
  12. //man是分章节的,以下是每一章节的内容介绍:
  13. 1 用户命令(/bin,/usr/bin,/usr/local/bin);
  14. 2 系统调用;
  15. 3 库调用;
  16. 4 特殊文件(设备文件);
  17. 5 文件格式(配置文件 的语法);
  18. 6 游戏;
  19. 7 杂项(Miscellaneous);
  20. 8 管理命令(/sbin,/usr/sbin,/usr/local/sbin
  21. //man手册注意事项:
  22. [] //可选
  23. <> //必选
  24. ... //可以出现多次
  25. | //多选一
  26. {} //分组
  27. NAME //命令名称及功能简要说明
  28. SYNOPSIS //用法说明,包括可用的选项
  29. DESCRIPTION //命令功能的详尽说明,可能包括每一个选项的意义
  30. OPTIONS //说明每一个选项的意义
  31. FILES //此命令相关的配置文件
  32. BUGS //报告bug
  33. EXAMPLES //使用示例
  34. SEE ALSO //另外参照
  35. //man翻屏
  36. 向后翻一屏 //SPACE
  37. 向前翻一屏 //b
  38. 向后翻一行 //enter
  39. 向前翻一行 //k
  40. //查找
  41. /KEYWORD //向后
  42. ?KEYWORD //向前
  43. n //下一个
  44. N //前一个
  45. 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. [Fundamental of Power Electronics]-PART II-7.交流等效电路建模-7.1 引言

    7.1 引言 变换器系统总是需要反馈的.例如,在典型的DC-DC变换器应用中,无论输入电压\(V_{g}(t)\)和输出有效负载\(R\)如何变化,都必须使输出电压\(v(t)\)保持恒定.这是通过构 ...

  2. redis的主从复制(哨兵模式)

    p.p1 { margin: 0; font: 10px ".SF NS Text" } Master以写为主,Slave以读为主 读写分离 容灾恢复 一.一主多从 配置文件修改: ...

  3. MySQL数据库高级四:工具拾遗(视图)

    视图

  4. 1.1.09- 序列赋值 is , is not运算符

    两个变量的交换算法 代码如下: a = 10000 b = 20000 temp = a a = b b = temp print(a) print(b) 序列赋值: a,b = b,aprint(a ...

  5. 解决小程序中Data.parse()获取时间戳IOS不兼容

    由于与后台接口必须对比时间戳所以首先得前台获取时间戳.刚开始是获取手机本地时间,但用户改了时间就废了..... 后来就从服务器上获取个时间再转换为时间戳(是不是很操蛋,先从服务器上获取在TM的自己比较 ...

  6. hdu1247 字典树或者hash

    题意:      给你一些串,问你哪些串是由其他两个串连接成的. 思路:        我用了两种方法,一个是hash,hash的时候用map实现的,第二种方法是字典树,字典树我们枚举每个一字符串,查 ...

  7. 从苏宁电器到卡巴斯基第24篇:难忘的三年硕士时光 II

    没办法,还是先打好基础吧 其实在我知道自己面试失败后,第一个想法就是将面试官问我的问题都总结出来,然后通过查权威的资料,找出所有问题的答案,背下所有的答案,大概过一到两个月吧,再面试金山.当时我是这么 ...

  8. POJ2226 不错的最小顶点覆盖

    题意:        给你一个n * m 的矩阵,上面有" * " 和 " . " ,让你用少的木板吧所有" * "覆盖,木板宽度是1,长度 ...

  9. 基于dalvik模式下的Xposed Hook开发的某加固脱壳工具

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/77966109 这段时间好好的学习了一下Android加固相关的知识和流程也大致把A ...

  10. hdu4845 状态压缩BFS

    题意:      给一个n*m的矩阵,从11,走到nm,格子和格子之间可能有墙,也可能有门,有的格子上面有钥匙,相应的钥匙开相应的们,捡钥匙和开门都不需要时间,问你最少多少部能走到nm. 思路:   ...