linux shell中的特殊符号

该内容,均来自此网址(http://www.92csz.com/study/linux/12.htm)。在下只是把那些命令的截图给去了。

你在学习linux的过程中,也许你已经接触过某个特殊符号,例如”*”,它是一个通配符号,代表零个或多个字符或数字。下面笔者就说一说常用到的特殊字符。

1. * :代表零个或多个字符或数字。

test后面可以没有任何字符,也可以有多个字符,总之有或没有都能匹配出来。

2. ? :只代表一个任意的字符

不管是数字还是字母,只要是一个都能匹配出来。

3. # :这个符号在linux中表示注释说明的意思,即”#”后面的内容linux忽略掉。

在命令的开头或者中间插入”#” ,linux都会忽略掉的。这个符号在shell脚本中用的很多。

4. \ :脱意字符,将后面的特殊符号(例如”*” )还原为普通字符。

5. | :管道符,前面多次说过,它的作用在于将符号前面命令的结果丢给符号后面的命令。这里提到的后面的命令,并不是所有的命令都可以的,一般针对文档操作的命令比较常用,例如cat, less, head, tail, grep, cut, sort, wc, uniq, tee, tr, split, sed, awk等等,其中grep, sed, awk为正则表达式必须掌握的工具,在后续内容中详细介绍。

6. $ :除了用于变量前面的标识符外,还有一个妙用,就是和’!’结合起来使用。

‘!$’表示上条命中中最后一个变量(也许称为变量不合适,总之就是上条命令中最后出现的那个东西)例如上边命令最后是test.txt那么在当前命令下输入!$则代表test.txt。

  1grep :过滤一个或多个字符,将会在后续内容中详细介绍其用法。

  2) cut :截取某一个字段

    语法:cut -d “分隔字符” [-cf] n 这里的n是数字

    -d :后面跟分隔字符,分隔字符要用双引号括起来

    -c :后面接的是第几个字符

    -f :后面接的是第几个区块

    -c 后面可以是1个数字n,也可以是一个区间n1-n2,还可以是多个数字n1,n2,n3

  3) sort :用做排序

    语法:sort [-t 分隔符] [-kn1,n2] [-nru] 这里的n1 < n2

    -t 分隔符 :作用跟cut的-d一个意思

    -n :使用纯数字排序

    -r :反向排序

    -u :去重复

    -kn1,n2 :由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序

  4) wc :统计文档的行数、字符数、词数,常用的选项为:

    -l :统计行数

    -m :统计字符数

    -w :统计词数

  5 uniq :去重复的行,笔者常用的选项只有一个:

    -c :统计重复的行数,并把行数写在前面

    有一点需要注意,在进行uniq之前,需要先用sort排序然后才能uniq,否则你将得不到你想要的,笔者上面的试验当中已经是排序过所以省略掉那步了。

  6tee :后跟文件名,类似与重定向”>”,但是比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上。

  7tr :替换字符,常用来处理文档中出现的特殊符号,如DOS文档中出现的^M符号。常用的选项有两个:

    -d :删除某个字符,-d 后面跟要删除的字符

    -s :把重复的字符去掉

    最常用的就是把小写变大写: tr ‘[a-z]’ ‘[A-Z]’

    当然替换一个字符也是完全可以的。

    不过替换、删除以及去重复都是针对一个字符来讲的,有一定局限性。如果是针对一个字符串就不再管用了,所以笔者建议只是简单了解这个tr即可,以后你    还会学到更多可以实现针对字符串操作的工具。

  8split :切割文档,常用选项:

    -b :依据大小来分割文档,单位为byte

    格式如上例,后面的passwd为分割后文件名的前缀,分割后的文件名为passwdaa, passwdab, passwdac …

    -l :依据行数来分割文档

6. :分号。平时我们都是在一行中敲一个命令,然后回车就运行了,那么想在一行中运行两个或两个以上的命令如何呢?则需要在命令之间加一个”;”了。

7. ~ :用户的家目录,如果是root则是 /root ,普通用户则是 /home/username

8. & :如果想把一条命令放到后台执行的话,则需要加上这个符号。通常用于命令运行时间非常长的情况。

使用jobs可以查看当前shell中后台执行的任务。用fg可以调到前台执行。这里的sleep命令就是休眠的意思,后面跟数字,单位为秒,常用语循环的shell脚本中。

此时你按一下CTRL +z 使之暂停,然后再输入bg可以再次进入后台执行。

如果是多任务情况下,想要把任务调到前台执行的话,fg后面跟任务号,任务号可以使用jobs命令得到。

9. >, >>, 2>, 2>> :前面讲过重定向符号> 以及>> 分别表示取代和追加的意思,然后还有两个符号就是这里的2> 和 2>> 分别表示错误重定向和错误追加重定向,当我们运行一个命令报错时,报错信息会输出到当前的屏幕,如果想重定向到一个文本里,则要用2>或者2>>。

10. [ ] :中括号,中间为字符组合,代表中间字符中的任意一个

11. && ||

在上面刚刚提到了分号,用于多条命令间的分隔符。另外还有两个可以用于多条命令中间的特殊符号,那就是 “&&”和”||”。下面笔者把这几种情况全列出:

