交互模式
--当Shell收到用户输入命令后,就开始执行这项命令,并把结果显示到屏幕上,结束后Shell又会显示系统提示符,等待用户输入下一条命令。
后台运行
--后台运行的符号为"&",在命令后面加上"&"符号,就可以将程序放到后台运行。例如:"top&"
--在后台执行的程序怎么使它恢复到前台来运行呢?执行fg命令,注意当有多个程序在后台的时候,fg只能将最近打开的程序恢复到前台。
--程序已经在前台运行,执行ctrl+z就可以放入后台。
--如果有多个进程在后台运行,执行jobs命令,能够列出所有在后台执行的进程,那个中括号([])里面的数字就是jobs的代号,
通过fg %number 就可以恢复指定的后台进程,
注意:命令行"fg 1"和命令行"fg %1"都可以将编号为1的shell程序恢复到前台 。
输入输出重定向
--通过重定向符">" "<"将标准输入输出重定向
--例如:"ls > a.txt"将ls命令行的结果重定向到a.txt文件中。
管道
--通过管道符号"|"完成一系列命令的顺序处理。
--例如:"ls -l |grep s" 将"ls -l"输出的结果作为命令"grep s"的输入
--管道的输入,如果是C语言程序,那么管道会以C语言函数的printf()的输出作为管道下一个命令的输入
通配符
--通配符的作用是在处理文件的时候用通配符模糊匹配一个或多个字符
环境变量
--Shell是个庞大的程序,为了使用工作环境符合用户的习惯或者应用的需要,可以让用户自行设置Shell使用环境。
Shell Script(Shell 脚本)
--Shell最重要也是最负责的就是Shell Script 。Shell除了解释命令以外还有重要的功能就是程序语言,
可以通过Shell Script进行程序设计,完成更加复杂的功能。
Shell变量
变量分为预定义变量和环境变量
--预定义变量:通常是用户自行定义的特殊用户变量,有效返回限于定义变量的Script中。
--环境变量:通常用来定义系统重要的设置,主要功能为提供程序执行时的参考
定义预定义变量的方法
语法:varName=value
在Shell中定义变量很简单,不需要定义变量类型,只需要用"="给变量赋值即可。
变量名称与等号之间不能有空格,不要以";"结尾,否则Shell会认为是错误的命令
使用变量的值,只需要在变量前加"$",一般用于将变量输出为字符串,在shell中赋值操作仍然可以使用varName=value,Shell中的变量都是全局变量,不属于单个函数或者语句。
set:查看那所有已经设置的变量
unset varName:删除设置的变量
设置环境变量使用export命令
语法:export varName=value
env:显示当前环境变量
export -n var Name :删除设置的环境变量
环境变量的作用域
--在.bash_profile中定义的变量在用户登录后一直有效。
--在普通脚本文件中定义的变量只在脚本内有效。
几个常用的环境变量
PWD 显示当前路径
UID 用户ID
BASH_VERSION Bash的版本
HOSTTYPE 显示计算机平台
OSTYPE 显示操作系统种类
PATH 系统命令,文件查找路径
HOME 用户的home目录
bash设置文件
--/etc/profile
这是系统的Shell设置文件,用户可以将系统做重要的环境变量定义到这个文件中。
每次登陆的时候Bash都会读这个文件
--~/.bash_profile
是用户个人的Bash设置文件,用户登录的时候bash就会读取该用户目录下的.bash_file文件
--~/.bashrc
每次启动Shell时候都会读取这个文件
Shell文件中,
以"#"开头的行代表注释,但是第一行的"#!"表示指定一个解析Shell命令的程序
字符串前面加"$"代表他是一个变量的值,不可以做赋值用。
--如果"$"后面是数字,表示是第几个参数(参数可以是用户输入,或者通过管道获取,或者函数传参)
--$1代表第一个参数,$2代表第二个参数,$0代表命令本身
参数详细说明
$i 代表第i个参数
$# 代表参数个数
$* 代表所有参数
$? 上一个命令的返回值
关键字echo后面代码是执行语句,也会当字符串处理,除非使用``两个反单引号括起来。
shell语法中,变量间的赋值语句必须这么写 a=$b; 错误写法 a=b;
shell语法中,只有变量的赋值语句中间不可以加空格,其他的语句中间必须加空格

shift语句
$i只能提供0到9这10个数据参数,那么超过10个怎么办呢?
shift能使引用数移位,如果就可以将引用过的引数移掉,把位置留给下一个引数。

