linux中bash的特点,Linux中BASH的特性

Shell本身是应用程序,是用户与操作系统之间完成交互式操作的一个接口程序,为用户提供简化的操作。

Bourne Again Shell,简称bash,是Linux系统中默认的shell程序。

Bash的特性:

一、命令的别名(自定义命令)

alias(内嵌命令),定义或显示别名

使用\COMMAND ,将使用原本的命令而不是自定义后的命令

注意:如果alias命令不带任何选项和参数,则表示显示所有已经定义并生效的别名设置

# alias ALIAS='COMMAND [OPTION]...[ARGUMENT]...'

unalias,从别名定义列表中删除一个名字

-a,删除所有别名定义

注意:无论使用alias还是unalias,其功能都会立即生效;但是这两个命令的生命周期等于当前shell的生命周期,一旦注销此次登录,相当于关闭了bash,则使用alias命令定义的别名或使用unalias命令删除的别名会立即失效。每个用户有一个私有bash文件在用户家目录中,文件名为.bashrc,修改后重新启动bash程序或者source命令或"."才会生效,

二、bash的快捷键:

C:表示ctrl键

M:表示Alt键

E:表示ESC键

DEL:表示backspace键

常用:

C-l:清屏

C-a:把光标跳转到行首

C-e:把光标跳转到行尾

C-k:删除光标所在位置至行尾的内容

C-u:删除光标所在位置至行首的内容

C-c:结束前台进程

M-.:引用上一个命令当中的最后一个参数(在Xshell中不能使用)

E,.:功能同M-.

三、命令历史:

Bash进程会保存其绘画中的用户曾经执行过的命令,以方便用户重复执行某个操作;

命令历史包括两个方面:

1.用户曾经执行过的命令

2.用户曾经执行过的命令的路径

在Bash中有一个内置的变量--PATH,PATH变量的值为当前系统中所有的命令的文件所在的路径的集合

命令如何被shell执行的?

Bash会将命令行的内容按照空白字符进行切片,判断第一个切片的内容是内部命令还是外部命令,如果是内部命令则直接运行,如果是外部命令,先找hash表中的路径缓存,如果有,则直接执行;否则需要通过查找PATH中包含路径中是否有包含对应名称的文件

使用hash命令查看被记住的命令文件的路径

-r,清空哈希表

使用history命令查看被记住的命令的命令行参数;

-c,清空历史缓冲区的命令历史记录

-d OFFSET,删除指定行命令

重复使用历史缓冲区的命令

!OFFSET,直接调用history中对应行的命令

!STRING,以STRING开头的最后的一次命令

!?STRING,包含了STRING的最后一次命令

!-NUMBER,倒数第NUMBER次的命令

C-r,查找命令

!$,在历史缓冲区中调用最后一个命令的最后一个参数

!^,最后一个命令的第一个参数

!:NUMBER,在历史缓冲区中调用最后一个命令的第NUMBER位置的参数

!SEQUENCE:NUMBER,调用第SEQUENCE行的命令的第NUMBER位置的参数

在bash中与命令历史相关的内置变量

HISTSIZE,历史缓冲区能保存的最大条目数量,默认是1000

HISTFILESIZE,~/.bash_history文件中能够保存的命令历史最大条目数,默认1000

HISTTIMEFORMAT,在命令历史缓冲区中记录命令时同时记录命令执行的时间戳,可以使用date命令的FORMAT来表示时间的记录格式,默认值为空

HISTCONTROL,控制命令历史的记录方式,当为以下值时

ignoredups,忽略连续且相同的命令,为默认值

ignorespace,忽略以空白字符开头的命令

ignoreboth,以上两种情况都不会被记录

四、命令补全

1.构成命令字符串的补全

参考PATH变量中的路径,对命令进行补全(tab键)。如果给出的字符串在PATH变量对应的路径中是唯一的,则直接补全命令,如果给出的字符串在PATH变量对应的路径不唯一,则bash给出提示(两下Tab键)

