Linux学习笔记 (八)Shell概述
一、什么是Shell?
Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动,挂起,停止甚至是编写一些程序。Shell还是一个功能强大的编程语言,易编写,易调试,灵活性强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
二、Shell的分类
1、Bourne Shell:简称:B Shell,从1979年起Unix就开始使用Bourne Shell,B Shell的主文件后缀是.sh,bshell不支持历史记录。主要包括:sh、Bash、psh、zsh。
2、C Shell:C Shell主要在BSD版的Unix系统中使用,其语法和C语言类似而得名。CShell主要包括:csh,tcsh。
3、显示当前系统中所使用的是什么版本的Shell。例如:echo $SHELL
4、显示当前系统中所有可以支持的Shell。例如:cat /etc/shells
5、切换到不同的Shell可以直接使用shell的名称即可。例如:bash、sh等等。exit退出shell。
三、Shell脚本的执行方式
1、echo:表示在控制台输出一句话。如果输出内容包含空格,必须使用双引号;如果 echo中使用了-e选项则可以使用特殊字符。
| 控制字符 | 作用 |
| \a | 输出警告音 |
| \b | 显示退格键 |
| \n | 换行符 |
| \r | 回车键 |
| \t | 制表符。 |
| \v | 垂直制表符 |
| \0nnn | 按照八进制ASCII码输出字符,其中0为数字零,nnn为三位八进制数。例如:echo -e "\0123" 显示大写S |
| \xhh | 按照十六进制ASCII码输出字符,其中hh为两位十六进制数。例如:echo -e "\x61" 显示小写a |
| \e[1;31m \e[0:m |
通过颜色显示输出的字符串。 颜色列表: #30m=黑色 #31m=红色 #32m=绿色 #33m=黄色 #34m蓝色 #35m=洋红 #36m=青色 #37m=白色 例如:echo -e "\e[1;31mhello world\e[0m" 以红色输出hello world。 |
2、定义脚本:
a、创建一个hello.sh的文本文件;
b、然后以#!/bin/bash开头,这里的表示脚本的声明,必须要加上。
c、输出指令。指令中#表示注释的意思。
例:
#!/bin/bash
#My First Program!
echo -e "\e[1;31mhello wolrd\e[0m"
3、执行脚本
a、直接使用bash hello.sh执行脚本,但是这种不方便,优点是不需要赋予脚本执行权限。
b、首先赋予脚本执行权限,然后再执行脚本。执行方便,缺点需要手动赋予执行权限。
chmod hello.sh
./hello.sh
Linux学习笔记 (八)Shell概述的更多相关文章
- Linux学习笔记 -- 初识 Shell
Shell 是什么 Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.Shell既是 ...
- #Linux学习笔记# 自定义shell终端提示符
我使用的Linux发行版是LinuxMint 17.2 Rafaela,默认情况下Terminal中的shell提示包括了用户名.主机名.当前目录(绝对路径)和提示符.这样会导致当进入一个比较深的目录 ...
- Linux学习笔记(17) Shell编程之基础
1. 正则表达式 (1) 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式:通配符用来匹配符合条件的文件名,通配符是完全匹配.ls.find ...
- linux学习笔记之shell
本文参考:shell脚本学习指南 本文阅读前提为:知道shell指令,但不知道如何完成一个自动化的shell脚本. 因为编辑本文时,作者也是一个新手.所以,在一些理论上,可能存在错误.如果存在错误,希 ...
- Linux学习笔记:Shell脚本学习
概念 真正能够控制计算机硬件(CPU.内存.显示器等)的只有操作系统内核(Kernel),图形界面和命令行只是架设在用户和内核之间的一座桥梁. 由于安全.复杂.繁琐等原因,用户不能直接接触内核(也没有 ...
- Linux学习笔记<五>——<Shell部分>
管道命令(pipe) 1.把一个命令的输出作为另一个命令的输入 ls -al /etc | less 2.选取命令:cut和grep cut命令可以将一段消息的某段切出来. -d接分隔符,-f是取出第 ...
- Linux学习笔记(18) Shell编程之流程控制
1. if语句 (1) 单分支if条件语句 格式为: # 注意条件判断式两端的空格if [ 条件判断式 ];then 程序员 fi 或者 if[ 条件判断式 ] then 程序 fi 例:判断分区使用 ...
- Linux学习笔记 -- 为 Shell 传递参数
我们可以在执行 Shell 脚本时,可以向脚本传递参数.脚本内获取参数的格式为:$n.(n 代表一个数字,0为所执行的shell脚本名称,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类 ...
- linux学习(八)Shell中变量的数学运算
目录 常见的运算符 expr命令 @(Shell中变量的数学运算) 常见的运算符 环境变量 说明 + 加 - 减 * 乘 / 除 % 取模 因为Shell中将*作为通配符使用, expr命令 expr ...
- Linux学习笔记:shell
目录 通配符 特殊符号 变量 环境变量 默认变量 shell script case if for until while function 本文更新于2019-08-23. 通配符 *:0个至无穷多 ...
随机推荐
- ie 下input光标位置垂直不居中问题
input输入框用一个背景图模拟,设置height和line-height一样的高度,使里面的输入文字能够居中, 在FF下出现的情况是:点击input时,输入光标其实上跟input的height一样高 ...
- Image.FromStream与Image.FromFile使用区别
将一个图片加载并显示在picturebox上,一般情况下得到预期的结果,然而对于同一个filepath, 若连续两次调用下面的语句系统将会报错(如用户多次选择加载同一张图片使用Image.FromFi ...
- 执行监听器( Execution listener)
相关类: org.activiti.engine.delegate.ExecutionListener org.activiti.engine.delegate.TaskListener org.ac ...
- 分享HTTP Status 404(The requested resource is not available)的几种解决方案解决方法
下面是直接copy的,如果有什么疑问or补充,请不吝指教! 原文地址:http://www.myexception.cn/java-web/1480013.html 这个问题搞了我两天的时间,找了各种 ...
- 【kd-tree】bzoj4066 简单题
同p1176. #include<cstdio> #include<cmath> #include<algorithm> using namespace std; ...
- 【数位dp】hdu3555 Bomb
题意就是找0到n有多少个数中含有49.数据范围接近10^20 DP的状态是2维的dp[len][3]dp[len][0] 代表长度为len不含49的方案数dp[len][1] 代表长度为len不含49 ...
- java web(学习笔记)项目路径问题
最近刚接触java web特别是是关于项目路径这一块很晕,就把自己遇到的一些疑惑和理解写下来. 首先贴上路径,这里用的是eclipse. 其中我们要注意看WebContent目录,这是web程序的根目 ...
- vsftpd修改被动模式数据端口
pasv_enable=YES pasv_min_port=10000 pasv_max_port=20000 我厂只限一个端口段通讯,只能这样改下,否则永远是列出目录失败
- 利用Java位运算符,完成Unsigned转换(无符号)
方案二:利用Java位运算符,完成Unsigned转换. 正常情况下,Java提供的数据类型是有符号signed类型的,可以通过位运算的方式得到它们相对应的无符号值,参见几个方法中的代码: publi ...
- Java下String和List<String>的互相转换
// List转换为String数组 List<String> list = new ArrayList<String>(); list.add("a1") ...