1.历史命令

history

在内存中缓存当前终端使用过的命令,

与其相关的几个环境变量的配置:

HISTSIZE    :在内存中缓存命令的个数(history 中命令的个数)

HISTFILE    :  存在历史命令的文件(~/.bash_history,存放命令的文件)

HISTFILESIZE:  命令历史文件中存放命令的个数(~/.bash_history存放命令个数)

history 10      显示最近的10条记录

history -a  手动追加当前的历史命令到记录文件

hisroty命令的加载和~/.bash_history命令是怎么记录的?

调用历史中的命令:

!#: 重复执行第#条指令;

!!: 重复执行上一条命令

!string  :重复执行与string匹配的最近一条命令

调用上一条命令的最后一个参数:

!$:

ESC, .

Alt+.

控制历史命令的记录方式:

环境变量:HISTCONTROL

ignoredups:忽略重复的命令;连续且相同方为“重复”;

ignorespace:忽略所有以空白开头的命令;

ignoreboth:ignoredups, ignorespace;

修改环境变量值的方式:export 变量名="值"

变量赋值:把赋值符号后面的数据存储于变量名指向内存空间;

2.命令补全

bash命令执行:

内部命令:

外部命令:bash根据PATH定义的路径,自左向右在每个路径下搜索以给定命令开头的文件,第一次找到即为要执行的命令;

TAB补全:使用Tab键,补全用户给定字符串开头的命令,只有一条命令的时候直接补全,有多条的时候,再次点击Tab,则给提示所有相符的命令

3.路径补全

路径补全

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名;

如果惟一:则直接补全;

否则:再次Tab,给出列表;

4.命令行展开

~:当前用户的家目录

~USERNAME:  给定用户的家目录

{}   :可承载一个以逗号分割的列表,将其展开为多个路径

/tmp/{a,b}  = /tmp/a  ,  /tmp/b

5.命令执行状态

成功

失败

bash使用特殊变量$?保存最近一条命令的执行状态结果:

0:成功

1-255:失败

程序执行有两类结果:

程序的返回值;

程序的执行状态结果;

6.别名

1.命令别名 -alias

通过alias命令实现

(1)查看当前shell进程中可以使用的全部别名  alias

(2) alias  NAME = VALUE 定以别名,仅对当前shell或子shell有效

永久有效的命令,需要在配置文件中配置

(1)对当前用户有效   ~/.bashrc

(2) 对所有用户有效   /etc/bashrc (不是所有系统都一样)

NOTE:

编辑配置文件后不是立即生效,如果想立即生效,需要重新读取配置文件

source  /path/to/file

.   /path/to/file

撤销别名 unalias

unalias [-a] NAME [NAME...]

NOTE:

别名和原来的名称相同,如果想要执行原来的命令,使用:"/COMMAND"

7.glob (globbing)

bash中实现文件名”通配“

通配符: *   ?  [ ]

(1)  *    任意数量的字符   :  0+

a*b    a-b之间可以任意数量的字符,可以没有,也可以很多个

(2)? 任意单个字符   : 1

a?b    a-b之间有且一个字符

(3)[ ]   匹配指定范围内的任意单个字符 :  指定范围  1

[0-9] :  0-9之间任意单个字符

[a-z]:不区分字符大小写

(4) [^]  匹配指定范围之外的任意单个字符 : 指定范围之外 1

[^0-9]   0-9之外的字符

[^a-z]    非大写和小写字母字符

专用字符集合:(使用的时候需要外加 '[ ]')

[:digit:]:任意数字,相当于0-9

[:lower:]:任意小写字母

[:upper:]: 任意大写字母

[:alpha:]: 任意大小写字母

[:alnum:]:任意数字或字母

[:space:]:

[:punct:]:标点符号

练习:

1、显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录;

# ls -d /var/l*[0-9]*[[:lower:]]

2、显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录;

# ls -d /etc/[0-9]*[^0-9]

3、显示/etc/目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录;

# ls /etc/[^[:alpha:]][[:alpha:]]*

4、复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/mageedu目录中;

# cp -a /etc/m*[^0-9] /tmp/mageedu

5、复制/etc目录下,所有以.d结尾的文件或目录至/tmp/magedu.com目录中;

# cp -a /etc/*.d /tmp/magedu.com

6、复制/etc目录下,所以有.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/mageedu.com目录中;

# cp -a /etc/[mnrp]*.conf  /tmp/mageedu.com

8、bash的快捷键

Ctrl+l: 清屏,相当于clear命令;

Ctrl+a:跳转至命令开始处;

Ctrl+e:跳转至命令结尾处;

Ctrl+c:取消命令的执行;

Ctrl+u: 删除命令行首至光村所在处的所有内容;

Ctrl+k: 删除光标所在处至命令行尾部的所有内容;

9、bash的的I/O重定向及管道

为了更好理解,我新建了一篇文章。

