Shell
目录
一、执行环境
/usr/bin/bash shell运行环境
/usr/bin/python python运行环境
/usr/bin/expect expect运行环境
/usr/bin/perl perl运行环境
JDK java虚拟机
二、shell的执行工具
当前环境生效:. 脚本名 / source 脚本名 (执行后会在当前环境直接生效)
子shell生效:bash 脚本名 / ./ 脚本名 (子shell执行后当前环境不会生效)
例1:在shell脚本中执行其他语言的代码,EOF
<<-EOF
print "hello world!"
EOF
在一个sh脚本中执行python程序 ,采用 <<-EOF EOF格式执行。“<<-” 可以支持下面的代码行首增加tab键。
三、login shell / nologin shell
login shell 环境: su - 用户名 切换到login shell环境,可以执行用户级shell文件,全新的环境。
nologin shell环境:su 用户名 切换到nologin shell环境,还是原始环境,没有任何变化
四、shell的几个主要配置文件
/etc/profile
/etc/bashrc 系统级,root用户系统用户执行
~/.bash_profile 用户级文件,登录某个用户后执行
~/.bashrc
~/.bash_logout 用户级文件, 离开用户环境时执行
~/.bash_history
五、shell特点
1.命令和文件自动补齐程序
yum -y install bash-completion
2.history命令历史记忆功能
执行第几条历史命令:!+数字
执行上一条命令:!!
3.别名功能
alias:查看当前shell的别名
unalias :取消别名
alias 命令=别名 :临时设置别名
vim .bashrc 设置永久别名
source .bashrc 生效别名文件
4.快捷键
ctrl+R = exit
ctrl+A : 将光标移动到命令最前
ctrl+E :将光标移动到命令最后
ctrl+U :将光标之前全部删除
ctrl+K : 将光标之后全部删除
ctrl+S : 锁屏
ctrl+Q: 解屏
ctrl+Y : 撤销上一步操作
5.后台的命令
&:后台执行
ctrl+z:将前台进程移动到后台执行
jobs:查看后台进程
六、screen命令
screen:连接上一次的会话 软件包(yum -y install screen)
screen -S 会话名 & 创建一个会话
随便做任何事情,然后退出当前终端,再重新登录
screen -list 查看都有哪些会话
There is a screen on:
10526.install_httpd (Detached)
screen -r 10526 回到之前的会话状态
六.输入输出重定向
“>” 输出重定向
“>>” 追加重定向
2> 错误输出重定向
2>> 错误追加重定向
&> 混合重定向,既包含了正确输出,又包含了错误输出
“<” 输入重定向
[root@localhost shell]# cat ip.txt
192.168.10.2
192.168.10.3
192.168.10.4
[root@localhost shell]# wc -l <ip.txt
5
“<< EOF >” 多行输入重定向
[root@localhost ~]# cat <<EOF >/tmp/passwd.txt
> shm:123.com
> yh:123.com
> zs:123.com
>
> EOF
[root@localhost ~]# cat /tmp/passwd.txt
shm:123.com
yh:123.com
zs:123.com
七.排序命令
;分号命令 不论上一条命令是否成功都会执行下一条命令,不具备逻辑判断
&& || 具备逻辑判断
&& 上一条命令是成功的,下一条命令才会执行
|| 上一条命令是失败的,下一条命令才会执行
[root@localhost tmp]# ping c1 10.18.42.1 && echo ‘is up’ || echo ‘is down’
八、shell通配符,元字符
元字符:表示不是本意的字符
“*” : 匹配所有字符
“?” : 匹配任意一个字符
[]:匹配括号中任意一个字符
[abz] 匹配 abc中任意一个字符,[abz]+ 匹配abz三个多个字符
[a-z] 匹配a到z中任意一个字符,[a-z]+ 匹配a~z当中多个字符
[0-9] 匹配0到9中任意一个字符,[0-9]+ 匹配0-9当中多个字符
():在sub shell中执行(子shell) 执行一条命令,不会改变当前环境
{}:集合,一般用于集合创建文件,不同文件间用,逗号隔开
\:转义符号,\ \ 一个转义符号代表一个字节,在脚本中充当可以充当空格使用
在命令行页面充当换行符号使用
\t:代表tab
\n:代表换行
九、 shell 输出颜色
前景色:echo -e "\e[1;3*m \e[0m"
红色:echo -e "\e[1;30m this is ted \e[0m"
绿色:echo -e "\e[1;32m this is green \e[0m"
黄色:echo -e "\e[1;31m this is green \e[0m"
蓝色 34m, 35m 36m 37m
背景色:echo -e "\e[1;4*m \e[0m"