Linux基础之-元字符
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基础之-元字符的更多相关文章
- Linux基础入门
第一节,linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 (一).Linux 为何物 ...
- Linux基础入门学习笔记20135227黄晓妍
学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用L ...
- 大数据入门第一天——基础部分之Linux基础(环境准备与先导知识)
一.Linux环境安装 1.VM的安装 参考Linux环境搭建随笔:http://www.cnblogs.com/jiangbei/p/7248054.html 2.CentOS的安装 同参考上述随笔 ...
- 必须掌握的50条Linux基础操作命令
说明: 根据笔者平时使用情况,并结合参考一些其他资料,精心整理出以下必须掌握的50条Linux基础命令. 命令: 1. ssh 登录到远程主机 $ ssh -l jsmith remotehost.e ...
- Linux基础练习题(二)
Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...
- 大数据每日干货第四天(linux基础之一目录结构与常用命令)
为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...
- Linux课程实践一:Linux基础实践(SSH)
一.SSH服务 1. 安装SSH (1)查看是否已经安装过ssh服务 rpm -qa |grep ssh (2)进行安装 sudo apt-get install openssh-server Ubu ...
- 还是不想改报告,伊阿忆啊哟-Linux基础继续
hi 虽然今天是最最美好的周六(前不着工作日后不着工作日),但老子还要来改报告,但额就是不想改,你拿我有啥办法啊... 争取完结Linux基础 一.Linux常用命令(三) 4.帮助命令 4.1 帮助 ...
- 原来今天是感恩节-Linux基础继续&MySQL和PHP
hi 原来今天是感恩节.虽然一直没有过这个节日的习惯,但仅仅是听到感恩的消息,都能想到一幅幅画面.愿大家安好! 下午开题会议还是有所收获,悄悄的,就变向那个不喜欢自己的人了. 一.Linux基础(二) ...
随机推荐
- gitlab容器--带https配置
#2.gitlab 重要目录 /home/maks/gitlab/config /etc/gitlab /home/maks/gitlab/logs /var/log/gitlab /home/mak ...
- WeakHashMap源码分析
WeakHashMap是一种弱引用map,内部的key会存储为弱引用, 当jvm gc的时候,如果这些key没有强引用存在的话,会被gc回收掉, 下一次当我们操作map的时候会把对应的Entry整个删 ...
- ionic3 pop到指定页面
this.navCtrl.getViews().forEach(element => { if(element.name == 'JiecheHomePage'){ this.navCtrl.p ...
- logback.xml文件配置(按时间、文件大小和log名称生成日志)
之前项目中日志多用的log4j2,偶然看到在importNew看到了logback,自己查了下,发现Logback和log4j是非常相似的,其作者也是同一个人,并且logback相比于log4j性能更 ...
- android LinearLayoutForListView
由于 scrollview 套 listview 会有很多问题,网上很多人用 LinearLayout 模拟 listview, 也可以设置 adapter. 很多人直接继承 BaseAdapter, ...
- 005-C3P0连接池配置文件模板
文件名必须为:c3p0-config.xml 一般放在src目录下面 <?xml version="1.0" encoding="UTF-8"?> ...
- dll和so文件区别与构成
http://www.cnblogs.com/likwo/archive/2012/05/09/2492225.html 动态链接,在可执行文件装载时或运行时,由操作系统的装载程序加载库.大多数操作系 ...
- 9、在Shell脚本中调用其他脚本
在Shell脚本的执行过程中,Shell脚本支持调用另一个Shell脚本,调用的格式为:程序名 实例:在Shell脚本test1中调用test2. 1.调用test2#test1脚本root@ubun ...
- 深入理解BSS(Block Started by Symbol)
理解ELF的BSS section, 可以概括为: Uninitialized global/static data "Block Started by Symbol" " ...
- Django settings.py添加静态文件夹
我们需要一个静态文件夹来存放文件,例如jQuery的模块 <script src="statics/jquery-3.2.1.js"></script> 引 ...