Bash中的特殊字符,键盘上能敲出来的特殊字符都有其特殊意义,强调一点:元字符是被shell解释的。

1. '',取命令的执行结果

[root@MiWiFi-R3-srv ~]# ls
4.txt anaconda-ks.cfg a.txt B.txt c.txt D.txt nginx-1.10.3 nginx-1.10.3.tar.gz
[root@MiWiFi-R3-srv ~]# res=`ls` #取命令的运行结果,赋值给变量res
[root@MiWiFi-R3-srv ~]# echo $res #查看变量res的值
4.txt anaconda-ks.cfg a.txt B.txt c.txt D.txt nginx-1.10.3 nginx-1.10.3.tar.gz

2. $(),同上,但它弥补了''的嵌套缺陷

[root@MiWiFi-R3-srv ~]# res=`echo `ls`` #嵌套使用后无法达到预想的效果:取echo 一堆文件名的效果。

[root@MiWiFi-R3-srv ~]# echo $res
ls

[root@MiWiFi-R3-srv ~]# res=$(echo $(ls)) #替代方案
[root@MiWiFi-R3-srv ~]# echo $res
4.txt anaconda-ks.cfg a.txt B.txt c.txt D.txt nginx-1.10.3 nginx-1.10.3.tar.gz

3. ~, 家目录

[root@MiWiFi-R3-srv tmp]# cd ~
[root@MiWiFi-R3-srv ~]# pwd
/root

4. !

a !,取非

[root@MiWiFi-R3-srv ~]# ls /dev/sda
sda sda1 sda2
[root@MiWiFi-R3-srv ~]# ls /dev/sda[0123]
/dev/sda1 /dev/sda2
[root@MiWiFi-R3-srv ~]# ls /dev/sda[!01]
/dev/sda2

b !,历史命令调用

[root@MiWiFi-R3-srv ~]# !343
hostname
MiWiFi-R3-srv

c !,匹配最近一次历史命令

[root@MiWiFi-R3-srv ~]# !ls
ls /dev/sda[!01]
/dev/sda2

d ! ,带空格 将命令的返回值取反

[root@MiWiFi-R3-srv ~]# echo ok
ok
[root@MiWiFi-R3-srv ~]# echo $? #上一条命令执行的结果,0代表执行成功,非0代表执行失败
0
[root@MiWiFi-R3-srv ~]# ! echo ok #将结果取反
ok
[root@MiWiFi-R3-srv ~]# echo $?
1

0-255之间,0则为真,非0位假

6. @,无特殊含义

7. # 注释

8. $

a $,变量取值

b $() 同``

c ${},变量名的范围

d $[],整数计算 echo $[2+3] - * / % 浮点数用 echo "scale=3; 10/3" | bc -l

[root@MiWiFi-R3-srv ~]# money=10
[root@MiWiFi-R3-srv ~]# echo $money
10
[root@MiWiFi-R3-srv ~]# echo 00000$money
0000010
[root@MiWiFi-R3-srv ~]# echo $money0000

[root@MiWiFi-R3-srv ~]# echo ${money}0000
100000

9. %

a 杀后台进程 jobs号

b 取模

10. ^,

a 取非,和!雷同

[root@MiWiFi-R3-srv ~]# ls /dev/sda[^01]
/dev/sda2
[root@MiWiFi-R3-srv ~]# ls /dev/sda[!01]
/dev/sda2

b 替换

[root@MiWiFi-R3-srv ~]# systemctl restart network
[root@MiWiFi-R3-srv ~]# ^network^sshd^
systemctl restart sshd

11. &

a 后台执行

b &&,逻辑与

12. *

a 匹配任意长度字符串

b 计算乘法

13. (),在子进程中执行

[root@MiWiFi-R3-srv ~]# x=1
[root@MiWiFi-R3-srv ~]# (x=666)
[root@MiWiFi-R3-srv ~]# echo $x
1
[root@MiWiFi-R3-srv ~]#
[root@MiWiFi-R3-srv ~]# (x=666;echo $x)
666

14. -

a 减号

b 区间

c cd -

15. _,无特殊含义

16. +,加号

17. =,赋值

18. |

a |,管道

b ||,逻辑或

19. \,转义

[root@MiWiFi-R3-srv test]# echo \\
\
[root@MiWiFi-R3-srv test]# echo \'
'
[root@MiWiFi-R3-srv test]# echo "'"
'

20. {},命令列表 #括号内的开头和结尾必须是空格

# { ls; cd /; }

21. [],字符通配,匹配括号内之一

22. :,

a 空命令

b 真值

[root@MiWiFi-R3-srv ~]# :
[root@MiWiFi-R3-srv ~]# echo $?
0

23. ;,可以接多个命令:ls;pwd;echo 123;无论对错,会一直执行到最后一条命令

24. "",软引, '',硬引

[root@MiWiFi-R3-srv test]# x=1
[root@MiWiFi-R3-srv test]# echo "$x" #双引号的代表软引用,引号内特殊字符有特殊意义,比如$,``等
1
[root@MiWiFi-R3-srv test]# echo '$x' #单引号代表硬引用,引号内所有字符都无特殊意义
$x

