PJzhang:shell基础入门的2个疗程-two
Posted landesk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章