本文主要是介绍Linux:特殊字符整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
嗯,不是其它内容,而是用Linux开发时,初期在各种指令和shell脚本中挣扎过。 其中让我精神崩溃的不是别的,而是"特殊字符"。这些特殊字符,各自都有固有的命令,所以现在想整理一下。
1. 标准输出
表示标准输出的特殊字符是">",如果使用该特殊字符,可以下达以下命令。
# '>' 标准输出 (new)
$ ls > test.txt # 将标准输出写入文件 。
通过ls指令输出的内容记录在 test.txt 文件中。但是,test.txt 文件不是更新而是会重新制作,所以要注意。除此之外,如果连续两次使用标准输出,将像下面一样使用。
# '>>' 标准输出 (append)
$ ls >> test.txt # 将标准输出附加到文件末尾。
通过ls指令输出的内容附加到 test.txt 文件中进行记录。
2. 标准输入
表示标准输入的特殊字符是"<",使用该特殊字符,可以下达以下命令。
# '<' 标准输入
$ cat < test.txt # 从文件读取为标准输入。
test.txt 的内容用cat指令读出来后显示在画面上。
3. 通配符
这些是命令语中可以多种组合的特殊字符。*,?两者的区别在于匹配的字符数量。* 特殊字符是与所有字符一致的通配符特殊字符,? 字符是与一个字符匹配的特殊字符。指令可以表示如下。
# '*' 匹配全部字符的通配符
$ ls tes* # test.txt, tes/123.txt 等匹配的所有文件/目录(内部)都会打印出来。
# '?' 匹配一个字符的通配符
$ ls test.tx? # test.txt, test.txx 等打印一个匹配的文件。
4. 路径相关
~ 用户的家目录,超级用户为/root,普通用户为/home
- 代表上一次(相对于当前路径)用户所在的路径 $OLDPWD控制
. 代表当前目录(点号还有很多其它含义,暂且不表)
.. 代表上一级目录
5. 管道字符
将某一过程的标准输出发送到另一过程的标准输入的字符|。主要被称为管道字符。
# 管道字符示例
# 通过ps指令的标准输出作为标准输入插入程序,以找出程序信息中包含"tomcat"的程序。
$ ps -ef | grep tomcat
6. 命令字符
本部分主要涉及命令(Command)的字符。
; # 显示命令的结尾
|| # 先前命令失败后执行的条件字符
&& # 先前命令成功后运行的条件字符
& # 在后台执行命令
$ # 可访问变量的字符
除此之外,如果使用"#"字符,还可以进行注释处理。
7. 变量访问字符
利用上述特殊字符,可以进一步应用Shell Command。在此之前,有可以变量访问字符,如下。
0 # stdin (标准输入)
1 # stdout (标准输出)
2 # stderr (错误输出)
如果将上述字符和变量访问字符结合起来,&1 和&2 等命令也是可能的。也可以进行以下命令。
# 标准错误重定向( 只输出 stderr)
$ ./test.sh >> ./test.log 2>&1
如上所述,在运行 test.sh 时出现的标准错误也可以附加到 test.log 文件中。但是,如果不需要log文件,也可以按照下列方式使用。
# 不需要标准输出。
$ ./test.sh >> /dev/null 2>&1
这篇关于Linux:特殊字符整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!