PJzhang:shell基础入门的2个疗程-two
猫宁!!!
第6节:重定向
标准输入,标准输出,错误输出
输入重定向符号'<'
输出重定向符号'>'(清空之后再输入),'>>'(当前内容不变,在最后一行追加),'2>'(如果执行错误,将错误内容打印进去),'&>'(无论输出正确错误,全部输出到指定的文件当中)
输入完123,456之后,Ctrl+D,显示2行

cat /etc/passwd

wc -l < /etc/passwd,可以显示文件内容的行数

先是写入并设置变量,然后在读取变量的内容

创建1.txt,内容是一行123,可以实现从文档中读取数据

将变量写入到2.txt文件中

追加字符

将错误信息输入到3.txt的文件中

&>可以将错误的和正确的全部追加到4.txt中,这里是追加,不是覆盖

创建一个文件3.sh,内容如下,生成一个a.sh的文件,内容是echo 'hello bash'


第7节:变量赋值
变量的规则:字母数字下划线,开头不能是数字,而且变量要有具体的含义,因为是给人看的
shell变量是弱类型变量
赋值的等号左右两侧不能出现空格
变量名等于变量值

let为变量赋值,不常用,了解即可
let a=10+20
命令赋予变量,不常用,意义不是很大
l=ls
命令结果赋予变量,用的很多,$()或者两个反引号,一次执行,结果多次利用
letc=$(ls -l /etc)
变量值有空格等特殊字符,可以使用双引号和单引号包括
实践环节

双引号,单引号的使用

第8节:变量引用及作用范围
${变量名}称作对变量的引用,有时大括号可以省略掉

如果在变量名之后添加其余字符,需要使用大括号,否则程序会产生误解

变量赋值,bash是进入子shell,exit是退出子进程,进入父进程


变量赋值,shell脚本读取变量


前两个不行,后面的两个可以实现读取

子进程获取父进程的变量赋值,export实现

unset可以取消变量的赋值

第9节:环境变量、预定义变量和位置变量
环境变量

打印出当前变量的内容,PATH是命令搜索路径

创建文件5.sh,打印hello bash,显示目录占用的磁盘空间

显而易见./表示在根目录之下寻找命令搜索路径,没有root目录
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

在root目录之下也可以执行shell脚本

当前定义的变量,只对当前的终端生效(任意文件夹位置),关闭终端或者打开新的终端是不生效的,
如果在一个目录对某个变量export处理,那么会一直生效

便捷化终端界面

set命令

$?表示判断上一条命令是不是执行成功,例如ifconfig,$$显示当前进程的pid,$0显示当前名称

创建文件6.sh

不同运行方式结果不一样

创建文件7.sh,可以让字符参数按照顺序显示



修改7.sh


处理单一字符参数

如果内容为空则是下划线



可自主判断是不是空的


第10节:环境变量配置文件
常见配置文件,/etc/的都是通用的,~全都在家目录
/etc/profile
/etc/profile.d/
~/.bash_profile
~/.bashrc
/etc/bashrc
系统启动或者终端启动的时候加载的环境变量,可以查看英文介绍的内容
vim /etc/profile,在第一行添加echo /etc/profile

vim /etc/bashrc,最上一行添加echo /etc/bashrc,一旦启动就可以显示

vim ~/.bashrc,最上一行添加echo ~/.bashrc

vim ~/.bash_profile,最上一行添加echo ~/.bash_profile
/etc/profile.d/目录,不同shell类型

切换为root用户,su - root,也可以看出它们执行的先后顺序,su root不能加载所有配置文件,每次增加新的路径变量,source可以及时更新状态

第二个疗程结束。
PJzhang:shell基础入门的2个疗程-two的更多相关文章
- PJzhang:shell基础入门的2个疗程-one
猫宁!!! 在centos7上操作这一切 第1节:什么是shell centos7默认使用shell的bash cat /etc/shells 第2节:linux的启动过程 BIOS(主板,引导介质) ...
- PJzhang:python基础入门的7个疗程-one
猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课-售价29元人民币 https://www.liaoxuefeng.com/wiki/1016959663602400 安全从 ...
- PJzhang:python基础入门的7个疗程-two
猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课-售价29元人民币 https://www.liaoxuefeng.com/wiki/1016959663602400 htt ...
- PJzhang:python基础入门的7个疗程-three
猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课-售价29元人民币 https://www.liaoxuefeng.com/wiki/1016959663602400 第七天 ...
- PJzhang:python基础入门的7个疗程-five
猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课 https://www.liaoxuefeng.com/wiki/1016959663602400 第十三天:代码组织 类是 ...
- PJzhang:python基础入门的7个疗程-six
猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课 https://www.liaoxuefeng.com/wiki/1016959663602400 第16天:开源模块 sy ...
- PJzhang:python基础入门的7个疗程-four
猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课-售价29元人民币 https://www.liaoxuefeng.com/wiki/1016959663602400 第十天 ...
- PJzhang:python基础入门的7个疗程-seven
猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课 https://www.liaoxuefeng.com/wiki/1016959663602400 第19天:开源模块 数据 ...
- Shell基础入门
目录 Shell基础入门 1.什么是Shell? 2.Shell脚本的结构 3.Shell的变量 3.1.自定义环境变量 3.2.普通变量 3.3.位置参数变量 3.4.状态变量 4.条件测试和比较 ...
随机推荐
- json_decode 和 json_encode 区别
json_decode: json字符串转json对象json_encode: json对象转json字符串 json对象: { "id": 68, "order_no& ...
- 基于node.js的websocket 前后端交互小功能
一.node var ws = require("nodejs-websocket"); console.log("开始建立连接...") var server ...
- BZOJ 3060: [Poi2012]Tour de Byteotia 并查集
前 $k$ 个节点形成的结构必定是森林,而 $[k+1,r]$ 之间肯定是都连上,而剩下的一个在 $[1,k],$一个在 $[k+1,r]$ 的节点就能连多少连多少即可. Code: #include ...
- 汇编call jmp理解
CALL 指令在实现转移之前, 要将返回地址存入堆栈的, 以便子程可以通过 ret 指令返回到 CALL 指令下面的指令接着运行; jmp 就没用这些事儿, 直 ...
- 灰度图像--图像分割 霍夫变换(Hough Transform)--直线
学习DIP第50天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://gi ...
- Windows下安装sass和compass失败的解决办法
sass依赖Ruby,所以,首先得先安装个Ruby sass的安装步骤: 在安装的时候,请勾选Add Ruby executables to your PATH这个选项,添加环境变量,不然以后使用编译 ...
- Android NDK加载SD卡中的so
最近公司框架刚移植完成,由于框架程序要调用子程序,每个子程序都是一个so文件,有好几百个,把所有的so和apk打包不现实,及时可以升级维护也很麻烦.所以需要放SD卡中.考虑两种方式 1 放到设备中的 ...
- SQL语句中 NOT IN 子句的“正确打开方式”
在写SQL语句的时候,若where条件是判断用户不在某个集合当中,我们习惯使用 where 列名 not in (集合) 子句,这种写法本身没有问题,但实践过程中却发现很多人在写类似的SQL语句时,写 ...
- 给string定义一个扩展方法
创建一个 static 的类,并且里面的方法也必须是static的,第一个参数是被扩展的对象,必须标注为this,使用时,必须保证namespace using进来了. 实例: using Syste ...
- 搞清楚MySQL事务隔离级别
首先创建一个表 account.创建表的过程略过(由于 InnoDB 存储引擎支持事务,所以将表的存储引擎设置为 InnoDB).表的结构如下: 然后往表中插入两条数据,插入后结果如下: 为了说明问题 ...