`
touchinsert
  • 浏览: 1329858 次
  • 性别: 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

    - **第1章 - Shell学习第一天**:主要介绍Shell脚本的基础知识,包括脚本的基本结构、变量的使用和基本的控制流程。 - **第2章 - Shell学习第二天**:可能涉及更复杂的控制结构,如条件语句(if-else)、循环(for, ...

    shell编程(Linux系统)

    此脚本首先使用`find`命令查找过去一天内被修改过的文件,然后利用反引号将这些文件名传递给`tar`命令,创建名为`lastmod.tar.gz`的压缩文件。 Shell编程是Linux系统管理不可或缺的一部分,掌握了基本的Shell脚本...

    Linux下的shell编程入门.pdf

    从给定的文件信息来看,我们正在探讨的主题是“Linux下的shell编程入门”,这涉及到Linux操作系统中的shell脚本编写基础。下面将详细解析文件中提到的关键知识点。 ### 1. Shell编程简介 Shell编程是在Linux或类...

    【IT十八掌徐培成】Linux第02天-05.if-for-while-参数处理-shell编程.zip

    【IT十八掌徐培成】Linux第02天-05.if-for-while-参数处理-shell编程.zip 这个压缩包文件聚焦于Linux系统中的Shell编程,主要涵盖了三个方面:if语句、for循环、while循环以及参数处理。这些是Shell脚本编程的基础,...

    Linux-Day03-JDK安装与Shell详解-课件与资料.zip

    "Linux-Day03-JDK安装与Shell详解"这部分标题表明了课程的主要内容,涵盖了Linux操作系统的学习,具体到第三天的课程,主要聚焦于Java Development Kit(JDK)的安装以及Shell脚本的深入理解。JDK是Java编程语言的...

    LINUX与UNIX SHELL编程指南

    ### Linux与UNIX Shell编程指南知识点概述 #### 第一部分:Shell **第一章:文件安全与权限** - **1.1 文件** - **定义**:Linux/UNIX系统中,一切皆视为文件,包括目录、设备等。 - **1.2 文件类型** - **...

    shell编程初级到精通2-3章总结

    - `:s/wang/jin`:替换当前行中的第一个 `wang` 为 `jin`。 - `:s/wang/jin/g`:全局替换当前行中的 `wang` 为 `jin`。 - `:1,3s/jin/wang/g`:在第 1 行到第 3 行之间全局替换 `jin` 为 `wang`。 - `:1,$s/wang/jin...

    linux shell 命令, 脚本编程

    #### 第一部分:Shell ##### 第1章:文件安全与权限 **1.1 文件** - **定义**:在Linux系统中,几乎所有东西都被视为文件,包括目录、设备等。 - **用途**:用于存储数据。 **1.2 文件类型** - **普通文件**:...

    SHELL编程题.docx

    ### SHELL编程题知识点解析 #### 1. 打印给定行数的星号 **题目描述**:本题要求根据用户通过命令行输入的一个正整数`n`,来打印一个由星号(`*`)组成的三角形图案。具体来说,第一行打印1个星号,第二行打印2个...

    Linux Shell Programming

    - **第一天上午**:介绍Korn Shell的基本概念、交互式Shell的使用、基本编程语法等。 - **第一天下午**:学习正则表达式、文本处理工具、sed和awk的基础知识。 - **第二天**:重点讲解Korn Shell的高级特性、sed和...

    LINUX与UNIX shell编程学习基础教程.pdf

    ### Linux与UNIX Shell编程基础知识详解 #### 一、文件安全与权限管理 在Linux与UNIX系统中,了解文件的安全性和权限设置是非常重要的。这不仅关乎数据的安全性,也关系到系统的稳定性和性能。 ##### 1. 文件权限...

    Linux基本命令(2)和Shell编程

    ### Linux基本命令(2)和Shell编程 #### 一、常用命令的进一步巩固 ##### 1. 实验目的 进一步熟悉 `find`、`chmod` 等命令的复杂应用形式;熟悉元字符、重定向符、管道操作符“|”的使用方法。 ##### 2. 实验...

    shell程序设计.docx

    本实验旨在帮助学生深入理解和掌握Shell编程的基本概念和技术。 **实验目标** 1. **理解Shell的作用与分类**:Shell主要有Bash、Csh、Ksh、Zsh等多种类型,其中Bash是最常用的一种,具有丰富的命令和功能。 2. **...

    拓思爱诺大数据-第二天Hadoop高级编程

    ### 拓思爱诺大数据-第二天Hadoop高级编程 #### 一、课程目标与背景 本课程旨在帮助学员熟练掌握Hadoop Shell的操作方法,并深入理解Hadoop集群中HDPData文件夹的作用及其重要性。通过本课程的学习,学员将能够...

    shell脚本学习第一天

    以上就是Shell脚本学习的第一天内容,掌握这些基本知识,你就能开始编写简单的Shell脚本来解决日常的系统管理任务。随着技能的提升,你还可以学习更多的高级特性,如条件语句、循环结构、函数定义等,让Shell脚本变...

    IBM AU13(中文版)

    ##### 第一天: AIX介绍与基础使用 - **AIX介绍** - **UNIX简介**:设计目的是为编程人员服务的操作系统,强调其跨平台性、设备独立性文件系统、多用户多任务的支持。 - **UNIX发展历史**:从1960年代的起源到各个...

    Advanced Bash-Scripting Guide <>

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

Global site tag (gtag.js) - Google Analytics