Shell概述Shell脚本的运行方式
echo命令Shell脚本的执行 Bash的基本功能
历史命令历史命令的调用命令别名Bash常用快捷键输入输出重定向多命令顺序执行管道符 "|"Shell特殊符号 Shell概述
什么是Shell
Shell也可以叫Shell命令解释器,它通过用户发出的命令来调用相应的程序。
Linux支持的shell
Linux默认使用Bash Shell,查看/etc/shells文件可以查看Linux支持的shell类型,并且可以互相切换。
[root@localhost ~]# echo 选项 输出内容
选项:
-e:支持反斜线控制的字符转换-n:取消输出后行末的换行符号(内容输出后不换行)
转义字符表:
echo也可以输出有颜色的字符。
Shell脚本的执行赋予权限
[root@localhost ~]# chmod u+x hello.sh
通过路径执行脚本
[root@localhost ~]# ./hello.sh #通过相对路径执行hello world! [root@localhost ~]# /root/hello.sh #通过绝对路径执行hello world!
通过bash调用执行脚本
[root@localhost ~]# bash hello.shhello world!
Bash的基本功能 历史命令root@wszd158-PC:~# history 选项 历史命令保存文件
选项:
-c:清空历史命令-w:将缓存中的历史命令写入历史命令保存文件,如果不手工指定历史命令保存文件,则放入默认历史命令保存文件~/.bash_history中
例:
root@wszd158-PC:~# history -w
历史命令条数的查看并不是无限的,有着最大的限制,这个限制可以在环境变量配置文件/etc/profile中修改。
root@wszd158-PC:~# vim /etc/profile......HISTSIZE=1000......
历史命令的调用使用上下箭头调用以前的历史命令使用"!n"执行第n条历史命令使用"!!"重复执行上一条命令使用"!字符串"重复执行最后一条以该字符串开头的历史命令使用"!$"重复上一个命令的最后一个参数 命令别名
使用alias命令可以设置与查看命令的别名,不过这样的设置是暂时的,长久的设置需要修改~/.bashrc文件。
[root@localhost ~]# vim .bashrc......alias rm='rm -i'alias cp='cp -i'alias mv='mv -i'alias vi='vim'......[root@localhost ~]# aliasalias cp='cp -i'alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'......
命令的优先级:
第一顺位执行用绝对路径或相对路径执行的命令第二顺位执行别名第三顺位执行Bash的内部命令第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令 Bash常用快捷键 快捷键 作用 Tab键命令或文件补全,有一个相同的按一下Tab键就可以补全,有多个相同的按两下Tab就会有提示。ctrl+A把光标移动到命令行开头,如果我们输入的命令过长,想要把光标移动到命令行开头时使用。ctrl+E把光标移动到命令行结尾。ctrl+C强制终止当前的命令。ctrl+L清屏,相当于clear命令。ctrl+U删除或剪切光标之前的命令,输错命令时比较方便。ctrl+K删除或剪切光标之后的的内容。ctrl+Y粘贴ctrl+U剪切的内容。ctrl+R在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。ctrl+D退出终端或者发送邮件。ctrl+Z将目前运行的程序放入后台。ctrl+S暂停屏幕输出。ctrl+Q恢复屏幕输出。输入输出重定向
Bash的标准输入输出 设备 设备文件名 文件描述符 类型 键盘/dev/stdin0标准输入显示器/dev/stdout1标准输出显示器/dev/stderr2标准错误输出
输出重定向
输出不再输出到屏幕上,而是输出到文件中。 类型 符号 作用 标准输出重定向命令>文件以覆盖的方式将命令的正确执行结果输出到文件或设备中。标准输出重定向命令>>文件以追加的方式,将命令的正确执行结果输出到文件或设备中。标准错误输出重定向错误命令2>文件以覆盖的方式,把命令的错误执行结果输出到指定的文件或设备中。标准错误输出重定向错误命令2>>文件以追加的方式,把命令的错误执行结果输出到指定的文件或设备中。
正确和错误的保存命令分开,这些对于人来说是不合理的,所以我们需要可以将正确信息和错误信息都能保存下来的命令。
正确输出和错误输出同时保存:
输入重定向
例:wc命令可以统计文件中的行数,单词数和字符数。
[root@localhost ~]# wc anaconda-ks.cfg 46 108 1134 anaconda-ks.cfg
选项:
-c:统计字符数。-w:统计单词数。-l:统计行数。 多命令顺序执行
命令1;命令2:多个命令顺序执行,命令之间没有任何逻辑联系。命令1&&命令2:当命令1正确执行,则命令2才会执行;当命令1执行不正确,命令2不执行。命令1||命令2:当命令1执行不正确,命令2才执行;命令1正确执行,命令2不执行。 管道符 “|” Shell特殊符号 符号 作用 ’ ’单引号,在单引号中的所有特殊符号都没有特殊含义"$""`"都没有特殊含义。" "双引号,在双引号中特殊符号都没有特殊含义,但是"$""`""“是例外,有"调用变量的值”“引用命令”"转义符"的特殊含义反引号,反引号括起来的内容是系统命令,在Bash中会优先执行,和 $ () 的作用一样,不过建议使用$()。$()和反引号一样,用来引用系统命令,需要把命令的值赋予变量时可以用到。()用于遗传命令执行是,()中的命令会在子Shell中运行。{}用于一串命令执行时,{}中的命令会在当前Shell中执行,也可以用于变量变形与替换。[]用于变量的测试。#在Shell脚本中,#开头的行代表注释。$用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。|转义符,跟在之后的特殊符号将失去特殊含义,变为普通字符,
例:
[root@localhost ~]# t=$(date) #将date命令的执行结果赋予变量t[root@localhost ~]# echo $t2022年 02月 06日 星期日 01:12:47 EST
ps:尚硅谷linux视频课程学习笔记