文章目录

  • 1.Shell 简介
  • 2.常见特殊字符
    • 2.1 特殊变量
    • 2.2 替换符
      • 2.2.1 变量替换符
      • 2.2.2 命令替换符
    • 2.3 转义字符
    • 2.4 字符串符(引号)
    • 2.5 功能符
      • 2.5.1 语法功能符
      • 2.5.2 命令功能符
    • 2.6 运算符
      • 2.6.1 算术运算符
      • 2.6.2 关系运算符
      • 2.6.3 逻辑运算符
      • 2.6.4 字符串运算符
      • 2.6.5 文件运算符
  • 3.小结
  • 参考文献

1.Shell 简介

Shell 是类 Unix 操作系统的命令解析器,用于解释执行用户输入的一连串命令。它类似于 DOS 下的 command.com 和后来 Windows 的 cmd.exe。同时 Shell 也是一种程序设计语言。作为命令解释型的脚本语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它预定义了各种环境变量,保留了一些关键字以及一些特殊字符的含义,并提供了许多在高级语言中才具有的控制结构,包括循环和分支判断。

Shell 基本分两大类:

(1)图形界面 Shell(GUI Shell, Graphical User Interface Shell)

如应用最为广泛的 Windows Explorer,以及广为人知的 Linux Shell。其中 Linux Shell 包括 X window manager (BlackBox 和 FluxBox),以及功能更强大的 CDE、GNOME、KDE、 XFCE 等。

(2)命令行式 Shell(CLI Shell, Command Line Interface Shell)
常见的命令行式 Shell,按照问世时间排序有最早的 Bourne Shell(sh)、后来的 C Shell(csh)、AT&T 公司的贝尔实验室开发的 Korn Shell (ksh)、GNU 的 Bourne Again Shell (bash)、POSIX Shell、macOS 中使用的 zsh 等。最常见的应该是 GNU 的 bash 了。

2.常见特殊字符

Shell 特殊字符纷繁复杂,各种特殊符号在我们编写 Shell 脚本时候如果能够用得好,往往能起到事半功倍的效果。为此,特地将 Shell 里面的一些常见特殊符号归类并罗列成对照表的形式,以便快速的查找。看看你知道或者用过下表中你的哪些 Shell 符号呢?

Shell 特殊字符可以分为以下几类:特殊变量,替换符,转义字符,字符串符(引号),功能符,运算符。

2.1 特殊变量

序号 符号 作用 示例
1 $0 当前脚本的名称
2 $# 传递给脚本或函数的参数个数
3 $* 传递给脚本或函数的所有参数
4 $@ 传递给脚本或函数的所有参数。被双引号""包含时,与 $* 稍有不同,下面将会讲到
5 $? 上个命令的退出状态,或函数的返回值。
6 $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
7 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数,第一个参数是$1,第二个参数是$2
8 * 作为匹配文件名扩展的一个通配符,能自动匹配给定目录下的每一个文件。
9 ~ 波浪号。和环境变量 $HOME 一样。默认表示当前用户的家目录 echo ~ 查看家目录
10 -- 两个减号,与 ~ 相同,表示当前用户的家目录 cd - - 回到家目录,但不能 echo -- 输出
11 ~+ 当前工作目录。和环境变量 $PWD 一样。 echo ~+可以查看当前目录
12 ~- 前一个工作目录。和内部变量 $OLDPWD 一致,和减号一样。 echo ~-可以查看前一个工作目录
13 - 减号。和~-一样,表示前一个工作目录。 cd - 回到前一个工作目录,但不能 echo - 来查看
14 . 点号。表示当前目录 ls . 查看当前目录内容
15 .. 两个点号。表示上一层目录 ls .. 查看上一层目录内容

关于上面的特殊变量的几个知识点:
(1)$@$* 的区别?
$@$* 都表示脚本或者函数传入的参数,不被双引号包含时,都以 $1 $2 … $n 的形式输出所有参数。

但是当它们被双引号包含时,"$*"会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数。但是"$@"$@一样,还是会将各个参数分开,以$1 $2 … $n的形式输出所有参数。

具体参考如下示例:

function print(){echo "param num:"$#for i in "$*"doecho param:$idonefor i in "$@"doecho param:$idoneecho "all param:"$*echo "all param:"$@echo param1:$1echo param2:$2return 12
}print "lvlv0" "lvlv1"
echo $?

运行脚本,输出结果:

