一、Shell特性

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]	匹配09中任意一个字符,[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"
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值