码迷,mamicode.com
首页 > 系统相关 > 详细

Shell的简单介绍(一)

时间:2019-11-19 01:12:48      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:abc   cape   fonts   使用   运行   定义   通过   host   zsh   

shell 的分类

Shell 类别 易学性 可移植性 编辑性 快捷性
Bourne Shell (sh) 容易 较差 较差
Korn Shell (ksh) 较难 较好 较好
Bourne Again (Bash) 较好
POSIX Shell (psh) 较难 较好
C Shell (csh) 较难 较好 较好
TC Shell (tcsh)

Shell 的两种主要语法类型有 Bourne 和 C,这两种语法彼此不兼容。 Bourne 家族主要包括 sh、
ksh、 Bash、 psh、 zsh; C 家族主要包括: csh、 tcsh (Bash 和 zsh 在不同程度上支持 csh 的语法)。
我们可以通过/etc/shells 文件来查询 Linux 支持的 Shell。命令如下

[root@topcheer ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
[root@topcheer ~]#

Shell echo命令

在 echo 命令中如果使用了“-e”选项,则可以支持控制字符,如表 所示:

控制字符 作 用
\\ 输出\本身
\a 输出警告音
\b 退格键,也就是向左删除键
\c 取消输出行末的换行符。和“-n”选项一致
\e ESCAPE 键
\f 换页符
\n 换行符
\r 回车键
\t 制表符,也就是 Tab 键
\v 垂直制表符
\0nnn 按照八进制 ASCII 码表输出字符。其中 0 为数字零, nnn 是三位八进制数
\xhh 按照十六进制 ASCII 码表输出字符。其中 hh 是两位十六进制数


Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:

echo string

您可以使用echo实现更复杂的输出格式控制。

1.显示普通字符串:

[root@topcheer ~]# echo "hello shell"
hello shell
[root@topcheer ~]# echo hello shell
hello shell
[root@topcheer ~]#

这里的双引号完全可以省略

[root@topcheer ~]# echo -n hello shell
hello shell[root@topcheer ~]#

#如果加入了“-n”选项,输出内容结束后,不会换行直接显示新行的提示符

2.显示转义字符

[root@topcheer ~]# echo "\"It is a test\""
"It is a test"
[root@topcheer ~]#

 

同样,双引号也可以省略

3.显示变量

[root@topcheer ~]# sh echo2.sh
hello
hello It is a test
[root@topcheer ~]# cat echo2.sh
#!/bin/sh
read name
echo "$name It is a test"
[root@topcheer ~]#

 

4.显示换行

[root@topcheer ~]#  echo -e "a\tb\tc\nd\te\tf"
a       b       c
d       e       f
[root@topcheer ~]#

#我们加入了制表符“\t”和换行符“\n”,所以会按照格式输出

[root@topcheer ~]# echo -e "\0141\t\0142\t\0143\n\0144\t\0145\t\0146"
a       b       c
d       e       f
[root@topcheer ~]#

 

[root@topcheer ~]# echo -e "\\ \a"
[root@topcheer ~]# echo -e "ab\bc"
ac
[root@topcheer ~]#
这个输出会输出\,同时会在系统音响中输出一声提示音 

#这个输出中,在 b 键左侧有“\b”,所以输出时只有 ac

5.显示不换行

[root@topcheer ~]# sh echo1.sh
OK! OJBK
[root@topcheer ~]# cat echo1.sh
#!bin/bash
echo -e "OK! \c"
echo OJBK
[root@topcheer ~]#

 

6.显示结果定向至文件

[root@topcheer ~]# echo "It is a test" > myfile
[root@topcheer ~]# ll
总用量 12
-rw-------. 1 root root 1560 8月  31 18:27 anaconda-ks.cfg
drwxr-xr-x  2 root root   42 10月 28 14:48 docker
-rw-r--r--. 1 root root 1608 8月  31 18:29 initial-setup-ks.cfg
drwxr-xr-x  3 root root   19 11月 15 13:57 logs
-rw-r--r--  1 root root   13 11月 18 23:36 myfile

 

7.原样输出字符串,不进行转义或取变量(用单引号)

[root@topcheer ~]# echo ‘$name\"‘
$name\"
[root@topcheer ~]#

 

8.显示命令执行结果

[root@topcheer ~]# echo `date`
2019年 11月 18日 星期一 23:37:32 CST
[root@topcheer ~]#

 

注意: 这里使用的是反引号 `, 而不是单引号 ‘。

结果将显示当前日期

9.显示颜色

[root@topcheer ~]# echo -e "\e[1;31m abcd \e[0m"
 abcd
[root@topcheer ~]# echo -e "\e[1;42m abcd \e[0m"
 abcd
[root@topcheer ~]#

 

 技术图片

 

 

 第一条命令会把 abcd 按照红色输出。解释下这个命令\e[1 是标准格式,代表颜色输出开始, \e[0m
代表颜色输出结束, 31m 定义字体颜色是红色。 echo 能够识别的颜色如下: 30m=黑色, 31m=红色, 32m=
绿色, 33m=黄色, 34m=蓝色, 35m=洋红, 36m=青色, 37m=白色

第二条命令会给 abcd 加入一个绿色的背景。 echo 可以使用的背景颜色如下: 40m=黑色, 41m=红色,
42m=绿色, 43m=黄色, 44m=蓝色, 45m=洋红, 46m=青色, 47m=白色

Shell脚本的运行

[root@localhost sh]# chmod 755 hello.sh
#赋予执行权限
[root@localhost sh]# /root/sh/hello.sh
Mr. Shen Chao is the most honest man.
#使用绝对路径运行
[root@localhost sh]# ./hello.sh
Mr. Shen Chao is the most honest man.
#因为我们已经在/root/sh 目录当中,所以也可以使用相对路径运行
? 通过 Bash 调用执行脚本
这种方法也非常简单,命令如下:
[root@localhost sh]# bash hello.sh
Mr. Shen Chao is the most honest man. 

 

 

 

Shell的简单介绍(一)

标签:abc   cape   fonts   使用   运行   定义   通过   host   zsh   

原文地址:https://www.cnblogs.com/dalianpai/p/11886477.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!