Linux Shell编程一的更多相关文章

  1. Linux上天之路(十六)之Shell编程一

    用户在命令行输入命令后,一般情况下Shell会fork并exec该命令,但是Shell的内建命令例外,执行内建命令相当于调用Shell进程中的一个函数,并不创建新的进程.以前学过的cd.alias.u ...

  2. Linux 网络编程一(TCP/IP协议)

    以前我们讲过进程间通信,通过进程间通信可以实现同一台计算机上不同的进程之间通信. 通过网络编程可以实现在网络中的各个计算机之间的通信. 进程能够使用套接字实现和其他进程或者其他计算机通信. 同样的套接 ...

  3. Linux网络编程一、tcp三次握手,四次挥手

    一.TCP报文格式 (图片来源网络) SYN:请求建立连接标志位 ACK:应答标志位 FIN:断开连接标志位 二.三次握手,数据传输,四次挥手 (流程图,图片来源于网络) (tcp状态转换图,图片来源 ...

  4. shell编程之awk命令详解

    shell编程之awk命令详解 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; out ...

  5. 03 shell编程之case语句与函数

    本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正 Shell编程之case语句与函数 学习目标: 掌握case语句编程 掌握shell函数的使用 目录结构: Case语句 Case语句的作用 ...

  6. linux shell 的前世今生和流行BASH SHELL的特点

    前言 shell作为用户和操作系统内核交互的接口,也不断的在发展迭代.shell的发展也离不开unix/linux 系统的发展.并且在开源社区对shell的发展也起到了推动作用. 内容思维导图简介 发 ...

  7. linux shell学习之shell流程控制

    在linux shell编程中,流程控制结构与语句,也算是shell脚本中的重点了,不了解的朋友,跟随脚本小编一起来学习下吧. linux控制流结构学习. 一,shell控制流结构 1.控制结构   ...

  8. linux shell 中的sleep命令

    开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...

  9. Linux shell脚本编程(三)

    Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...

随机推荐

  1. Python基础(7)--函数

    本篇文章将介绍如何将语句组织成函数,以及参数概念以及在程序中的用途 本文地址:http://www.cnblogs.com/archimedes/p/python-function.html,转载请注 ...

  2. Eclipse环境下配置spket中ExtJS5.0提示

    使用eclipse编写extjs时,一定会用到spket这个插件,spket可以单独当作ide使用,也可以当作eclipse插件使用,我这里是当作eclipse的插件使用的,下面来一步步图解说明如何配 ...

  3. android中实现view可以滑动的六种方法

    在android开发中,经常会遇到一个view需要它能够支持滑动的需求.今天就来总结实现其滑动的六种方法.其实每一种方法的 思路都是一样的,即:监听手势触摸的坐标来实现view坐标的变化,从而实现vi ...

  4. tair源码分析——leveldb新增的CompactRangeSelfLevel过程

    tair是一个分布式KV存储引擎,当新增机器或者有机器down掉的时候,tair的dataserver会根据ConfigServer生成的新的对照表进行数据的迁移和清理.在数据清理的过程中就用到了在t ...

  5. 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token

    一.access_token简介 为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台 开放了许多接口,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等, 开 ...

  6. sql server 之函数小技巧 && 整数类型为空是用空字符串替代实现

    1.判空函数 说明:使用指定的替换值替换 NULL. 语法:ISNULL ( check_expression , replacement_value ) 参数: check_expression:将 ...

  7. Culcurse

    一.简介 如果你是一个享受Linux终端的系统管理员,但同样需要一种方法来安排每天最重要的任务.约会和会议,你会发现calcurse是一个很有用的工具.calcurse包含了日历.一个待办事项管理.一 ...

  8. How to use python remove the '^M' when copy words from Windows to Linux

    今天帮同事用Python写了一个小工具,实现了在linux下批量文件名和去掉windows 文件到linux过程中产生^M的脚本,代码如下: !/opt/exptools/bin/python imp ...

  9. 备忘:文本编辑器(z.B. Sublime Text 2)策略,git策略

    1.以Sublime Text 2 为例: 新建一个test.py文件,敲完例程 代码 之后,再另存为比如 if.py, list_tuple.py云云 而test.py可以一直用来编辑 2.git ...

  10. mac下 ssh免密码登陆设置

    由于mac os 是基于unix的操作系统终端和linux非常类似,所以不用借助类似于windows下的putty 和CRT工具即可远程登陆linux服务器,只需简单地3步即可免密码ssh远程. 1 ...