param num:2
param:lvlv0 lvlv1
param:lvlv0
param:lvlv1
all param:lvlv0 lvlv1
all param:lvlv0 lvlv1
param1:lvlv0
param2:lvlv1
12

2.2 替换符

替换符分为命令替换符和变量替换符。

2.2.1 变量替换符

序号 符号 作用 示例
1 $ 美元符放在变量前用于取变量的值 echo $PATH 打印环境变量 PATH 的值
2 ${} 美元符加上大括号,大括号中放变量的名称,也是用于读取变量的值 echo ${PATH}path,访问变量PATH,而不是变量 PATHpath,注意和上面 $ 的区别
3 ${:-} 用法${var:-word}。表示如果变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。
4 ${:+} 用法${var:+word}。如果变量 var 被定义,那么返回 word,但不改变 var 的值。
5 ${:=} 用法${var:=word}。如果变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。
6 ${:?} 用法 ${var:?message}。如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用来检测变量 var 是否可以被正常赋值。若此替换出现在Shell脚本中,那么脚本将停止运行。
7 ${\#} 用法${#var}。获取字符串变量var的长度 string="abcd";echo ${#string} #输出4
8 ${:} 字符串提取,用法${var:n}。若n为正数,n从0开始,表示在变量var中提取第n个字符到末尾的所有字符。若n为负数,提取字符串最后面n的绝对值个字符,使用时在冒号后面加空格或一个算术表达式或整个num加上括号,如${var: -2}${var:1−3}${var:(-2)}均表示提取字符串最后两个字符。 a="abcde";echo ${a:1-4},输出cde。
9 ${::} 字符串提取,用法${var:n1:n2}。 string="tencent is a great company";echo ${string:1:4},输出ence。
10 {,} 用法${value1,value2,value3}。逗号分割一般用于文件列表的扩展。 echo {a,b}.txt,输出a.txt b.txt。
11 {..} 用法${value1…value2}。用于顺序扩展。 touch {a..d}.txt,结果为a.txt b.txt c.txt d.txt
12 ${#} 模式匹配截断,用法${variable#pattern} 这种模式时,shell在variable中查找给定的模式pattern,如果找到,就从命令行把variable中的内容去掉左边最短的匹配模式。不改变原变量。 var=testcase; echo ${var#*s},输出tcase。
13 ${##} 模式匹配截断,用法${variable##pattern} 这种模式时,shell在variable中查找给定的模式pattern,如果是存在,就从命令行把variable中的内容去掉左边最长的匹配模式。不改变原变量。 var=testcase; echo ${var##*s},输出e。
14 ${%} 模式匹配截断,用法${variable%pattern},这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最短的匹配模式。不改变原变量。 var=testcase;echo ${var%s*e},结果为testca。
15 ${%%} 模式匹配截断,用法${variable%%pattern},这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最长的匹配模式。不改变原变量。 var=testcase;echo ${var%%s*e},结果为te。
16 ${/ /} 模式匹配替换。${var/pattern/pattern}表示将var字符串的第一个匹配的pattern替换为另一个pattern。不改变原变量。 var=/home/centos;echo ${var/o/h}结果为/hhme/centos
17 ${// /} 模式匹配替换。${var//pattern/pattern}表示将var字符串中的所有能匹配的pattern替换为另一个pattern。不改变原变量。 var=/home/centos;echo ${var//o/h}结果为/hhme/cenths
18 $[] 整数扩展,在方括号内执行整数表达式并返回结果。 a=3;b=7;echo $[$a+$b]输出10

注意: 上面的模式不符合正则表达式的规则。

2.2.2 命令替换符

序号 特殊符号 作用 示例
19 $() 美元符加小括号,命令替换符,用于执行命令,替换命令的输出结果 echo $(date)
20 `` 一对反引号,在键盘的Tab键上面,注意与单引号的区别,其作用与$()相同 echo `date`

2.3 转义字符

下面的转义字符都可以用在 echo 中:

序号 符号 作用 示例
1 \ 反斜杠,用于转义
2 \a 警报,响铃
3 \b 退格(删除键)
4 \f 换页(FF),将当前位置移到下页开头
5 \n 换行
6 \r 回车
7 \t 水平制表符(tab键)
8 \v 垂直制表符
9 \c 不产生进一步的输出。也就是说在 \c 后,这一行后面的内容都不会输出,直接删掉了 echo -e "this is line1 \c these word will disappear",输出 this is line1

可以使用 echo 命令的 -e 选项启动转义,-E 选项禁止转义,默认也是不转义的。禁止转义的话也就无法识别上面除反斜杠外的其它的转义字符了,比如echo "\n" 是不会换行的,而是输出 \n,如果换行的话,使用echo -e "\n"

2.4 字符串符(引号)

序号 符号 作用 示例
1 ‘’ 两个单引号。单引号括住的内容,被视为常量字符串,引号内禁止变量扩展,并且单引号字符串中不能出现单引号(对单引号使用转义符后也不行) echo '$PATH',输出字符串 $PATH
2 “” 两个双引号。双引号包围的内容允许变量扩展,可以包含双引号,但需要转义。 echo "$PATH",输出环境变量 PATH 的内容

2.5 功能符

功能符号,我在这里把它分为两类。第一类是语法功能符,第二类是命令功能符。具体详见下文。

2.5.1 语法功能符

序号 符号 作用 示例
1 # 井号。注释符号。在shell文件的行首,作为include标记,#!/bin/bash;其他地方作为注释使用。
2 ; 分号。语句的分隔符。在shell文件一行写多条语句时,使用分号分割。
3 ;; 双分号。在使用 case 选项时,作为每个选项的终结符。在 Bash version 4+ 的时候,还可以使用[;;&][;&]
4 / 斜杠。路径的分隔符,路径中仅有一个斜杆表示根目录,以斜杆开头的路径表示从根目录开始的路径。
5 | 管道。管道是 Linux Unix 都有的概念,是非常基础、非常重要的一个概念。它的作用是将管道前(左边)命令产生的输出作为管道后(右边)命令的输入。 less fiel\|wc -l 用于统计文件的行数
6 > 输出重定向。 echo lvlv>file,将标准输出重定向文件file中去,如果文件存在则覆盖,不能存在则创建。不指定输出的内容,>file,则清空文件。
7 >> 输出重定向追加符。 echo lvlv 1>>file,将标准输出重定向文件file的最后面,不会覆盖file原有内容
8 >& 输出重定向等同符,作用于文件描述符,即左右两边的操作数是文件描述符 echo lvlv>file 2>&1,标准输出重定向到文件file中,标准错误输出与标准输出重定向一致
9 &> 标准输出和标准错误输出重定向符。 echo lvlv &>file,标准输出和标准错误输出都重定向到文件file中,与echo lvlv 1>file 2>&1 功能相同
10 < 输入重定向 test.sh < file,脚本test.sh需要read的地方会从文件file读取
11 << 用法格式:cmd << text。从命令行读取输入,直到一个与 text 相同的行结束。除非使用引号把输入括起来,此模式将对输入内容进行 Shell 变量替换。如果使用 <<- ,则会忽略接下来输入行首的 tab,结束行也可以是一堆 tab 再加上一个与 text 相同的内容。
12 <& 标准输入重定向等同符,作用于文件描述符,即左右两边的操作数是文件描述符 cmd <& m,将文件描述符m作为cmd的输入,省略了标准输入描述符1,即等价于cmd 1<&fd
13 >&- 关闭某个输出文件描述符。用法格式:exec fd>&- exec >&-exec 0>&-,关闭标准输出
14 <&- 关闭某个输入文件描述符。用法格式:exec fd>&- exec <&-exec 1<&-关闭标准输入
15 & 与号。如果命令后面跟上一个&符号,这个命令将会在后台运行。 使用格式:command&
16 / 斜杠。主要有两种作用。
(1)作为路径的分隔符,路径中仅有一个斜杆表示根目录,以斜杆开头的路径表示从根目录开始的路径;
(2)在作为运算符的时候,表示除法符号。
17 () 一对小括号。主要有两种用法:
(1)命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。
(2)用于初始化数组。如 array=(a b c d)
18 {} 一对大括号,代码块标识符。一般用于函数定义时表明函数体。
19 <<< 三个小于号,作用就是将后面的内容作为前面命令的标准输入。 grep a <<< "$VARIABLE", 意思就是在VARIABLE这个变量值里查找字符a。
20 >| 大于号与竖杠。功能同>,但即便设置了noclobber属性时也会强制复盖file文件。shell设置了noclobber属性表明已存在的文件不能被重定向输出覆盖。
21 <> 标准输入与输出重定向运算符 exec 6<>filename,通过 exec 命令,以读写的方式将文件描述符 6 绑定到指定文件

2.5.2 命令功能符

序号 符号 作用 示例
61 . 点号。
1.相当于bash内建命令source,如:
#!/bin/bash;
. data-file#包含data-file;
2.作为文件名的一部分,在文件名的开头,表示该文件为隐藏文件,ls 一般不显示出来(ls -a 可以显示);
3.作为目录名,一个点代表当前目录,两个点号代表上层目录(当前目录的父目录)。注意,两个以上的点不出现,除非你用引号(单/双)包围作为点号字符本身;
4.正则表达式中,点号表示任意一个字符。
62 : 冒号。是 Shell 的空命令,什么也不做,但是返回 true。用法比较多,主要有:
(1)可做 while 死循环的条件;
(2)占位符,if 某一分支什么都不做的时候;
(3)域分隔符,比如环境变量 PATH 或 passwd 中,都有冒号作为域分隔符的存在;
(4)清空文件。因为冒号不向标准输出打印任何内容,所以可以用来清空文件,如 :>file
(5)配合${:=}给未定义或为空的变量赋值,示例:: ${abc:=1234};echo $abc,输出 1234

2.6 运算符

Shel 运算符比较多,大致可以分为如下几类:算数运算符、关系运算符、逻辑运算符、字符串运算符和文件运算符。

2.6.1 算术运算符

序号 符号 作用 示例
1 + 加法 a=10;b=20;expr $a + $b结果为 30。注意空格
2 - 减法 expr $a - $b 结果为-10
3 * 乘法 expr $a * $b 结果为200
4 / 除法 expr $b / $a 结果为2
5 % 取余 expr $b % $a 结果为 0
6 = 赋值 a=$b,将把变量 b 的值赋给 a
7 (()) 双小括号算术运算符,用于 expr 命令的替代,即支持算术表达式,而无需 expr 命令 for((i=0;i<10;++i))或者((out=$a*$b))或者if(($a==$b));then ... fi,无需添加空格了,更加符合 C 的编程语法
8 ** 双星号。算术运算中表示求幂运算
9 , 逗号运算符,用法主要有两个:
(1)用在连接一连串的数学表达式中,这串数学表达式均被求值,但只有最后一个求值结果被返回。
(2)用于参数替代中,表示首字母小写,如果是两个逗号,则表示全部小写,注意,这个特性在 bash version 4 的时候被添加。
见下文

逗号运算符用法示例:
(1)用在连接一连串的数学表达式中。

#!/bin/bash
t1=$((a=5+1, b=7+2))
echo t1=$t1, a=$a, b=$b# 输出
t1=9, a=6, b=9

(2)用于参数替代中。

a="ATest"
echo ${a,}
echo ${a,,}# 输出
aTest
atest

2.6.2 关系运算符

序号 符号 作用 示例
10 [] 一对方括号,用于判断条件是否成立 [ $a == \$b ],注意添加 4 个空格
11 [[]] 两对方括号,是对 [] 的扩展,可使用<、>、&&、||等运算符 [[ $a>$b ]],只需要添加左右两边两个空格。注意:使用 == 与 != 时,仍需要 4 个空格
12 -eq 检测两个数是否相等,相等返回 true [ $a -eq $b ] 返回 true
13 == 检测两个数是否相等,作用同-eq [ $a == $b ] 返回 true
14 -ne 检测两个数是否相等,不相等返回 true [ $a -ne $b ] 返回 true
15 != 作用同 -ne
16 -gt 检测左边的数是否大于右边的,如果是,则返回 true [ $a -gt $b ] 返回 false
17 -lt 检测左边的数是否小于右边的,如果是,则返回 true [ $a -lt $b ] 返回 true
18 -ge 检测左边的数是否大等于右边的,如果是,则返回 true [ $a -ge $b ] 返回 false
19 -le 检测左边的数是否小于等于右边的,如果是,则返回 true [ $a -le $b ] 返回 true

注意:
(1)运算符 [] 与 [[]] 的区别?

[] 实际上是 Bash 中 test 命令的简写,即所有的 [ expression ] 等于 test expression。而[[ expression ]]是 Bash 中真正的条件判断语句,其语法更符合编程习惯,建议使用。

(2)Shell 中没有 <= 与 >= 运算符,只能使用-le-ge替代。

2.6.3 逻辑运算符

序号 符号 作用 示例
20 ! 非运算,表达式为 true 则返回 false,否则返回 true。 [ ! false ] 返回 true
21 -o 或运算,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true
22 -a 与运算,两个表达式都为 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false
23 || 或运算符,与&&作用相反,也有两种用法。
(1)用于条件判断,需与 [[]] 配合使用。两个表达式有一个为true就返回true。
(2)命令连接:command1 || command2,左边的命令返回 false(即返回非 0,执行失败),右边的命令才能够被执行。
[[ $a < 20 || $a > 19 ]]返回 true
24 && 与运算符,有两种用法。
(1)用于条件判断,需与 [[]] 配合使用。两个表达式都为true才返回true。
(2)命令连接。command1 && command2。左边的命令返回真(即返回 0,成功被执行),右边的命令才能够被执行。
[[ $a < 20 && $a > 20 ]] 返回 false

2.6.4 字符串运算符

序号 符号 作用 示例
25 = 检测两个字符串是否相等,相等返回 true [ $a = $b ] 返回 false
26 != 检测两个字符串是否相等,不相等返回 true。 [ $a != $b ] 返回 true
27 -z 检测字符串长度是否为0,为0返回 true。 [ -z $a ] 返回 false
28 -n 检测字符串长度是否为0,不为0返回 true。 [ -n $a ] 返回 true
29 str 检测字符串是否为空,不为空返回 true。 [ $a ] 返回 true
30 =~ 正则表达式匹配运算符,用于匹配正则表达式的,配合 [[]] 使用 if [[ ! $file =~ check$ ]] 判断 $file 是否是以 check 结尾

2.6.5 文件运算符

文件运算符用于检测文件的各种属性。

序号 符号 作用 示例
31 -b 文件存在且是块设备文件 [ -b /dev/vda1 ] 返回 true
32 -c 文件存在且是字符设备文件 [ -c /dev/stdin ] 返回 true
33 -d 文件存在且是目录 [ -d / ] 返回 true
34 -e 文件(包括目录)是否存在 [ -e / ] 返回 true
35 -f 文件存在且是普通文件(既不是目录,也不是设备文件) [ -f /etc/passwd] 返回 true
36 -g 文件存在且设置了 SGID 位 [ -g /usr/bin/passwd ] 返回 false
37 -G 文件存在且属于有效组 ID [ -G /etc/passwd ] 返回 true
38 -h 文件存在且是软链接。同 -L [ -h /etc/passwd ] 返回 false
39 -k 文件存在且设置了粘着位(Sticky Bit) [ -k /tmp ] 返回 true
40 -L 文件存在且是软链接。同 -h [ -L /etc/passwd ] 返回 false
41 -O 文件存在且属于有效用户ID [ -O /etc/passwd ] 返回 true
42 -p 文件存在且是具名管道 [ -p /etc/passwd ] 返回 false
43 -r 文件存在且可读 [ -r /etc/passwd ] 返回 true
44 -s 文件存在且不为空 [ -s /etc/passwd ] 返回 true
45 -S 文件存在且是套接字(socket) [ -s /etc/passwd ] 返回 false
46 -u 文件存在且设置了 SUID 位 [ -s /usr/bin/passwd ] 返回 true
47 -w 文件存在且可写 [ -w /etc/shadow ] 返回 false
48 -x 文件存在且可执行 [ -x /usr/bin/passwd ] 返回 true
49 -ef 两个文件是否为同一个文件。主要看文件设备号与 inode 是否一致 [ /usr/bin/passwd -ef /etc/passwd ] 返回 false
50 -nt 文件 FILE1 是否比 FILE2 新(修改时间新) [ /usr/bin/passwd -nt /etc/passwd ] 返回 false
51 -ot 文件 FILE1 是否比 FILE2 旧(修改时间旧) [ /usr/bin/passwd -ot /etc/passwd ] 返回 true

这里附带说明一下 Linux 下文件的类型。

- 普通文件
d 目录
b 块设备
c 字符设备
p 命名管道
l 符号链接
s 套接字

3.小结

断断续续历时 3 个多星期,终于完成了这篇 blog,后续遇到新的特殊字符,我会及时更新。

是不是被上面的多如繁星的特殊字符弄的晕头转向,你都了解和用过吗?其实没有必要花费大量的时间去死记硬背,可当做手册参考,在需要使用的时候再去了解其意义和用法是不迟的。Shell 的特殊字符真的是太多了,我可以很负责任的告诉你,上面总结的其实只是一部分,还有很多没有列出来。

对于上面特殊字符的解释,因未参考到权威的资料,再加上本人有些字符未亲自实践和使用过,难免片面甚至错误,仅供参考!如有遗漏或错误,欢迎大家不吝指教,留言告知,thx!


参考文献

[1] Linux下高效编写Shell——shell特殊字符汇总
[2] Linux Shell脚本教程:30分钟玩转Shell脚本编程
[3] LINUX ECHO 用法 【 -E \C 体会】
[4] shell中各种括号的作用()、(())、[]、[[]]、{}
[5] 实现ll命令
[6] shell脚本中一些特殊符号
[7] linux shell数据重定向(输入重定向与输出重定向)详细分析
[8] test(1) manual
[9] 百度百科.command.com

Shell 特殊字符大全相关推荐

  1. Linux Shell特殊字符和控制字符

    Shell特殊字符 # 注释 表示注释   #注释 在引号中间和\#等表示#本身 echo ${PATH#*:} # 参数替换,不是一个注释 echo $(( 2#101011 )) # 数制转换,不 ...

  2. EasyClick adb shell命令大全

    EasyClick adb.shell命令大全目录 EasyClick adb.shell命令大全 ADB包安装步骤 使用教程 ADB高级命令 Android 常用的Linux命令 Android a ...

  3. ubuntu shell命令大全

    原文地址:ubuntu shell命令大全 作者:sun5411 转自:http://blog.chinaunix.net/uid-22330495-id-141752.html 前言 下面的命令大都 ...

  4. linux命令 final,shell 命令大全先贴一下FinalShell程序的官方网

    shell 命令大全 如果你的操作系统是 Windows,而你想要连接 Linux 服务器相互传送文件,那么你需要一个简称 SSH 的 Secure Shell 软件.实际上,SSH 是一个网络协议, ...

  5. Linux Shell特殊字符和控制字符大全

    # 注释 表示注释 #注释 在引号中间和\#等表示#本身 echo ${PATH#*:} # 参数替换,不是一个注释 echo $(( 2#101011 )) # 数制转换,不是一个注释 ; 分隔 命 ...

  6. Android ADB Shell命令大全

    原文链接: http://blog.csdn.net/zkdemon/article/details/7033800 apktool反编译工具:http://download.csdn.net/det ...

  7. Linux Shell编程(4)——shell特殊字符(上)

    在脚本或其他别的地方出现的特殊字符 # 注释. 以一个#开头的行 (#!是例外) 是注释行. # 这是一行注释. 注释也可以出现在一个命令语句的后面. echo "A comment wil ...

  8. Windows常用shell命令大全

    From: http://blog.csdn.net/yunzhongfeiniao/article/details/6564577 基于鼠标操作的后果就是OS界面外观发生改变,就得多花学习成本.更主 ...

  9. 《Linux命令行与shell脚本大全》笔记

    初识Linux Shell 什么是Linux Linux可划分为以下四部分: Linux内核 GNU工具 图形化桌面环境 应用软件 深入探究Linux内核 内核主要负责以下四种功能: 系统内存管理 软 ...

最新文章

  1. 【组队学习】【27期】青少年编程(Turtle)
  2. type python_typepython
  3. IOS7 ~ Xcode5 制作 framework
  4. 计算机vb基础知识,2018年计算机二级考试VB基础知识:参数的传递
  5. memwatch内存泄露检测工具
  6. 考研数学线上笔记(一):凯哥极限计算系列课程
  7. wps2019怎么调整字间距_wps2019表格和文字间距太大怎么调整?
  8. 生活随记 - 方便面
  9. Kubernets的资源管理
  10. linux删除账号及主目录及邮箱,Linux 用户管理
  11. 酒吧类型与其娱乐项目设置
  12. photoshop cc2017全套视频课程 从基础到实战案例PS海报-王诚-专题视频课程
  13. 以自己的电脑作为服务器,搭建网站,外网可访问
  14. WIFI配网方案:1、蓝牙配网 2、WIFI自身配网 3、SmartConfig一键配网
  15. ArcGIS教程:ArcGIS中的图表是什么
  16. 蓝桥杯 历届试题 小朋友排队 C++
  17. Henry前端笔记之响应式布局与弹性布局
  18. ucos OS_ENTER_CRITICAL
  19. Python中使用pickle库进行数据的序列化存储
  20. 路径规划算法学习Day2

热门文章

  1. java源码-AtomicReference
  2. hadoop10---消息队列
  3. web前端安全机制问题全解析
  4. struts2中的session使用
  5. CACTI 仙人掌监控平台
  6. Sql Server函数全解(五)之系统函数
  7. Hotmail怎么进不去?!
  8. vue+axios中的get请求传参,post请求头(form/json)不一样的传参的处理
  9. CMake test目录和项目同名错误
  10. 蓝桥杯 ADV-147 算法提高 学霸的迷宫