部门网站建设的工作领导小组,js做网站框架,代理网址代码,惠州网站seo排名优化1.echo 命令 echo命令的作用是在屏幕输入一行文本#xff0c;可以降该命令的参数原样输出。 $ echo hello world
hello world 如果想要输出的是多行文本#xff0c;包含换行符#xff0c;这时就需要把多行文本放在引号里面
$ echo HTMLHEADTITLE…1.echo 命令 echo命令的作用是在屏幕输入一行文本可以降该命令的参数原样输出。 $ echo hello world
hello world 如果想要输出的是多行文本包含换行符这时就需要把多行文本放在引号里面
$ echo HTMLHEADTITLEPage Title/TITLE/HEADBODYPage body./BODY
/HTML 1.1 -n 参数
默认情况下echo输出的文本抹灰会有一个回车符。 -n参数可以取消末尾的回车符是的下一个提示符跟在输出内容的后面
1.2 -e 参数
-e 参数会解释引号双引号和单引号里面的特殊字符比如换行符\n如果不使用-e参数即默认情况下引号会让特殊字符变成普通字符echo不解释他们原样输出 $ echo Hello\nWorld
Hello\nWorld# 双引号的情况
$ echo -e Hello\nWorld
Hello
World# 单引号的情况
$ echo -e Hello\nWorld
Hello
World
2.命令格式
$ command [ arg1 ... [ argN ]]
上面代码中command是具体的命令或者一个可执行文件arg1 是传递给命令的参数他们是可选的
例如 ls -l ls是命令 -l是参数
有些参数是命令的配置项这些配置项一般都是一个连词线开头比如上面的-l 同一个配置项往往有长和短两种形式比如 -l 是短形式 --list是长形式 它们的作用完全相同。短形式便于手动输入长形式一般用在脚本之中可读性更好利于解释自身的含义。 Bash单个命令一般都是一行用户回车就会执行有些命令比较长携程多行会有利于阅读和编写这是可以在每一行的结尾加上反斜杠Bash就会将他们一起编译。
3.空格
以空格区分不通的参数
4.分号
分号是命令的结束符是的一行可以防止多个命令上一个命令执行结束后再执行第二个
5.命令的组合符号 ||
可以更好的控制多个命令之间的继发关系
commond1 || commond2 如果commond1执行失败那么执行commond2
commond2 commond2 如果commond1执行成功那么执行common2 6.type命令
判断一个命令是内部命令还是外部命令
type 命令也是内置命令 7.快捷键
ctrlL:清除屏幕并将当前行移到页面顶部
ctrlC:终止当前正在执行的命令
ShiftPageUp 向上滚动
ShiftPageDown:向下滚动
CtrlU 从光标位置删除到行首
CtrlK 从光标位置删除到行尾
Ctrlw:删除光标位置前一个单词
Ctrld 关闭Shell会话
↑ ↓ 浏览已经执行命令的历史记录 Bash的模式扩展
Shell接收到用户输入的命令以后会根据空格将用户的输入拆分成一个个词元然后Shell会扩展词元里面的特殊字符扩展完成后才会调用相应的命令。
一共八个扩展
波浪线扩展? 字符扩展* 字符扩展方括号扩展大括号扩展变量扩展子命令扩展算术扩展
Bash是先进行扩展再执行命令。因此扩展的结果是由Bash负责的与所要执行的命令无关命令本事并不存在参数扩展收到什么参数就鸳鸯执行这一点无比需要记住。
模块扩展额英文单词是iglobbing,保存扩展的模板后来Bash内置了这个功能但是这个二名字就保留了下来。
Bash 允许用户关闭扩展。
$ set -o noglob
# 或者
$ set -f
下面的命令可以重新打开扩展 $ set o noglob
# 或者
$ set f
2.波浪线扩展
会自动扩展成当前用户的主目录
$ echo ~
/home/me
~/dir 标识扩展成主目录的某个子目录 dir是主目录里面的一个子目录名 # 进入 /home/me/foo 目录
$ cd ~/foo ~会扩展成当前所在的目录等同于pwd命令。
$ cd ~/foo
$ echo ~
/home/me/foo
3 ?字符扩展
字符代表文件路径里面的任意单个字符 不包括空字符比如Data ???匹配所有Data后面跟着三个字符的文件名
# 存在文件 a.txt 和 b.txt
$ ls ?.txt
a.txt b.txt
上面命令中?表示单个字符所以会同时匹配a.txt和b.txt。
如果匹配多个字符就需要多个?连用。
# 存在文件 a.txt、b.txt 和 ab.txt
$ ls ??.txt
ab.txt 4.*字符扩展
*字符代表文件路径里面的任意数量的任意字符包括零个字符。
# 存在文件 a.txt、b.txt 和 ab.txt
$ ls *.txt
a.txt b.txt ab.txt
注意*不会匹配隐藏文件以.开头的文件即ls *不会输出隐藏文件。
如果要匹配隐藏文件需要写成.*。 如果要匹配隐藏文件同时要排除.和..这两个特殊的隐藏文件可以与方括号扩展结合使用写成.[!.]*。 5.方括号扩展
方括号扩展的形式是[...]只有文件确实存在的前提下才会扩展。如果文件不存在就会原样输出。括号之中的任意一个字符。比如[aeiou]可以匹配五个元音字母中的任意一个。 方括号扩展还有两种变体[^...]和[!...]。它们表示匹配不在方括号里面的字符这两种写法是等价的。比如[^abc]或[!abc]表示匹配除了a、b、c以外的字符。 6[start-end]扩展
方括号扩展一个简写形式[start-end]表示匹配一个连续的范围比如。[a-c]等同于[abc],[0-9]匹配[0123456789]
[a-z]所有小写字母。[a-zA-Z]所有小写字母与大写字母。[a-zA-Z0-9]所有小写字母、大写字母与数字。[abc]*所有以a、b、c字符之一开头的文件名。program.[co]文件program.c与文件program.o。BACKUP.[0-9][0-9][0-9]所有以BACKUP.开头后面是三个数字的文件名。
这种简写形式有一个否定形式[!start-end]表示匹配不属于这个范围的字符。比如[!a-zA-Z]表示匹配非英文字母的字符。 7.大括号扩展
大括号扩展{...}表示分别扩展成大括号里面的所有值各个值之间使用逗号分隔。比如{1,2,3}扩展成1 2 3。
$ echo {1,2,3}
1 2 3$ echo d{a,e,i,u,o}g
dag deg dig dug dog$ echo Front-{A,B,C}-Back
Front-A-Back Front-B-Back Front-C-Back 注意 大括号内部的都好前后不能有空格否则大括号扩展会失效。
大括号可以嵌套
8. {start..end}扩展
大括号扩展有一个简写形式{start..end}表示扩展成一个连续序列。比如{a..z}可以扩展成26个小写英文字母。 9.变量扩展
Bash将美元符号$开头的词元视为变量将其扩展为变量值
$ echo $SHELL
/bin/bash 变量名除了放在美元符号后面也可以放在${}里面。
$ echo ${SHELL}
/bin/bash ${!string*}或${!string}返回所有匹配给定字符串string的变量名。
$ echo ${!S*}
SECONDS SHELL SHELLOPTS SHLVL SSH_AGENT_PID SSH_AUTH_SOCK
${!S*}扩展成所有以S开头的变量名。 10.子命令扩展 $(...)可以扩展成另一个命令的运行结果该命令的所有输出都会作为返回值。
$ echo $(date)
Tue Jan 28 00:01:13 CST 2020
11.算数扩展 $((...))可以扩展成整数运算的结果
$ echo $((2 2))
4
12 字符类 [[:class:]]表示一个字符类扩展成某一类特定字符之中的一个。常用的字符类如下。
[[:alnum:]]匹配任意英文字母与数字[[:alpha:]]匹配任意英文字母[[:blank:]]空格和 Tab 键。[[:cntrl:]]ASCII 码 0-31 的不可打印字符。[[:digit:]]匹配任意数字 0-9。[[:graph:]]A-Z、a-z、0-9 和标点符号。[[:lower:]]匹配任意小写字母 a-z。[[:print:]]ASCII 码 32-127 的可打印字符。[[:punct:]]标点符号除了 A-Z、a-z、0-9 的可打印字符。[[:space:]]空格、Tab、LF10、VT11、FF12、CR13。[[:upper:]]匹配任意大写字母 A-Z。[[:xdigit:]]16进制字符A-F、a-f、0-9
$ echo [[:upper:]]* 上面命令输出所有大写字母开头的文件名。
字符类的第一个方括号后面可以加上感叹号!表示否定。比如[![:digit:]]匹配所有非数字。
$ echo [![:digit:]]* 上面命令输出所有不以数字开头的文件名。
字符类也属于文件名扩展如果没有匹配的文件名字符类就会原样输出。 # 不存在以大写字母开头的文件
$ echo [[:upper:]]*
[[:upper:]]*
使用注意 1通配符是先解释再执行。
2文件名扩展在不匹配时会原样输出。
3只适用于单层路径。
4文件名可以使用通配符。