Linux总结之Bash特性(未完,待续….)

  1. 命令历史:

    1. 使用命令:history
    2. 环境变量:

      1. HISTSIZE:命令历史缓冲区中记录的条数,默认为1000;
      2. HISTFILE:记录当前登录用户在logout时历史命令存放文件;
      3. HISTFILESIZE:命令历史文件记录历史的条数,默认为1000;
    3. 操作命令历史:

      1. history d OFFSET删除指定行的命令历史;
      2. history c 清空命令历史缓冲区中的命令;
      3. history # 显示历史中最近的#条命令;
      4. history a 手动追加当前会话缓冲区中的命令至历史文件中;
    4. 调用历史中的命令:

      1. !#:重复执行第#条命令;
      2. !!:重复执行上一条(最近一条命令;)
      3. !string:重复执行最近一次以指定字符串开头的命令;
      4. 调用上一条命令的最后一个参数:

        1. !$
        2. ESC, .
  1. 控制命令历史的记录方式:

    环境变量:HISTCONTROL

    三个值:

    ignoredups:忽略重复的命令;所谓重复,一定是连续且完全相同,包括选项和参数;

    ignorespace:忽略所有以空白开头的命令,不记录;

    ignoreboth:忽略上述两项,既忽略重复的命令,也忽略空白开头的命令;

修改环境变量的方式:

export 变量名="VALUE"

或: VARNAME="VALUE" export VARNAME

  1. 命令补全:

    内部命令:直接通过shell补全;

    外部命令:bash根据PATH环境变量定义的路径,自左而右地在每个路径搜寻以给定命令命名的文件,第一次找到即为要执行的命令;

    Note:在第一次通过PATH搜寻到命令后,会将其存入hash缓存中,下次使用不再搜寻PATH,从hash中查找;

    Tab键补全:

    若用户给出的字符在命令搜索路径中有且仅有一条命令与之相匹配,则Tab键直接补全;

    若用户输入的字符在命令搜索路径中有多条命令与之相匹配,则再次Tab键可以将这些命令列出;

  1. 路径补全:

以用户输入的字符串作为路径开头,并在其指定路径的上级目录下搜索以指定字符串开头的文件名;

如果唯一,则直接补全;

否则,再次Tab,列出所有符合条件的路径及文件;

  1. 命令行展开:

1)~:展开为用户的主目录;

2)~USERNAME : 展开为指定用户的主目录;

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

  1. 命令的执行结果状态:

    成功或失败;

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

    值: 0 : 成功;

    1-255:失败,1,127,255为系统保留;

    程序执行有两类结果:

    程序的返回值;程序自身执行的输出结果;

    程序的执行状态结果;$?

  1. 命令别名(alias)

    1. 通过alias命令实现:

      1. alias 显示当前shell进程所有可用的命令别名;
      2. 定义别名:alias NAME=‘VALUE‘ 定义别名NAME,其执行相当于执行命令VALUE,VALUE中可包含命令、选项、参数;
      3. 通过修改配置文件定义命令别名:

      当前用户:~/.bashrc

      全局用户:/etc/bashrc

Bash进程重新读取配置文件:

source /path/to/config_file

./path/to/config_file

撤销别名:unalias

unalias [-a] name [name ...]

Note:对于定义了别名的命令,要使用原命令,可用使用 \COMMAND

  1. glob(globing)

bash中用于实现文件名"通配"

通配符:*,?,[]

  1. * 任意从长度的任意字符;

    a*b:

  2. ? 任意单个字符;

    a?b:

  3. [] 匹配指定范围内的任意单个字符;

    [0-9] [a-z] 不区分大小写

    [admin] 可以是区间形式的,也可以是离散的;

4)[^] 匹配指定范围外的任意字符;

[^0-9] 单个非数字的任意字符;

专用字符集合:

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

[:lower:] 任意单个小写字母,

[:upper:] 任意单个大写字母;

[:alpha:] 任意单个大小写字母;

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

[:space:] 任意空白字符;

[:punct:] 任意单个特殊字符;

Note:在使用[]引用专用字符集合时,外层也需要嵌套[]。例如:

# ls -d /etc/l*[[:digit:]]*[[:lower:]]

  1. Bash快捷键:

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

    Ctrl + a 跳

    时间: 2024-08-11 23:19:31

Linux总结之Bash特性(未完,待续….)的相关文章

把握linux内核设计思想系列(未完待续......)

[版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] 把握linux内核设计思想(一):系统调用 把握linux内核设计思想(二):硬中断及中断处理 把握linux内核设计思想(三):下半部机制之软中断 把握linux内核设计思想(四):下半部机制之tasklet 把握linux内核设计思想(五):下半部机制之工作队列及几种机制的选择 把握linux内核设计思想(六):内核时钟中断 把握linux内核设计思想(七):内核定时器和

Linux 命令个人总结====== 未完待续 个人认为比较重要

