SHELL —— BASH环境
一 、什么是SHELL
shell一般代表两个层面的意思,一个是命令解释器,比如BASH,另外一个就是shell脚本。本节我们站在命令解释器的角度来阐述shell
二 、命令的优先级
命令分为:
==> alias
==> Compound Commands
==> function
==> build_in
==> hash
==> $PATH
==> error: command not found
alias别名:别名命令是为了简化输出给一个长参数命令的整合,别名的定义方法 alias la='ls -al' 取消别名 unalias la
buildin内部命令:是BASH自带的命令 功能简单,内部命令的帮助在builtin(1)里
外部命令:是就是一个小程序存在于/bin/ /sbin/ /usr/bin 等地方,源码安装的软件添加环境变量就应该改PATH。

设置环境变量,同样可以使用export命令。
由于用户启动会分别执行以下文件:
/etc/profile
用户/.bash_profile
用户/.bashrc
/etc/bashrc
而每次打开新终端都会执行/etc/bashrc,所以可以在文件末尾添加一行环境变量设置,使得每次重启后任然能够保留PATH的更改。

三、元字符
|
元字符(是被shell解释的) |
||
|
`` |
命令替换 取命令的执行结果 |
[root@MiWiFi-R3-srv ~]# ls |
|
$ |
$ 变量取值 |
[root@MiWiFi-R3-srv ~]# money=10 [root@MiWiFi-R3-srv ~]# echo ${money}0000 |
|
${} |
变量名的范围 |
|
|
$() |
同`` |
[root@MiWiFi-R3-srv ~]# res=`echo `ls`` #嵌套使用后无法达到预想的效果:取echo 一堆文件名的效果。 [root@MiWiFi-R3-srv ~]# echo $res [root@MiWiFi-R3-srv ~]# res=$(echo $(ls)) #替代方案 |
|
~ |
家目录 |
[root@MiWiFi-R3-srv tmp]# cd ~ |
|
! |
取非 |
[root@MiWiFi-R3-srv ~]# ls /dev/sda |
|
历史命令调用 |
[root@MiWiFi-R3-srv ~]# !343 |
|
|
匹配最近一次历史命令 |
[root@MiWiFi-R3-srv ~]# !ls |
|
|
! ls 带空格 将命令的返回值取反 |
[root@MiWiFi-R3-srv ~]# echo ok 0-255之间,0则为真,非0位假 |
|
|
@ |
无特殊含义 |
|
|
# |
# 注释 |
|
|
% |
杀后台进程 jobs号; 取模 |
|
|
^ |
取非 和 ! 雷同 |
[root@MiWiFi-R3-srv ~]# ls /dev/sda[^01] |
|
替换 |
[root@MiWiFi-R3-srv ~]# systemctl restart |
|
|
& |
后台执行 |
|
|
&& |
逻辑与 |
|
|
* |
匹配任意长度字符串;计算乘法 |
|
|
() |
在子进程中执行 |
[root@MiWiFi-R3-srv ~]# x=1 |
|
- |
减号;区间;cd - |
|
|
_ |
无特殊含义 |
|
|
+ |
加号 |
|
|
= |
赋值 |
|
|
| |
管道 |
|
|
|| |
逻辑或 |
|
|
\ |
转译 |
[root@MiWiFi-R3-srv test]# echo \\ |
|
{} |
命令列表 ,注意括号内的开头和结尾必须是空格{ ls; cd /; } |
|
|
[] |
字符通配,匹配括号内之一 |
|
|
: |
: 空命令 真值 |
[root@MiWiFi-R3-srv ~]# : |
|
; |
可以接多个命令:ls;pwd;echo 123;无论对错,会一直执行到最后一条命令 |
|
|
“” |
"" 软引,引号中的字符有意义 |
[root@MiWiFi-R3-srv test]# x=1 |
|
’‘ |
'硬引,引号中的所有字符无特殊含义 |
|
|
< |
< 输入重定向 |
|
|
> |
> 输出重定向 |
|
|
>> |
>> 追加 |
|
|
<< |
<< here document |
|
|
>& |
>& 合并2和1输出 |
|
|
, |
, 枚举分隔符 |
|
|
. source |
. source ; 当前目录 |
|
|
/ |
/ 目录分隔符 |
|
|
? |
? 单个字符 |
|
|
? 通配符:任一字符 |
||
|
回车 |
回车 命令执行 |
|
|
* |
* 通配符:任意字符 |
|
|
[abc] 列表项之一 |
||
|
[^abc] 对列表取非 |
||
|
{} |
{} 循环列表 |
[root@MiWiFi-R3-srv test]# touch |
|
控制变量名的范围 echo ${AB}C |
||
SHELL —— BASH环境的更多相关文章
- 20181225-Linux Shell Bash环境下自动化创建ssh互信脚本
20181225-Linux Shell Bash环境下自动化创建ssh互信脚本 1. 我的Blog 博客园 https://www.cnblogs.com/piggybaba/ 个人网站 http: ...
- Linux编程环境介绍(2) -- shell(Bash) 介绍
1. 在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器).它类似于DOS下的command和后来的cmd.exe. 2. bash (Bourne Aga ...
- Bash shell使用环境的终端的环境设置:stty
Bash shell使用环境的终端的环境设置:stty Bash shell使用环境的终端的环境设置:stty stty -a 将当前所有的stty参数列出来 intr:给正在运行的程序发送中断信号 ...
- Bash Shell的环境配置文件
login shell:取得bash时需要完整的登录流程 non-login shell:取得bash接口的方法不需要重复登录,举例来说,你以x window登录Linux后,再以x的图形界面启动终端 ...
- shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)
如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...
- shell bash ksh
shell 是一个交互性命令解释器.shell独立于操作系统,这种设计让用户可以灵活选择适合自己的shell.shell让你在命令行键入命令,经过shell解释后传送给操作系统(内核)执行. ...
- Linux Shell——bash shell 脚本简介
bash shell 脚本简介 shell 运行环境 如果你运行的是 Unix 或 Linux 系统,例如 Ubuntu,Red Hat,SUSE Linux,还有macOS,都是内置了 bash s ...
- 第6天【egrep、bash环境配置及脚本、vim编辑器】
bash环境配置及脚本(02)_recv bash环境配置及脚本(02)_recv bash环境配置文件: 按生效范围划分,存在两类: 全局配置: /etc/profile /etc/bashrc 个 ...
- Linux 下Shell变量,环境变量的联系与区别
Linux下Shell变量,环境变量的联系与区别 by:授客 QQ:1033553122 1. 简介 linux下的变量可分成两种:Shell变量和环境变量. Shell变量,又称本地变量,包括私有 ...
随机推荐
- Oracle SQL Developer 日期格式显示设置
ORACLE的SQL Developer工具默认的日期格式DD-MON-RR,在SQL查询中经常需要查看详细的时间信息,默认的时间显示格式不能满足这一需要, 此时你必须修改日期格式.具体如下所示 工具 ...
- 修改linux系统的时间EDT为CST
今早看到一台机器时间对不上,本以为系统时间与网络北京时间不同步,就在终端命令执行网络时间同步 [root@localhost ~]# ntpdate time.windows.com 执行完之后,在执 ...
- jsp页面form表单提交时候乱码
1.问题描述: 表单提交中文乱码问题,怎么解决 2.原因 当表单传输到服务器上时,服务器会将传输的数据进行编码(iso-8859-1),然后当我们从服务器上面取数据的时候,就会出现乱码 3.解决的方式 ...
- vue使用axios请求本地json文件出现404
之前的路径是这么写的,一直出现404,后来发现必须是http的才可以,这样是无法请求的 把路径改为以下 位置根据json文件决定,但是必须是http://localhost:断口号
- 如何给RecyclerView加上滚动条--现在就教你
时隔许久,我又要更博了,含蓄的话不多说了,今天我们的主题是这个RecyclerView.至于为什么要加个scrollBar?因为我的业务需求是需要一个实现成这样的, 效果图:(可能看起来比较粗糙,但功 ...
- js封装日历控件
最终效果 代码实现 <script> $(function () { $(".j-calendar").calendar({ date: '2017-08-03', c ...
- manacher算法处理最长的回文子串(二)
在上篇<manacher算法处理最长的回文子串(一)>解释了manacher算法的原理,接着给该算法,该程序在leetcode的最长回文子串中通过.首先manacher算法维护3个变量.一 ...
- Servlet及相关类和接口
上一篇介绍了在Web项目中web.xml文件的配置信息,本篇主要介绍里面非常重要的配置——Servlet配置,重点介绍与Servlet相关的几个接口和类,包括Servlet接口.ServletConf ...
- c++ new(不断跟新)
1.基础知识 /* 可以定义大小是0的数组,但不能引用,因为没有指向任何对象 new string[10]调用类的默认构造函数 new int[10]没有初始化,但new int[10]()会将数组初 ...
- 火狐 a 标签 download 属性,要在 a 标签添加到页面中才生效;
在 chrome 中,如果需要设置点击下载文件,需要创建一个 a 标签,指定 download 属性和 href 属性即可, var aLink = document.createElement('a ...