兄弟连linux基础之Shell基础(一)——Shell概述 - Shell的脚本的执行方式

视频参考:https://www.bilibili.com/video/BV1mW411i7Qf?from=search&seid=11812550775556654179

一、Shell概述

1、Shell是什么

Shell是一个命令行解释器,为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
在这里插入图片描述
Shell还是一个功能相当强大的编程语言, 易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。

2、Shell的分类

Bourne Shell:从1979起Unix就开始使用 Bourne Shell,其主文件名为sh。
C Shell:主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名。

  • Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh

Bash: Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell。

3、查看Linux支持的Shell

ly2@DGX:~$ vim /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
~
"/etc/shells" [readonly] 5L, 73C   

二、Shell脚本的执行方式

1、echo输出命令

[root@localhost ~] echo [选项] [输出内容]
(注意:echo输出内容有空格必须加双引号)
选项: -e:支持反斜线控制的字符转换

ly2@DGX:~$ echo "hello world"
hello world
制字符 作用
\ 输出\本身
\a 输出警告音
\b 退格键,也就是向左删除键
\c 取消输出行末的换行符。和“-n”选项一致
\e ESCAPE键
\f 换页符
\n 换行符
\r 回车键
\t 制表符,也就是Tab键
\v 垂直制表符
\0nnn 按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进 制数
\xhh 按照十六进制ASCII码表输出字符。其中hh是两位十六进制数
ly2@DGX:~$ echo "abc"
abc
ly2@DGX:~$ echo -e "ab\bc"
ac
ly2@DGX:~$ echo "ab\bc"
ab\bc
ly2@DGX:~$ echo -e "a\tb\tc\nd\te\tf"
a       b       c
d       e       f
ly2@DGX:~$ echo -e \    ## 按照十六进制ASCII码也同样可以输出
> "\x61\t\x62\t\x63\n\x64\t\x65\t\x66"  
a       b       c
d       e       f
ly2@DGX:~$ echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66"
a       b       c
d       e       f

[root@localhost ~]# echo -e “\e[1;31m abcd \e[0m” # 输出颜色
#30m= 黑色, 31m= 红色, 32m= 绿色, 33m= 黄色
#34m= 蓝色, 35m= 洋红, 36m= 青色, 37m= 白色

  • “\e[1;”:表示开始输出颜色
  • “\e[0m”:表示结束输出颜色
ly2@DGX:~$ echo -e "\e[1;31m abcd \e[0m"
abcd # 为红色

2、第一个脚本

[root@localhost sh]# vim hello.sh
#!/bin/Bash,标注此文件为bash脚本,所有shell文件都必须有

ly2@DGX:~$ vim hello.sh
#!/bin/bash
#The first program
#Author:shell_base
echo "hello world"

3、脚本执行

ly2@DGX:~$ chmod 755 hello.sh    # 赋予执行权限,直接运行
ly2@DGX:~$ ./hello.sh
hello world
ly2@DGX:~$ bash hello.sh  # 通过Bash调用执行脚本,脚本中写成#!/bin/Bash也可以执行
hello world

注意事项:
从win上传文件到Linux,可能会出现格式不匹配现象,例如下图Tetris.sh(win)文件。
在这里插入图片描述
cat -A 文件名:查询文件内容,包括其隐藏字符,可以看出linux回车键识别为“$”。

ly2@DGX:~$ cat -A hello.sh
#!/bin/Bash$
#The first program$
#Author:gsy$
$
echo "hello world"$
$

Tetris.sh文件内容如下:可以看出(win)文件回车键识别为“^M$”。在这里插入图片描述
将文件从win格式转换为Linux格式

ly2@DGX:~$ dos2unix Teris.sh
dos2unix: converting file Tetris.sh toUNIX format...
ly2@DGX:~$ cat -A

在这里插入图片描述
若没有dos2unix安装包,用yum进行安装:

ly2@DGX:~$ dos2unix hello.sh
The program 'dos2unix' is currently not installed. To run 'dos2unix' please  ask your administrator to install the package 'dos2unix'
ly2@DGX:~$ yum -y install dos2unix
You need to be root to perform this command.
发布了18 篇原创文章 · 获赞 0 · 访问量 1742

猜你喜欢

转载自blog.csdn.net/weixin_44159487/article/details/103152358
今日推荐