Linux学习之bash总结(持续进行中….)

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快捷键:

    时间: 2024-10-12 20:39:31

Linux学习之bash总结(持续进行中….)的相关文章

Linux基本知识点整理(持续更新中..)

基本的一些变量 : 将变量内保存的字符内容表示出来用$符号(也可以加上花括号${###}) 注意它和命令优先级符号$()(同反向单引号)的区别:一个内容是变量,一个内容是语句. SHELL: 用的shell类型 PS1:命令提示符格式 LANG:语言格式 PATH:命令搜索路径 HISTSIZE:内存中输出的历史命令行记录数量(最后的多少行) 保存在/etc/profile HISTTIMEFORMAT:历史命令的时间格式 HISTFILE:历史命令记录的文件路径,默认为~/.bash_hist

Linux学习资源汇总(持续更新...)

自己收集一些学习资源,方便以后查找 搜索引擎:    google:https://www.google.com/Linux教程:    鸟哥的私房菜:http://linux.vbird.org    经典的LInux学习教材    运维生存时间:http://www.ttlsa.com/    LinuxSir:http://www.linuxsir.org/    菜鸟教程:http://www.runoob.com/        各种基础的教程    w3cschool:https:/

Linux下用bash命令执行名称中带有“(”符号的目录注意事项

***********************************************声明************************************************ 原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 表述有错误之处,请您留言或邮件([email protected])指明,不胜感激. 本文转载必须保留此处:http://blog.csdn.net/huangyanlong/article/de

Linux学习笔记——bash命令及shell变量简介

bash 及其特性 shell  外壳 GUI :Gnome  KDE  xface CLI :shell  csh  ksh  bash 程序,进程 进程:每个进程看来,当前主机上只存在内核和当前进程 进程是程序的副本,进程是程序执行实例 用户的工作环境: bash: #   root用户 $   普通用户 shell  ,子shell bash : 1.命令历史 2.管道,重定向 3.命令行编辑 4.命令别名 5.命令行展开 6.文件名通配 7.变量 8.编程 命令行使用技巧: Ctrl +

Linux学习笔记--bash脚本编程之二、条件判断

 bash脚本编程之二.条件判断 条件判断: 如果用户不存在 添加用户,给密码并显示添加成功: 否则 显示用户已存在,没有添加 bash中如何实现条件判断? 整数测试 字符测试 文件测试 条件测试的表达式:     [expression]     [[expression]]     test expression 整数比较: -eq:测试两个整数是否相等:比如 $A -eq $B     -ne:测试两个整数是否不等:不等,为真:相等,为假:     -qt:测试一个数是否大于另一个数:大于

Linux学习笔记--bash脚本编程之一变量、变量类型

bash脚本编程之一变量.变量类型 shell编程: 编译器,解释器 编程语言:机器语言.汇编语言.高级语言 静态语言:编译型语言 强类型(变量)语言 事先转换成可执行格式 C.C++.JAVA.C# 动态语言:解释型语言       on the fiy                                   弱类型 边解释边执行 ASP.ASP.net.PHP.shell.Python.perl 面向过程:shell.C   面向对象:JAVA.Python .Perl.C++

Linux新手训练营--命令大全(持续更新中)

1. authconfig --passalgo=sha256 --update authconfig --test |grep hashing 查询当前密码加密算法 更改加密类型为更难破解的sha512算法 2. lscpu 显示cpu属性细节 3. cat  4. chvt # 切换终端 5.chsh  更改登录shell -l 显示 /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh -s Specify(指定) you

马哥linux学习(bash shell学习)

Shell原理 在操作系统中,最底层是硬件,而硬件上面是内核(kemel),内核上面是库,库上面是应用程序,在众多的应用程序当中,有一个shell的应用程序,俗称外壳,用户是无法直接和内核交互的,那么就必须借助shell来实现系统的调用.图: shell是工作在操作系统的最外层,而内核(kernel)则是工作在操作系统的最里层,由于内核听不懂人类语言,而我们也记不住内核语言,而两者的沟通就需要shell的支持了. 2.Bash:编程 程序控制结构,调用机器上命令程序文件进行程序编写: 外部命令:

Linux学习之Bash特性

1.命令行补全.路径补全 Tab:按两次Tab可以给出系统所有的命令 命令补全:根据我们所给出的字符串在PATH环境变量中定义的路径进行查找:多于一个按两次Tab可以给出列表,否则直接补全 路径补全:根据我们所给出的起始路径下的文件名进行补全 2.命令别名 alias可以查看系统中定义的别名 alias 别名=命令 删除别名使用unalias 别名 在shell中定义的别名只对当前shell的生命周期生效,别名的有效范围仅为当前shell 如果要执行一个命令本身而非别名时使用 \命令 的方式,例