赞
踩
视频参考:https://www.bilibili.com/video/BV1mW411i7Qf?from=search&seid=11812550775556654179
Shell是一个命令行解释器,为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。

Shell还是一个功能相当强大的编程语言, 易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
Bourne Shell:从1979起Unix就开始使用 Bourne Shell,其主文件名为sh。
C Shell:主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名。
Bash: Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell。
ly2@DGX:~$ vim /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
~
"/etc/shells" [readonly] 5L, 73C [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= 白色
ly2@DGX:~$ echo -e "\e[1;31m abcd \e[0m"
abcd # 为红色[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"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.Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。