`
touchinsert
  • 浏览: 1291805 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

shell编程---第一天

 
阅读更多

linux常识:
1。遵循posix开发标准规范,unix也部分遵循了该规范。
2。版本 A.B.C ,A表示内核大幅度的提升 B表示内核重大修改 C轻微的修改了内核2.2.2 2.2.4 2.2.6,
奇数版本为测试版本,偶数版本为稳定版本,所以我们看到的都是偶数版本。目前是:2.6版本。

shell简介:
1。可以驱动磁盘转动的程序叫驱动程序,也叫内核。 对内核公开的接口调用称为系统调用。ApI即函数罢了。
2。脚步:无需编译,可以直接运行的。
3。csh : 系统:/etc/.login 用户:~/.login ~/.cshrc
bash: 系统:/etc/profile 用户:~/.bash_profile .bashrc .bash_login .profile
vi vim: .exrc .vimrc
4。shell编程只适用于小工具小程序,不适合大程序。因为他所执行的每个命令都是一个新的进程。不像c语言,在一个进程里面运行。

shell编程:
1。脚步第一行:#!/bin/bash #! 表示该shell脚本用bash来解释执行。
2。 #表示注释 exit 0 退出脚本 $取变量名 &后台运行 shleep 3 history查看你所做的操作
3。执行脚本:1. chomd +x xx.sh 2. bash xx.sh 3.exec xx.sh(会退出当前shell) 4. source xx.sh

4。比较杂的命令:
1。 cat << end ..........end 指定结束符为end进行输出。
2。指令 2> 文件:错误重定向。 ----a.out >a.txt 2>&1 a.out >& a.txt a.out &> a.t
3。C语言:字符串转换为数值用spfintf(),数值转换为字符串用atoi() atof()
4。():在当前shell下启动一个子shell来执行命令。(pwd) \转义 续行 [ ] ls [a-f].*
ls a.{txt,out}
5。变量的定义:1. x=x 2. declare -r a=100 -i -x ... ${var1}避免歧义
6。read var1 从键盘读取一个数据 man bash
7。环境变量(大写):ostype pwd lang path home seconds shlvl lineno machtype ps1ps2

特殊变量:export a=123 ; b=133 export b;设为系统变量
$@ ,$* 显示所有位置参数 $# 参数个数(除文件名) $$ 显示当前进程的pid号 $? 获取前一个命令的返回状态 0 成功 2 失败。

8。引用:单引号可辨别变量 双引号不可辨别 飘号:把字符当作命令来打====var=$(pwd)
*********
=号左右没有空格 :赋值 =号左右有空格:比较
*******
9。数组定义:abc[1]=1 abc[100]=099..... b=(1 2 3 4 5)
10。运算符号:
${#变量名}:探测变量值的长度。
替换运算符: ${变量名:-值} + = ?
11。字符串处理:
取子串:${str:3:5}
删除字符串(不删除本体):${str#匹配模式} ${str#*cwj} ##全部 % %%从后往前。
替换:${str/abc/ABC} 一次 ${str//abc/ABC} 所有
比较:str==str -n "$str" -z "$str" 不为空 ,为空
12。其他运算符:同c++的运算符一致,多了个 ** 表示求幂。 let declare -i (())
13。bc ==>1000000*1000000 dc 用于计算大的数据。
14。程序控制: test [] 与 if 配合使用 =左右必须要有空格(比较)
*****************:注意:记住使用字符串时,请务必要用 " " 引起来,这样可以避免很多问题的出现。

比较大小表达式: 表达式 1 -xx 表达式2
-eq -ne -gt -ge -lt -le if test "$x" -eq "$y" ; then ; echo "xx" ; fi

15。文件测试:-f文件是否存在 -r 用户是否有读权限 -s 文件大小是否为0 ! 逻辑非 []左右两边必须要有空格,同test。
16。set -o 环境测试,系统中的一些配置。 比如,同名文件是否采取覆盖。 set -o colobber no / off 打开和关闭该选项。

case 语句:case语句注意的是双分号。 ----qu!老是忘记写esac作为结尾
case var in ; yes|YES) ....;; [nN]o)....;; *)....;; esac

17。 *一般情况下是表示:当前目录下的所有文件。
cwj:shell脚本中随处可见“通配符的使用”。很好。呵呵
shell中if case 都是有结束符号的。呵呵
18。for语句:for var in * ; do xxxx; done xxxx;
for ((i=0;i<10;i++)) ; do xxxx ; done xxxx; //echo 回车 echo -n 不回车,同一行显示。


1.if [ ]/test then elif else fi//if语句
2. # ## % %% 删除掉。 :3:4 从3下标开始截取4个数字。 /abc/ABC //a/A :${str#*lala} ${str/a/A} ${str:3:5}
3.for ((i=0;i<10;i++)) do done for var in * do done
4. case var in x) echo ;; y) ;; c) ;; *)
echo "plese inter a Var!"
read inputVar
case "$inputVar" in
"a"|"A") echo "case a" ;;
"b"*) echo "case b" ;;
"c") echo "case c" ;;
*) echo "other" ;;//最后一个;;可以加可以不加
esac
作练习的时候发现的:

1。用#号的时候,我们的通配符要靠前,%号的时候,我们的通配符要靠后。 #*4 ky! #4* bu ky! %4* ky! %*4 bu ky !
str=01234567
echo ${str:2:4}
echo ${str#4*}
echo ${str%4*}

2. a=100 b=200 c=((a+b)):这是错无的,应该这样子:((c=a+b)) 或者 c=$((a+b))

3***********************我们经常这样子作:$((year%4==0&&year%100!=0||year%400==0)) : $((xxx))

-------------我的这些例子在我的资源里面有。呵呵

分享到:
评论

相关推荐

    shell 脚本编程 - v1.11

    前言11第 1 章第 1 章shell 学习第一天shell 学习第一天77入门 8第 2 章第 2 章shell 学习第二天shell 学习第二天10第 3

    Advanced Bash-Scripting Guide <>

    第一部分. 热身 1. 为什么使用shell 编程 2. 带着一个Sha-Bang 出发(Sha-Bang 指的是#!) 2.1. 调用一个脚本 2.2. 初步的练习 第二部分. 基本 3. 特殊字符 4. 变量和参数的介绍 4.1. 变量替换 4.2. 变量赋值 4.3. ...

    Shell脚本专家指南

    他曾是Intel公司的高级管理员,在那些日子里,他总是每周7天、每天24小时不停地工作,他也曾是一个专用于设计工作的大型计算机集群的首席管理员。他现在是Columbia运动服装公司的LinuxRJNIx系统管理员。他喜欢和家人...

    Linux高级bash编程

    第一部分. 热身 1. 为什么使用shell编程 2. 带着一个Sha-Bang出发(Sha-Bang指的是#!) 2.1. 调用一个脚本 2.2. 初步的练习 第二部分. 基本 3. 特殊字符 4. 变量和参数的介绍 4.1. 变量替换 4.2. 变量...

    编程新手真言......

    12.1 第一天:接到一个案子 207 12.2 第二天:需求分析 208 第13章 设计(领域分析与抽象) 210 13.1 原语设计 210 13.2 了解Yake 216 13.3 GVWL1.0开发 222 13.4 范型设计与实作 223 第14章 编码 224 14.1 原语设计...

    mini2440国嵌视频教程+课件+工具+软件+镜像+教程源码下载地址

    -国嵌体验入门班-3-5(Shell编程).avi -国嵌体验入门班-3-6(Qcd功能演示).avi -国嵌体验入门班-3-7(必修实验).avi -国嵌课程2-嵌入式Linux应用开发班 -第1天(编程基础) -国嵌应用班-1-1(GCC程序编译).avi -...

    新版Hadoop视频教程 段海涛老师Hadoop八天完全攻克Hadoop视频教程 Hadoop开发

    第一天 hadoop的基本概念 伪分布式hadoop集群安装 hdfs mapreduce 演示 01-hadoop职位需求状况.avi 02-hadoop课程安排.avi 03-hadoop应用场景.avi 04-hadoop对海量数据处理的解决思路.avi 05-hadoop版本选择和...

    hadoop段海涛老师八天实战视频

    第一天 hadoop的基本概念 伪分布式hadoop集群安装 hdfs mapreduce 演示 01-hadoop职位需求状况.avi 02-hadoop课程安排.avi 03-hadoop应用场景.avi 04-hadoop对海量数据处理的解决思路.avi 05-hadoop版本选择和...

    linux大作业报告

    7、设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。 8、判断当前工作目录下所有的文件类型,如果是目录显示目录名...

    入门学习Linux常用必会60个命令实例详解doc/txt

    hda1中的“1”代表hda的第一个硬盘分区 (partition),hda2代表hda的第二主分区,第一个逻辑分区从hda5开始,依此类推。此外,可以直接检查 /var/log/messages文件,在该文件中可以找到计算机开机后系统已辨认出来的...

    易语言程序免安装版下载

    修改BUG:超级列表框在属性“整行选择”为真时,鼠标单击第一列右面也会导致第一列中的选择框被选中或取消选中。 21. 修改BUG:Sqlite3数据库支持库中“Sqlite数据库.取错误文本()”返回的文本是UTF-8编码(应是GB...

    bssdtk:Bash Shell 软件开发工具包

    也许有一天面向对象编程。 请注意,这是我的脚本工具的第二个化身,并非所有先前的东西都已移植到此工具包中。 我只是还没有接触到那些东西。 当我有时间时,我确实打算引入多线程和其他尚未包含的部分。 然而,像 ...

    典型相关分析matlab实现代码-Python-study:第一个仓库

    简单的说,Python是一个“优雅”、“明确”、“简单”的编程语言。 学习曲线低,非专业人士也能上手 开源系统,拥有强大的生态圈 解释型语言,完美的平台可移植性 支持面向对象和函数式编程 能够通过调用C/C++代码...

    程序员为什么还要刷题-helloworld-with-my-son:和儿子一起学习编程(和python)的日记

    第二版:儿童和其他初学者的计算机编程”(第二版)。 沃伦和卡特是一对父子! (沃伦的妻子和卡特的妈妈帕特里夏是他们写这本书的一个重要原因)。 所以,我们开始关注这本书。 已安装 Python 和 Idle(Python ...

    Linux期末考试(题多 有点难度)

    6.设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。 参考答案: (1)...

    SQL21日自学通

    第一天SQL 简介 17 SQL 简史 17 数据库简史 17 设计数据库的结构21 SQL 总览23 流行的SQL 开发工具 24 SQL 在编程中的应用 27 第二天查询— — SELECT 语句的使用 30 目标 30 背景 30 一般的语法规则 30 你的第一个...

    典型相关分析matlab实现代码-Python:用于Python学习

    简单的说,Python是一个“优雅”、“明确”、“简单”的编程语言。 学习曲线低,非专业人士也能上手 开源系统,拥有强大的生态圈 解释型语言,完美的平台可移植性 支持面向对象和函数式编程 能够通过调用C/C++代码...

    unix实验报告.doc

    运用find命令查找passwd文件 在/目录下查找passwd文件:find / -name passwd 查找一天前所创建的文件:find /home/deno/ -atime +1 查找一天前所访问的文件:find /home/deno/ -ctime +1 查找/home/demo目录下属主...

    foundations-of-data-science:数据科学大一课程

    在接下来的内容中,我为一系列旨在向本科经济学学生教授数据科学的三门可选课程中的第一门课程设计了课程表。数据科学基础继我将数据科学定义为OSEMN(发音为“ awesome”)的实践... 取得资料清理数据探索数据建模...

    毕业设计,课程项目练习,学习C/C++语言自学小项目

    算不上一个项目,几个函数之间的调用,难点就是如何不采用公式计算当天在当年所处的哪一天 2.俄罗斯方块 第一个真正的项目,意义重大!记得是8.8号看到这个源码,心态炸裂,500行代码,20多个函数,心生恐惧连看都看不下去,...

Global site tag (gtag.js) - Google Analytics