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可以及时更新状态

 

第二个疗程结束。

猜你喜欢

转载自www.cnblogs.com/landesk/p/11619996.html
今日推荐