1. 输出重定向 最基本的重定向是将命令的输出发送到一个文件中.在bash shell中用大于号(>) ,格式如下:command > inputfile.例如:将date命令的输出内容,保存到指定的输出文件中. 如果文件已存在,重定向操作符会用新的文件数据覆盖已有文件.这种情况下可以用双大于号(>>) 来追加数据.如下图所示: 2. 输入重定向 输入重定向和输出重定向正好相反.输入重定向是将文件的内容重定向到命令,而非将命令的输出重定向到文件. 输入重定向符号是小于号(<)…
转自:http://my.oschina.net/itblog/blog/204410 1 语法基本介绍1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序.  当编辑好脚本时,如果要执行该脚本,还必须使其可执行.  要使脚本可执行: 编译 chmod +x filename 这样才能用./filename 来运行 1.2 注释  在进行shell编程时,以#开头的…
找到一本很详细的Linux Shell脚本教程,其实里面不光讲了Shell脚本编程,还介绍了系统的各种命令 http://vdisk.weibo.com/s/yVBlEojGMQMpv 本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题.本书内容全面.文字简洁流畅,适合Shell编程人员学习.参考. 目      录 译者序 前言 第一部分   shell 第1章   文件安全与权限 1 1.1   文件 1 1.2   文件…
第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务. Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell. 当一个用户登陆linux 系统后,系统就会为该用户创建一个shell程序. Shell的版本…
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作.在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用.深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一.    Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh).Bour…
第一章    文件安全与权限 文件访问方式:读,写,执行.     针对用户:文件属主,同组用户,其它用户.     文件权限位最前面的字符代表文件类型,常用的如         d 目录:l 符号链接:p 命名管道文件:- 普通文件 ...     用chmod改变文件权限位的设置:         chmod [who] operator [permission] filename         who: u 属主:g 同组:o 其它:         operator:+ 增加权限:-…
if 语句 if 表达式如果条件命令组为真,则执行 then 后的部分.标准形式: if 判断命令,可以有很多个,真假取最后的返回值 then 如果前述为真做什么 [ # 方括号代表可选,别真打进去了! elif 可以再来个判断,如果签名为假继续尝试这里 then 如果前述为真做什么 ] else 如果全都不行做什么 fi # 结束,就是倒写的 if 啦. 现实生活中一般判断只有一个命令,所以你看到的一般是: if ....; then # 你也可以写成 if 之后换行,这样就不用分号了. ..…
Linux 介绍 内核 库: .so 共享对象,windows:dll 动态链接库 应用程序 Linux的基本原则: 1.由目的单一的小程序组成:组合小程序完成复杂任务: 2.一切皆文件: 3.尽量避免捕获用户接口: 4.配置文件保存为纯文本格式: 用户接口 GUI接口: CLI接口: 命令提示符,prompt, bash(shell) #: root $: 普通用户 命令: 命令格式: 命令 选项 参数 选项: 短选项: - 多个选项可以组合:-a -b = -ab 长选项: -- 参数:命令…
知识内容: 1.shell编程预备知识 2.shell变量 3.表达式与运算符 4.分支循环语句 5.函数 一.shell编程预备知识 1.什么是shell编程 shell是与linux交互的基本工具,是一个命令解释器,它的作用是解释执行用户输入的命令及程序等,有两种执行命令的方式,如下所示: 交互式,用户每输入一条命令,shell就解释执行一条 批处理(batch),需要事先编写一个shell脚本,其中包含若干条命令,让shell一次将这些命令执行完 shell脚本及shell编程:当命令或程…
## 环境变量 ## 全局变量 ``` 常见的全局环境变量 PATH 指令的搜索路径 HOME 用户的家目录 LOGNAME 登录名 SHELL 脚本的类型 使用全局环境变量 echo $PATH 自定义全局变量 name='kangbazi' echo $name; 配置系统环境变量 vim /etc/profile export name=1804 source /etc/profile echo $name ``` ### 设置path环境变量 ``` echo $PATH 1.对所有的用…
1. Shell基础介绍 1.1 Shell编程的意义 为什么使用shell编程 节约时间 1.2 显示脚本执行过程 前面有+表示执行过的命令的 前面没有东西,表示输出到屏幕上的内容. [root@CentOS scripts]# sh bak-etc-adv.sh tar: Removing leading `/' from member names [root@CentOS scripts]# sh -x bak-etc-adv.sh ++ hostname -I ++ awk '{prin…
1.什么是Shell Shell是一个命名行解释器,它为用户提供一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编写一些程序. 2.Shell脚本的执行方式 1) 脚本以 #!/bin/bash 开头 2) 脚本需要有可执行权限 3) hello,word! #!/bin/bash echo "hello,world!" 4.执行方式 有执行权限(x权限) 1) 相对路径 ./shell.sh 2) 绝对路径 /root/shell…
1. type [-ta] name 一般情况下,type命令被用于判断另外一个命令是否是内置命令,但是它实际上有更多的用法. 1.1.判断一个名字当前是否是alias.keyword.function.builtin.file或者什么都不是: type ls 的输出是 ls 是 `ls --color=auto' 的别名 type if 的输出是 if 是 shell 关键字 type type 的输出是 type 是 shell 内嵌 type gedit 的输出是 gedit 是 /usr…
一.Linux回顾 因为要学习Hadoop大数据,会用到Linux服务器集群来做,因此有必要回顾一下当年大一所学习的Linux知识 ①Linux系统有7个运行级别(runlevel): 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 运行级别2:多用户状态(没有NFS) 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 运行级别4:系统未使用,保留 运行级别5:X11控制台,登陆后进…
一.概述 这篇介绍shell的变量使用,跟其实语言一样,都有声明变量,使用变量,在shell中变量允许你临时地将信息存储中shell脚本中,以便和脚本的其他命令一起使用. 1.1 环境变量 在前面章节到了linux系统的环境变量,也可以在脚本中访问这些值.下面使用set 命令来查看当前系统的环境变量列表: [root@hsr ~]# set 截图一小部分,如下所示: 使用echo 在环境变量这前加上美元符($)来使用这些变量,如下图所示:  如果使用echo输出的字符串里含有$符号时,要加上返斜…
通常情况下,我们从命令行输入命令每输入一次就能够得到系统的一次响应.一旦需要我们一个接着一个的输入命令而最后才得到结果的时候,这样的做法显然就没有效率.要达到这样的目的,通常我们利用shell程序或者shell脚本来实现. 一.简介 Shell编程有很多类似C语言和其他程序语言的特征,但是又没有编程语言那样复杂.Shell程序就是放在一个文件中的一系列Linux命令和实用程序,在执行的时候,通过Linux一个接着一个地解释和执行每个命令. 下面我们来看一个简单的shell程序: 1.首先建立一个…
二十三. Bash Shell编程:     1.  读取用户变量:     read命令是用于从终端或者文件中读取输入的内建命令,read命令读取整行输入,每行末尾的换行符不被读入.在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY.下面的列表给出了read命令的常用方式: 命令格式 描述 read answer 从标准输入读取输入并赋值给变量answer. read first last 从标准输入读取输入到第一个空格或者回车,将输入的第一个单词放到变量fi…
正则表达式:-------------------------------------------------------------------------------------------^        行起始                ^tux        匹配以tux起始的行$        行结尾                tux$        匹配以tux结尾的行.        匹配任意字符            Hack.        匹配Hack1.Hacki…
深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一. 从第一行开始 我们可以使用任意一种文字编辑器编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bin/bash 此行会指引操作系统使用接下来指定的程序运行此文件. 有些人使用 #!/bin/sh 来让 sh 执行文件,这表示任何支持 POSIX shell 命令语言的 sh程序.为了用上 bash 拓展语法功能,我们就不这么用了. 如果你使用别的脚本,例如 /bin/tcsh,照着样子加个 #!…
一概述 前面19章里已经掌握了linux系统和命令行的基础知识,从本章开始继续学习shell脚本的基础知识.在大量编辑shell脚本前,先来学习下一些基本概念. 1.1    使用多个命令 Shell可以让多个命令串起来,一次执行完成,可以把它们放在同一行中,用分号隔开,如下所示: 上面就是一个简单的脚本了,用到了两个bash shell命令,但每次运行之前,都必须在命令提示符下输入整个命令.如果将命令组合成一个简单的文本文件,需要时运行这个文本文件就行了. 1.2    创建shell 脚本文…
shell编程正則表達式: 1:元字符   [ ]  .   *  ? + ( )  |  {  }  ^  $ 2 : [a-z0-9]  表示匹配随意数字和字母的一个 3 :  [^a-z]     匹配除了字母的随意一个 4 :  ab+c      +表示匹配一个或多个+号前面的字符 5 :   ab*c       *表示匹配没有或多个*号前面的字符 6 :   ab? c      ?表示匹配一个?号前面的字符 7 :   (ab){2}c   表示匹配两个ab字符的字符. 8 : …
第一个,除了if语句之外,Shell Script中也有类似C语言中多分支结构的case语句,它的语法是: case var in pattern 1 ) - ;; pattern 2 ) - ;; *) - ;; esac 我们再就下面一个例子,看看case语句的用法. while getopts vc: OPTION do case $OPTION in c) COPIES=$OPTARG ehco "$COPIES";; v) echo "suyang";;…
一.概述 在上一篇里讲到了shell脚本,shell按照命令在脚本中出现的顺序依次进行处理,对于顺序操作已经足够了,但许多程序要求对shell脚本中的命令加入一些逻辑流程控制,这样的命令通常叫做 结构化命令. 1.1 使用if - then语句 --最基本的结构化就是if -then语句,格式如下: if command then commands fi 在其他编程语言中,if是一个等式,值结果为ture或false,但在bash shell的if语句并不是这样.在bash shell的if语句…
shift运行后,$#随之减少:如果需要知道命令行中输入的最后一个参数(通常是一个文件名),可以有两种选择:使用命令 eval echo \$$#;使用shift命令:shift 'expr $# - 2'. getopts 选项字符串 名称 [参数表]每次使用时,getopts 都会把下一个选项放在shell变量名称中(如果名称不存在就初始化它),并把下一个要处理的参数的下标放在变量 OPTIND 中.如果某个选项需要参数,getopts 就把该参数放在变量 OPTARG 中.Shell不会自…
linux 提供了一个专门的变量$?来保存上个已执行命令的状态码 linux 的错误状态退出状态码没有什么标准可遵循,但有一些参考 状态码 描述 0 命令成功结束 1 一般性未知错误 2 不适合的shell 命令 123 命令不可执行 127 没找到命令 128 无效退出参数 128+x 与linux信号x相关的严重错误 130 通过ctrl+C终止的命令 255 正常范围之内的退出状态码…
在Bash Shell中,流程控制命令有2大类:“条件”.“循环”.属于“条件”的有:if.case:属于“循环”的有:for.while.until:命令 select 既属于“条件”,也属于“循环”.不管是哪一种,均需进行条件测试,再根据测试结果,决定程序流程进行的方向. 以下逐一说明这些命令的用法. 第一节:命令的结束状态 Bash Shell Script 可由许多命令组成.每一个命令执行后,都会传回一个结束状态值,如果执行成功,传回0,如果执行失败,则传回非0值.执行失败,也分成许多状…
bash的基本特性(3) 1.提供了编程环境 程序编程风格: 过程式:以指令为中心,数据服务于指令: 对象式:以数据为中心,指令服务于数据: shell程序:提供了编程能力,解释执行:过程式.解释执行: 过程式编程: 顺序执行: 循环执行: 选择执行: shell脚本:文本文件 shebang: #!/bin/bash #!/usr/bin/python #!/usr/bin/perl 运行脚本: 1.给予执行权限,通过具体的文件路径指定文件执行: 2.直接运行解释器,将脚本作为解释器程序的参数…
Ctrl + Alt + Tvim文本编辑器:i(插入模式),v(可视模式),Esc(普通模式),:w(保存),:r(打开),:q(退出)gvim 文本编辑器vim的升级版gedit 更常用的文本编辑器 gcc file1.c 编译file1.c文件./a.out  显示结果 pwd 查看当前路径cd/ 切换到根目录cd 切换到用户的主目录cd /bin 切换到根目录下的bin子目录cd bin 切换到当前坐在目录下的bin子目录cd  ../.. 切换到上级目录的父目录sudo -i 切换到r…
一.概述 接着上篇讲的结构化命令,最后讲到了test命令的另一种写法 if [ condition ],它的语法格式如下: --格式如下: if [ condition ] then commands fi 第一个方括号之后和第二个方括号之前必须加上一个空格,否则就会报错.test命令可以判断三类条件:(1)数值比较(2)字符串比较(3)文件比较. 1.1  数值比较 比较 描述 例如 n1 -gq n2 检查n1是否与n2相等 N1 ==N2 n1 -ge n2 检查n1是否大于或等于n2 N…
Ctrl + Alt + T 打开终端, $代表普通用户,#代表超级用户(root user)如:    xiangqi@xiangqi ~$           root@xiangqi ~# echo打印,后可接无引号.单引号.爽引号,方法基本类似,特殊的地方在于:(1)希望打印!时,双引号中需要加转义字符 \ ,如 echo " Hello \!" (在shell中貌似不存在这个问题)(2)用单引号时,比如echo '$var',这时没法对单引号中的变量求值,仅仅打印$var另一…