Shell简介
命令解释器
Bourne Shell: 1979 Unix开始使用,现在著文件名为sh
——sh.ksh.Bash.psh.zsh
C Shell : BSD版本Unix中
——csh.tcsh
Bourne和C不兼容
linux中使用Bash
/etc/shells这个文件保存了当前支持的shell版本
sh #可以查看当前shell版本
exit #退出
#使用shell版本可以切换shell版本
脚本命令
基本输出命令echo
echo hello #没有空格,就不需要引号
echo "hello world" #不可以出现单引号,运算符中详解
echo 'heloo worl!'
echo -e 'a\tb\tc' #-e代表翻译转义字符
控制字符 | 作用 |
---|---|
\ | 输出\本身 |
\a | 输出警告音 |
\b | 向左删除键,back |
\c | 取消输出行末的换行符 |
\e | ESCAPE键 |
\f | 换页符 |
\n | 换行符 |
\r | 回车键 |
\t | 制表符,Tab键 |
\v | 垂直制表符 |
\0nnn | 按照八进制ASCII码输出字符,nnn是三位八进制数 |
\xhh | 按照十六进制ASCII码输出字符,hh是两位十六进制数 |
输出颜色
echo -e "\e[1;31mabcd\e[0m" #\e[ \e[0m此段中的字符按颜色输出,31m就是其颜色
第一个脚本
创建脚本文件
[root@localhost tmp]# vi hello.sh
#!/bin/Bash ##这句话不能省略,也是echo“”中不能使用!的原因。
#这句话表明当前脚本为shell脚本
#The first program
echo -e 'Hello World!'
运行脚本
1、赋予执行权限,直接运行
chmod 755 /tmp/hell.sh
./tmp/hello.sh
2、通过bash调用执行脚本
bash /tmp/hello.sh
注意文件的绝对路径 和 相对路径
此处在bash的环境变量配置中详解
常见问题
dos2unix
[root@localhost tmp]# cat -A hell.sh #可以查看所有字符,包含隐藏字符
将执行之后,将会显示如下文件内容
#!/bin/bash$
$
#shenhongixa$
$
#/bin/bash: data: M-fM-^\M-*M-fM-^IM->M-eM-^HM-0M-eM-^QM-=M-dM-;M-$$
$
echo -e '\e[1;31mHello world!\e[0m'$
在Linux中$代表换行符
在windows中编辑的shell脚本,其换行符在linux下显示为
^M$
bash命令无法识别,需要通过以下命令转化为$
dos2unix hell.sh
若上述命令未安装,在确保联网的状态下,安装命令
yum -y install dos2unix
同理也有unix2dos