linux 命令都是bash,Linux 命令分类_bash基础特性相关推荐

  1. 每个 Linux 用户都应该知道的命令行技巧

    每个 Linux 用户都应该知道的命令行技巧 原创 2015-09-11 伯乐在线 程序员的那些事 [伯乐在线导读]:有网友在问答网站Quora上提问:"有哪些省时小技巧,是每个Linux用 ...

  2. 每个Linux用户都应该了解的命令行省时技巧

    英文链接: Linux: What are some time-saving tips that every Linux user should know? 有网友在问答网站Quora上提问:&quo ...

  3. linux 到我的电脑的命令,Linux你都是如何背命令的 -电脑资料

    linux 背命令这条路是相当的坎坷啊! 可惜的是,我,还是背不得几个命令, 面对这种窘境,于是想出一切歪招,背不了,咱就查有什么命令呗.. 所以,就介绍介绍.总结总结.怎么查命令 查询所有linux ...

  4. Linux命令行–更多bash shell命令(转)

    4.1.1 探查程序 ps 命令 默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户进程的进程 显示的当前进程的项目 进程号 运行在哪个终端(tty) 进程占用的CPU时间 Linux系统支 ...

  5. Linux 你都是如何背命令的?

    来自Vic__ linux 背命令这条路是相当的坎坷啊! 可惜的是,我,还是背不得几个命令...会得最多的是ls dir cd ssh,没了.. 面对这种窘境,于是想出一切歪招, 背不了,咱就查有什么 ...

  6. linux 并行执行脚本,在bash / linux中并行运行shell脚本

    我有一个shell脚本job.sh. 内容如下: #!/bin/bash table=$1 sqoop job --exec ${table} 现在当我做./job.sh table1 该脚本成功执行 ...

  7. linux shell脚本退出,Bash退出命令和退出代码

    通常,在编写Bash脚本时,您需要在满足特定条件时终止脚本,或者根据命令的退出代码采取措施.在本文中,我们将介绍Bash exit内置命令和已执行命令的退出状态. 通常,在编写Bash脚本时,您需要在 ...

  8. linux shell脚本 exit0,Bash exit命令和exit退出代码

    通常,在编写Bash脚本时,需要在满足特定条件时终止脚本,或者根据命令的退出代码采取措施. 在本文中,我们将介绍Bash exit内置命令和已执行命令的退出状态. 退出状态 每个shell命令成功终止 ...

  9. linux进程状态都是s,ps命令输出进程状态S+的含义解析

    最近发现一个问题,ps命令输出里面进程状态为S+的含义,网上好多文章都说是表明进程"位于在后台进程组". 例如下面这个ps命令输出说明: D 不可中断 Uninterruptibl ...

最新文章

  1. HTML 的特殊字符转换转义符,的两种方法。
  2. 【实用】SAP修改记录表开发
  3. Apache Log4j 学习笔记
  4. lua 给userdata设置元表_lua学习之复习汇总篇
  5. 使用PHP建立SVN的远程钩子,使用exec命令自动更新SVN的代码
  6. Nginx配置IP地址的动态黑名单
  7. micropython中文社区 socket通讯_基于micropython的TCP客户端编程
  8. canvas中文显示乱码 html5_HTML5 CANVAS:绘制文字
  9. 电路设计_RS485总线典型电路介绍
  10. adb 截屏和录屏命令
  11. 前馈神经网络——神经元
  12. (sn0wbreeze保基带升级,redsnow,absinthe越狱)常用越狱工具下载:redsnow,absinthe,tinyumbrella,sn0wbreeze
  13. JAVA---集合子接口之Set
  14. 使用github遇到的问题及其解决方法汇总
  15. 作业:从键盘输入10个浮点数,求其和及其平均值
  16. 微信公众号最佳实践 ( 4.7)获取用户地理位置
  17. python实现账号密码登录
  18. 标题爱奇艺的数据库选型大法,实用不纠结!
  19. MATLAB m_map工具包的安装“三步走”
  20. 半导体激光器——问题整理(一)

热门文章

  1. oracle开窗函数是什么,ORACLE数据库(六)-----开窗函数
  2. mysql 5.8_mysql5.8安装指南
  3. c语言数值运算法和非数值运算法,数据结构(c语言)1.数据结构是一门研究非数值计算的程序设计问题中计算机的 以及它们之间的 _ 和运算等的学科。① A....
  4. mysql 中文 问号 utf8_[MySql] 设置了UTF8,中文存数据库中仍然出现问号
  5. python中turtle画树_python中turtle可以画树吗?怎么画?
  6. osgText中的setAxisAlignment和setAlignment的区别
  7. python两两组合求和_LeetCode-python 40.组合总和 II
  8. fastxml 大于符号不转换_你可能不知道的MATLAB入门技巧#第二话
  9. win7开机提示服务器正在运行,科技常识:win7电脑启动ie浏览器提示服务器正在运行的处理方法...
  10. 深入理解session过期机制