Linux笔记-009Shell基础

196 阅读1分钟

Shell 基础

脚本执行方式

echo 输出命令
echo [选项] [输出内容]
选项:
-e 支持反斜线控制的字符转换
[root@localhost ~]# vi hello.sh
[root@localhost ~]# ls
anaconda-ks.cfg  hello.sh  install.log install.log.syslog
// 赋予执行权限,直接执行脚本
[root@localhost ~]# /root/hello.sh
-bash: /root/hello.sh: 权限不够
[root@localhost ~]# chmod 755 hello.sh
[root@localhost ~]# /root/hello.sh
exec hello sh
// 通过Bash调用执行脚本,无序赋予执行权限
[root@localhost ~]# bash hello.sh
exec hello sh

别名与快捷键

// 查看系统中所有的命令别名
[root@localhost ~]# alias

// 设定命令别名;临时生效
[root@localhost ~]# alias 别名= '原命令'

// 在 bashrc 文件中设定命令别名
// 别名写入环境变量配置文件;永久生效
[root@localhost ~]# vi /root/.bashrc

// 让修改的 bashrc 文件立即生效
[root@localhost ~]# source .bashrc

// 删除别名
[root@localhost ~]# unalias
// 查看系统中所有的命令别名
[root@localhost ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
// 设定命令别名
[root@localhost ~]# alias ls='ls --color=never'
[root@localhost ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=never'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
命令生效顺序
1-第一顺位执行用绝对路径或相对路径的命令
2-第二顺位执行别名
3-第三顺位执行Bash内部命令
4-第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
常用快捷键
ctrl+c 强制终止当前命令
ctrl+l 清屏
ctrl+a 光标移动到命令行首
ctrl+e 光标移动到命令行尾
ctrl+u 从光标所在位置删除到行首
ctrl+z 把命令放入后台
ctrl+r 在历史命令中搜索

历史命令

// 查看历史命令
[root@localhost ~]# history
// 清空和保存命令
history [选项] [历史命令保存文件]
选项:
-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history

输出重定向

类型符号作用
标准输出重定向命令 > 文件以覆盖的方式,把命令的正确输出保存到指定文件中
标准输出重定向命令 >> 文件以追加的方式,把命令的正确输出保存到指定文件中
标准错误输出重定向错误命令 2> 文件以覆盖的方式,把命令的错误输出保存到指定文件中
标准错误输出重定向错误命令 2>> 文件以追加的方式,把命令的错误输出保存到指定文件中
// 输出正确信息
[root@localhost ~]# ifconfig > ifconfig.log
[root@localhost ~]# cat ifconfig.log
// 输出错误信息
[root@localhost ~]# ifconfig2 2> ifconfig.log
[root@localhost ~]# cat ifconfig.log
类型符号作用
正确输出和错误输出同时保存命令 > 文件 2>&1以覆盖的方式,把命令的正确输出和错误输出都保存到指定文件中
正确输出和错误输出同时保存命令 >> 文件 2>&1以追加的方式,把命令的正确输出和错误输出都保存到指定文件中
正确输出和错误输出同时保存命令 &> 文件以覆盖的方式,把命令的正确输出和错误输出都保存到指定文件中
正确输出和错误输出同时保存命令 &>> 文件以追加的方式,把命令的正确输出和错误输出都保存到指定文件中
正确输出和错误输出同时保存命令 >> 文件 a 2>> 文件 b正确的输出追加到文件 a,错误的输出追加到文件 b

输入重定向

[root@localhost ~]# wc [选项] [文件名]
选项:
-c 统计字节数
-w 统计单词数
-l 统计行数
[root@localhost ~]# wc -l ifconfig.log
命令 < 文件:把文件作为命令的输入
命令 << 标识符:把标识符之间的内容作为命令的输入
[root@localhost ~]# wc < ifconfig.log
 2 10 72
[root@localhost ~]# wc << add
// 统计到 add 出现的地方作为输入内容
> asd
> das
> ddd
> add
 3  3 12

管道符

多命令执行符格式作用
;命令 a ; 命令 b多个命令顺序执行,命令之间没有逻辑关系
&&命令 a && 命令 b逻辑与:命令 a 正确执行,命令 b 才会执行
||命令 a || 命令 b逻辑或:命令 a 执行错误,命令 b 才会执行
|命令 a | 命令 b管道符:命令 a 的正确输出,作为命令 b 的操作对象

通配符

通配符作用
?匹配一个任意字符
*匹配 0 个或任意多个字符
[]匹配中括号里任意一个字符。例如:[ab]代表匹配 a,或者匹配 b
[-]匹配中括号里任意一个字符,-代表一个范围。例如:[0-9]代表匹配数字
[^]逻辑非,表示匹配不是中括号里的一个字符。例如:[^0-9]代表匹配一个不是数字的字符
特殊符号作用
''单引号。单引号中所有的特殊符号,都没有特殊含义,仅表示字符串
""双引号。双引号中只有"$""`"""几个特殊符号有含义,其余仅表示字符串。 "$"=调用变量的值, "`"=引用命令,""=转义符
``反引号。反引号代表系统命令,在 Bash 中会先执行。作用同 &()
$()作用同反引号,用于引用系统命令
#Shell 脚本中,#开头的行代表注释
$调用变量的值
\转义符。转义符后面连接的特殊符号,不再有特殊含义,成为普通字符