Bash简单的功能

什么是shell?

我们平时所说的电脑配置其实指的就是计算机的硬件,而真正管理这些硬件的则是操作系统的核心 (kernel),这个核心需要被保护的! 所以我们一般就只能通过 shell 来跟核心沟通,这样核心就能达到我们所想要达到的工作了。

在这里插入图片描述
《爱情公寓5》应该有不少人看过,有一集咖喱酱和张伟被当成了菲佣(来自菲律宾的佣人。),胡一菲则被当成了管家,子乔美嘉夫妇则是主人。
那么他们在计算机中则是:咖喱酱和张伟就像是计算机的硬件,胡一菲则是操作系统核心,而子乔美嘉夫妇就是正在使用这台计算机的你。
试想一下,你对着一个外国佣人说中文他肯定什么都听不懂,这时候你需要一个会多国语言的管家,这个管家(shell)会把你的命令翻译成他们(计算机)能听懂的语言。这就是shell在计算机中的位置。

认识Bash

在我学习shell时,因为没搞懂shell和bash的关系疑惑了好几天,简单来说shell就是一个大的统称,就比如:电脑(电脑包括很多种)和你面前的这台电脑,电脑包括了你面前的电脑同时还包括了这个世界上所有的电脑,是一个大的统称,而你面前的就只是你面前的电脑,具体到了你面前的一个。如果你还是不能理解,那就还以上面的例子为准,Bash只是这些任务中的一个小命令(任务)。

添加链接描述
Bash 【Bouren Again SHell】的简称,也是基于GNU的架构下发展出来的,是众多shell中的一个。

Linux系统中的shell保存在 /etc/shells 这个文件中

[root@xiaobai] chsh -l   #查看目前系统安装的shell

[root@xiaobai] /bin/sh   #改变目前的shell

[root@xiaobai] cat /etc/shells   #CentOS7中默认可用的shell

Bash的功能有哪些?

程序化脚本:(shell scripts)
这也是我们运维人员平时最常用一个功能,可以将你平时管理系统常需要的连续命令写成一个文件, 该文件并且可以通过交互式的方式来运行。
命令别名: alias, unalias

[root@xiaobai] alias   #显示目前终端的全部别名

[root@xiaobai] alias ll="ls -l"   #设置别名

[root@xiaobai] unalias ll   #取消别名设置

Bash shell 的内建命令 type
用途: 用来测试命令的类型
type ls
选项和参数:
不加任何选项,会显示ls是外部命令,还是bash内置命令
-t //会将ls以下面这些关键字来表示出他的意义:
file :外部命令
alias :命令别名
builtin :bash内置命令
不显示任何数据时,表示ls不是任何命令
-p //后面接外部命令,定义一个外部命令,-p会显示出真正的命令
-a //会由PATH变量定义的路径中,将所有含ls的指令都列出来,包括alias

[root@xiaobai] type -t ls
alias

[root@xiaobai] type -a ls
ls is aliased to `ls --color=auto'
ls is /usr/bin/ls

藏终端输入:stty

[root@xiaobai] stty -echo   #隐藏命令的输入

[root@xiaobai] stty echo   #恢复

历史命令:history

[root@xiaobai] history   #列出全部历史命令记录

[root@xiaobai] history 3   #显示最近3条执行过的命令

[root@xiaobai] history -c   #清除目前 shell 中的所有历史命令

[root@xiaobai] history -w   #即刻写入 .bash_history文件

每次退出登录都会自动写入 .bash_history文件中

[root@xiaobai] !25   #执行第25条历史命令

[root@xiaobai] !t   #执行最近一次以 “t”开头的命令

[root@xiaobai] !!   #执行上一条命令

同一帐号同时多次在线执行命令时,这样会产生多个bash,那么会以最后一个退出登录的命令历史记录为准
建议使用一个用户登入bash,再用[Ctrl]+z fg bg 来控制前后台来切换不同的工作

注意:history 无法记录时间
解决方法:可以透过~/.bash_logout来进行history的记录,并加上date来增加时间参数

Bash登录主机的信息显示

修改 /etc/issue 这个文件的内容可以在登录之前了解简单的硬件及软件版本信息

\d # 显示本地端的时间日期
\l #显示第几个终端及接口
\m #显示硬件的信息
\n #显示主机的网络名称
\o #显示domain name
\r #显示操作系统版本,结果等同于uname -r
\t #显示本地端时间的时间
\s #显示操作系统的名称
\v #显示操作系统的版本

/etc/motd 编辑这个文件,会在用户登录之后看到一些欢迎信息

通配符与特殊符号

特殊符号

特殊符号

\   #转意符号,可以将具有特殊意义的符号变为一般字符
|   #管道符,把前一个命令的结果传递给后一个命令,可以多个同时存在
;   #连续下达命令的分隔符
$   #取用变量值的前缀符号
&   #将一个工作置于后台
!   #逻辑运算意义上的非
/   #路径分隔符
>   #输出重定向,覆盖的意思
>>   #输出重定向,追加的意思
<<<   #输入重定向
''   #单引号内的字符全部视为普通字符
""   #双引号内的字符保留其在外部的意思,具有变量置换功能
``   #这里的命令可以先执行,可以使用$( )取代
()   #在中间为子shell的起始与结束
{}   #在中间为命令区块的组合

管道是将前一个命令的结果标椎输出到下一个命令中

通配符

通配符

符号意义
*代表0个到无数个任意字符
代表【一定有一个】任意字符
[]同样代表【一定有一个在括号内】的字符(非任意字符)。例如【abc】代表【一定一定有一个字符,可能是a,b,c三个中的任何一个】
[-]若有减号在中括号内时,代表【在编码顺序内的所有字符】。例如[0-9]就是0到9之间的所有数字中的一个,[a-z]也是
[^]若中括号内的第一个字符为指定符号(^),那表示【反向选择】,例如 [ ^abc]代表一定一个字符,只要是非a,b,c的字符就接受

文章总览分类目录 @小白

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值