2.命令中参数所对应的字符串的补全

根据给出的路径进行补全

五、命令行展开

1.~,bash会自动将其展开为当前登录用户的家目录

~STRING,bash会自动将其展开为以STRING为用户名的家目录

~+,调用bash的内置变量"PWD"的值

~-,调用bash的内置变量"OLDPWD"的值

2.{},

在"{}"中,可以填充一个以","分隔的路径填充的列表,bash会将其展开为单独的命令

1.txt{,.bak} == 1.txt 1.txt.bak

六、命令的执行结果

在bash中命令的执行结果有两种

1.执行命令的输出结果

命令引用或命令替换

``或$(),引用命令的输出结果

2.执行命令的状态返回值

表示此前的一个命令是否成功执行

bash使用 $? 变量来保存其内容,其取值范围为0到255,其中0表示命令执行成功,1-255表示命令执行失败

1,2,127是bash内置的命令执行失败的状态返回值

1一般表示一些小问题

2表示严重问题

127表示命令本身出现问题

其余数字用户可以自定义错误信息

七、引用功能

强引用'',bash在处理时,引用的内容全部视为普通字符,但单引号本身除外

弱引用"",有些特殊字符仍然会保留特殊含义,如$、 \、 ""

八、转义功能

\,bash所定义的转义字符,只能够将其后面一个字符转义

\COMMAND,取消定义过的命令别名,使用原本的功能

九、Globbing——文件名通配符,简称为glob

*,匹配任意长度的任意字符或者字符串,某些特殊位置的. 字符不能匹配

?,匹配任意单个字符,某些特殊位置的. 字符不能匹配

[],匹配指定范围内的任意单个字符,必须且只能匹配一个字符

指定范围的方法:

1.枚举法,列出所有有效字符

2.范围指定,

[0-9],表示所有单个十进制数字

[a-z],a,A,b,B,...,y,Y,z

[A-Z],A,b,B,c,...,Y,z,Z

3.bash内建字符集

[:lower:],所有小写字母

[:upper:],所有大写字母

[:alpha:],所有字母

[:digit:],所有一位数字

[:alnum:],所有字母数字

[:punct:],所有的符号

[:space:],表示空白字符,包括空格和制表符

4.反向匹配^

实例: #ls a[^[:dight:]]??

十、管道

|,通常用来连接多个命令,将管道符号前面的命令输出结果作为后一个命令的参数

wc,统计文件或字符串的字节、行、字数

-c,仅显示文件中的字节数

-m,仅显示文件中有效字符的数量

-l,仅显示文件的行数

-w,仅显示文件中字的数量

十一、输入输出重定向

在使用计算机的时候,实现某个功能的主体是程序

程序=指令+数据

数据是至关重要的

在Linux系统中,能够完成输入和输出功能的实体:文件

可以用于输入的设备:文件

键盘设备、文件系统中的常规文件、网卡设备、声卡设备、磁盘设备等;

可以用于输出的设备:文件

显示器、文件系统中的常规文件、网卡设备、声卡设备,磁盘设备

在内存中使用文件的方式是定义文件描述符,一个文件描述符对应一个文件

0,表示标准输入,键盘输入的数据流

1,表示标准输出,到显示器的输出数据流

2,表示标准错误,到显示器的错误数据流

输入输出重定向(IO重定向):采用非标准设备文件实现的IO操作

输入重定向

输出重定向

>,覆盖输出重定向

~]# set -C 开启防止以外覆盖源文件开关,可以使用">|"符号完成覆盖重定向输出的操作,而无需关心是否开启此开关

~]# set +C 关闭防止以外覆盖源文件开关

>>,追加输出重定向

错误重定向

2>

2>>

合并标准输出和标准错误的重定向

1.COMMAND {>|>>} /PATH/TO/SOMEFILE 2>&1

2.&>、 &>>

特殊的设备文件

/dev/null 位桶

/dev/zero 泡泡机,吐零机

bash中的特殊符号

<

<<< ,此处字符串,结束标记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值