25. <,输入重定向

26. >,输出重定向

27. >>,追加

28. <<,here document  ???

29. >&,合并2和1输出

30. ,逗号,枚举分隔符

31. .点,source ,当前目录

32. /,目录分隔符

33. ?,通配符,任一字符

34. 回车符,命令执行

35. *,通配符,任意字符

参考资料

1. http://www.cnblogs.com/linhaifeng/p/6592572.html#_label3

2. http://jingyan.baidu.com/article/3052f5a1f4486797f31f86e1.html

Linux基础之-元字符的更多相关文章

  1. Linux基础入门

    第一节,linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 (一).Linux 为何物 ...

  2. Linux基础入门学习笔记20135227黄晓妍

    学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用L ...

  3. 大数据入门第一天——基础部分之Linux基础(环境准备与先导知识)

    一.Linux环境安装 1.VM的安装 参考Linux环境搭建随笔:http://www.cnblogs.com/jiangbei/p/7248054.html 2.CentOS的安装 同参考上述随笔 ...

  4. 必须掌握的50条Linux基础操作命令

    说明: 根据笔者平时使用情况,并结合参考一些其他资料,精心整理出以下必须掌握的50条Linux基础命令. 命令: 1. ssh 登录到远程主机 $ ssh -l jsmith remotehost.e ...

  5. Linux基础练习题(二)

    Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...

  6. 大数据每日干货第四天(linux基础之一目录结构与常用命令)

           为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...

  7. Linux课程实践一:Linux基础实践(SSH)

    一.SSH服务 1. 安装SSH (1)查看是否已经安装过ssh服务 rpm -qa |grep ssh (2)进行安装 sudo apt-get install openssh-server Ubu ...

  8. 还是不想改报告,伊阿忆啊哟-Linux基础继续

    hi 虽然今天是最最美好的周六(前不着工作日后不着工作日),但老子还要来改报告,但额就是不想改,你拿我有啥办法啊... 争取完结Linux基础 一.Linux常用命令(三) 4.帮助命令 4.1 帮助 ...

  9. 原来今天是感恩节-Linux基础继续&MySQL和PHP

    hi 原来今天是感恩节.虽然一直没有过这个节日的习惯,但仅仅是听到感恩的消息,都能想到一幅幅画面.愿大家安好! 下午开题会议还是有所收获,悄悄的,就变向那个不喜欢自己的人了. 一.Linux基础(二) ...

随机推荐

  1. eclipse项目目录展示结构设置

    我因为前后端都搞过, 解除过很多的开发IDE,说真的,很多的项目目录结构都是一级一级分开,然后我可以通过展开等操作来查看文件等资源信息,结果呢?java的开发IDE eclipse默认的项目目录展示简 ...

  2. 记新人从 excel 文件中读取字典数据踩的一个坑

    原本是打算今天分享一下最近学习接口自动化的心得体会,然而在我写模板的时候,却被一个坑拦我大半天,心得体会不得不 延期再分享了.在我无数次调试无数次看log,终于发现并解决这个问题了.下面记录一下踩的坑 ...

  3. python全栈开发学习_day1_计算机五大组成部分及操作系统

    一.计算机五大组成部分: 1)五大组成: 1.控制器(指挥系统,用于控制其他计算机硬件的工作) 2.运算器(用于数学运算及逻辑运算) 3.存储器(寄存器,高速缓存,内存,磁盘(机械,固态),磁带) 4 ...

  4. 基于vue-cli li列表的显示隐藏

    效果:点击“公告标题”,显示公告内容,点击同一个“公告标题”多次,显示与隐藏切换 方法一: html部分代码: <ul class="clist"> <li v- ...

  5. Vue-cli3 WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB)

    在vue.config.js里 添加 configureWebpack : { performance: { hints:'warning', //入口起点的最大体积 整数类型(以字节为单位) max ...

  6. C# CultureInfo中常用的InvariantCulture

    本文参考自CultureInfo中重要的InvariantCulture,纯属读书笔记,加深记忆 1.CultureInfo的InvariantCulture的作用 (1).CultureInfo使整 ...

  7. orcale 之 SQL 数据查询

    从数据库中检索行,并允许从一个或多个表中选择一个或多个行或列.虽然 SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下: SELECT select_list [ INTO new_tab ...

  8. Unity c#反射查找类中符合条件的方法并执行

    我用在了事件注册上面,再也不用一个一个去写了 下面直接上代码 using System; using System.Collections; using System.Collections.Gene ...

  9. Android下so注入和hook

    一.前言 总结一下这两天学习的Android注入so文件,通过遍历got表hook函数调用 1.注入so文件 2.so文件中遍历got表hook函数 二.注入so文件 1)注入进程 1.编程思路分为以 ...

  10. SpringBoot和SpringCloud区别

    SpringBoot专注于快速方便的开发单个个体微服务.    SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,    为各个服 ...