bash 特性总结

使用bash能更好的完成linux工作

CentOS 默认shell为bash,echo $SHELL获得当前系统使用的shell

shell作为命令行终端,有叫多的版本可供使用,常见的shell有bash csh zsh fish等

bash shell也是经常能听到的一种shell,学习使用bash能更好的完成linux上各种工作

特性不完全总结(一)

命令行展开

~ 波浪号在bash中是用户家目录的作用

{} 花括号中以逗号隔开,将多个元素列出,根据前面的命令分别执行

[root@localhost tmp]# cd ~
[root@localhost ~]# 

[root@localhost ~]# mkdir -v /tmp/{a,b,c}
mkdir: created directory ‘/tmp/a’
mkdir: created directory ‘/tmp/b’
mkdir: created directory ‘/tmp/c’

命令历史

bash进程保存会话过程中用户执行过发命令,错误也进行保存

[root@localhost ~]# history 
    1  ls
    2  ifconfig
    3  ip addr 
    4  cd /etc/sysconfig/

history除了能记住敲过的命令,应该是这样来用

!# 调用历史中的第#条命令

!! 调用历史中上一条命令,多次重复使用一个命令时经常使用

!关键字 调用历史中以 关键字开头的命令

快捷键ESC. 调用上一条命令的最后一个参数,经常使用

在写脚本时可以使用 !$ 来调用上一条命令的最后一个参数

命令补全

键入命令时不需要完整键入命令,键入命令前几位字母且唯一时通过使用TAB键自动补全

那些命令在什么时候能进行TAB键命令补全,完全靠使用经验

路径补全

键入某些较长路径时,给出路径前几位字母且唯一时,可以使用TAB键自动补全

命令别名

通过自定义的方式将命令简写,例如系统内默认的命令别名ls

[root@localhost ~]# alias
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'

在使用ls命令时会对不同的文件进行颜色区分,实际上是因为在ls命令的基础上增加了 --color=auto的参数,在实际使用过程中这个参数使用率非常高,与其每次键入,不如将其自定义简写,这就是命令别名的作用

命令别名定义方式

alias 简写命令=‘具体的命令’

[root@localhost ~]# alias cdt='cd /tmp'
[root@localhost ~]# cdt
[root@localhost tmp]#

这里的定义时临时定义,用户退出后就无法再使用cdt来进入/tmp,取消是unalias 简写命令

永久自定义可以在.bashrc进行编辑

[root@localhost ~]# vim .bashrc
cdt='cd /tmp`'
[root@localhost ~]# source .bashrc 

最常用快捷键

Ctrl+a 光标跳转至命令行行首,最前面

Ctrl+e 光标跳转至命令行行尾,最后面

Ctrl+u 将光标前面的所有字符删除

Ctrl+k 将光标后面的所有字符删除

Ctrl+l 清屏,和键入命令clear效果一致

命令执行状态结果

bash通过数值方式告诉用户键入命令是否执行成功,需要用户自行查看,一般多用于脚本

成功表示0,失败表示1-255,不同命令有不同说明

[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# echo $?
0
[root@localhost ~]# lls
-bash: lls: command not found
[root@localhost ~]# echo $?
127

变量

最最最最简单的方式来说下我理解的变量是什么

变量有很多,为了区分,需要给变量添加名字,这就是变量名

变量是一些具体的值,需要将这些值存放起来方便以后使用,这就是值存放的内存空间

变量=变量名+值的内存空间

如何使用变量?首先进行变量赋值

[root@localhost ~]# dog=1    dog是变量名,将1赋值给dog,变量dog的值就是1
[root@localhost ~]# echo ${dog}
1

使用echo ${dog}查看变量具体的值,删除变量 unset 变量名即可

bash变量还有许多类型用在不同的地方

bash本地变量,仅在当前shell中有效

bash环境变量,当前shell中有效,新开的shell也生效,这叫shell进程及其子进程有效

bash局部变量,一般出现在脚本中

bash位置参数变量,向shell脚本传递参数时使用

特殊变量,$?,这个就是特殊变量

你可能感兴趣的:(bash 特性总结)