Bash基本语法
echo命令
echo
命令用于在终端输出文本或变量的值。它是一个非常常用的命令,通常用于调试脚本或显示信息。作用是在屏幕输出一行文本,可以将该命令的参数原样输出。
echo hello worldhello world
如果想要输出的是多行文本,即包括换行符。这时需要把多文本放在引号里面。
echo "<div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide"><img src="./image/sku-13811216-01.png"></div> <div class="swiper-slide"><img src="./image/sku-13811216-02.png"></div> <div class="swiper-slide"><img src="./image/sku-13811216-03.png"></div> </div> <div class="swiper-pagination"></div></div>"
上面的例子中,echo可以原样输出多行文本。
-n 参数
默认情况下,echo
命令输出的文本末尾会有一个回车符号。-n
参数可以取消末尾的回车符号,使得下一个提示符号紧跟在输出内容的后面。
echo -n hello worldhello world$
echo a;echo bab
echo -n a;echo bab
例子中,-n
参数可以让2个echo
命令的输出连在一起,出现在同一行
-e 参数
-e
参数会解释引号(双引号和单引号)里面的特色字符(比如换行符\n)。如果不使用-e
参数,默认情况下,引号会让特殊字符变成普通字符。echo命令不解释它们,会原样输出
echo "Hello\nWorld"Hello\nWorld
# 双引号的情况echo -e "Hello\nWorld"HelloWorld
# 单引号的情况echo -e 'Hello\nWorld'HelloWorld
命令格式
命令行环境中,主要通过使用Shell命令。进行各种操作。Shell命令的格式如下:
command [ arg1 ... [ argN ]]
command
是具体的命令或者一个可执行的文件,arg1 ... argN
是传递给命令的参数,它们是可选的。
Bash单个命令一般都是一行,用户按下回车键,就开始执行。有效命令比较长,写成多行会有利于阅读和编辑,这时可以在每一行的结尾加上反斜杠, Bash会将下一行跟当前行放在一起解释。
echo foo bar
# 等同于echo foo \bar
空格
Bash使用空格(或者Tab键)区分不同的参数
command foot bar
命令中的,foot和bar之间有一个空格,所以Bash认为它们是两个参数。 如果参数之间有多个空格,Bash会自动忽略多余的空格。
echo this is a testthis is a test
分号
分号(;
)是命令的结束符号,使得一行可以放置多个命令,上一个命令执行结束后,再执行第二个命令。
clear;ls -l
例子中,Bash先执行clear
命令,执行完成后,再执行ls -l
命令。
注意,使用分号时,第二个命令总是接着第一个命令的执行,不管第一个命令执行是成功还是失败。
命令的组合符&&
和 ||
除了分号,Bash还提供了两个命令组合符号&&
和||
,允许更好地控制多个命令之间的继发关系。
Command1 && Command2
上述命令的含义是,如果命令Command1
执行成功,则继续执行Command2
命令。
Command1 || Command2
上面命令的含义是,如果命令Command1
命令运行失败,则继续运行Command2
命令。
下面是一些例子:
cat text.txt; ls -l
只要cat
命令执行结束,不管成功或者失败,都会继续执行ls -l
命令
cat text.txt && ls -l
只要cat
命令执行成功,才会继续执行ls -l
命令,如果cat命令执行失败(比如不存在文件text.txt),那么ls命令就不会执行。
cat text.txt || ls -l
只有cat命令执行失败(比如不存在text.txt),才会继续执行ls -l
命令,如果cat命令执行成功,ls命令就不会执行。
type命令
Bash本身内置了很多命令,同时也可以执行外部程序。怎么知道一个命令是内置命令还是外部程序呢?
type
命令用来判断命令的来源
type echoecho is a shell builtin
type lsls is hashed (/bin/ls)
上面代码中,type
命令告诉我们,echo是内部命令,ls是外部程序(/bin/ls)
type
命令本身也是内置的命令。
如果要查看一个命令的所有定义,可以使用type命令的-a
参数
type -a echoecho is a shell builtinecho is /bin/echo
echo命令即是内置命令,也有对应的外部程序。
type命令的-t
参数,可以返回一个命令的类型:别名(alias),关键词(keyword),函数(function),内置命令(builtin)和文件(file)
type -t bashfile
type -t ifkeyword
bash是文件,if是关键词。
快捷键
Ctrl + L
:清除屏幕并将当前行移动到页面顶部Ctrl + C
:中止当前正在执行的命令Shift + PageUp
:向上滚动Shift + PageDown
:向下滚动Ctrl + U
:从光标位置删除到行首Ctrl + K
:从光标位置删除到行尾Ctrl + W
:删除光标位置前一个单词Ctrl + D
:关闭Shell会话
除了上面的快捷键,Bash 还具有自动补全功能。命令输入到一半的时候, 可以按下 Tab 键,Bash 会自动完成剩下的部分。比如,输入tou,然后按一下 Tab 键,Bash 会自动补上ch。
除了命令的自动补全,Bash 还支持路径的自动补全。有时,需要输入很长的路径, 这时只需要输入前面的部分,然后按下 Tab 键,就会自动补全后面的部分。 如果有多个可能的选择,按两次 Tab 键,Bash 会显示所有选项,让你选择