bash及基础特性

Shell:命令解释器,其程序存在于用户空间,是人机交互的屏障,对内核起保护作用。

(bash、ksh、csh)

Bash (GNU Bourne-Again Shell) 是大多数Linux系统以及Mac OS X默认的shell,是一个为GNU计划编写的Unix shell,是一个程序,是一个gun软件。它能运行于大多数类Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现Windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。

bash基础特性之一:补全(命令补全、路径补全)

bash 基础特性之二:快捷键

ctrl+c 终止前台运行的程序 //ping 192.168.0.152

ctrl+d 退出 等价exit

ctrl+l 清屏

ctrl+a 光标移到命令行的最前端 //编辑命令

ctrl+e 光标移到命令行的后端 //编辑命令

ctrl+u 删除光标前所有字符 //编辑命令

ctrl+k 删除光标后所有字符 //编辑命令

ctrl+r 搜索历史命令,利用关键词

bash 基础特性之三:命令历史

(1)查看历史命令:

[root@localhost ~]# history

(2)历史命令将保存在用户家目录下的 .bash_history 文件中。

[root@localhost ~]# vim .bash_history 

(3)不同用户将拥独立的历史命令。

(4)历史命令默认不会立即写入文件,当bash程序退出时,写入文件。

(5)保持历史命令存在安全隐患,系统默认保存1000条历史命令。

[root@localhost ~]# echo $HISTSIZE

修改历史命令保存条目:

临时:

[root@localhost ~]# HISTSIZE=10

永久:

[root@localhost ~]# vim /etc/profile

[root@localhost ~]# source /etc/profile

(6)如何给历史命令添加时间戳?

[root@localhost ~]# vim /etc/profile

HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "

[root@localhost ~]# source /etc/profile

/etc/profile

使用修改.bashrc文件(在用户的家目录下)进行环境变量的编辑,只对当前用户有用。使用修改 /etc/profile 文件进行环境变量的编辑,是对所有用户有用。

profile文件添加或修改的内容需要注销系统才能生效。

常见的环境变量

  PATH:决定了shell将到哪些目录中寻找命令或程序

  HOME:当前用户主目录

  MAIL:是指当前用户的邮件存放目录。

  SHELL:是指当前用户用的是哪种Shell

  HISTSIZE:是指保存历史命令记录的条数。

  LOGNAME:是指当前用户的登录名。

  HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。

  LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。

  PS1:是基本提示符,对于root用户是#,对于普通用户是$

  PS2:是附属提示符,默认是“>”

[root@client ~]# HISTFILE="/.xuankui"   :修改历史命令的路径和文件名

[root@client ~]# echo $HISTFILE        

/root/.bash_history

 

[root@client /]# echo $HISTTIMEFORMAT

[root@client /]# HISTTIMEFORMAT=`date`    HISTTIMEFORMAT:打印时间戳

[root@client ~]# HISTFILESIZE=1024        HISTFILESIZE:限制历史命令文件大小

[root@client ~]# HISTSIZE=1000            HISTSIZE:历史条目

 

!108  #执行第108个历史命令

!+命令首字母:执行最近以本首字母开头的命令

!!:执行上条命令

.+ESC :取出上一条参数到命令行

!$:取出上一条参数并执行

echo $_:打印出上一条命令的参数

bash基础特性之四:别名机制

[root@client ~]# alias vimif="vim /etc/sysconfig/network-scripts/ifcfg-ens32"   #定义别名(临时,退出再登陆就没有了)

[root@client ~]# \vimif

[root@client ~]# ls

[root@client ~]# \ls      #还原命令本身

[root@client ~]# \ls --color=auto

[root@client ~]# unalias vimif   #取消别名

用户:.bashrc(~目录下) 

全局:/etc/bashrc

bash 基础特性之五:变量

变量是计算内存的单元,其中存放的值可以改变,当Shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中。每个变量有一个名字,所以很容易引用它。使用变量可以保存有用的信息,是系统获知用户相关设置,变量也可以用于保存暂时信息。在Linux系统中,变量分为了本地变量,局部变量,环境变量

本地变量:生效范围为当前shell进程中的某代码片段,通常指函数

局部变量:又称标准变量或普通变量,指生效范围为当前shell进程;对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效

name=dada

环境(全局)变量:生效范围为当前shell进程及其子进程

export name=dada

当bash退出时,无论是局部变量还是全局变量都会失效。要让它永久生效,需要将它写入文件中,具体写到哪个文件按需求来。

sh test.sh  #直接使用sh来执行脚本文件

以 .sh 为后缀的文件是Linux/Unix操作系统下的一种脚本文件

bash 基础特性之六:特殊重要符号

管道

管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入,常说的管道多是指无名管道,无名管道只能用于具有亲缘关系的进程之间

进程管道

(0表示标准输入,1表示标准输出,2表示标准错误)

例:

进程间的通信方式:

管道、共享内存、消息队列、套接字(socket)

tee管道

在数据流的处理过程中将某段信息保存下来,使其既能输出到屏幕又能保存到某一个文件中。

[root@nebulalinux03 ~]# ip addr |grep 'inet ' |tee ip.txt |awk -F"/" '{print $1}' |awk

'{print $2}'

127.0.0.1

192.168.1.151

[root@nebulalinux03 ~]# cat ip.txt

inet 127.0.0.1/8 scope host lo

inet 192.168.1.151/24 brd 192.168.1.255 scope global eth0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值