Linux 命令个人总结====== 未完待续 man [功能说明]: 查看帮助 [语法格式]: man [123456789] 命令.文件. [选项参数]: 数字"1"表示用户命令,比如"ls" 数字"2"表示系统调用 数字"3"表示C语言库函数 数字"4"表示设备或特殊文件 数字"5"表示文件格式和规则 数字"6"表示游戏及其他 数字"7"表示

whatweb.rb 未完待续

#!/usr/bin/env ruby #表示ruby的执行环境 =begin # ruby中用=begin来表示注释的开始 .$$$ $. .$$$ $. $$$$ $$. .$$$ $$$ .$$$$$$. .$$$$$$$$$$. $$$$ $$. .$$$$$$$. .$$$$$$. $ $$ $$$ $ $$ $$$ $ $$$$$$. $$$$$ $$$$$$ $ $$ $$$ $ $$ $$ $ $$$$$$. $ `$ $$$ $ `$ $$$ $ `$ $$$ $$' $ `$

git个人使用总结 —— idea命令行、撤销commit (未完待续)

近期在使用git,最开始在idea界面操作,后来要求用命令行.刚开始还不是很习惯,感觉很麻烦,用了几天后感觉爽极了! 其实git的命令也不是很多,熟悉一段时间就差不多能顺利使用了.使用过程中遇到了各种各样的问题,有些小问题就在这里集中总结一下. 1.idea命令行.git安装后就自带终端git bash,使用起来很方便.但是用idea开发,开发后还要在相应文件夹下打开git bash很麻烦.其实idea也带有终端terminal,在最下方可以找到,在这里就可以执行命令.但是如果是默认方式安装的g

iOS开发系统版本适配(未完待续。。。)

1.iOS9引入了新特性App Transport Security (ATS).新特性要求App内访问的网络必须使用HTTPS协议:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采用TLS 1.2 协议,目的是强制增强数据访问安全,而且 系统 Foundation 框架下的相关网络请求,将不再默认使用 Http 等不安全的网络协议,而默认采用 TLS 1.2.简单的说,就是苹果限制了HTTP协议,如果你用的是http协议的,要处理请参考我的另一文章,iOS9网络适配 2.iOS9

jdbc14 及 jdbc16 共存所带来的问题【未完待续】

在JAVA中JDK版本与JDBC版本的一致性十分重要,开发都们常常会忽略了这一点导致很多不必要的错误.昨天给客户排查了一个关于EDB在JBoss中使用时关于这方面的问题,希望给大家一点启发. 系统环境: Red Hat Enterpirse Linux 6 JBoss Enterprise Application Server 6 EnterpriseDB Postgres Plus Advanced Server 9 Oracle JDK 1.6 问题症状: 在JBoss日志中间歇性地出现以下

脚本编辑$RANDOM 和 case语句 (笔记) 未完待续

$RANDOM 个人理解是一个用来生成随机数的一个变量 ,由此编写一个脚本 [[email protected] script]# cat random.sh #!/bin/bash # declare -i MAX=0 declare -i MIN=0 for I in `seq 1 10`; do MYRANDOM=$RANDOM [ $I -eq 1 ] && MIN=$RANDOM if [ $I -le 9 ]; then echo -n "$MYRANDOM,&quo

Exp2 后门原理与实践(未完待续)

Exp2 后门原理与实践 实验环境 攻击机 kali 4.14(64位) (IP: 10.0.2.6/24) 靶机 ubuntu 16.04(32位) (IP: 10.0.2.4/24) windows 7 sp1(64位) (IP: 10.0.2.7/24) nc/ncat的使用 nc(全称是netcat)是一个用于TCP/UDP连接和监听的linux工具,有着网络工具中的"瑞士军刀"的美誉.nc的实现版本大致有两种,一种是带有-e或-c 选项可以直接给出执行命令,另一种不支持-e选

某度质量部测试开发面试题1(未完待续)

点击链接加入QQ群 522720170(免费公开课.视频应有尽有):https://jq.qq.com/?_wv=1027&k=5C08ATe 1. 黑盒测试和白盒测试常用的测试方法有哪些?举例说明. 答:白盒测试:逡辑覆盖法,主要包括诧句覆盖,判断覆盖,条件覆盖,判断条件覆盖,组合条件覆盖.路径覆盖. 黑盒测试:等价划分类,边界值分析,错诨推测法等 2. 静态测试和动态测试的概念. 答:静态方法是不运行被测程序本身,仅通过分析和检查源程序的语法.结构.过程.接口等来检查程序的正确性.对需求规格

Linux总结之Bash特性

Linux总结之Bash特性 命令历史: 使用命令:history 环境变量: HISTSIZE:命令历史缓冲区中记录的条数,默认为1000: HISTFILE:记录当前登录用户在logout时历史命令存放文件: HISTFILESIZE:命令历史文件记录历史的条数,默认为1000: 操作命令历史: history d OFFSET删除指定行的命令历史: history c 清空命令历史缓冲区中的命令: history # 显示历史中最近的#条命令: history a 手动追加当前会话缓冲区中