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

原文地址:http://blog.51cto.com/yq1986/2337224

时间: 2024-11-02 03:48:43

Part2 Linux Bash Shell变量和重定向的相关文章

linux中shell变量$#,[email&#160;protected],$0,$1,$2的含义解释

摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,[email protected],$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表.如"$*"用「"」括起来的情况.以&qu

&lt;LINUX &gt;bash shell 入门 --linux学习笔记

首先说下我个人对于shell的理解,我觉得shell是一种通过各种控制语句将linux命令进行集合实现批处理的一种脚本语言. shell编程入门其实很简单,语法知识并不多,但是高级shell编程就很难,因为shell是用户和linux之间的桥梁,要编写高质量的shell脚本,就需要用户对linux有很全面的认识. 这里我们只分析shell脚本的语法知识,如想透彻的学习linux还需多努力. shell结构       1.#!指定执行脚本的shell 2.#注释行 3.命令和控制结构 创建she

Linux中shell变量$0,$?等含义

linux中shell变量$#,[email protected],$0,$1,$2的基本含义: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表.如"$*"用「"」括起来的情况.以"$1 $2 … $n"的形式输出所有参数. [email protected] 所有参数列表.如"

【Shell】linux中shell变量$#,[email&#160;protected],$0,$1,$2的含义解释 &amp;&amp; set 关键字使用

linux中shell变量$#,[email protected],$0,$1,$2的含义解释 摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,[email protected],$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定

linux bash shell中for的用法and示例

关于linux bash shell中的for语句 在linux中shell是必不可少的一部分,但是在bash shell中有while,for,until等循环命令,今天就介绍一下关于for的一些用法.文中任何错误希望大佬们一一指出,不胜感激. bash shell中提供了for命令,用于创建通过一系列值重复的循环,每次重复使用系列中的一个值执行一个定义的命令集. for语句的基本格式如下: for---in list do commands done 在参数list中提供一系列用于迭代(上一

【转】linux中shell变量$#,[email&#160;protected],$0,$1,$2的含义解释

原文网址:http://www.cnblogs.com/fhefh/archive/2011/04/15/2017613.html linux中shell变量$#,[email protected],$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表.如"$*"用「"」括起来的情况

linux中shell变量$#,[email&#160;protected],$0,$1,$2的含义

#!/bin/bash #Created by ley on 2014-11-14 #Testing the Paramters echo  "The compleate list is %s\n" "$$" echo  "The compleate list is %s\n" "$!" echo  "The compleate list is %s\n" "$?" echo  &quo

浅谈linux中shell变量$#,[email&#160;protected],$0,$1,$2,$?的含义解释

浅谈linux中shell变量$#,[email protected],$0,$1,$2,$?的含义解释 下面小编就为大家带来一篇浅谈linux中shell变量$#,[email protected],$0,$1,$2的含义解释.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,[email protected],$

linux的shell变量之美元符号

linux中shell变量$#,[email protected],$0,$1,$2的含义解释 摘抄自:ABS_GUIDE linux中shell变量$#,[email protected],$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表.如"$*"用「"」括起来的情况.以&q