Part2 Linux Bash Shell变量和重定向
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Part2 Linux Bash Shell变量和重定向相关的知识,希望对你有一定的参考价值。
解释器
理解其他命令,并且命令执行起来
理解语句,并且根据流程控制机制让语句按需执行:
编译器
理解源程序,并且能够将源程序转换为二进制格式,而后让其够执行
程序文件:源代码
解释器:
由解释器负责读取一句执行一句
编译器:
事先,将整个程序转换成二进制格式,而后执行
程序开发语言:
解释型语言:perl,python,ruby,bash 也成为动态语言
编译型语言:C, C++, C# 静态语言
变量:内存空间,可用于存储数据
变量类型:数据存储格式,数据表示范围;
整型,浮点型,字符型,布尔型等
整数:11,4bits,8bits
字符:ASCII,所有基本字符共128个,至少7bits表示所有的基本字符;
浮点:11.00,近似
单精度
双精度
要使用变量,其步骤通常是
1.声明:指定其类型
声明的同事,给其一个初始值,这个叫做变量的初始化;
2.赋值:
int V=3;
bash: 交互式接口,提供编程环境
变量:
弱类型语言:
1.不强制区分变量类型,无论存储什么数据,默认均以字符格式存储;
2.不需要事先声明,用到时,直接使用,直接赋值
定义变量:
[ set] VAR_NAME=Value
引用变量:
${VAR_NAME} echo $NAME
撤销变量:
Unset VAR_NAME
Bash变量类型:
本地变量:只对当前shell进程有效;
局部变量:local VAR_NAME=Value
环境变量:export VAR_NAME=Value,对当前shell及其子shell有效;
位置变量:$1,$2,..
特殊变量:$$,$!,$#,$?
bash变量也可以声明,甚至可以指定类型;declare
Declare -i VAR_NAME:声明一个整型变量
Declare -x VAR_NAME:声明一个环境变量
Declare -a VAR_NAME:声明一个数组
bash查看环境变量:
printenv
查看所有变量:
Set
变量引用:${VAR_NAME}
变量替换:只有在双引号中才能实现。
bash的引号;
双引号:弱引用,可以实现变量替换;
单引号:强引用,不替换,而现实字符串本身;
反引号:命令引用 date+%T
或$(date+%T) date+%F
bash特性
变量
快捷键
命令别名
命令行展开;{}, ~
管道
输入、输出重定向
编程
命令行补齐
路径补全
bash的快捷键;
Ctrl+a;跳至命令行首
Ctrl+e:跳至命令行尾
Ctrl+u:删除命令行首到光标所在光标位置
Ctrl+k;删除当前光标至命令行尾的内容
Ctrl+l; 清屏。相当于clear命令
Ctrl+c 取消或终止
Ctrl+z;将当前命令送至后台
管理:shell,COMMAND1 | COMMAND2
程序:读入数据,执行结果输出
I/O设备,键盘,VGA,显示器
Cat
输入重定向
输出重定向
echo pass123 | passwd --stdin openstack
stdin:standard input,标准输入,默认输入
stdout:standard output,标准输出,默认输出
#!/bin/bash
UserName=Gentoo
useradd -d /users/$UserName $UserName
echo $UserName | passwd --stdin $UserName
tail -n 1 /etc/(passwd,shadow)
编程语言:编译型语言,解释型语言
编译器:gcc
解释器:bash,python,perl
#!解释器程序的路径,如#!/bin/bash
变量类型:弱
ABI:Application Binary Interface
Magic number:魔数
ls:执行入口
面向过程的编程语言,面向对象的编程语言
语言控制结构:
1、顺序执行
2、选择执行
3、循环执行
Linux:
: 覆盖输出
>: 追加输出
set -C 禁止对已经存在的文件使用覆盖重定向;强制覆盖输出,则使用>|
Set +C取消上述功能
2>: 重定向错误输出
ls /varr > /tmp/var3.out 2> /tmp/err.out
&>: 重定向标准输出或错误输出至同一个文件
ls /var &> /tmp/var.out
<: 输入重定向
cat < /etc/fstab
tr ‘a-z‘ ‘A-Z‘ < /etc/fstab
<<: Here Document
cat << END
The first line
The sencond line
END
cat >> /tmp/myfile.exe << EOF
管道:前一个命令的输出,作为后一个命令输入
命令1 | 命令2 | 命令3 …
echo "hello, world" | tr‘a-z’‘A-Z‘
echo "redhat" | passwd --stdin hive
cut -d: -f1 /etc/passwd
cut -d: f3 /etc/passwd | sort -n
cut -d: f3 /etc/passwd | sort -n | tr ‘a-z‘ ‘A-Z‘
ls /var | tr ‘a-z‘ ‘A-Z‘
echo "Hello, World." | tee /tmp/hello.out
wc -l /etc/passwd | cut -d‘ ‘ -f1
ls /usr/bin | wc -l
以上是关于Part2 Linux Bash Shell变量和重定向的主要内容,如果未能解决你的问题,请参考以下文章
[Linux Shell学习系列五]Shell编程基础-Bash的内部变量,位置参数和特殊参数
Linux Shell基础 - Bash变量 - 环境变量 - 位置参数变量 - 预定义变量