shell export path_学习Shell编程
目录
1 什么是Shell
2 Linux的启动过程
3 怎样编写一个Shell脚本
4 Shell脚本的执行方式
5 内建命令和外部命令的区别
6 管道和重定向
7 变量赋值
8 环境变量配置文件
1 什么是Shell
Shell是命令解释器,用于解释用户对操作系统的操作
2 Linux的启动过程
BIOS-MBR-BootLoader(grub)-kernel-systemd-系统初始化-Shell
3 怎样编写一个Shell脚本
- UNIX的哲学:一条命令只做一件事
- 为了组合命令和多次执行,使用脚本文件来保存需要执行的命令
- 赋予该文件执行权限(chmod u+rx filename)
文件名:2.sh
#!/bin/bash# demo 2cd /tmp
pwd
4 Shell脚本的执行方式
执行命令共四种
(1) bash ./filename.sh
(2)./filename.sh
这两种方式,Shell脚本产生一个新的bash子进程,脚本执行过程中,是子进程切换到新的目录,当子进程执行完毕后,回到父进程,当前目录不会发生变化。
执行命令
(3)source ./filename.sh
(4). filename.sh
这两种方式,Shell脚本不会产生新的子进程,脚本执行过程中,直接在父进程中进行操作。所以当前目录发生变化。
5 内建命令和外部命令的区别
内建命令不需要创建子进程
内建命令对当前Shell生效
6 管道和重定向
管道与管道符
- 管道和信号一样,也是进程通信的方式之一
- 匿名管道(管道符)是Shell编程经常用到的通信工具
- 管道符是“|”,将前一个命令执行的结果传递给后面的命令
ps | cat
echo 123 | ps
重定向符号
一个进程默认会打开标准输入、标准输出、错误输出三个文件描述符
输入重定向符号“<”
read var < /path/to/a/file
输出重定向符号“>”“>>”“2>”“&>”
echo $var_2 > a.txt
把变量var_2的值输出到a.txt,会覆盖a.txt原有内容。
echo $var_3 >> a.txt
把变量var_3的值追加到a.txt,不会覆盖a.txt原有内容。
如果希望把错误信息保存到文件,可以使用“2>”“&>”
nocmd 2> b.txt
把错误信息保存到b.txt中,查看b.txt文件,即显示错误信息。
nocmd &> c.txt
把所有的输出结果(正确和错误)都保存下来。
输入和输出重定向组合使用
在3.sh中新建/home/zopen/test/a.sh,并把echo "hello bash."写入a.sh中
7 变量赋值
变量的定义
变量名的命名规则
(1)字母、数字、下划线
(2)不以数字开头
变量的赋值
为变量赋值的过程,称为变量替换
变量名=变量值,比如:a=123
使用let为变量赋值,比如:let a=10+20
将命令赋值给变量,比如:l=ls
将命令结果赋值给变量,使用$()或者'',比如:letc=$(ls -l /etc)
变量值有空格等特殊字符可以包含在""或''中
变量的引用
- ${变量名}称作对变量的引用
- echo ${变量名}查看变量的值
- ${变量名}在部分情况下可以省略为 $变量名
变量的作用范围
- 变量的默认作用范围
- 变量的导出 export
- 变量的删除 unset
export可以把变量从子Shell传递给父Shell
如果想删除变量,则使用:unset 变量名
8 环境变量配置文件
配置文件
- /etc/profile
- /etc/profile.d/
- ~/.bash_profile
- ~/.bashrc
- /etc/bashrc
带etc的是系统层次,所有用户共同使用的环境变量。
非etc的是特定用户使用的环境变量。
shell export path_学习Shell编程相关推荐
- linux shell概述,Linux学习 -- Shell基础 -- 概述
Shell是什么? 命令解释器 编程语言 Linux支持的Shell类型 cat /etc/shells 主要学习 bash 脚本执行方式 echo echo -e 单引号 -- 原始字符串 双引号 ...
- Linux shell的简单学习
Linux shell的简单学习 shell script 其实就是纯文本档,我们可以编辑这个档案,然后讥这个档案来帮我们一次执行多个指令, 戒者是刟用一些运算不逡辑刞断来帮我们达成某些功能. Lin ...
- 今天开始学习shell编程!!!
已经入职一个月了. 经过这一个月重复的工作每天都是做一些环境配置的事. 对环境配置已经很熟练了.也不需要再通过每一步的安装来学习新的知识了. 所以我想写一个shell脚本让程序自己安装. 昨天晚上都凌 ...
- 零基础学习Shell编程
一:起因 (0)也许由于一时的冲动使得你开始关注并学习shell编程:亦许由于是"道听途说"shell的威力很大:亦许由于shell编程的魅力:亦许由于作为一个coder的偏好:亦 ...
- (1)Shell 编程学习 Shell是什么?Shell的浅显原理 为什么要学Shell 及其第一个Shell脚本 CTF角度学习Shell
最近刷CTF题目的时候经常要用到Shell语言,但是自己并没有系统的学习,所以最近花了点时间学习一下,所以重新来梳理一下.对于稍微有一点编程语言基础的同学,能上手Shell其实不需要半小时(甚至更短) ...
- (2)shell编程学习 Shell中的变量(预设变量表)及变量定义与特殊变量 (脚本小子的进阶之路)
这里尽量以较简略的篇幅讲解,如果之前有Python PHP语言基础的话,学习应该非常快.当然文章篇幅有限,只能讲一些主要的地方,一些偏的知识可能不讲. 目录 变量 局部变量 环境变量 自定义环境变量 ...
- Linux shell脚本基础学习
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...
- Linux shell脚本基础学习详细介绍(完整版)一
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...
- Linux shell脚本基础学习详细介绍(完整版)
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...
- 详细介绍Linux shell脚本基础学习(一)
2019独角兽企业重金招聘Python工程师标准>>> Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础 ...
最新文章
- 大数据可视化技术面临的挑战及应对措施
- C# 类中继承接口的属性
- 实现AJAX的基本步骤
- java内存分配空间大小,JVM内存模型及内存分配过程
- 地铁 java_怎么用Java编写一个地铁售票机的程序?
- Windows 2000安装和配置RIS服务
- 【福利】BAT架构师分享最全Java架构师学习技能图谱:包含Java编程+网络+设计模式+数据库+分布式等
- turbo c 2.0 官方下载_iMyFone MintPDF英文版官方下载2.0.10
- java copyfile失败_如何修复CopyFile()错误5 - 访问被拒绝错误
- C# Wke使用例子 (KyozyWke)
- Win7系统自带 计算器 详细使用方法
- mysql 保存富文本的类型_富文本编辑器内容在mysql数据库以什么类型保..._网络编辑_帮考网...
- CC1310直接操作寄存器编程
- 实验四 201421440038 徐凤娇
- OA(二)编写基本的CURD
- 基于有道翻译的英翻中微信小程序
- nats streaming订阅
- 三、Redis在SpringBoot中使用案例
- UINO优锘ThingJS-X让数字孪生技术零门槛入门
- C++面向对象程序设计习题1:分数相加
热门文章
- LINUX进程内存占用查看
- 116. cURL 简介(2)
- info index.php,真 · nginx配置php文件解析(PATH_INFO支持与index.php隐藏)
- 【转】linux kernel 网络协议栈之GRO(Generic receive offload)
- WPF之HierarchicalDataTemplate(转)
- 【转】腾讯云-解决Winscp permission denied的问题
- Elasticsearch报错:NodeDisconnectedException[[][IP:9300][cluster:monitor/nodes/liveness] disc
- 带标签的 break 和 continue (Java)
- VirtualBox - 虚拟机下主机与虚拟机、虚拟机与虚拟机之间通信配置
- 2011-9-11 凌晨00:46