Shell的简单介绍(一)

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。命令如下

[[email protected] ~]# 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.显示普通字符串:

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

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

[[email protected] ~]# echo -n hello shell
hello shell[[email protected] ~]#

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

2.显示转义字符

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

同样,双引号也可以省略

3.显示变量

[[email protected] ~]# 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.显示换行

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

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

[[email protected] ~]# echo -e "\0141\t\0142\t\0143\n\0144\t\0145\t\0146"
a       b       c
d       e       f
[root@topcheer ~]#
[[email protected] ~]# echo -e "\\ \a"
[root@topcheer ~]# echo -e "ab\bc"
ac
[root@topcheer ~]#
这个输出会输出\,同时会在系统音响中输出一声提示音 

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

5.显示不换行

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

6.显示结果定向至文件

[[email protected] ~]# echo "It is a test" > myfile
[[email protected] ~]# 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.原样输出字符串,不进行转义或取变量(用单引号)

[[email protected] ~]# echo ‘$name\"‘
$name\"
[[email protected] ~]#

8.显示命令执行结果

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

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

结果将显示当前日期

9.显示颜色

[[email protected] ~]# 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脚本的运行

[[email protected] sh]# chmod 755 hello.sh
#赋予执行权限
[[email protected] sh]# /root/sh/hello.sh
Mr. Shen Chao is the most honest man.
#使用绝对路径运行
[[email protected] 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. 

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

时间: 2024-10-08 01:27:48

Shell的简单介绍(一)的相关文章

shell语法简单介绍

一.基本的语法 1.1.shell文件开头 shell文件必须以以下的行開始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的參数是用来运行该文件的程序.在这个样例中我们使用/bin/sh来运行程序. 当编辑好脚本时,假设要运行该脚本,还必须使其可运行. 要使脚本可运行: 执行chmod +x filename 这样才干用./filename 来执行 1.2 凝视 在进行shell编程时,以#开头的句子表示凝视,直到这一行的结束.我们真诚地建议您在程序中使用凝视. 假设

Linux Shell种类简单介绍

Shell其实是一个有特殊功能的程序,主要是提供用户与内核交互操作的一个接口.它的位置介于用户界面和内核之间,工作流程是接收用户输入的命令并且进行解释(转换为计算机可以理解的机械码),然后将命令送入内核去执行.我们一般通过ssh远程登录系统并且打开shell,也有一些是直接在图形界面上直接打开终端的方式打开shell.后者主要用于ubuntu系统中. 这里主要介绍目前较为流行或者历史上存在的一些shell的种类,目前流行的shell有ash.bash.ksh.csh.zsh等,不同的shell都

shell - 0.简单介绍

Shell-0.介绍1.在那些环境用会用到shell脚本    ·应用环境:执行某些命令需要多项复杂的参数            需要多条命令对系统进行状态查看和维护管理                定期进行数据库的备份            根据特定条件监控系统重要进程和日志            每周对主要系统进行一次巡检            对重要网络设备的配置文件进行安全分析,并给出相应的分析报告            对网络中的设备进行探测,采集相关资产信息,并录入资产信息表 例如

HDFS简单介绍及用C语言訪问HDFS接口操作实践

一.概述 近年来,大数据技术如火如荼,怎样存储海量数据也成了当今的热点和难点问题,而HDFS分布式文件系统作为Hadoop项目的分布式存储基础,也为HBASE提供数据持久化功能,它在大数据项目中有很广泛的应用. Hadoop分布式文件系统(Hadoop Distributed File System.HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.HDFS是Hadoop项目的核心子项目,是一种具有高容错性.高可靠性.高可扩展性.高吞吐量等特征的分布

SharePoint 2010 网站备份还原简单介绍

今天尝试了SharePoint2010网站的备份和还原,从网上搜一些文档看看,然后自己试试,感觉和2007的操作没什么太大的区别,跟大家分享下自己尝试的命令行方式和数据库的方式,2007自己常用的也是这两种方式. 1. 命令行的方式 在服务器端,所有程序 - Microsoft SharePoint 2010 Products - SharePoint 2010 Management Shell 确定 备份网站命令:backup-SPSite http://localhost:10086 -Pa

Grep第二课(简单介绍)

先简单介绍下,下一次介绍正则表达式regular expression(RE) .grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包 括grep.egrep和fgrep.egrep和fgrep的命令只跟grep有很小不同.egrep是grep的扩展,支持更多的re元字符, fgrep

ssh的简单介绍

SSH简单介绍与运用 一.什么是SSH? SSH是一种网络协议,用于计算机之间的加密登录. OpenSSH 提供了以下几个工具: 1. ssh:实现 SSH 协议,用以建立安全连接,它替代了较早的 rlogin 和 Telnet. 2. scp, sftp:利用 SSH 协议远程传输文件,它替代了较早的 rcp. 3. sshd:SSH 服务器守护进程,运行在服务器端. 4. ssh-keygen:用以生成 RSA 或 DSA 密钥对. 5. ssh-agent, ssh-add:管理密钥的工具

【转载】JMeter学习(一)工具简单介绍

JMeter学习(一)工具简单介绍 一.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等.JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能.     同时,JMeter可以帮助你对你的应用程序进行回归测试.

shell中简单的字符串操作

在SHELL编程中,经常要处理一些字符串变量.比如,计算长度啊.截取子串啊.字符替换啊等等,常常要用到awk.expr.sed.tr等命令.下面给大家介绍个简单的字符串处理方法,用不着嵌套复杂的子命令. ${#VALUE}:计算VALUE字符串的字符数量. ${VALUE%.*}或${VALUE%%.*}:删除VALUE字符串中以分隔符"."匹配的左边字符,保留右边字符. ${VALUE#*.}或${VALUE##*.}:删除VALUE字符串中以分隔符"."匹配的右