1) command1 ; command2

2) command1 && command2

3) command1 || command2

使用”;”时,不管command1是否执行成功都会执行command2; 使用”&&”时,只有command1执行成功后,command2才会执行,否则command2不执行;使用”||”时,command1执行成功后command2 不执行,否则去执行command2,总之command1和command2总有一条命令会执行。

时间: 2025-01-20 05:21:29

linux shell中的特殊符号的相关文章

linux shell中的比较符号与特殊符号介绍

shell字符串比较.判断是否为数字  二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别.  整数比较  -eq 等于,如:if [ "$a" -eq "$b" ]  -ne  不等于,如:if [ "$a" -ne "$b" ]  -gt 大于,如:if [ "$a" -gt "$b" ]  -ge 大于等于,如:if [  "$a" -ge "

Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)

case语句适用于需要进行多重分支的应用情况. case分支语句的格式如下: case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2        ;; *) 默认执行的命令序列     ;; esac Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)_linux shell_脚本之家 在Linux Shell中有很多的特殊符号,这对于我们写Shell脚本时要特别留意:一方面要知道这些特殊符号的用法,这些符号用好了可以达到事半功倍的效果:但另一方面要避免这些

常见Linux Shell中的特殊符号含义

在Shell的实际使用中,有编程经验的很容易上手,但稍微有难度的是shell里面的那些个符号,各种特殊的符号在我们编写Shell脚本的时候如果能够用的好,往往能给我们起到事半功倍的效果,下面就罗列一些常见的特殊符号. # 井号 如#!/bin/bash井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行.# This line is comments.echo "a = $a" # a = 0由于这个特性,当临时不想执行某行指令时,只需在该行开头

linux shell 中的特殊符号

通配符,代表零个或多个任意字符? 只代表一个任意的字符 注释符号,即#后面的内容都会被忽略 \ 脱义字符,会将后面的特殊符号还原为普通字符| 管道符,将前面的命令的输出作为后面命令的输入wc -l 计算一个文档有多少行命令cut格式: cut -d '分隔字符' [ -cf ] n-d 后面跟分隔字符,分隔字符要用单引号括起来-c 后面接的是第二个字符-f 后面接的是第几个区别命令sort格式:sort [ -t 分隔符 ] [ -kn1,n2 ] [ -nru ] t 后面跟分隔字符,作用跟c

Linux Shell中‘$‘符号的N种用法

在Shell中$是一个特殊的字符,在不同场景中有不同的用法. 引用变量 使用$直接引用变量,包括循环变量. 123 [email protected]:~# x=1[email protected]:~# echo $x1 双引号"括起来的字符串支持变量插值. 123 [email protected]:~# x=1[email protected]:~# echo "x = $x"x = 1 使用${}作为单词边界. 123 [email protected]:/var/l

Linux shell中比较操作符&ldquo;==&rdquo;与&ldquo;-eq&rdquo;对比

在Linux shell编程中,经常会用到判断字符串是否相等,可用于判断字符串是否相等的操作符有'-eq'(相等), '-ne'(不等于), '-lt'(小于), '-le'(小于或等于), '-gt'(大于)或'-ge'(大于或等于),以及=,==,!=,<,>. 在bash指南中,字母操作符和符号操作符的两端的参数英语表达式不相同,符号操作符用的是string,字母操作符用的是arg. # http://www.gnu.org/software/bash/manual/bashref.ht

[转帖]Linux shell中2&gt;&amp;1的含义解释 (全网最全,看完就懂)

Linux shell中2>&1的含义解释 (全网最全,看完就懂) https://blog.csdn.net/zhaominpro/article/details/82630528 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zhaominpro/article/details/82630528 A.首先了解下1和2在Linux中代表什么 在Linux系统中0 1 2是一个文件描述符 名称 代码 操作符 Java中表示 Linux 下文

理解 Linux shell 中的一个方言:2&gt;&amp;1

理解 Linux shell 中的一个方言:2>&1 2016-11-14 杜亦舒 前言 在使用 linux 命令或者 shell 编程时,这个用法常会遇到 2>&1 如果是刚开始接触Linux,这个东西的确不好理解,因为他没有直观的含义,不像一个命令,例如 cp是 copy 的简写,很好记. 我以前刚用Linux时就对这个东西迷糊了一段时间,今天刚好看到一篇文章介绍他,感觉很有必要总结出来,分享给还不是很理解这个方言的朋友. 下面看一个命令示例,然后分析下他是如何工作的: l

linux shell 中的位置变量

对于linux shell 中的位置变量,我一直以来都是吐不出来又咽不下去,每次看到都不懂,不懂了就去百度google,看完了又忘,真是慢性咽炎啊.现在认真想想也是,其实自己一直以来都没有好好学习过,只是看了些速成的东西,匆匆忙忙地扫描,然后以光的速度忘掉了.好了,不淡这些了,希望和大家共勉. 第一次在Makefile中看到位置参数这东西比如[email protected],$^,$<等 ,shell中的位置参数也长这样子,但含义是不一样的.在shell中 $#,表示传递到脚本的参数的个数 $