BASH特性以及使用技巧

BASH是系统提供给用户操作设备的程序,BASH本身也是程序。

用户登录系统之后,systemed会为用户打开bash程序。

用户在BASH界面还可以打开子BASH

[root@bobo'machine/etc/etc]$bash
[root@bobo'machine/etc/etc]$


通过pstree可以很容易的发现两个bash之间的关系

[root@bobo'machine/etc/etc]$pstree|grepbash-A1-B1
|`-smbd-notifyd
|-sshd---sshd---bash---bash-+-grep
|`-pstree
[root@bobo'machine/etc/etc]$

子BASH会初始化环境变量

子BASH无法感知的父BASH的存在,也就是说,子BASH和父BASH做的操作互相没有影响


命令行的快速编辑

命令行光标快速跳转

ctrl+a:跳到命令行首

ctrl+e:跳到行尾

ctrl+u:删除光标至命令行首内容

ctrl+k:删除光标至命令行尾内容

ctrl+左右箭头,一次跳一个单词

ctrl+L清屏幕


命令历史的使用技巧

!n:执行命令历史中的第n条命令

!-n:执行命令历史中倒数第n条命令

!!:执行上一条命令

!char:执行命令历史中最近一个给定字符开始的命令

!$:引用上一个命令的最后一个参数

esc,.(esc松开再按.):显示一个命令的最后一个参数

Alt+.显示一个命令最后一个参数(改操作只有在terminal下有效)


命令别名:

用法:alias CMALIANS=‘COMMAD [OPTION] [AGRUMENTS]’

unalias撤销别名

在shell中定义的别名只在当前shell的生命周期内有效,别名的有效范围为当前shell进程,可以把alias别名写到/root/.bashrc文件下,让该别名对root用户一直有效

[root@bobo'machine/etc/etc]$cat/root/.bashrc|grepali
#Userspecificaliasesandfunctions
aliasrm='rm-i'
aliascp='cp-i'
aliasmv='mv-i'
[root@bobo'machine/etc/etc]$


命令替换:把命令中的某个字符替换成其执行结果的过程

比如我想用echo 在屏幕上打印出如下内容:我当前所在的路径是XXX

由于XXX是变量,我们可以如下操作

[root@bobo'machine/etc/etc]$echo"mycurrentdirctoryis$(pwd)"
mycurrentdirctoryis/etc

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...