- Chen
-
一、学习路线图(点击图片即可放大,可清晰观看)
二、软件测试视频第一阶段-前置基础知识
1、学习目标:
可掌握的核心能力:
1. 熟悉计算机相关概念;
2. 掌握基础的测试理论;
3. 熟练掌握HTML常用标签和语法规范;
4. 掌握使用CSS定义网页样式;
5. 掌握js的基本用法;
2、知识点:
1)计算机基础
计算机组成部分、操作系统分类、B/S和C/S架构、常用DOS命令、服务器域名
2)测试理论
软件测试的目的、软件测试定义、软件测试原则、产品质量模型、测试基本流程
3)HTML基础
HTML基础语法、标签属性、图片标签、超链接、锚点、表单
4)CSS基础
CSS基础语法、CSS四类选择器、常用文字属性、行高属性、边框、盒子模型、内外边距
5)JS基础
JS基础语法、JS引入方式
三、软件测试视频篇第二阶段-linux和数据库
1、学习目标:
可掌握的核心能力:
1. 掌握Linux操作系统按照和配置;
2. 熟练掌握Linux常用命令;
3. 掌握数据库增删改查操作;
4. 熟悉数据库索引、视图、事务、常见函数等高级功能;
5. 掌握Redis的string类型、hash类型、set类型、list类型等基本类型和操作;
2、知识点:
1)LINUX(熟悉)
操作系统介绍、操作系统发展历史、CentOS图形界面、文件和目录、常用LINUX命令使用、vim文本编辑器的使用
2)数据库介绍(熟悉)
数据库基本概念、关系型数据库介绍、MySQL安装与使用、Navicat使用
3)SQL语言(重点)
数据表操作、数据操作-增删改查、条件查询、排序、聚合函数、分组、分页、连接查询、自关联、子查询、子查询演练
4)数据库高级功能(了解)
数据库设计、命令行操作数据库、函数、存储过程、视图、事务、索引、外键、用户密码
5)redis数据库功能(掌握)
掌握Redis的string类型、hash类型、set类型、list类型等基本类型和操作;
四、软件测试视频篇第三阶段-测试基础
1、学习目标:
可掌握的核心能力:
1. 掌握测试的基本概念和测试常见分类;
2. 熟练掌握黑盒测试用例设计方法,进行功能测试用例设计;
3. 熟练掌握缺陷报告的编写;
4. 熟悉测试管理工具禅道和JIRA的使用
5. 掌握项目测试流程;
6. 掌握Web项目功能测试分析和用例编写;
7. 熟悉测试计划,测试方案,测试报告的核心内容
8. 掌握功能测试与数据库的关系
9. 掌握Fiddler工具的使用
2、知识点:
1)软件测试理论
软件测试的分类,软件开发模型和测试模型,软件的质量模型,测试用例的定义和要素
2)测试用例设计
等价类方法、边界值方法、因果图、判定表、状态迁移法、正交、场景
3)缺陷管理
缺陷定义、缺陷的判定标准、缺陷报告、缺陷跟踪流程
4)Web项目实战
搭建项目的测试环境,如何快速熟悉项目,项目的测试流程,测试计划和方案,功能测试分析,状态迁移法的使用,流程测试分析,非功能测试分析,测试报告编写,Fiddler抓包
5)App项目实战
6)测试管理工具
禅道的使用,JIRA的使用
五、软件测试视频篇第四阶段-编程+数据结构
1、学习目标:
可掌握的核心能力:
1. 掌握Python基础语法, 具备基础的编程能力;
2. 建立编程思维以及面向对象程序设计思想。
2、知识点:
1)Python开发环境
Python开发环境的搭建、Pycharm使用
2)Python基础
变量以及变量的类型、标识符和关键字、变量名命名方式、算数运算符、变量数据类型转换、输入和输出、注释、if语句基本格式、if…else…语句、if…elif..else语句、逻辑运算符、比较关系运算符、运算符优先级、while循环语法格式、while嵌套应用、break的用法、continue的用法、列表概念及操作、元组概念及操作、字典概念及操作、字符串概念及操作、集合概念及操作、for循环及for…else用法、函数的基本语法、函数执行流程、文档注释、带参数的函数、带返回值的函数、函数的嵌套调用、匿名函数、递归函数、局部变量和全局变量、引用、文件的概念、文件的打开与关闭、文件读写, 以及文件定位读写、文件、目录相关操作
3)面向对象
面向对象介绍、类和对象的概念、魔术方法的意义及作用、对象成员的访问控制权限、继承的概念及意义、继承、多层继承和多继承、多态的概念以及应用、类属性和实例属性、实例方法、类方法、静态方法、设计模式: 单例模式
4)异常处理
理解异常的作用、捕获异常、异常的传递规则、自定义异常
5)模块和包
模块和包的概念、__all__的用法、import语句用法、from...import...用法、from...import * 用法
六、软件测试视频篇第五阶段——WEB自动化
1、学习目标:
可掌握的核心能力:
1.能够熟练搭建Web自动化测试环境;
2.熟练掌握元素的定位方法和元素操作;
3.掌握鼠标键盘操作及HTML特殊元素的处理;
4.掌握使用UnitTest管理自动化测试的脚本;
5.熟练掌握PO模式的设计思想,并能够对页面进行封装;
6.掌握数据驱动的实现方式;
7.掌握日志的相关概念,以及日志的收集处理;
8.掌握在实际的项目中如何灵活运用自动化的相关技术。
2、知识点:
1)WEB自动化入门
自动化测试的理论知识、主流的Web自动化测试框架介绍、Selenium的发展历史及工作原理、元素查看工具使用、环境搭建
2)WEB自动化基础
元素基础定位方法、Xpath和CSS元素定位方法、元素常见操作、浏览器操作方法、鼠标键盘操作、显示等待和隐式等待、HTML特殊元素处理、窗口截图、验证码处理
3)WEB自动化中级
UnitTest框架、Fixture、UnitTest断言、参数化、测试报告
4)WEB自动化高级
PO模式、数据驱动、日志处理
5)项目实战
自动化测试流程、项目自动化框架设计、自动化代码实现
七、软件测试视频篇第六阶段——移动自动化
1、学习目标:
可掌握的核心能力:
1.掌握移动端APP测试特性;
2.能够熟练搭建移动自动化测试环境;
3.熟悉appium的工作原理;
4.熟练掌握ADB工具的使用;
5.熟练掌握元素的定位方法、元素操作和手势操作;
6.掌握单元测试框架pytest的使用;
7.掌握YAML数据读写;
8.掌握使用allure生成测试报告;
9.熟练掌握PO模式的设计思想;
10.掌握数据驱动的实现方式;
11.掌握Git的使用方式;
12.掌握Jenkins持续集成的环境配置;
13.掌握在实际的项目中如何灵活运用移动自动化的相关技术。
2、知识点:
1)移动自动化特性
APP应用系统架构、测试环境及发布平台、APP敏捷开发模式、APP应用测试要点、业务功能测试、兼容性测试、安装卸载升级测试、交叉事件测试、Push消息测试、性能测试、用户体验测试、稳定性测试
2)移动自动化基础
移动端测试分类及特点、ADB命令及Monkey使用、appium环境搭建、appium工作原理
3)移动自动化中级
APP和手机系统操作、元素定位、元素操作、高级手势操作、混合APP测试、PyTest测试框架、定制测试报告、YAML数据读写
4)移动自动化高级
PO模式、数据驱动、Git、Jenkins持续集成
5)项目实战
APP项目实战
八、软件测试视频篇第七阶段——接口测试
1、学习目标:
可掌握的核心能力:
1.掌握接口及接口测试相关概念;
2.掌握使用Postman进行接口测试;
3.熟练掌握数据库的基本操作和事务操作;
4.掌握requests库使用及脚本封装;
5.掌握接口测试框架的设计和封装;
6.掌握使用持续集成工具管理接口测试脚本;
7.掌握在实际的项目中如何灵活运用接口测试的相关技术。
2、知识点:
1)接口测试基础
接口及接口测试概念、HTTP协议、接口规范、项目环境说明、接口测试流程
2)Postman实现接口测试
Postman介绍和安装、Postman基本用法、Postman高级用法、Postman测试报告、项目实战
3)数据库操作
数据库介绍、数据库基本操作、数据库事务操作
4)代码实现接口测试
Requests库、集成UnitTest、接口测试框架开发、项目实战
5)持续集成
持续集成介绍、Git、Jenkins、持续集成之Postman、持续集成之代码
6)接口测试扩展
Mock测试、接口测试总结
九、软件测试视频篇第八阶段——性能测试
1、学习目标:
可掌握的核心能力:
1.能够熟练搭建性能测试环境;
2.掌握性能测试基础理论;
3.掌握Jmeter常用组件使用;
4.掌握Jmeter编写和录制性能测试脚本;
5.掌握基于jmeter实现单一和混合场景搭建;
6.掌握思考时间、事务、逻辑控制器在性能测试场景的应用;
7.掌握Jmeter常用性能插件进行图表分析;
8.掌握Linux服务型性能监控方法和指标;
9.掌握数据库监控和调优的常见方法。
2、知识点:
1)性能测试基础
性能测试理论、性能测试分类、性能测试常用指标、性能测试流程
2)性能测试工具
常用性能测试工具、Jmeter环境搭建、Jmeter功能概要、元件作用及执行顺序、线程组、参数化、断言、关联、连接数据库、逻辑控制器、定时器、分布式、测试报告
3)项目-接口性能测试
项目API文档分析、接口清单梳理、接口脚本设计、并发数据计算、逻辑控制器项目应用、单一场景搭建、常用响应图表插件及应用
4)项目-web性能测试
脚本录制、正则过滤、cookie管理器、事务控制器、思考时间、混合场景搭建、web性能脚本执行与分析
5)性能测试调优
windows服务器性能监控、linux服务器性能监控、性能测试报告
十、软件测试视频篇第九阶段——综合项目实战
1、学习目标:
可掌握的核心能力:
1.掌握功能测试在真实的项目中如何实施;
2.掌握基于Selenium的Web自动化测试框架搭建和使用;
3.掌握基于Appium的APP自动化测试框架搭建和使用;
4.掌握使用工具实现接口测试;
5.掌握基于Python+Requests库的接口自动化测试框架的搭建和使用;
6.掌握Locust性能测试框架的使用;
7.掌握如何对APP进行性能测试;
8.掌握在实际的项目中如何灵活运用相关测试技术。
2、知识点:
1)项目介绍
项目简介、项目架构
2)功能测试
功能测试设计思路、自媒体端测试、后台管理端测试、用户APP端测试
3)UI自动化测试
Selenium Grid、搭建自动化测试框架、编写自动化测试脚本
4)接口测试
接口测试流程、基于工具的接口测试、基于代码的接口测试
5)性能测试
Locust框架、APP性能测试
- 康康map
-
第一阶段 测试基础
测试基础是软件测试最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。
第二阶段 工具学习
软件测试的基础学完了过后,应该学习工具了。
其实学工具真的很容易,所以大家不用去纠结工具的选择。
把最基础的几个工具学习了就行了,以后用到什么工具就去学什么。
下面我会列几个必学的工具,不用太精通,会用就行了。
性能测试工具:loadrunner、jmeter。
接口测试工具:postman
抓包工具:fiddle
数据库管理工具:Navicat
项目/BUG管理工具:禅道、QC
搜索工具: 百度、谷歌
第三阶段 代码学习
好了,学完了以上两个部分,恭喜你,你已经是一个出色的初级测试工程师了。
接下来,你要考虑你的发展方向了。
是成为一个自动化测试工程师呢?
还是性能测试工程师呢?
还是安全测试工程师呢?
啊!这个问题好难!我也不知道该怎么选。
反正我啥都会一点,哪个岗位都能去面一面。
第四阶段 架构学习
前三个阶段学习完成后,各位就应该考虑怎么写代码更合理了。
怎么去测试更全面。
怎么才能更好的保障项目的质量。
我认为,在这个阶段,应该回头重新学习一遍测试基础。
因为这个阶段的提高是思想、方法的提高了。
- kikcik
-
软件测试这个职位在互联网公司不可或缺,并且地位也越来越重要,发展前景和薪资待遇都持续向好。一般来讲软件测试就是为软件找缺陷,也就是我们常说的bug,需要学习计算机基础,软件测试基本的概念原理,软件测试的工具使用,再掌握一门编程语言,最后开始学习自动化测试和接口测试,性能测试等等。
- 韦斯特兰
-
【千锋】首先要了解行业知识和软件测试的基础知识,可以看一些网上的教程和视频资料,练好扎实的基本功,其次要熟悉各种技术技能和工具使用,在工作上不断积累自己的经验和技术优势。
目前热门的软件测试技术方向主要分为:黑盒测试、白盒测试、自动化测试、性能测试、安全测试等。
工具和知识体系的学习,可以从以下几个方面入手:
主流的自动化测试工具,有web端的selenium、QTP等。自动化测试app端,有Appium,MonkeyRunner、Robotium等,性能测试工具主要是Loadrunner和Jmeter。要熟悉基本的BUG管理工具如禅道、Jira等。抓包分析工具wireshak、fiddler。单元测试工具Junit、C++Test等。要掌握至少一门编程语言,主要方向是Python,Java,C等,还有一些前端的脚本语等。数据库,热门的有Mysql、Oracle等,一般至少要掌握基础的增删该查SQL语句。操作系统windows、linux以及相关系统命令。网络协议,如TCP/IP等。
- gitcloud
-
想要学习软件测试,你先要对行业的知识做一个了解,软件测试的基础知识更要精通。你可以从王章找一些视频教程,或者是教材,黑马程序员的就不错。只有基本功扎实了,其他的测试工具,技能才能更好的积累哦!
目前热门的软件测试技术方向主要分为:黑盒测试、白盒测试、自动化测试、性能测试、安全测试等。
- 铁血嘟嘟
-
要么就是自己学习,要么就是去找个培训机构学习,如果你自己有经济能力,建议你去培训机构学习,这样有个老师带你入门带你学习自己也能好学点,
- 黑桃花
-
1.测试环境(网络环境,windows环境等)
2.数据库管理
3.编程技巧(java编程设计,脚本语言,设计工具,XML编程)
4.软件测试技术(测试理论,方法,流程,文档写作,测试工具,自动测试)
5.测试技术实践
面试官:什么是 YAML?和 Spring Boot 有什么关系?
YAML是"YAML Ain"t a Markup Language"(YAML不是一种标记语言)的递归缩写。YAML的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。主要强度这种语音是以数据为中心,而不是以标记语言为重心,例如像xml语言就会使用大量的标记。 YAML是一个可读性高,易于理解,用来表达数据序列化的格式。它的语法和其他高级语言类似,并且可以简单表达清单(数组)、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件等。 YAML的配置文件后缀为 .yml,例如Springboot项目中使用到的配置文件 application.yml 。 标量 标量是最基础的数据类型,不可再分的值,他们一般用于表示单个的变量,有以下七种: 这样,我们就可以在程序中引入了,如下: Spring Boot 基础就不介绍了,推荐下这个实战教程:github.com/javastacks/… 对象 我们知道单个变量可以用键值对,使用冒号结构表示 key: value,注意冒号后面要加一个空格。可以使用缩进层级的键值对表示一个对象,如下所示: 然后在程序对这几个属性进行赋值到Person对象中,注意Person类要加get/set方法,不然属性会无法正确取到配置文件的值。使用@ConfigurationProperties注入对象,@value不能很好的解析复杂对象。 当然也可以使用 key:{key1: value1, key2: value2, ...}的形式,如下: 数组 可以用短横杆加空格 -开头的行组成数组的每一个元素,如下的address字段:Spring Boot 学习笔记分享给你。 也可以使用中括号进行行内显示形式,如下: 在代码中引入方式如下: 如果数组字段的成员也是一个数组,可以使用嵌套的形式,如下: 如果数组成员是一个对象,则用如下两种形式形式: 如果你想引入多行的文本块,可以使用|符号,注意在冒号:和 |符号之间要有空格。最新面试题整理好了,点击Java面试库小程序在线刷题。 它和加双引号的效果一样,双引号能转义特殊字符: 有时我们需要显示指定某些值的类型,可以使用 !(感叹号)显式指定类型。!单叹号通常是自定义类型,!!双叹号是内置类型,例如: 内置的类型如下: 引用会用到 &锚点符合和 星号符号,&用来建立锚点,<< 表示合并到当前数据, 用来引用锚点。最新面试题整理好了,点击Java面试库小程序在线刷题。 上面最终相当于如下: 还有一种文件内引用,引用已经定义好的变量,如下: 可以在同一个文件中,实现多文档分区,即多配置。在一个yml文件中,通过 — 分隔多个不同配置,根据spring.profiles.active 的值来决定启用哪个配置2023-06-13 00:51:131
python——Yaml
1.安装 2.yaml文件的格式 a)键值对形式 b)序列list c)纯量str d)强制转换,使用!! e)多个文件:一个yaml文件里存在多个文件,用---表示,只能一起读取,不能分开读取 3.yaml文件的读取xx.yaml 4.yaml文件的写入 5.yaml文件的持续写入 6.Template修改yaml中的变量 source.yaml Read_yaml.py ※ 问题:1.含有多个文件的yaml文件,读取出来如何选择? 2.持续写入能否将新写入的文件变成新的文件结构? ※ PS:觉得这篇文章有用的朋友,多多点赞打赏哦~!2023-06-13 00:51:271
yaml格式有严格的的格式要求,在变量值和难搞之间有两个空格吗
这个好像就是有严格的要求在变,然后就是也是有这个空格的。2023-06-13 00:51:341
现代配置指南——YAML 比 JSON 高级在哪
一直以来,前端工程中的配置大多都是 .js 文件或者 .json 文件,最常见的比如: 这些配置对前端非常友好,因为都是我们熟悉的 JS 对象结构。一般静态化的配置会选择 json 文件,而动态化的配置,涉及到引入其他模块,因此会选择 js 文件。 还有现在许多新工具同时支持多种配置,比如 Eslint ,两种格式的配置任你选择: 后来不知道什么时候,突然出现了一种以 .yaml 或 .yml 为后缀的配置文件。一开始以为是某个程序的专有配置,后来发现这个后缀的文件出现的频率越来越高,甚至 Eslint 也支持了第三种格式的配置 .eslintrc.yml 。 既然遇到了,那就去 探索 它! 下面我们从 YAML 的 出现背景 , 使用场景 , 具体用法 , 高级操作 四个方面,看一下这个流行的现代化配置的神秘之处。 一个新工具的出现避免不了有两个原因: YAML 这种新工具就属于后者。其实在 yaml 出现之前 js+json 用得也不错,也没什么特别难以处理的问题;但是 yaml 出现以后,开始觉得它好乱呀什么东西,后来了解它后,越用越喜欢,一个字就是优雅。 很多文章说选择 yaml 是因为 json 的各种问题,json 不适合做配置文件,这我觉得有些言过其实了。我更愿意将 yaml 看做是 json 的升级,因为 yaml 在格式简化和体验上表现确实不错,这个得承认。 下面我们对比 YAML 和 JSON,从两方面分析: JSON 比较繁琐的地方是它严格的格式要求。比如这个对象: 在 JSON 中以下写法通通都是错的: 字符串的值必须 k->v 都是 "" 才行: 虽然是统一格式,但是使用上确实有不便利的地方。比如我在浏览器上测出了接口错误。然后把参数拷贝到 Postman 里调试,这时就我要手动给每个属性和值加 "" 号,非常繁琐。 YAML 则是另辟蹊径,直接把字符串符号干掉了。上面对象的同等 yaml 配置如下: 没错,就这么简单! 除了 "" 号,yaml 觉得 {} 和 [] 这种符号也是多余的,不如一起干掉。 于是呢,以这个对象数组为例: 转换成 yaml 是这样的: 对比一下这个精简程度,有什么理由不爱它? 说起增加的部分,最值得一提的,是 YAML 支持了 注释 。 用 JSON 写配置是不能有注释的,这就意味着我们的配置不会有备注,配置多了会非常凌乱,这是最不人性化的地方。 现在 yaml 支持了备注,以后配置可以是这样的: 把这种配置丢给新同事,还怕他看不懂配了啥吗? 除注释外,还支持配置复用的相关功能,这个后面说。 我接触的第一个 yaml 配置是 Flutter 项目的包管理文件 pubspec.yaml ,这个文件的作用和前端项目中的 package.json 一样,用于存放一些全局配置和应用依赖的包和版本。 看一下它的基本结构: 你看这个结构和 package.json 是不是基本一致? dependencies 下列出应用依赖和版本, dev_dependencies 下的则是开发依赖。 后来在做 CI/CD 自动化部署的时候,我们用到了 GitHub Action。它需要多个 yaml 文件来定义不同的工作流,这个配置可比 flutter 复杂得多。 其实不光 GitHub Action,其他流行的类似的构建工具如 GitLab CI/CD,circleci,全部都是齐刷刷的 yaml 配置,因此如果你的项目要做 CI/CD 持续集成,不懂 yaml 语法肯定是不行的。 还有,接触过 Docker 的同学肯定知道 Docker Compose,它是 Docker 官方的单机编排工具,其配置文件 docker-compose.yml 也是妥妥的 yaml 格式。现在 Docker 正是如日中天的时候,使用 Docker 必然免不了编排,因此 yaml 语法早晚也要攻克。 上面说的这 3 个案例,几乎都是现代最新最流行的框架/工具。从它们身上可以看出来,yaml 必然是下一代配置文件的标准,并且是 前端-后端-运维 的通用标准。 说了这么多,你跃跃欲试了吗?下面我们详细介绍 yaml 语法。 介绍 yaml 语法会对比 json 解释,以便我们快速理解。 先看一下 yaml 的几个特点: 相比于 JSON 来说,最大的区别是用 缩进 来表示层级,这个和 Python 非常接近。还有强化的一点是支持了注释,JSON 默认是不支持的(虽然 TS 支持),这也对配置文件非常重要。 YAML 支持以下几种数据结构: 先看对象,上一个 json 例子: 转换成 yaml: 对象是最核心的结构,key 值的表示方法是 [key]: ,注意这里 冒号后面有个空格,一定不能少 。value 的值就是一个 纯量 ,且默认不需要引号。 数组和对象的结构差不多,区别是在 key 前用一个 - 符号标识这个是数组项。注意这里 也有一个空格 ,同样也不能少。 转换成 JSON 格式如下: 了解了基本的对象和数组,我们再来看一个复杂的结构。 众所周知,在实际项目配置中很少有简单的对象或数组,大多都是对象和数组相互嵌套而成。在 js 中我们称之为对象数组,而在 yaml 中我们叫 复合结构 。 比如这样一个稍复杂的 JSON: 转换成复合结构的 YAML: 若你想尝试更复杂结构的转换,可以在 这个 网页中在线实践。 纯量比较简单,对应的就是 js 的基本数据类型,支持如下: 比较特殊的两个,null 用 ~ 符号表示,时间大多用 2021-12-21 这种格式表示,如: 转换成 JS 后: 在 yaml 实战过程中,遇到过一些特殊场景,可能需要一些特殊的处理。 在 shell 中我们常见到一些参数很多,然后特别长的命令,如果命令都写在一行的话可读性会非常差。 假设下面的是一条长命令: 在 linux 中可以这样处理: 就是在每行后加 符号标识换行。然而在 YAML 中更简单,不需要加任何符号,直接换行即可: YAML 默认会把换行符转换成 空格 ,因此转换后 JSON 如下,正是我们需要的: 然而有时候,我们的需求是 保留换行符 ,并不是把它转换成空格,又该怎么办呢? 这个也简单,只需要在首行加一个 | 符号: 转换成 JSON 变成了这样: 获取配置是指,在 YAML 文件中定义的某个配置,如何在代码(JS)里获取? 比如前端在 package.json 里有一个 version 的配置项表示应用版本,我们要在代码中获取版本,可以这么写: JSON 是可以直接导入的,YAML 可就不行了,那怎么办呢?我们分环境解析: 在浏览器中 浏览器中代码用 webapck 打包,因此加一个 loader 即可: 然后配置 loader: 在组件中使用: 在 Node.js 中 Node.js 环境下没有 Webpack,因此读取 yaml 配置的方法也不一样。 首先安装一个 js-yaml 模块: 然后通过模块提供的方法获取: 配置项复用的意思是,对于定义过的配置,在后面的配置直接引用,而不是再写一遍,从而达到复用的目的。 YAML 中将定义的复用项称为锚点,用 & 标识;引用锚点则用 * 标识。 对应的 JSON 如下: 但是锚点有个弊端,就是不能作为 变量 在字符串中使用。比如: 此时 key2 的值就是普通字符串 _my name is *name_,引用变得无效了。 其实在实际开发中,字符串中使用变量还是很常见的。比如在复杂的命令中多次使用某个路径,这个时候这个路径就应该是一个变量,在多个命令中复用。 GitHub Action 中有这样的支持,定义一个环境变量,然后在其他的地方复用: 这种实现方式与 webpack 中使用环境变量类似,在构建的时候将变量替换成对应的字符串。 如果本文对你有启发,请甩手一个赞2023-06-13 00:51:411
二、SpringBoot的配置--yaml
SpringBoot使用一个全局的配置文件,配置文件名是固定的; 配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好; YAML 是一个标记语言 标记语言: 以前的配置文件;大多都使用的是xxx.xml文件 YAML:以数据为中心,比json、xml等更适合做配置文件 YAML:配置例子 XML: k:(空格)v : 表示一对键值对(空格必须有) 以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的 属性和值也是大小写敏感; k: v :字面直接来写; 字符串默认不用加上单引号或者双引号; "" :双引号;不会转义字符串里面的特殊字符; 特殊字符会作为本身想表示的意思 name : "zhangsan lisi" :输出 : zhangsan 换行 lisi "" :单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据 name: "zhangsan lisi" : 输出 ; zhangsan lisi k: v : 在下一行来写对象的属性和值的关系 ;注意缩进 对象还是 k: v 的方式 行内写法: 用- 值表示数组中的一个元素 行内写法 配置文件 javaBean: 我们可以导入配置文件处理器,以后编写配置就有提示了 调整 图示: 配置文件yml还是properties他们都能获取到值; 如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value 如果说,我们专门编写一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties @ImportResource:导入Spring的配置文件,让配置文件里面的内容生效 SpringBoot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别; 想让Spring的配置文件生效,加载进来;@ImportResource标注在一个配置类上 不来编写Spring的配置文件 Spring Boot推荐给容器添加组件的方式;推荐全注解的方式 1、配置类@Configuration------>Spring配置文件 2、使用@Bean给容器中添加组件 我们在主配置文件编写的时候,文件名可以是application-{profile}.properties/yml 默认使用application.properties的配置 1、在配置文件中指定spring.profiles.active=dev 2、在命令行: java -jar spring-boot-02-config.jar --spring.profiles.active=dev; 可以直接在测试的时候,配置传入命令行参数 3.虚拟机参数 -Dspring.profiles.active=dev springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring Boot的默认配置文件 -file:./config/ -file:./ -classpath:/config/ -classpath:/ 优先级由高到低,高优先级的配置会覆盖低优先级的配置 SpringBoot会从这四个位置加载主配置文件:互补配置 ==我们还可以通过spring.config.location来改变默认的配置文件位置== 项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默认加载的这些配置文件共同起作用互补配置; java -jar spring-boot-02-config.jar --spring.config.location=G:/application.properties ==SpringBoot也可以从以下位置加载配置;优先级从高到低;高优先级的配置低优先级的配置,所有的配置会形成互补配置== 1.命令行参数 2.来自java:comp/env的JNDI属性 3.java系统属性 4.操作系统环境变量 5.RandomValuePropertySource配置的random.*属性值 ==有jar包外箱jar包内进行寻找== ==优先加载带profile== 6.jar包外部的application-{profile}.properties 或 application.yml(带spring.profile)配置文件 7.jar包内部的application-{profile}.properties 或 application.yml(带spring.profile)配置文件 ==再来加载不带profile== 8.jar包外部的application.properties或者application.yml(不带spring.profile)配置文件 9.jar包内部的application.properties或者application.yml(不带spring.profile)配置文件 精髓: 1》springboot启动会加载大量的自动配置类 2》我们看我们需要的功能有没有springboot默认写好的自动配置类 3》我们再来看这个自动配置类中到底配置了那些组件;(只要我们要用的组件有,我们就不需要再来配置了) 4》给容器中自动配置类添加组件的时候,会从properties类中获取某些属性,我们就可以在配置文件中指定这些属性的值2023-06-13 00:51:481
yaml 语法中的double怎么写
用malloc申请一段连续的内存空间, 这段内存可以存放n个double类型的变量, 实际上就是动态申请了一个double[n]的数组因为malloc的返回类型都是(void *)所以强制转换为(double *), 需要留意的是无论指针类型是什么所有指针的size都是相同的P[i]等价于*(P + i), 甚至可以写成i[P]于是等价于*(i + P)虽然这样写是不推荐的P指向malloc申请的数组的第一个元素, *P是这第一个元素的值, P+1就是指向第二个元素, 以此类推2023-06-13 00:52:051
Robotframework-RED编辑器yaml的引用
在使用RF框架编写case时,为了脚本便于后续的管理与维护,数据与脚本分离,就变得很重要,这时就要考虑到用什么文件格式去管理参数、变量相关的数据呢? 本次要说的就是用yaml文件格式,下面就开始咱们的步骤论哈 第一步:安装PyYAML模块 pip install PyYAML 第二步:创建一个var.yaml文件,里面输入以下内容:第三步:创建一个test921.robot文件,输入一下内容: 第四步:运行一下,查看结果:2023-06-13 00:52:121
2019-05-30 Python+Jinja2+yaml 批量生成配置
目前来看,Python+yaml+Jinja2是非常方便生成批量配置的组合,在运维工作中用于批量生成设备的基础配置。 这里我的案例是配置一批交换机,基础配置不同的地方有:loopback地址(IPV4和IPV6),设备名称,ISIS网络号,至于其他互联地址什么的因为情况比较复杂,还是手工做吧。 那么思路就有了。 1、生成yaml文件,类似于下面结构: 这里说明一下,loopback地址的V4网段是先规划好的,V6地址和ISIS网络号通过一定规则根据V4地址生成,这个yaml文件可以通过读取excel文件,按照算法生成yaml文件,这个在其他文章里再写。 2、读取yaml文件,生成一个由字典组成的列表。每个字典的信息就包含了每台设备需要的变量。 3、写一个函数,遍历列表里的字典,每读取一个字典,把其中变量取出来放进一个临时字典,渲染jinja2的模板,对每个字典输出不同的配置文件。这个临时字典每读取一次就清空,重新写入变量。 有一些细节比如文档取名,时间函数等要调用一些模块,总结一下涉及的知识点,有:yaml模块,jinja2模块,os模块,日期函数,条件循环,I/O操作。 附上python脚本: 模板文件放在‘templates"目录下,否则会报错找不到文件。 python新手,有不合理的地方请高手指点。2023-06-13 00:52:191
电脑编程好学吗?
我是计算机系的,也在学编程,也支持你去学.不过英语要好一点.那样编程里面的好多东西才容易记和理解.你可以学C++,现在大部分的学的都是这个.2023-06-13 00:52:3110
【实践】2.Prometheus命令和配置详解
Prometheus配置方式有两种: (1)命令行,用来配置不可变命令参数,主要是Prometheus运行参数,比如数据存储位置 (2)配置文件,用来配置Prometheus应用参数,比如数据采集,报警对接 不重启进程配置生效方式也有两种: (1)对进程发送信号SIGHUP (2)HTTP POST请求,需要开启--web.enable-lifecycle选项curl -X POST http://192.168.66.112:9091/-/reload 配置文件格式是yaml格式,说明: .yml或者.yaml 都是 yaml格式的文件, yaml格式的好处: 和json交互比较容易 python/go/java/php 有yaml格式库,方便语言之间解析,并且这种格式存储的信息量很大。 命令行可用配置可通过prometheus -h来查看。 配置文件使用yml格式,配置文件中一级配置项如下,说明参考#备注内容。 配置文件中通用字段值格式 <boolean>: 布尔类型值为true和false <scheme>: 协议方式包含http和https 原始配置文件内容: 全局默认的数据拉取间隔 全局默认的单次数据拉取超时,当报context deadline exceeded错误时需要在特定的job下配置该字段。 全局默认的规则(主要是报警规则)拉取间隔 该服务端在与其他系统对接所携带的标签 该字段配置与Alertmanager进行对接的配置 样例: 上面的配置中的 alert_relabel_configs 是指警报重新标记在发送到Alertmanager之前应用于警报。 它具有与目标重新标记相同的配置格式和操作,外部标签标记后应用警报重新标记,主要是针对集群配置。 这个设置的用途是确保具有不同外部label的HA对Prometheus服务端发送相同的警报信息。 Alertmanager 可以通过 static_configs 参数静态配置,也可以使用其中一种支持的服务发现机制动态发现,我们上面的配置是静态的单实例。 此外, relabel_configs 允许从发现的实体中选择 Alertmanager,并对使用的API路径提供高级修改,该路径通过 __alerts_path__ 标签公开。 完成以上配置后,重启Prometheus服务,用以加载生效,也可以使用热加载功能,使其配置生效。然后通过浏览器,访问 http://192.168.1.220:19090/alerts 就可以看 inactive pending firing 三个状态,没有警报信息是因为我们还没有配置警报规则 rules 。 这里定义和prometheus集成的alertmanager插件,用于监控报警。后续会单独进行alertmanger插件的配置、配置说明、报警媒介以及route路由规则记录。 此项配置和 scrape_configs 字段中 relabel_configs 配置一样,用于对需要报警的数据进行过滤后发向 Alertmanager 说明 relabel-configs的配置允许你选择你想抓取的目标和这些目标的标签是什么。所以说如果你想要抓取这种类型的服务器而不是那种,可以使用relabel_configs 相比之下,metric_relabel_configs是发生在抓取之后,但在数据被插入存储系统之前使用。因此如果有些你想过滤的指标,或者来自抓取本身的指标(比如来自/metrics页面)你就可以使用metric_relabel_configs来处理。 该项目主要用来配置不同的 alertmanagers 服务,以及Prometheus服务和他们的链接参数。 alertmanagers 服务可以静态配置也可以使用服务发现配置。Prometheus以pushing 的方式向alertmanager传递数据。 alertmanager 服务配置和target配置一样,可用字段如下 这个主要是用来设置告警规则,基于设定什么指标进行报警(类似触发器trigger)。这里设定好规则以后,prometheus会根据全局global设定的evaluation_interval参数进行扫描加载,规则改动后会自动加载。其报警媒介和route路由由alertmanager插件实现。 样例: "first_rules.yml"样例: Prometheus 支持两种类型的 Rules ,可以对其进行配置,然后定期进行运算:recording rules 记录规则 与 alerting rules 警报规则,规则文件的计算频率与警报规则计算频率一致,都是通过全局配置中的 evaluation_interval 定义。 不论是recording rules还是alerting rules都要在组里面。 要在Prometheus中使用Rules规则,就必须创建一个包含必要规则语句的文件,并让Prometheus通过Prometheus配置中的rule_files字段加载该文件,前面我们已经讲过了。 其实语法都一样,除了 recording rules 中的收集的指标名称 record: <string> 字段配置方式略有不同,其他都是一样的。 配置范例: recording rules 是提前设置好一个比较花费大量时间运算或经常运算的表达式,其结果保存成一组新的时间序列数据。当需要查询的时候直接会返回已经计算好的结果,这样会比直接查询快,同时也减轻了PromQl的计算压力,同时对可视化查询的时候也很有用,可视化展示每次只需要刷新重复查询相同的表达式即可。 在配置的时候,除却 record: <string> 需要注意,其他的基本上是一样的,一个 groups 下可以包含多条规则 rules ,Recording 和 Rules 保存在 group 内,Group 中的规则以规则的配置时间间隔顺序运算,也就是全局中的 evaluation_interval 设置。 配置范例: 上面的规则其实就是根据 record 规则中的定义,Prometheus 会在后台完成 expr 中定义的 PromQL 表达式周期性运算,以 job 为维度使用 sum 聚合运算符 计算 函数rate 对http_requests_total 指标区间 10m 内的增长率,并且将计算结果保存到新的时间序列 job:http_requests_total:rate10m 中, 同时还可以通过 labels 为样本数据添加额外的自定义标签,但是要注意的是这个 lables 一定存在当前表达式 Metrics 中。 模板是在警报中使用时间序列标签和值展示的一种方法,可以用于警报规则中的注释(annotation)与标签(lable)。模板其实使用的go语言的标准模板语法,并公开一些包含时间序列标签和值的变量。这样查询的时候,更具有可读性,也可以执行其他PromQL查询 来向警报添加额外内容,ALertmanager Web UI中会根据标签值显示器警报信息。 {{ $lable.<lablename>}} 可以获取当前警报实例中的指定标签值 {{ $value }} 变量可以获取当前PromQL表达式的计算样本值。 调整好rules以后,我们可以使用 curl -XPOST http://localhost:9090/-/reload 或者 对Prometheus服务重启,让警报规则生效。 这个时候,我们可以把阈值调整为 50 来进行故障模拟操作,这时在去访问UI的时候,当持续1分钟满足警报条件,实际警报状态已转换为 Firing,可以在 Annotations中看到模板信息 summary 与 description 已经成功显示。 规则检查 拉取数据配置,在配置字段内可以配置拉取数据的对象(Targets),job以及实例 定义job名称,是一个拉取单元。每个job_name都会自动引入默认配置如 这些也可以在单独的job中自定义 服务端拉取过来的数据也会存在标签,配置文件中也会有标签,这样就可能发生冲突。 true就是以抓取数据中的标签为准 false就会重新命名抓取数据中的标签为“exported”形式,然后添加配置文件中的标签 切换抓取数据所用的协议 定义可选的url参数 每次抓取数据请求的认证信息 password和password_file互斥只可以选择其一 bearer_token和bearer_token_file互斥只可以选择其一 抓取ssl请求时证书配置 通过代理去主去数据 Prometheus支持多种服务现工具,详细配置这里不再展开 更多参考官网: https://prometheus.io/docs/prometheus/latest/configuratio n/configuration/ 服务发现来获取抓取目标为动态配置,这个配置项目为静态配置,静态配置为典型的targets配置,在改配置字段可以直接添加标签 采集器所采集的数据都会带有label,当使用服务发现时,比如consul所携带的label如下: 这些lable是数据筛选与聚合计算的基础。 抓取数据很繁杂,尤其是通过服务发现添加的target。所以过滤就显得尤为重要,我们知道抓取数据就是抓取target的一些列metrics,Prometheus过滤是通过对标签操作操现的,在字段relabel_configs和metric_relabel_configs里面配置,两者的配置都需要relabel_config字段。该字段需要配置项如下 target配置示例 target中metric示例 target中metric示例 使用示例 由以上可知当使用服务发现consul会带入标签__meta_consul_dc,现在为了表示方便需要将该标签变为dc 需要做如下配置,这里面action使用的replacement 过滤采集target 为了防止Prometheus服务过载,使用该字段限制经过relabel之后的数据采集数量,超过该数字拉取的数据就会被忽略 Prometheus可以进行远程读/写数据。字段remote_read和remote_write (1)Prometheus 配置详解 https://www.dazhuanlan.com/2019/12/12/5df11ada207ce/ (2)Prometheus配置文件prometheus.yml 四个模块详解 http://www.21yunwei.com/archives/7321 (3)官方文档说明 https://prometheus.io/docs/prometheus/latest/configuration/configuration/ (4)Prometheus监控神器-Rules篇 https://zhuanlan.zhihu.com/p/179295676 (5)Prometheus监控神器-Alertmanager篇(1) https://zhuanlan.zhihu.com/p/179292686 (6)Prometheus监控神器-Alertmanager篇(2) https://zhuanlan.zhihu.com/p/1792944412023-06-13 00:53:021
K8S Pod之间的网速测试
说到两个节点间的网速测试,现在最通用的工具是iperf。iperf有两种运行模式,一种是server模式,一种是client模式。当我们要测试两个节点的网速的时候,就需要在其中一台机器上开启server模式,另一台机器则开启client模式。开启server模式很简单,一条简单的命令就可以了: 开启iperf client的模式也比较简单 这里就有个问题,对于两台实体机,那么,serverip很容易就可以获得,但是如果两个节点都是K8S中的pod呢?serverip不光不容易获得,很有可能会在server pod发生故障之后变化,这样,iperf工具就没有办法正常工作了。 解决方法: 如果想要server pod固定一个访问ip给 client pod, K8S给我们提供了一个很方便的功能,就是service这个概念,如果把server pod绑定在某个service上,那这些pod对K8S集群内就可以暴露service ip,而这个抽象出来的ip地址是不会变化的,所以这样就可以给client pod 提供固定的ip地址去连接了。 server.yaml: 执行完上面的yaml文件后,可以获取到svc的信息: 我们可以看到,该service的ip地址,以及暴露的端口5201(iperf3 服务端默认暴露的端口)。 也就是说,client pod只需要将serverip 替换为10.97.191.10(cluster ip)就可以了。那么问题就转换为如何让client pod获取到server pod的service cluster ip地址。 这个地方我查阅了很多资料,最后发现,其实当service的yaml文件执行成功之后,在这之后启动的pod中会新增对应的环境变量: 客户端成功连接上了服务端!搞定!2023-06-13 00:53:321
SpringBoot的配置文件有哪几种格式?
SpringBoot中的配置文件主要有三种格式,properties、yaml、和xml方式。- 其中properties格式配置文件后缀是.properties,配置项为:server.port = 9090- yaml格式配置文件后缀是.yml,配置项是:server.port: 9090在SpringBoot中,使用最广泛的配置文件是yaml,yaml之所以流行,除了他配置语法精简之外,还因为yaml是一个跨编程语言的配置文件。在SpringBoot中,除了yaml之外,properties也比较常用,但是XML几乎不用,看得出来Spring团队非常痛恨XML配置文件!认为它不是一个好的语言。如果你对常见的配置文件有哪几种格式不熟悉,就去黑马程序员官网视频库看免费视频。2023-06-13 00:53:391
kubernetes(k8s)secret使用
Secret有三种类型: 1、Opaque:base64 编码格式的 Secret,用来存储密码、密钥等;但数据也可以通过base64 –decode解码得到原始数据,所以加密性很弱。 2、kubernetes.io/dockerconfigjson:用来存储私有docker registry的认证信息。 3、kubernetes.io/service-account-token:用于被serviceaccount引用,serviceaccout 创建时Kubernetes会默认创建对应的secret。Pod如果使用了serviceaccount,对应的secret会自动挂载到Pod目录/run/secrets/kubernetes.io/serviceaccount中。 Opaque 类型的数据是一个 map 类型,要求value是base64编码格式,比如我们来创建一个用户名为 admin,密码为 admin321 的 Secret 对象,首先需要把这用户名和密码做 base64 编码, 然后可以利用上面编码过后的数据来编写一个YAML文件:(secret-demo.yaml) 然后同样使用kubectl命令来创建: 利用get secret命令查看: 其中default-token-n9w2d为创建集群时默认创建的 secret,被serviceacount/default 引用。 使用describe命令,查看详情: 我们可以看到利用describe命令查看到的Data没有直接显示出来,如果想看到Data里面的详细信息,同样我们可以输出成YAML文件进行查看: 创建好Secret对象后,有两种方式来使用它: 1、以环境变量的形式 2、以Volume的形式挂载 首先我们来测试下环境变量的方式,同样的,我们来使用一个简单的busybox镜像来测试下:(secret1-pod.yaml) 创建上面的Pod: 然后我们查看Pod的日志输出: 可以看到有 USERNAME 和 PASSWORD 两个环境变量输出出来。需要注意的是,环境变量的方式,不支持动态更新密码。 同样的我们用一个Pod来验证下Volume挂载,创建一个Pod文件:(secret2-pod.yaml) 创建Pod: 然后我们查看输出日志: 可以看到secret把两个key挂载成了两个对应的文件。 除了上面的Opaque这种类型外,我们还可以来创建用户docker registry认证的Secret,直接使用kubectl create命令创建即可,如下: 然后查看Secret列表: 注意 看上面的TYPE类型,myregistry是不是对应的kubernetes.io/dockerconfigjson,同样的可以使用describe命令来查看详细信息: 同样的可以看到Data区域没有直接展示出来,如果想查看的话可以使用-o yaml来输出展示出来: 可以把上面的data.dockerconfigjson下面的数据做一个base64解码,看看里面的数据是怎样的呢? 如果我们需要拉取私有仓库中的docker镜像的话就需要使用到上面的myregistry这个Secret: 我们需要拉取私有仓库镜像10.8.13.85/test:v1,我们就需要针对该私有仓库来创建一个如上的Secret,然后在Pod的 YAML 文件中指定imagePullSecrets。 另外一种Secret类型就是kubernetes.io/service-account-token,用于被serviceaccount引用。serviceaccout 创建时 Kubernetes 会默认创建对应的 secret。Pod 如果使用了 serviceaccount,对应的secret会自动挂载到Pod的/run/secrets/kubernetes.io/serviceaccount目录中。 这里我们使用一个nginx镜像来验证一下,大家想一想为什么不是呀busybox镜像来验证?当然也是可以的,但是我们就不能在command里面来验证了,因为token是需要Pod运行起来过后才会被挂载上去的,直接在command命令中去查看肯定是还没有 token 文件的。 最后我们来对比下Secret和ConfigMap这两种资源对象的异同点: key/value的形式 属于某个特定的namespace 可以导出到环境变量 可以通过目录/文件形式挂载 通过 volume 挂载的配置信息均可热更新 Secret 可以被 ServerAccount 关联 Secret 可以存储 docker register 的鉴权信息,用在 ImagePullSecret 参数中,用于拉取私有仓库的镜像 Secret 支持 Base64 加密 Secret 分为 kubernetes.io/service-account-token、kubernetes.io/dockerconfigjson、Opaque 三种类型,而 Configmap 不区分类型2023-06-13 00:54:001
Flink 指标(二)
通过 conf/flink-conf.yaml 文件配置一个或多个 Reporters 来暴露度量值给外部系统,这些 Reporter 将在作业和任务启动的时候实例化。 所有的 Reporter 配置至少需要配置 class 属性,还有一些允许配置记录间隔。下面是一些 Reporter 的配置实例: 包含 Reporter 的 jar 必须放到 /lib 文件夹,这样 Flink 就可以访问到这些 jar。 可以通过继承 org.apache.flink.metrics.reporter.MetricReporter 接口来实现自己的 Reporter,如果需要定期发送记录,需要继承 Scheduled 接口。 下面是一些支持的 Reporter: 不需要添加额外的依赖就可以支持 JMX Reporter,默认是不激活的。 参数: 配置示例: 通过 JMX 公开的度量由域(domain)和键属性列表(key-properties)标识,这些属性一起构成对象名。 域始终以 org.apache.flink 开头,后跟一个通用的度量标识符。与通常的标识符不同,它不受作用域格式的影响,不包含任何变量,并且在跨作业时也是常量。例子: org.apache.flink.job.task.numbytesout 。 键属性列表包含与给定指标关联的所有变量的值,无论配置的作用域格式如何。例子: host=localhost,job_name=myjob,task_name=mytask 。 因此,域标识一个度量类,键属性列表标识该度量的一个(或多个)实例。 要使用此 Reporter,必须复制 /opt/flink-metrics-ganglia-1.6.1-SNAPSHOT.jar 到 Flink 的 /lib 文件夹下。 参数: 配置示例: 要使用此 Reporter,必须复制 /opt/flink-metrics-graphite-1.6.1-SNAPSHOT.jar 到 Flink 的 /lib 文件夹下。 参数: 配置示例: 要使用此 Reporter,必须复制 /opt/flink-metrics-prometheus-1.6.1-SNAPSHOT.jar 到 Flink 的 /lib 文件夹下。 参数: 配置示例: Flink 度量类型映射到 Prometheus 度量类型,如下所示: 要使用此 Reporter,必须复制 /opt/flink-metrics-prometheus-1.6.1-SNAPSHOT.jar 到 Flink 的 /lib 文件夹下。 参数: 配置示例: PrometheusPushGatewayReporter 将指标推送到 Pushgateway,可由 Prometheus 抓取。 要使用此 Reporter,必须复制 /opt/flink-metrics-statsd-1.6.1-SNAPSHOT.jar 到 Flink 的 /lib 文件夹下。 参数: 配置示例: 要使用此 Reporter,必须复制 /opt/flink-metrics-datadog-1.6.1-SNAPSHOT.jar 到 Flink 的 /lib 文件夹下。 Flink 指标,如任何变量 <host> , <job_name> , <tm_id> , <subtask_index> , <task_name> 和 <operator_name> ,将被发送到 Datadog 作为标签。标签看起来像 host:localhost 和 job_name:myjobname 。 参数: 配置示例: 要使用此 Reporter,必须复制 /opt/flink-metrics-slf4j-1.6.1-SNAPSHOT.jar 到 Flink 的 /lib 文件夹下。 配置示例: Flink 默认会收集当前状态的指标,下文的表格中包括以下5列: 请注意,“infix” 和 “Metrics” 列中所有的点根据 “metrics.delimiter” 设置变化。 因此,为了推断指标的标识符: Reference: https://ci.apache.org/projects/flink/flink-docs-release-1.6/monitoring/metrics.html2023-06-13 00:54:061
如何滚动重启pod而不改变kubernetes(k8s)中的部署yaml?
在 1.15 版本之前通过修改 annotations 的变量值可实现滚动重启 Pod ,当然这个方法其实更改了 yaml 文件,不过是更改的自定义变量字段通过时间戳的方式来设置值,一般不会对 Pod 主要内容有影响 在 1.15 版本之后使用以下命令:2023-06-13 00:54:131
请教如何在phpStorm中配置eslint
使用ESlint一、ESLint跟JSLint和JSHint类似,但有以下区别:1.使用Espree进行js解析(parse)2.用AST抽象语法树去识别(evaluate)代码中的模式3.每个规则都是独立的插件二、安装全局安装:npm install -g eslint三、使用如果是第一次使用,eslint --init 命令帮你完成初始化,生成.eslintrc文件然后eslint test.js test2.js四、配置{"rules": {"semi": ["error", "always"],"quotes": ["error", "double"]}}2023-06-13 00:54:202
如何在 Linux 系统上安装 Suricata 入侵检测系统
由于安全威胁持续不断,配备入侵检测系统(IDS)已成为如今数据中心环境下最重要的要求之一。然而,随着越来越多的服务器将网卡升级到10GB/40GB以太网技术,我们越来越难在大众化硬件上以线速实施计算密集型入侵检测。扩展IDS性能的一个方法就是使用多线程IDS。在这种IDS下,大量耗用CPU资源的深度数据包检查工作负载并行化处理,分成多个并发任务。这种并行化检查机制可以充分发扬多核硬件的优势,轻松扩展IDS的处理能力。这方面的两个知名的开源工具就是Suricata(http://suricata-ids.org)和Bro(https://www.bro.org)。我在本教程中将演示如何在Linux服务器上安装和配置Suricata IDS。在Linux上安装Suricata IDS不妨用源代码构建Suricata。你先要安装几个所需的依赖项,如下所示。在Debian、Ubuntu或Linux Mint上安装依赖项$ sudo apt-get install wget build-essential libpcre3-dev libpcre3-dbg automake autoconf libtool libpcap-dev libnet1-dev libyaml-dev zlib1g-dev libcap-ng-dev libjansson-dev在CentOS、Fedora或RHEL上安装依赖项$ sudo yum install wget libpcap-devel libnet-devel pcre-devel gcc-c++ automake autoconf libtool make libyaml-devel zlib-devel file-devel jansson-devel nss-devel一旦你安装了所有必需的程序包,现在可以安装Suricata了,如下所示。首先,从http://suricata-ids.org/download/下载最新的Suricata源代码,编译代码。截至本文撰稿时,最新版本是2.0.8。$ wget http://www.openinfosecfoundation.org/download/suricata-2.0.8.tar.gz$ tar -xvf suricata-2.0.8.tar.gz$ cd suricata-2.0.8$ ./configure --sysconfdir=/etc --localstatedir=/var这是配置的示例输出结果。Suricata Configuration: AF_PACKET support: yes PF_RING support: no NFQueue support: no NFLOG support: no IPFW support: no DAG enabled: no Napatech enabled: no Unix socket enabled: yes Detection enabled: yeslibnss support: yes libnspr support: yes libjansson support: yes Prelude support: no PCRE jit: yes LUA support: no libluajit: no libgeoip: no Non-bundled htp: no Old barnyard2 support: no CUDA enabled: no现在编译并安装它。$ make$ sudo make installSuricata源代码随带默认的配置文件。不妨安装这些默认的配置文件,如下所示。$ sudo make install-conf正如你所知,要是没有IDS规则集,Suricata毫无用处。颇为方便的是,Makefile随带IDS规则安装选项。想安装IDS规则,运行下面这个命令即可。$ sudo make install-rules上述规则安装命令会从EmergingThreats.net(https://www.bro.org)安装可用的社区规则集的最新快照,并将它们存储在/etc/suricata/rules下。首次配置Suricata IDS现在就可以配置Suricata了。配置文件位于/etc/suricata/suricata.yaml。使用文本编辑工具打开文件,以便编辑。$ sudo vi /etc/suricata/suricata.yaml下面是一些基本的设置,供你开始入门。“default-log-dir”关键字应该指向Suricata日志文件的位置。default-log-dir: /var/log/suricata/在“vars”这部分下面,你会找到Suricata使用的几个重要变量。“HOME_NET”应该指向由Suricata检查的本地网络。“!$HOME_NET”(被分配给EXTERNAL_NET)指本地网络以外的任何网络。“XXX_PORTS”表明不同服务所使用的一个或多个端口号。请注意:不管使用哪个端口, Suricata都能自动检测HTTP流量。所以,正确指定HTTP_PORTS变量并不是很重要。vars:HOME_NET: "[192.168.122.0/24]"EXTERNAL_NET: "!$HOME_NET"HTTP_PORTS: "80"SHELLCODE_PORTS: "!80"SSH_PORTS: 22“host-os-policy”这部分用来防范一些利用操作系统的网络堆栈的行为(比如TCP重组)来规避检测的常见攻击。作为一项应对措施,现代IDS想出了所谓的“基于目标的”检测,检查引擎根据流量的目标操作系统,对检测算法进行微调。因而,如果你知道每个本地主机运行什么操作系统,就可以将该信息提供给Suricata,从而有望提高其检测速度。这时候用到了“host-os-policy“部分。在该例子中,默认的IDS策略是Linux;如果不知道某个IP地址的操作系统信息,Suricata就会运用基于Linux的检查策略。如果捕获到192.168.122.0/28和192.168.122.155的流量,Suricata就会运用基于Windows的检查策略。host-os-policy:# 这些是Windows机器。windows: [192.168.122.0/28, 192.168.122.155]bsd: []bsd-right: []old-linux: []# 将Linux作为默认策略。linux: [0.0.0.0/0]old-solaris: []solaris: ["::1"]hpux10: []hpux11: []irix: []macos: []vista: []windows2k3: []在“threading”这部分下面,你可以为不同的Suricata线程指定CPU亲和性(CPU affinity)。默认情况下,CPU亲和性被禁用(“set-cpu-affinity: no”),这意味着Suricata线程将被安排在任何可用的CPU核心上。默认情况下,Suricata会为每个CPU核心创建一个“检测”线程。你可以调整这个行为,只要指定“detect-thread-ratio: N”。这会创建N x M个检测 线程,其中M是指主机上CPU核心的总数。threading:set-cpu-affinity: nodetect-thread-ratio: 1.5就上述线程设置而言,Suricata会创建1.5 x M个检测线程,其中M是系统上CPU核心的总数。想了解关于Suricata配置的更多信息,你可以阅读默认的配置文件本身,为了便于理解,加有大量注释。使用Suricata执行入侵检测现在可以试着运行Suricata了。在启动它之前,还有一个步骤要完成。如果你使用pcap捕获模式,强烈建议关闭Suricata侦听的那个网卡上的任何数据包卸载功能(比如LRO/GRO),因为那些功能可能会干扰数据包实时捕获。下面介绍如何关闭网络接口eth0上的LRO/GRO:$ sudo ethtool -K eth0 gro off lro off请注意:视使用的网卡而定,你可能会看到下列警示信息,可以忽视这个信息。它只是意味着你的网卡不支持LRO。Cannot change large-receive-offloadSuricata支持多种运行模式。运行模式决定了不同的线程如何用于IDS。下面这个命令列出了所有可用的运行模式。$ sudo /usr/local/bin/suricata --list-runmodesSuricata使用的默认运行模式是autofp(代表“自动流绑定负载均衡模式”)。在这种模式下,来自每一路流的数据包被分配给单一的检测线程。流被分配给了未处理数据包数量最少的线程。最后,不妨启动Suricata,看看它的实际运行情况。$ sudo /usr/local/bin/suricata -c /etc/suricata/suricata.yaml -i eth0 --init-errors-fatal在这个例子中,我们监控一个8核系统上的网络接口eth0。如上所示,Suricata创建了13个数据包处理线程和3个管理线程。数据包处理线程包括1个PCAP数据包捕获线程和12个检测线程(相当于8 x 1.5)。这意味着,一个捕获线程捕获的数据包经负载均衡处理后,变成了IDS面前的12个检测线程。管理线程是一个流管理器和两个计数器/统计相关线程。下面是Suricata进程的线程视图(由htop描绘)。Suricata检测日志存储在/var/log/suricata目录下。$ tail -f /var/log/suricata/fast.log04/01/2015-15:47:12.559075 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 -> 172.16.253.1:4699704/01/2015-15:49:06.565901 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 -> 172.16.253.1:4631704/01/2015-15:49:06.566759 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 -> 172.16.253.1:46317为了易于导入,还有JSON格式的日志:$ tail -f /var/log/suricata/eve.json{"timestamp":"2015-04-01T15:49:06.565901","event_type":"alert","src_ip":"172.16.253.158","src_port":22,"dest_ip":"172.16.253.1","dest_port":46317,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2200074,"rev":1,"signature":"SURICATA TCPv4 invalid checksum","category":"","severity":3}}{"timestamp":"2015-04-01T15:49:06.566759","event_type":"alert","src_ip":"172.16.253.158","src_port":22,"dest_ip":"172.16.253.1","dest_port":46317,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2200074,"rev":1,"signature":"SURICATA TCPv4 invalid checksum","category":"","severity":3}}2023-06-13 00:54:371
Mac 安装完整带pthreads,yaml等扩展的PHP7.0
尝试如下操作: 1、 在php.ini中设置extension_dir 指向e:php5.4ext; 部分php扩展加载了 2、设置windows系统环境变量, phpext, 指向e:php5.4ext, PHPRC 指向e:php5.4 设置path环境变量,添加e:php5.4 3、重新启动apache2023-06-13 00:54:511
Ingress-nginx日志切割与轮循方案
一, 基础镜像 由于我们已解决了权限的问题,所以不需要initContainer来更改权限。日志切割和轮循,基于镜像:hub.c.163.com/combk8s/logrotate:v1.1 从history看,这个镜像也只是在alpine之上,安装了bash,logrotate软件,然后,拷贝并启动了start.sh文件。 二, Dockerfile 为了不与k8s绑死,我们不使用configmap作配置文件,而是使用使用环境变量生成nginx.log配置。 Dockerfile nginx.log模板 start.sh重写 脚本使用传入的环境变量,替换掉nginx.log模板文件中的对应变量。没有环境变量时,也提供必要默认值。 暂时计划是每天凌晨产生备份,只保存最近两个备份。 三, Yaml集成 在ingress应用的yaml文件里,植入一个新的container即可。 四,验证 kubectl logs -f pod可以看到crontab输出 五, logrotate和crontab联动细节想像 start.sh中写入/etc/crontabs/root文件中的数据: 0 */2 * * * /usr/sbin/logrotate -v /etc/logrotate.conf 表示logrotae命令每2小时执行一次,它会将nginx.log配置中的周期(daily)写入/etc/periodic/daily/logrotate文件(如果设置了size,会无视 daily, weekly,monthly 指令,所以size的优先级比较高。)。 /etc/periodic/daily/logrotate中的动态生成的内容如下: 此文件会被/etc/crontabs/root中的如下行触发: 0 2 * * * run-parts /etc/periodic/daily 于是,这时就会在每天凌晨2点,生成日志切割和归档文件。 神奇~ 六,Logrotate参数 compress/nocompress---gzip压缩/不压缩 copytruncate/nocopytruncate---用于还在打开中的日志,把当前日志备份并截断/备份但是不截断 create mode ower group/nocreate---指定文件模式创建新的日志文件/不创建新的日志文件 delaycompress/nodelaycompress ---和compress一起,日志到下一次转存是压缩/转存同时压缩 ifempty/notifempty ---空文件也转存,默认/空文件不转存 mail address / nomail--- 日志发送到指定的mail地址 olddir directory/noolddir--- 转存后日后i文件放入指定目录,必须和当前日志文件同一个文件系统 prerotate/endscript--- 在执行转存之前需执行的命令,关键字必须单独占行 postroutate/endscript ---在执行转存之后需执行的命令,关键字必须单独占行 daily ---周期每天 weekly ---周期每周 monthly ---周期每月 rotate count ---转存次数,0表示不备份,5表示保留5个备份 size size ---当指定文件达到指定大小时才转存 tabootext[+] list ---不转存指定的扩展名,默认扩展名含.rpm-oring error address ---错误信息发送到指定的mail地址 missingok ---如果日志文件丢失,进入到下一个不发出错误消息 sharedscripts ---可以写多个日志文件,同时执行一个脚本,搭配脚本关键字 include ---包含文件 dateext ---为日志打上日期标签 七,参考URL https://my.oschina.net/u/4605142/blog/4521708 https://www.jb51.net/article/183828.htm2023-06-13 00:54:581
多K8S集群运维管理参考
可以通过--kubeconfig 命令行参数来选择操作不同集群 使用默认的 kubeconfig 文件, 需要将多个 kubeconfig 合并,保存在kubeconfig 的默认位置 $HOME/.kube/config , 合并后的参考格式如下: kubeconfig 中定义了 (clusters)集群、(users)用户和 以及相关联的(contexts)上下文,如果使用Uk8s 可以在控制台: 概览-> 内网凭证/外网凭证 查看需要的凭证,然后按照上述格式补全即可 方式三:使用ansible Playbook 来管理集群内的容器应用 场景描述: 目前我们需要使用helm安装一个external-dns 用来将 ingess对接的域名解析规则,自动同步到DNS服务器,使用shell命令操作参考如下: 将以上操作转化为 ansible-playbook 的tasks 可以拆分为四个 tasks , 将上诉文件保存为 deploy_external_dns.yaml, 执行命令 ansible-playbook deploy_external_dns.yaml 命令执行成功回看到返回如下类似结果: 方式四:使用ansible-playbook roles来组织管理集群变更tasks 在方式三中,如果是管理一个集群,编写一个deploy_external_dns.yaml就能完成工作,如果管理多个集群,就要编写多个yaml文件,并且重复编写很多差异不多的tasks 实际操作可能类似这个样子: 经过对比分析,这些tasks 主要差异变量: 只要将以上两个变量参考可配置化,最原始的四个 tasks就可以复用,然后使用 Ansible role 重新组织tasks 文件,拆分为两个role: 其中 external_dns 依赖 helm-repository 然后目录结构如下 roles/helm-repository/main.yml roles/external-dns/tasks/main.yml roles/external-dns/meta/main.yml 新建一个文件 deploy-chart-external-dns 来引用 role:helm-repository 最后,仅仅需要维护一个可复用的 role:helm-repository ,以及在deploy-chart-external-dns 定义要集群属性等变量,就可以轻松的维护多集群内的各类容器应用了 执行命令:ansible-playbook deploy-chart-external-dns 返回结果如下:2023-06-13 00:55:221
application.yml 文件怎么读取系统的环境变量
这些方式优先级如下:命令行参数来自java:comp/env的JNDI属性Java系统属性(System.getProperties())操作系统环境变量RandomValuePropertySource配置的random.*属性值jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件jar包外部的application.properties或application.yml(不带spring.profile)配置文件jar包内部的application.properties或application.yml(不带spring.profile)配置文件@Configuration注解类上的@PropertySource2023-06-13 00:55:311
java环境变量正确。编译工具失败
那个可能是系统问题建议换一下系统重新配一下环境变量。。。2023-06-13 00:55:495
ThinkPHP 3.2 版本升级了哪些内容
ThinkPHP 更新了很多从3.1-3.2这之间的我都给你看看!!![新增] 增加index连贯操作方法,用于数据集的强制索引操作[新增] Model类增加using连贯操作用于多表操作[新增] 增加strict连贯操作,用于设置数据写入和查询是否严格检查是否存在字段 默认情况下 不合法数据字段自动删除,如果设置了严格检查则会抛出异常。 例如: $model->strict(true)->add($data);[新增] 增加fetchSql连贯操作[新增] 添加yaml_parse_file()函数,解析yaml文件返回一个数组[新增] 增加memcache Session驱动[新增] 增加聚合模型,方便一对一的关联数据表操作[新增] 新增TMPL_PATH常量支持 可以全局改版模板目录到模块目录之外[新增] 增加Lite模式Db类,仅支持原生SQL操作[新增] 数据库调试增加单独的配置参数 DB_DEBUG(如未设置依然取调试模式常量 APP_DEBUG)[新增] 新增框架核心葡萄牙语言包[新增] 增加COOKIE_SECURE和COOKIE_HTTPONLY配置参数[新增] MySQL驱动增加ON DUPLICATE KEY UPDATE功能[改进] Db类和数据库驱动类完全基于PDO重写[改进] 添加全局过滤机制(默认关闭)[改进] I函数增加修饰符功能和正则检测支持[改进] 采用主从分布式数据库时,从数据库连接失败自动连接主服务器[改进] 增加Model类对复合主键的支持[改进] 改进Mongo模型和驱动类,使用更加方便[改进] 改进session函数删除操作支持数组[改进] 改进session函数对多维赋值的支持[改进] 改进数据库字段缓存的文件标识 加上数据表前缀,避免不同前缀的表产生混淆[改进] 针对数据库视图无主键的问题,使用默认id作为主键,与未开启DB_FIELDS_CACHE时行为一致[改进] SAE模式惯例配置增加上传驱动设置[改进] 改进参数绑定机制[改进] 确保使用参数绑定后日志中生成sql语句的准确性[改进] 模型类的setInc和setDec方法支持延迟写入,同时取消高级模型的相关方法[改进] 日志写入的时候自动创建目录[改进] 改进SQL缓存[改进] 优化缓存队列功能[改进] 路由的请求类型定义不区分大小写[改进] 数据库驱动增加通用insertAll方法支持[改进] 完善 url的验证正则[改进] 单字母函数返回值类型修正以及一些拼写错误修正[改进] 自动创建模型模块的父目录 直接调用ThinkBuild::buildController和buildModel的情况下创建目录[改进] 日志驱动增加自动目录创建支持[改进] 自动生成的目录结构增加模块的缓存目录[改进] mysql存储过程支持完善[改进] Db类改进对多表更新和删除的支持,多表删除支持USING和JOIN操作[改进] 改进parseLock的位置[改进] Db类的update和delete方法增加多表操作的支持[改进] 改进CURD操作 可以直接返回sql语句而不真正执行。[改进] 插件控制器的命名空间可定义 不再局限于模块下面 增加 ADDON_PATH 用于定义插件目录 默认位于 应用目录下面的Addon[改进] 改进静态缓存读取的有效判断对sae的支持[改进] 日志目录分模块[改进] 模型类的getField方法改进 支持在字段名中使用函数[改进] 改进Db类的parseWhere方法[改进] 改进模型的page和limit方法 改进分页类[改进] 改进配置文件自动生成[改进] 完善ShowPageTraceBehavior一处函数调用大小写规范[改进] U函数支持多级控制器[改进] send_http_status函数增加状态[改进] 允许在项目中定义 APP 常量[改进] 改进定义TMPL_PATH后的模板路径定义[改进] Image类的imagick驱动save方法增加quality参数 用于图片质量设置,默认值为80[改进] 改进Image类的JPEG图片生成质量[改进] Gd库驱动类改进[改进] 改进T函数对TMPL_PATH常量定义的支持[改进] 改进I函数对path.0的支持[改进] 改进关联模型[改进] 改进dispatch_jump模板[改进] 更新api模式支持配置文件的后缀定义[改进] 改进Model类的getModelName方法对多层模型的支持[改进] 改进cookie函数对secure和httponly的支持[改进] 改进模板标签对命名空间的支持,写法 {$var|OrgUtilString::rand}[改进] 改进数据表自动识别规则正则规则 可以正确识别带有数字的数据表[改进] Model类的cache方法使用改进 cache(10) 等同于 cache(true, 10)[修正] 修正ShowRuntime行为扩展[修正] 修正Model类的add和addall方法中的_facade和_parseOptions的调用顺序问题[修正] 修正使用数组方式动态指定表名后的BUG[修正] 修正ChromShowPage行为扩展[修正] 修正自定义公共模块路径时,加载公共模块类库失败[修正] 修正参数绑定的一处判断[修正] 解决PDO参数绑定后的获取最终SQL语句问题[修正] 修正开启布局后show方法的问题[修正] 解决调用trace()无法返回trace日志问题[修正] 修复mongo出现错误输出的问题[修正] 修正页面Trace的日志保存[修正] 修正Model类的save方法[修正] 修正令牌验证没有设置TOKEN_NAME的问题[修正] 修复RestController中请求资源类型总是为html的bug[修正] 修正Model类的getField方法的一处变量冲突问题[修正] 修正Mongo驱动的page处理[修正] 修正 extract方法 在分解变量的时候 可能导致变量被覆盖的问题[修正] 修正Imagick类库[修正] 修正页面trace插件开启PAGE_TRACE_SAVE后出错的问题[修正] 修正controller方法 对不使用命名空间的支持[修正] 修正Image类的save方法支持图片质量[修正] 修正高级模型的乐观锁功能[修正] 修正I函数通过FILTER_VALIDATE_EMAIL方式传入常量过滤的一处错误 并且过滤参数支持数组[修正] 修正GIF类的架构函数[修正] Cache类一处常量错误修正[修正] 修改自动生成的配置文件支持CONF_EXT定义[删除] 去掉多余的URL_404_REDIRECT配置参数3.2.2 更新日志[增加]配置文件增加yaml/json/xml/ini/自定义格式支持[增加]增加load_config函数用于加载配置文件[增加]增加CONF_EXT和CONF_PARSE常量,用于定义配置文件后缀及解析方法[增加]模块增加状态配置文件[增加]cookie函数增加httponly参数支持[增加]增加COOKIE_HTTPONLY配置参数[增加]增加插件的控制器访问支持[增加]增加CONTROLLER_PATH常量用于定义控制器的命名空间路径[增加]添加VAR_ADDON配置参数 用于设置默认的插件控制器命名空间变量[增加]dispatcher类增加getSpace方法用于获取控制器的命名空间路径[增加]I函数增加path和data类型变量的用法[增加]引入composer支持(还需要完善)[增加]xcahe和wincache驱动增加clear方法[增加]自动生成机制支持多个模块的控制器和模型类的批量生成[修正]修正上传类不能动态改变rootPath的BUG[修正]修正RestController类的执行顺序[修正]修正Model类的参数绑定的一处BUG[修正]修正CronRun行为扩展一处错误[修正]修正GIF类[修正]修正rest控制器的encodeData方法[修正]修正ViewModel可能因空格导致Order方法错误的bug[修正]修正MongoModel类的写入数据的自增获取[修正]修正第三方模板引擎驱动类[修正]修正自动加载可能的一处导致重复加载的问题[修正]修正__CONTROLLER__ 在URL不区分大小写情况下的获取[修正]修正Route类中请求类型判断错误的bug[修正]修正mysqli驱动的free方法[改进]改进CronRun行为扩展[改进]TOKEN_NAME 未设置时使用默认值__hash__[改进]模类的_after_insert回调返回false后直接返回[改进]Model类的save方法 如果data为空则不执行[改进]Model类的delete方法 如果条件为空 则不执行删除操作[改进]改进获取模块方法,支持驼峰法模块命名[改进]改进模型的查询方法对表前缀的支持,使用当前模型设置的表前缀[改进]视图模型的视图定义中的_table属性和关联模型中的relation_table 支持 __TABLE_NAME__定义方式[改进]Model类的query和execute方法支持 __TABLE_NAME__定义方式[改进]改进PDO驱动对pgsql字符转义的2023-06-13 00:56:042
如何改变默认的目标路径行为
如何改变默认的目标路径行为默认情况下,安全组件将保留在名为 _security.main.target_path 的 session 变量中最后访问的 URL 信息(主要是在 security.yml 中定义的防火墙的名称)。成功登录后,将用户重定向到此路径,并帮助他们继续停留在访问过的最后一个已知网页。在某些情况下,这不是理想的。例如,当最后的请求 URL 返回的是非 HTML 或部分 HTML 响应的 XMLHttpRequest 对象,那么用户将被重定向回浏览器无法呈现的网页。要解决此行为,您仅仅需要去继承 ExceptionListener 类,并且重载名为 setTargetPath() 的默认方法。首先,重载您的配置文件中的 security.exception_listener.class 参数。这可以在您的主配置文件(在应用程序下的配置文件中)或导入包中配置文件中实现:YAML:# app/config/services.ymlparameters:# ...security.exception_listener.class: AppBundleSecurityFirewallExceptionListenerXML:<!-- app/config/services.xml --><parameters><!-- ... --><parameter key="security.exception_listener.class">AppBundleSecurityFirewallExceptionListener</parameter></parameters>PHP:// app/config/services.php// ...$container->setParameter("security.exception_listener.class", "AppBundleSecurityFirewallExceptionListener");下一步,创建您自己的 ExceptionListener 监听器:// src/AppBundle/Security/Firewall/ExceptionListener.phpnamespace AppBundleSecurityFirewall;use SymfonyComponentHttpFoundationRequest;use SymfonyComponentSecurityHttpFirewallExceptionListener as BaseExceptionListener;class ExceptionListener extends BaseExceptionListener{protected function setTargetPath(Request $request){// Do not save target path for XHR requests// You can add any more logic here you want// Note that non-GET requests are already ignoredif ($request->isXmlHttpRequest()) {return;}parent::setTargetPath($request);}}为您方案的需要在这里添加或多或少的逻辑。2023-06-13 00:57:071
软件开发主要用什么编程语言?
游戏开发主要用的是c语言的2023-06-13 00:57:294
tidb怎么写for循环
我们介绍了 TiDB Operator 的 Controller Manager 的设计和实现,了解了各个 Controller 如何接受和处理变更。在这篇文章中,我们将讨论组件的 Controller 的实现。TiDBCluster Controller 负责了 TiDB 主要组件的生命周期管理,我们将以此为例, 介绍组件控制循环的编排设计。我们将会了解到完成 TiDB 集群的生命周期管理过程中,各种控制循环事件经过了怎样的编排,这些事件中又完成了哪些资源管理操作。在阅读时,大家了解这些工作的大致过程和定义即可,我们将在下一篇文章中具体介绍各个组件如何套用下面的范式。组件控制循环的调用在上一篇文章的代码介绍中,我们提到了 TiDBCluster controller 的 updateTidbCluster 函数,位于 pkg/controller/tidbcluster/tidb_cluster_control.go,它是 TiDB 组件生命周期管理的入口,调用了一系列生命周期管理函数。略去注释,我们可以发现 updateTidbCluster 函数依次调用了以下函数:c.reclaimPolicyManager.Sync(tc)c.orphanPodsCleaner.Clean(tc)c.discoveryManager.Reconcile(tc)c.ticdcMemberManager.Sync(tc)c.tiflashMemberManager.Sync(tc)c.pdMemberManager.Sync(tc)c.tikvMemberManager.Sync(tc)c.pumpMemberManager.Sync(tc)c.tidbMemberManager.Sync(tc)c.metaManager.Sync(tc)c.pvcCleaner.Clean(tc)c.pvcResizer.Resize(tc)c.tidbClusterStatusManager.Sync(tc)这些函数可以分为两类,一是 TiDB 组件的视角组织的控制循环实现,例如 PD,TiDB,TiKV,TiFlash,TiCDC,Pump,Discovery,另外一类是负责管理 TiDB 组件所使用的 Kubernetes 资源的管理以及其他组件外围的生命周期管理操作,例如 PV 的 ReclaimPolicy 的维护,OrphanPod 的清理,Kubernetes 资源的 Meta 信息维护,PVC 的清理和扩容,TiDBCluster 对象的状态管理等。TiDB 组件的生命周期管理过程TiDB 的主要组件控制循环的代码分布在 pkg/manager/member 目录下以 _member_manager.go 结尾的文件下,比如 pd_member_manager.go,这些文件又引用了诸如 _scaler.go,_upgrader.go 的文件,这些文件包含了扩缩容和升级相关功能的实现。从各个组件的 _member_manager.go 相关文件,我们可以提炼出以下通用实现:// Sync Serviceif err := m.syncServiceForTidbCluster(tc); err != nil { return err}// Sync Headless Serviceif err := m.syncHeadlessServiceForTidbCluster(tc); err != nil { return err}// Sync StatefulSetreturn syncStatefulSetForTidbCluster(tc)func syncStatefulSetForTidbCluster(tc *v1alpha1.TidbCluster) error { if err := m.syncTidbClusterStatus(tc, oldSet); err != nil { klog.Errorf("failed to sync TidbCluster: [%s/%s]"s status, error: %v", ns, tcName, err) } if tc.Spec.Paused { klog.V(4).Infof("tidb cluster %s/%s is paused, skip syncing for statefulset", tc.GetNamespace(), tc.GetName()) return nil } cm, err := m.syncConfigMap(tc, oldSet) newSet, err := getnewSetForTidbCluster(tc, cm) if err := m.scaler.Scale(tc, oldSet, newSet); err != nil { return err } if err := m.failover.Failover(tc); err != nil { return err } if err := m.upgrader.Upgrade(tc, oldSet, newSet); err != nil { return err } return UpdateStatefulSet(m.deps.StatefulSetControl, tc, newSet, oldSet)}登录后复制这段代码主要完成了同步 Service 和 同步 Statefulset 的工作,同步 Service 主要是为组件创建或同步 Service 资源,同步 Statefulset 具体包含了一下工作:同步组件的 Status;检查 TiDBCluster 是否停止暂停了同步;同步 ConfigMap;根据 TidbCluster 配置生成新的 Statefulset,并且对新 Statefulset 进行滚动更新,扩缩容,Failover 相关逻辑的处理;创建或者更新 Statefulset;组件的控制循环是对上面几项工作循环执行,使得组件保持最新状态。下面将介绍 TiDB Operator 中这几项工作具体需要完成哪些方面的工作。同步 Service一般 Service 的 Reconcile 在组件 Reconcile 开始部分,它负责创建和同步组件所使用的 Service,例如 cluster1-pd 和 cluster1-pd-peer。在控制循环函数中,会调用 getNewServiceForTidbCluster 函数,通过 Tidbcluster CR 中记录的信息创建一个新的 Service 的模板,如果 Service 不存在,直接创建 Service,否则,通过比对新老 Service Spec 是否一致,来决定是否要更新 Service 对象。TiDB 组件使用的 Service 中,包括了 Service 和 Headless Serivce,为组件提供了被访问的能力。当组件不需要知道是哪个实例正在与它通信,并且可以接受负载均衡方式的访问,则可以使用 Service 服务,例如 TiKV,TiDB 等组件访问 PD 时,就可以使用 Service 地址。当组件需要区分是那个 Pod 在提供服务时,则需要用 Pod DNS 进行通信,例如 TiKV 在启动时,会将自己的 Pod DNS 作为 Advertise Address 对外暴露,其他 Pod 可以通过这个 Pod DNS 访问到自己。同步 Status完成 Service 的同步后,组件接入了集群的网络,可以在集群内访问和被访问。控制循环会进入 syncStatefulSetForTidbCluster,开始对 Statefulset 进行 Reconcile,首先是使用 syncTidbClusterStatus 对组件的 Status 信息进行同步,后续的扩缩容、Failover、升级等操作会依赖 Status 中的信息进行决策。同步 Status 是 TiDB Operator 比较关键的操作,它需要同步 Kubernetes 各个组件的信息和 TiDB 的集群内部信息,例如在 Kubernetes 方面,在这一操作中会同步集群的副本数量,更新状态,镜像版本等信息,检查 Statefulset 是否处于更新状态。在 TiDB 集群信息方面,TiDB Operator 还需要将 TiDB 集群内部的信息从 PD 中同步下来。例如 PD 的成员信息,TiKV 的存储信息,TiDB 的成员信息等,TiDB 集群的健康检查的操作便是在更新 Status 这一操作内完成。检查 TiDBCluster 是否暂停同步更新完状态后,会通过 tc.Spec.Paused 判断集群是否处于暂停同步状态,如果暂停同步,则会跳过下面更新 Statefulset 的操作。同步 ConfigMap在同步完 Status 之后,syncConfigMap 函数会更新 ConfigMap,ConfigMap 一般包括了组件的配置文件和启动脚本。配置文件是通过 YAML 中 Spec 的 Config 项提取而来,目前支持 TOML 透传和 YAML 转换,并且推荐 TOML 格式。启动脚本则包含了获取组件所需的启动参数,然后用获取好的启动参数启动组件进程。在 TiDB Operator 中,当组件启动时需要向 TiDB Operator 获取启动参数时,TiDB Operator 侧的信息处理会放到 discovery 组件完成。如 PD 获取参数用于决定初始化还是加入某个节点,就会使用 wget 访问 discovery 拿到自己需要的参数。这种在启动脚本中获取参数的方法,避免了更新 Statefulset 过程中引起的非预期滚动更新,对线上业务造成影响。生成新 StatefulsetgetNewPDSetForTidbCluster 函数会得到一个新的 Statefulset 的模板,它包含了对刚才生成的 Service,ConfigMap 的引用,并且根据最新的 Status 和 Spec 生成其他项,例如 env,container,volume 等,这个新的 Statefulset 还需要送到下面 3 个流程进行滚动更新,扩缩容,Failover 方面的加工,最后将这个新生成的 Statefulset 会被送到 UpdateStatefulSet 函数处理,判断其是否需要实际更新到组件对应的 Statefulset。新 Statefulset 的加工(一): 滚动更新m.upgrader.Upgrade 函数负责滚动更新相关操作,主要更新 Statefulset 中 UpgradeStrategy.Type 和 UpgradeStrategy.Partition,滚动更新是借助 Statefulset 的 RollingUpdate 策略实现的。组件 Reconcile 会设置 Statefulset 的升级策略为滚动更新,即组件 Statefulset 的 UpgradeStrategy.Type 设置为 RollingUpdate 。在 Kubernetes 的 Statefulset 使用中,可以通过配置 UpgradeStrategy.Partition 控制滚动更新的进度,即 Statefulset 只会更新序号大于或等于 partition 的值,并且未被更新的 Pod。通过这一机制就可以实现每个 Pod 在正常对外服务后才继续滚动更新。在非升级状态或者升级的启动阶段,组件的 Reconcile 会将 Statefulset 的 UpgradeStrategy.Partition 设置为 Statefulset 中最大的 Pod 序号,防止有 Pod 更新。在开始更新后,当一个 Pod 更新,并且重启后对外提供服务,例如 TiKV 的 Store 状态变为 Up,TiDB 的 Member 状态为 healthy,满足这样的条件的 Pod 才被视为升级成功,然后调小 Partition 的值进行下一 Pod 的更新。新 Statefulset 的加工(二): 扩缩容m.scaler.Scale 函数负责扩缩容相关操作,主要是更新 Statefulset 中组件的 Replicas。Scale 遵循逐个扩缩容的原则,每次扩缩容的跨度为 1。Scale 函数会将 TiDBCluster 中指定的组件 Replicas 数,如 tc.Spec.PD.Replicas,与现有比较,先判断是扩容需求还是缩容需求,然后完成一个步长的扩缩容的操作,再进入下一次组件 Reconcile,通过多次 Reconcile 完成所有的扩缩容需求。在扩缩容的过程中,会涉及到 PD 转移 Leader,TiKV 删除 Store 等使用 PD API 的操作,组件 Reconcile 过程中会使用 PD API 完成上述操作,并且判断操作是否成功,再逐步进行下一次扩缩容。新 Statefulset 的加工(三): Failoverm.failover.Failover 函数负责容灾相关的操作,包括发现和记录灾难状态,恢复灾难状态等,在部署 TiDB Operator 时配置打开 AutoFailover 后,当发现有 Failure 的组件时记录相关信息到 FailureStores 或者 FailureMembers 这样的状态存储的键值,并启动一个新的组件 Pod 用于承担这个 Pod 的工作负载。当原 Pod 恢复工作后,通过修改 Statefulset 的 Replicas 数量,将用于容灾时分担工作负载的 Pod 进行缩容操作。但是在 TiKV/TiFlash 的容灾逻辑中,自动缩容容灾过程中的 Pod 不是默认操作,需要设置 spec.tikv.recoverFailover: true 才会对新启动的 Pod 缩容。使用新 Statefulset 进行更新在同步 Statefulset 的最后阶段,已经完成了新 Statefulset 的生成,这时候会进入 UpdateStatefulSet 函数,这一函数中主要比对新的 Statefulset 和现有 StatefulSet 差异,如果不一致,则进行 Statefulset 的实际更新。另外,这一函数还需要检查是否有没有被管理的 Statefulset,这部分主要是旧版本使用 Helm Chart 部署的 TiDB,需要将这些 Statefulset 纳入 TiDB Operator 的管理,给他们添加依赖标记。完成上述操作后,TiDBCluster CR 的 Status 更新到最新,相关 Service,ConfigMap 被创建,生成了新的 Statefulset,并且满足了滚动更新,扩缩容,Failover 的工作。组件的 Reconcile 周而复始,监控着组件的生命周期状态,响应生命周期状态改变和用户输入改变,使得集群在符合预期的状态下正常运行。其他生命周期维护工作除了 TiDB 主要组件的视角之外,还有一些运维操作被编排到了下面的函数实现中,他们分别负责了以下工作:Discovery,用于 PD 启动参数的配置和 TiDB Dashboard Proxy,Discovery 的存在,可以提供一些动态信息供组件索取,避免了修改 ConfigMap 导致 Pod 滚动更新。Reclaim PolicyManager,用于同步 tc.Spec.PVReclaimPolicy 的配置,默认配置下会将PV 的 Reclaim Policy 设置为 Retain,降低数据丢失的风险。OrphanPodCleaner,用于在 PVC 创建失败的时候清除 Pod,让 Statefulset Controller 重试 Pod 和对应 PVC 的创建。PVC Cleaner 用于 PVC 相关资源清理,清理被标记可以删除的 PVC。PVC Resizer 用于 PVC 的扩容,在云上使用时可以通过修改 TidbCluster 中的 Storage 相关配置修改 PVC 的大小。Meta Manager 用于同步 StoreIDLabel,MemberIDLabel,NamespaceLabel 等信息到 Pod,PVC,PV 的 label 上。TiDBCluster Status Manager 用于同步 TidbMonitor 和 TiDB Dashboard 相关信息。小结这篇文章介绍了 TiDBCluster 组件的控制循环逻辑的设计,试图让大家了解,当 TiDBCluster Controller 循环触发各个组件的 Reconcile 函数时,组件 Reconcile 函数是按照怎样的流程巡检组件的相关资源,用户预期的状态,是如何通过 Reconcile 函数,变成实际运行的组件。TiDB Operator 中的控制循环都大致符合以上的设计逻辑,在后面的文章中,我们会具体介绍每个组件是如何套用上面的设计逻辑,实现组件的生命周期管理。如果有什么好的想法,欢迎通过 #sig-k8s 或 pingcap/tidb-operator 参与 TiDB Operator 社区交流。数据库分布式激光投影和LED投影的区别,哪个更好?精选推荐广告TiDB Operator 源码阅读 (四) 组件的控制循环218阅读·0评论·0点赞2021年6月30日TiDB、mysql修改系统变量/常用语句(杀死process中的进程)1425阅读·0评论·0点赞2019年12月5日TiDB Operator 架构67阅读·0评论·1点赞2022年7月11日TiDB 的正确使用姿势1251阅读·0评论·1点赞2020年2月27日TiDB 优化方案和常见问题2820阅读·0评论·1点赞2020年5月24日tidb使用坑记录4097阅读·0评论·1点赞2018年2月22日抑郁自测题:35分以上是重度抑郁,测测你的抑郁有多深?国际专业抑郁测试广告tidb 架构 ~Tidb学习系列(4)210阅读·0评论·0点赞2018年11月1日TiDB SQL开发基础——增删改查3252阅读·0评论·0点赞2018年7月19日TiDB 官方设计文档翻译(一)1.5W阅读·0评论·3点赞2017年3月5日mysql 游标循环_MySQL 游标 循环1456阅读·0评论·1点赞2021年1月18日TiDB Operator 需要的 RBAC 规则53阅读·0评论·1点赞2022年7月12日TiDB 最佳实践系列(五)Java 数据库应用开发指南2752阅读·0评论·1点赞2019年11月7日TiDB 源码阅读系列文章(十六)INSERT 语句详解189阅读·0评论·0点赞2018年8月20日批量添加数据到数据库1413阅读·0评论·0点赞2018年5月28日tidb源码编译安装,从入门到差点放弃1267阅读·2评论·0点赞2020年8月25日TiDB 内核-源码解读 Point_Get 点查的一生366阅读·0评论·3点赞2022年5月12日Kubernetes资源编排系列之四: CRD+Operator篇281阅读·0评论·1点赞2022年8月8日去首页看看更多热门内容2023-06-13 00:57:551
homestead到底要安装到哪个目录下
方法/步骤1、安装VirtualBox和Vagrant在启动Homestead环境之前,你必须安装VirtualBox和Vagrant。这两个软件为所有主流的操作系统提供了简单易用的可视化安装界面。详细的安装过程可自行百度也可以直接查看我的经验《教你windows 7获取安装指定版本VirtualBox》和《一步一步教你安装最新版 Vagrant》添加Vagrant boxVirtualBox和Vagrant安装完成,添加“laravel/homestead”箱子到你的Vagrant安装目录下;在终端使用下面的命令,这将花费几分钟的时间来下载箱子;vagrant box add laravel/homestead如果网络正常就慢慢等待下载然后添加,这里由于网络的原因我试了很多次都失败了,最后直接复制下载链接https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.2.7/providers/virtualbox.box下载保存到F:virtualbox.box,然后通过vagrant box add laravel/homestead F:virtualbox.box安装Composer安装 Homestead 命令行工具,这里使用Composer。首先就是安装好Composer。windows下载安装Composer非常简单,只要到官网下载Composer-Setup.exe,然后双击默认安装即可;安装后在目录地址栏输入%AppData%回车找到C:UsersAdministratorAppDataRoamingComposervendorin目录添加到 PATH 环境变量中;安装 Homestead 2.0箱子被添加到Vagrant安装目录下后,通过 Composer 的 global 指令来安装 Homestead 命令行工具了:composer global require "laravel/homestead=~2.0"由于之前已经添加了环境变量,安装之后就能在执行 homestead 指令时找到对应的可执行程序了。Homestead配置和初始化安装了 Homestead 命令行工具,执行 init 来创建 Homestead.yaml 配置文件homestead init生成的 Homestead.yaml 文件将被放置于C:UsersAdministrator.homestead目录下。如果你使用的是 Mac 或 Linux 操作系统,还可以通过执行 homestead edit 指令来编辑 Homestead.yaml 文件:homestead editwindows环境下直接通过编辑器打开 Homestead.yaml修改即可启动Vagrant箱子根据实际情况编辑好“Homestead.yaml”文件,就可以在终端上的“Homestead”目录下执行 homestead up 命令。Vagrant将启动虚拟机,并自动配置共享目录和Nginx站点!不要忘记把你的Nginx站点的“域”添加到机器里的“hosts”文件里!“hosts”文件将把对本地域的请求重定向到Homestead环境 里。在Windows机器上,它位于“C:WindowsSystem32 driversetc”目录。你添加到此文件的内容就像下面这样:192.168.10.10 homestead.app确保列出的 IP 和你在 Homestead.yaml 文件中设置的一致。一旦你把域名添加到 hosts 文件中,你就可以通过浏览器访问此站点了!http://homestead.app可以通过SSH工具连接,用户密码为vagrant/vagrant。ip为配置文件里面的ip;通过headstead ssh不需要用户名密码;端口映射以及常用命令下面的端口被转发到你的Homestead环境:SSH: 2222 -> 转发到 22HTTP: 8000 -> 转发到 80MySQL: 33060 -> 转发到 3306Postgres: 54320 -> 转发到 5432homestead命令homestead init:创建 Homestead.yaml 配置文件homestead up :启动虚拟机;homestead ssh:通过SSH连接到 Homestead 环境;homestead destroy:销毁虚拟机;homestead list :用于列出所有可用的 Homestead 指令。2023-06-13 00:58:031
如何查看python2.7的nltk
1.安装Python(我安装的是Python2.7,目录C:Python27)可以到CSDN、OSChina、Sina Share等网站下载也可以到Python官网下载:http://www.python.org/2.安装NumPy(可选)到这里下载:http://sourceforge.net/projects/numpy/files/NumPy/1.6.2/numpy-1.6.2-win32-superpack-python2.7.exe注意Py版本下载之后执行exe文件(程序会自动搜索python27目录)3.安装NLTK(我下载的是nltk-2.0.3)到这里下载:http://pypi.python.org/pypi/nltk把nltk-2.0.3解压到C:Python27目录打开cmd,进到C:Python27 ltk-2.0.3目录(输入:cd C:Python27 ltk-2.0.3)输入命令:python setup.py install4.安装PyYAML:到这里下载:http://pyyaml.org/wiki/PyYAML注意Py版本下载之后执行exe文件(程序会自动搜索python27目录)5.打开IDLE,输入import nltk,没有错误的话,就说明安装成功了。到这里,NLP所需的基本python模块都已经安装好了,然后要安装NLTK_DATA了下载NLTK_DATA有好几种方法,这里我只介绍一种6.继续第五步,已经import nltk了,然后输入nltk.download(),这样就可以打开一个NLTK Downloader(NLTK下载器)7.注意下载器下边的Download Directory,我设置的是C: ltk_data8.在计算机-属性-高级系统设置-高级-环境变量-系统变量-新建:上边:NLTK_DATA,下边:C: ltk_data9.选择你要下载的包(语料库、模块),可以一次性下载(我在下载过程中总是出现out of date),也可以逐个下载(我就这么做的。。。)10.成功安装包之后怎么测试呢?输入下边的语句就可以。>>> from nltk.corpus import brown>>> brown.words()["The", "Fulton", "County", "Grand", "Jury", "said", ...]2023-06-13 00:58:121
电脑上装个英文应用软件,打开软件时总是提示: The system cannot find the file specified
安装路径太长。卸载在我的电脑中路径长度和地方换一下重装试试吧!2023-06-13 00:58:286
剧烈、沮丧、诱惑、告诫、实践,怎么造句?
1 他不慎扭伤了脚,感到一阵阵剧烈疼痛。2 心脏衰弱的人不能做剧烈的运动。3 饭后不能做剧烈运动,这是常识。4 妈妈总是叮嘱我刚吃完饭,不能做剧烈运动。5 这两种化学药品一相遇,剧烈的反应立竿见影。6 老大爷再也经受不住这样剧烈的摇晃了。7 睡觉前不宜做剧烈运动。2023-06-13 00:56:181
人物具体描写作文400字
1. 人物描写作文(400字) 我 拖 着 疲 乏 的 身 躯 下 了 巴 士, 沿 着 行 人 道 走 回 家。 来 到 电 梯 门 口, 猛 力 按 电 梯 掣, 盼 望 电 梯 早 点 下 来, 但 等 了 好 一 阵 子, 却 不 见 电 梯 下 来, 原 来 电 梯 又 失 灵 了, 我 只 好 带 着 一 肚 子 闷 气 爬 上 十 楼, 我 一 面 爬, 一 面 心 里 直 嘀 咕。 推 开 家 门, 只 见 妹 妹 坐 在 客 厅 里, 桌 上 乱 七 八 糟 地 放 着 二、三 十 张 纸, 地 下 满 是 纸 屑。 她 一 见 我 进 来, 就 满 脸 笑 容 地 拿 起 一 张 纸 给 我 看:“ 姐 姐, 姐 姐, 你 看 我 的 狮 子 剪 得 象 不 象!” 我 真 想 叫 她 不 要 喊, 我 没 心 情 陪 她 玩, 但 定 睛 一 看, 那 张 纸 上 密 密 麻 麻 地 写 满 了 数 目 字 和 方 程 式, 好 面 善 啊! 再 看 清 楚,“ 哎 呀! 你 要 死 啊!” 我 呼 天 抢 地 地 喊 了 起 来,“ 你 把 我 的 数 学 作 业 来 作 剪 纸!” 昨 晚 我 开 夜 车 赶 完20 道 数 学 题, 忘 了 把 它 们 收 好, 妹 妹 以 为 是 废 纸, 竟 用 来 剪 成 各 种 各 样 的 动 物! 我 原 本 已 是 一 肚 子 火, 眼 前 看 到 自 己 的 心 血 化 成 一 堆 废 纸, 更 是 火 上 加 油, 妹 妹 给 我 这 么 一 喊, 知 道 事 情 不 妙, 赶 快 溜 之 大 吉。 我 当 时 气 得 失 去 了 理 智, 拔 腿 追 着 妹 妹, 于 是 两 人 在 客 厅 里 互 相 追 逐。 最 后 妹 妹 跑 到 门 口, 把 门 打 开, 正 要 逃 出 门 外, 说 时 迟 那 时 快, 我 一 手 把 她 抓 住, 往 门 里 一 拉, 接 着 把 大 门“ 砰” 一 声 的 关 上。 谁 料 妹 妹 突 然 惨 叫 起 来, 我 定 睛 一 看, 不 得 了, 妹 妹 的 手 指 被 夹 在 门 缝 里, 我 立 刻 把 门 打 开, 一 时 不 知 所 措。 就 在 这 时, 母 亲 回 来 了。 她 立 刻 带 妹 妹 去 给 医 生 看, 留 下 我 一 个 人 在 屋 里。 我 这 时 才 清 醒 过 来, 我 真 想 不 到 自 己 竟 会 如 此 粗 暴 地 对 待 自 己 一 向 疼 爱 的 妹 妹, 我 的 爱 心 到 底 去 了 哪 里? 如 果 妹 妹 的 手 指 因 此 而 断 了, 那 怎 么 办 呢? 我 懊 悔 极 了, 希 望 妹 妹 不 会 有 事。 过 了 很 久, 母 亲 和 妹 妹 终 于 回 来 了, 医 生 替 妹 妹 打 了 针 止 痛 也 照 了X 光, 现 在 已 经 没 有 大 碍 了。 我 想 向 妹 妹 道 歉, 但 她 却 似 乎 忘 了 那 回 事 似 的, 尽 向 我 诉 苦:“ 姐 姐, 打 针 很 痛 啊!” 幸 亏 妹 妹 没 事, 不 然 我 可 要 内 疚 一 辈 子 了。 2. 人物描写400字 我的老师在我眼前,时常浮现出那张熟悉、亲切、令我永远难忘的脸庞,她便是给我印象最深刻的,我的小学老师—— 祁丽。 那时,我才读三年级,那时的我任性、骄傲、爱耍小脾气。有一次语文测试,我得了全班第一名,听到这个消息,我高兴得不得了,拿着这张试卷到处炫耀。 班长让我办黑板报,我心里乐滋滋的,让同学们都为我拿粉笔,递黑板刷,如有一点不顺意,就会乱骂一气。渐渐的同学们都不理我了,就连和我玩得最好的“铁哥们”也不愿意跟我玩了。 这时候,祁老师来到我身边,对我说:“湖之所以宽阔、博大,是因为它包容着所有的小水珠,它不会轻视其它小水珠,所以它十分快乐,一点也不孤独。人也是一样的,不能没有朋友,而朋友需要你自己去寻找,其实全班七十几个同学都是你的朋友,只是你没有去好好珍惜,才会一个人这样孤独。” 自从那次老师和我谈心之后,我明白了许多,也使我重新拥有了拥有了朋友,懂得了真正的友谊。在学习上,祁老师也常常支持我、鼓励我,陪我渡过了人生的一道道桥。 现在我转学了,又认识了新的同学,新的老师。在这几年里,我的学习有了很大的进步,每当我取得一点成绩的时候,就会想起她,想起她的一番教诲,那种鼓励的眼神。 我的老师我有一个非常可敬的老师。她总爱穿一件蓝色的衣服,文静的脸上常带着一副既严肃又可爱的表情。 每当看到她那眼镜后边闪动的目光时,一件难忘的事情便浮现在我眼前。一次测验,有道题把我难住了。 看到其他同学做得那么顺利。于是,我东瞧瞧,西望望,想捞个便宜。 然而,老师看透了我的心,心想,没有机会了。当老师的眼睛投向了另一边时,我趁机偷看了同桌的答案。 做好了试题,心里舒坦多了。老师发下卷子来了,结果我得了100分,心里乐滋滋的。 下课了,我刚走出教室,就听到后面有人叫我。回头一看,是老师。 她平时那么严厉,准不会放过我。我慌慌张张的跟着老师来到办公室,我不敢接近她,也不敢抬头看她。 老师说:“做错事不敢抬头,只要你改正错误,我会原谅你的。”听了老师的话,心里轻松了许多。 我诚恳的说:“老师,我错了!”“虽然你偷看了别人的答案,但是你还是不懂。”老师停了停说,“我还是讲解给你听吧。” 这时的我的脸已经通红了。过后,老师仔细地讲给我听。 临走前,老师还叫我不懂多问,错的作业要改正。我感动极了,深刻地会到老师对我的关心。 老师啊!,您真是一位可亲而又可敬的老师。 3. 关于人物描写的作文400字 我的奶奶今年已经五十八岁了,她中等个子,总喜欢穿一件棕色的外套,腰上常系着一条绿色的围裙。那布满皱纹的眼睛。她只要一笑就合不拢嘴,这时候你可以看见她嘴里只剩下几个“卫兵”——门牙。我的奶奶可爱唠叨了,一唠叨起来就没完没了,奶奶这种唠叨伴随着成长,不过我还是很喜欢奶奶的唠叨。 奶奶虽然爱唠叨,但我从来就不讨厌她。有一次,奶奶出去买东西,稍稍回来晚了一点,回到家后,爷爷说了奶奶几句,奶奶又不厌其烦地开始“念经”了,,“今天去买东西,那可叫个累呀!路上又塞车,好不容易才买到那么多东西,你也不去帮忙,专叫我这个老太婆去拿那么多东西,可把我累坏了。现在人老了,动作不利索了,什么事都干不好了,今天回来晚了,本来想回来吃个热乎饭,可你什么也不干,我还得自己做,全家什么事都让 *** ,不知哪一天也会累个毛病来就好喽! 这时,妹妹背着书包,一蹦一跳地放学回来了。写了一会儿作业便嚷着要看电视,爷爷不允许,奶奶便出来帮腔:“小孩子,要以学习为重!”你才上三年级,以后要上初中,要上高中,还要上大学,路还长着呢!如果不好好学习,没有知识,长大了考不上大学怎么办。现在考大学的人从来不看电视,怪不得人家学习那么好。写完作业看书,复习复习功课,做做练习题,把学习搞好,再去研究电视,听见没有。妹妹早把耳朵堵的紧紧的,见奶奶没有了,才把塞进去的棉花拿出来,说:“真唠叨!”这句话被奶奶听见了,又开始唠叨了,如果你不听奶奶的话,就不是好孩子,大人的话有一定的道理,你应该听大人的话,妹妹听了,只好不情愿地又把头埋进书堆里,接着学习。 自古以来,忠言逆耳。虽然奶奶有点爱唠叨,但那唠叨倾注着她对我们的感情。我希望奶奶的“唠叨”,永远陪伴我度过一生一世! 4. 人物描写作文400字 他是一个非常神秘的人,如果你不去接近他,那么你就永远别想了解他。 它的个子不算高,也不矮,长得很标准,析白的皮肤,南瓜形状的脸上镶着一双不明亮而忧郁的眼睛,似乎在想着什么。 他的学习比较好,因为他是我们班前任的学习委员,每每的看见他,他总会写着作业,或者是发呆,任何人都不知道他在想着什么。 他那么不被别人注意,他性格内向,不爱说话,也不会交往,之所以这样他只有我一个朋友,他不爱献慧自己,更不会自喻勉强,它属于那种不说会干的人,每次考试,他总能取得好成绩,而别人向他祝贺时,他就会向他人咧嘴勉强得一笑,接着就消失在人群中了。 他酷爱看武侠小说,每天他都会给我说一些脱离现实的故事,并且还要用树立的武功招试和我“过招”虽然他那些三角猫的功夫只不过是半斤八两,但是你瞧他那认真的劲,和出拳的动作,还真象一个少年游侠。 他也是个争强好胜的人,我们每次过招时,总是不分上下,他好胜心强, 打架的时候,他总是用他那坚硬的指甲来攻击别人,他自称“龙抓虎抓”而尝试过他那招的人,保证乖乖的认输。 每次上体育课的时候,他总是一个人孤独的在教学楼中转悠,谁也不知道他在干什么,甚至有的时候,我――这个他最要好的朋友,也不知道他在干什么。 他总是别人靠玩笑的对象,就是因为它的皮肤白,而且说话声音像女生,之所以这样,别人都叫他“娘娘婆” 可不知道为什么,他变了,学习每况愈下了,它的学习委员的乌纱帽也被摘了,我们的友谊也开始变质了,以前我们总是开个玩笑,对方都不计仇,可他现在,变得小肚鸡肠了,心胸狭窄了,哎……为什么会这样? 但愿我们的友谊地久天长。 5. 人物描写的作文400字(写同学的) 瞧她那黝黑的脸蛋,透露着一种不服输的性格,又粗又黑的眉毛下闪着一双玻璃球似的眼睛,小心地注视着对手的一举一动,机警灵活。凹凸的轮廓勾勒出了她对乒乓球的不懈追求。虽然个儿矮,也并不强壮,但她仍然疯狂地热爱运动。正如她那个令人震撼的名字——雷雨点,雷打不断! 她的对手现在是Q同学,她毫不示弱地举起乒乓板,习惯地耸耸肩,扭扭脖子,职业性地蹲好马步,微微抬起头,露出她那双令人望而生畏的眼睛,冷笑了一声,轻声地说:“发球吧!”那个黄色的小球迅速朝她射来,她毫不犹豫地一侧身子,抡起胳膊,“啪”地一下打了回去。谁知,对手也不甘示弱,又一个直射球。她警觉地皱了皱眉头,左脚往后一跨,右手对准球用力一推,眼睛一刻也不离开球。对手直接一个“杀球”,使她防不胜防,输掉一球! “可恶!”她咬了咬牙,伸手抓来一块毛巾,擦擦汗,又随便扔了回去。 “小子,不错嘛!”她握紧了板子,轻轻地把球往空中一抛,以闪电的速度把球运了过去,留下两声脆响。对手是个能将,不好对付。时间过去了很久,也没分出个胜负。她心里有些着急,那黄色的小球似团小火焰,烧得人心里发慌,尽管她左闪右闪,提打旋杀,对手却纹丝不动。 她心中很是恼火,额头上的汗珠都要发烫了,她一声怒吼,眉毛把汗搅在了一起,球“刷”地蹦了过去,正中对手要害,对手往后一个踉跄。冷不防输了一个球! 6. 描写人物的作文 400字 他是一个非常神秘的人,如果你不去接近他,那么你就永远别想了解他。 它的个子不算高,也不矮,长得很标准,析白的皮肤,南瓜形状的脸上镶着一双不明亮而忧郁的眼睛,似乎在想着什么。 他的学习比较好,因为他是我们班前任的学习委员,每每的看见他,他总会写着作业,或者是发呆,任何人都不知道他在想着什么。 他那么不被别人注意,他性格内向,不爱说话,也不会交往,之所以这样他只有我一个朋友,他不爱献慧自己,更不会自喻勉强,它属于那种不说会干的人,每次考试,他总能取得好成绩,而别人向他祝贺时,他就会向他人咧嘴勉强得一笑,接着就消失在人群中了。 他酷爱看武侠小说,每天他都会给我说一些脱离现实的故事,并且还要用树立的武功招试和我“过招”虽然他那些三角猫的功夫只不过是半斤八两,但是你瞧他那认真的劲,和出拳的动作,还真象一个少年游侠。 他也是个争强好胜的人,我们每次过招时,总是不分上下,他好胜心强, 打架的时候,他总是用他那坚硬的指甲来攻击别人,他自称“龙抓虎抓”而尝试过他那招的人,保证乖乖的认输。 每次上体育课的时候,他总是一个人孤独的在教学楼中转悠,谁也不知道他在干什么,甚至有的时候,我――这个他最要好的朋友,也不知道他在干什么。 他总是别人靠玩笑的对象,就是因为它的皮肤白,而且说话声音像女生,之所以这样,别人都叫他“娘娘婆” 可不知道为什么,他变了,学习每况愈下了,它的学习委员的乌纱帽也被摘了,我们的友谊也开始变质了,以前我们总是开个玩笑,对方都不计仇,可他现在,变得小肚鸡肠了,心胸狭窄了,哎……为什么会这样? 但愿我们的友谊地久天长。 7. 描写人物的精彩片段 400字 我有一个好父亲 父亲是一个少言的人。 他和母亲在一起的时候,都是听见母亲一个人在不停的讲话,父亲只是一个劲的抽烟,偶尔才应答一下,那话也多半只是一两个字。家里来客人,父亲陪人家吃饭,既不让酒,也不劝饭。 只自顾自吃自己的,显得很不礼貌的样子。对我们几个孩子也一样。 他很少过问我们的学习,他觉得学习是我们自己的事情。有问题问他,他也是说你们还是去问老师吧。 父亲是个农民,但在我眼里很多地方又不像地道的农民。父亲读完了小学,初中上到了二年级就因贫困辍学了。 接着他和几个同伴瞒着爷爷奶奶一口气跑到了包头,在那儿上了两年的中专。后来因为六十年代的三年自然灾害学校解散了,父亲又回到家继续当他的农民。 父亲写一笔很好的毛笔字,村里谁家有红白喜事,父亲总要被人家恭敬地请去当帐房先生,记记份子什么的。到了春节,更是父亲忙碌的时节,乡亲们都早早的把大红纸送到我家,请父亲写春联。 往往春节未到,我家早就洋溢着节日的气氛了。我小的时候习字,父亲就让我学着给山东的舅舅写信。 什么格式,怎么称呼,如何落款,都是父亲手把手教我的。我虽然喜欢他的字,但我练字没长性,直到如今也没形没体儿的。 回家陪父亲喝酒,喝到高兴处,父亲总是指着我说:“就你还中文系,还老师,写字还不如我这个农民哪。”我只能笑着点头。 父亲是个爱书的人。他每次出门,包里总要塞本书。 实在没有可看的,也要捎上几张报纸。记得父亲亲手买的书有1975年出版的三卷本的〈水浒传〉、上下册的《东周列国故事》、《聊斋志异》和冯梦龙的“三言”。 农闲时节,别人家的男人或打牌或赌钱,我父亲就在炕上看书。逢雨雪天,更是整天抱着书看。 这两年父亲眼花了,自己买个花镜,还是不忘读书。我有时端详端详,老人还真像个文人先生呢。 今年暑假回家,我倒腾书柜,找出一套明朝抱翁老人的《今古奇观》来,是清朝道光年间刻印的,可惜少了一卷。我对他说,这书给我吧。 父亲说行啊,反正我眼花也看不了了。父亲还常常感慨地对我说:“文革那会儿,你爷爷当私塾先生时留下来的书都让我作饭时当柴火给烧了,怕惹祸。 要不留到现在也值钱了。”于是我也很感慨。 好在我们这一代不会再赶上“焚书”的年代了。我家的三个孩子中,父亲最疼我,他说我坐得住,安分。 冬天的时候,我整天在大街上疯跑,出了满身的汗,热得把穿的棉裤都溻湿了。早晨起床前,父亲总是早早把火炉点好,然后把我的棉裤用手翻转过来,一点一点地靠近炉子烤,边烤边慢慢晃动着,不一会儿,我就看见棉裤上腾起缕缕热气。 等烤完了,父亲还要用他的两双大手把棉裤搓搓,让它柔软。等我再穿上的时候,感到很温暖。 父亲是一个闲不住的人,他常常给我擦皮鞋,每次都收拾得很仔细。我上学骑的自行车,每天都是父亲为我取出来,晚上回到家,每次也是父亲为我存放好。 擦车打气更是他的份内之事。在他眼里,我似乎永远是个孩子。 我上学时读的书,都是父亲亲自包书皮,并用毛笔写上我的名字。我当老师这么多年了,我上高中时的课本仍然保存完好。 有时我读他说,这书都没用了,您把他卖了吧。父亲总是说:“放着吧,放着吧,书到用时方恨少啊。” 我在南京上四年大学,每次都是父亲执笔给我写信,信的结尾总是说,别心疼钱,吃好,注意身体。他很少叮嘱我好好读书,但我读了父亲的信,自然知道该怎样去念书的。 现在,我当父亲也十多年了。孩子小的时候,因为他生病不肯吃药,没少暴打孩子,大一点了,因为不爱去幼儿园又挨了我不少打。 直到现在,学习不好了,考试不好了,我对孩子也是非打即骂。想想父亲对我,再想想我对孩子,确实很惭愧啊。 我和父亲每年相见几次,见一次,他就老一点儿。可不是吗,我都奔四十了,父亲能不老吗。 在我眼里,父亲是个沉默的人,是个爱我疼我的人,是个爱读书写字的人,是个引导多于管束的人。在我眼里,父亲的形象很高大,须仰视才见。 愿父亲能健康的活着,我愿意永远做他的孩子。我的老师 我自豪有我这样一位好老师,她就是我的班主任焦老师。 当我刚迈进中学的校门时,就听说我们的班主任是一位优秀教师焦老师.我怀着几分激动的心情,默默的在心中想象这优秀教师的形象.在我焦急的期盼中,终于等到了晚上,焦老师出现在我们的前方,首先我的心中想她应该不是我们以后的班主任焦老师吧!这么年青.正当我在想这一些时她就不由的像我们做自我介绍了,奇怪的是非曲直她也比我们大不了多少?为什么却成了一名优秀的教师呢?但在以后的日子里我也琢渐的了解了她.焦老师的字也写的很棒,但她是我们的英语老师.她在课堂上非常严格,但是课堂外她就不严了,我曾记得她以前也常常与我们一起聊天谈心,真的她仿佛就像自己的姐姐一样,如呆我们有什么心事,只要找她,她就会和你聊上一会儿,就不会在有不开心的事了!就好象有的同学喜欢犯错误,也只要到焦老师的手里就什么都不会有了,也就是她给解觉的干干脆脆,就如“大事化小,小事化了.”一样.其实我也是一个有时喜欢犯小毛病的人,但是有时可以控制,有时我也无法控制,但是焦。 8. 人物描写400字 我的老师在我眼前,时常浮现出那张熟悉、亲切、令我永远难忘的脸庞,她便是给我印象最深刻的,我的小学老师—— 祁丽。 那时,我才读三年级,那时的我任性、骄傲、爱耍小脾气。有一次语文测试,我得了全班第一名,听到这个消息,我高兴得不得了,拿着这张试卷到处炫耀。 班长让我办黑板报,我心里乐滋滋的,让同学们都为我拿粉笔,递黑板刷,如有一点不顺意,就会乱骂一气。渐渐的同学们都不理我了,就连和我玩得最好的“铁哥们”也不愿意跟我玩了。 这时候,祁老师来到我身边,对我说:“湖之所以宽阔、博大,是因为它包容着所有的小水珠,它不会轻视其它小水珠,所以它十分快乐,一点也不孤独。人也是一样的,不能没有朋友,而朋友需要你自己去寻找,其实全班七十几个同学都是你的朋友,只是你没有去好好珍惜,才会一个人这样孤独。” 自从那次老师和我谈心之后,我明白了许多,也使我重新拥有了拥有了朋友,懂得了真正的友谊。在学习上,祁老师也常常支持我、鼓励我,陪我渡过了人生的一道道桥。 现在我转学了,又认识了新的同学,新的老师。在这几年里,我的学习有了很大的进步,每当我取得一点成绩的时候,就会想起她,想起她的一番教诲,那种鼓励的眼神。 我的老师我有一个非常可敬的老师。她总爱穿一件蓝色的衣服,文静的脸上常带着一副既严肃又可爱的表情。 每当看到她那眼镜后边闪动的目光时,一件难忘的事情便浮现在我眼前。一次测验,有道题把我难住了。 看到其他同学做得那么顺利。于是,我东瞧瞧,西望望,想捞个便宜。 然而,老师看透了我的心,心想,没有机会了。当老师的眼睛投向了另一边时,我趁机偷看了同桌的答案。 做好了试题,心里舒坦多了。老师发下卷子来了,结果我得了100分,心里乐滋滋的。 下课了,我刚走出教室,就听到后面有人叫我。回头一看,是老师。 她平时那么严厉,准不会放过我。我慌慌张张的跟着老师来到办公室,我不敢接近她,也不敢抬头看她。 老师说:“做错事不敢抬头,只要你改正错误,我会原谅你的。”听了老师的话,心里轻松了许多。 我诚恳的说:“老师,我错了!”“虽然你偷看了别人的答案,但是你还是不懂。”老师停了停说,“我还是讲解给你听吧。” 这时的我的脸已经通红了。过后,老师仔细地讲给我听。 临走前,老师还叫我不懂多问,错的作业要改正。我感动极了,深刻地会到老师对我的关心。 老师啊!,您真是一位可亲而又可敬的老师。 9. 有关描写人物的作文 400字以上 妈妈的手 在手的世界中,有勤劳的手,懒惰的手,致富的手,灵巧的手,然而,我写的却是妈妈一双勤劳的手。她的手不怎么大,长期的劳动使茧皮爬上了手指,使手背上长了一层浅黑色的皮。 当鸡叫三遍的时候,妈妈的手已经开始工作了:忙着做早点。临近中午,她的手又工作了:忙着做午饭。下午,她的手又开始工作了:忙着做晚饭。夜晚,当明月高悬的时候,妈妈的手又工作了:忙着洗衣服。总之,妈妈的手时时刻刻工作着。 妈妈的手既是勤劳的手,又是充满母爱的手。记得一个寒冬的下午,天气比较冷。我在做作业,妈妈在做针线活。 夜深了,天气变得更冷了,我的手直打颤,不敢写了,怕把作业做坏。这时,妈妈走到了我身旁,关心地对我说:“冷吗?”我轻轻地把我的手夹在她的两手之中。顿时,我觉得无比暖和。在她的鼓励下,我终于认真地完成了作业。 记得还有一个隆冬的早晨,天气很冷。为了御寒,我和伙伴们到小河边滑冰。我一不小心,双脚跌进了石灰坑。我好不容易把脚提出来,可皮靴里已塞满了石灰。“不能穿了”,我果断地把皮靴脱掉,准备要妈妈给我洗,又一想:妈妈会批评我的。最后,我想出了一个两全其美的办法,把皮靴藏到门缝里,等天气暖和一点再洗。第二天,天气稍微暖和一点,我就去洗 皮靴。但门缝里皮靴的影子都没有。 我着急得差点哭起来,过了一会儿,镇静下来,就到别处去找。刚找到后门,就听见熟悉的“唰、唰、唰”声。这不是妈妈的手工作时的声音吗?我随着声音走去,在天井里,我发现了妈妈,她正在为我洗皮靴。她的手冻得红红的,裂开了几条缝。虽然天冷,但是从妈妈的两颊中仍然掉下几颗晶莹的汗珠,我走到她的身边,夺下刷皮靴的刷子,一边说:“妈妈,我来洗。”妈妈关心地说:“振振,我来洗。”我怎么也不答应,可是,她已经把皮靴和刷子夺去了。最终,还是妈妈洗了。她洗完后,又一丝不苟地烤皮靴,当我重新穿上皮靴时,眼睛已被泪水模糊了。 啊!我要赞美,赞美妈妈的手,更要赞美您――妈妈 10. 人物描写作文400字 世界上最好的东西 世界上最好的东西是什么?有人会说:“是金钱!”因为只要有了金钱,吃喝衣着不用愁。也有人会说:“是高贵的地位!”因为有了这高贵的地位,人人都会对你尊敬无比。……可我的观点与这些人截然不同,我认为助人为乐的品质才是世界上最好的东西。 在一个风和日丽的清晨,爸爸妈妈带着我去公园散步。一路上我们有说有笑,快走到公园门口时,我忽然看见一位老伯伯摔倒了,我急切地对爸爸说:“爸爸,爸爸,那边有一位老伯伯摔倒了,我们快去扶他吧!”爸爸二话没说,顺着我手指的方向,与我一起奔过去。只见一位白领叔叔抢先一步跑到老伯伯的身边,他扶起了老人,帮他拍去身上的尘土,关切地问道:“老大爷,您没事吧?哪里摔疼了?”“我……我……我这儿……我这儿疼。”老伯伯指着膝盖说道。白领叔叔立刻把老伯伯扶到路边的休息椅上,卷起他的右裤脚,看见老伯伯的右膝盖又红又肿,白领叔叔着急的说;“大爷,我送你去医院吧!你的伤挺严重的。”“不用了年轻人,你忙去吧,我坐一会儿就好了。”老人摇摇头。“那您站起来给我看看,是否好一些了?”谁知,老伯伯还没站稳,就一 *** 又坐了下去。“不行!您的伤不轻,如果不及时治疗,会更严重的!”说着,白领叔叔拦了一辆出租车,把老伯伯扶进了车厢。 我目睹了白领叔叔所做的一切,他的这种助人为乐的行为是一种高尚的品质,是每一个人都应该做到的,是世界上最好的东西2023-06-13 00:56:271
告诫的词性告诫的词性是什么
告诫的词性是:动词。告诫的词性是:动词。拼音是:gàojiè。结构是:告(上下结构)诫(左右结构)。注音是:ㄍㄠ_ㄐ一ㄝ_。告诫的具体解释是什么呢,我们通过以下几个方面为您介绍:一、词语解释【点此查看计划详细内容】告诫gàojiè。(1)也作“告戒”。(2)规劝某人勿做某事。(3)教诲劝戒。二、引证解释⒈见“告戒”。三、国语词典申告劝诫。如:「张生品性不端,老师特予以告诫一番。」也作「告戒」、「诰诫」。四、网络解释告诫告诫,指警告劝诫,如:爱默生的名言—-人类的全部历史都告诫有智慧的人,不要笃信时运,而应坚信思想。关于告诫的近义词申饬规劝警告劝诫警戒劝告关于告诫的反义词听任关于告诫的诗词《悼亡·告诫篷窗知不知》关于告诫的诗句来此劝农申告诫从容告诫告诫篷窗知不知关于告诫的单词lessonwarningwarnexhort关于告诫的成语差可告慰行词告状谆谆诰诫谆谆告诫小惩大诫死告活央自告奋勇断织之诫关于告诫的词语小惩大诫死告活央不可告人忠告善道无头告示不敢告劳三求四告差可告慰行词告状诫莫若豫关于告诫的造句1、父亲常常告诫我们言多必失,今天看见小李招来了麻烦,才知老人家的话是很有道理的。2、常言所说“知足不辱”包含了颇深的人生哲理,它告诫人们不能有非分的贪心,贪心容易招来祸患。3、它谆谆告诫我们必须培养正气,以身示范。4、妈妈语重心长的告诫,却被我不耐烦的打断了。5、老师常常告诫我们,骄傲使人落后。点此查看更多关于告诫的详细信息2023-06-13 00:56:291
告诫的成语告诫的成语是什么
告诫的成语有:死告活央,自告奋勇,行词告状。告诫的成语有:谆谆诰诫,差可告慰,自告奋勇。2:拼音是、gàojiè。3:注音是、ㄍㄠ_ㄐ一ㄝ_。4:词性是、动词。5:结构是、告(上下结构)诫(左右结构)。告诫的具体解释是什么呢,我们通过以下几个方面为您介绍:一、词语解释【点此查看计划详细内容】告诫gàojiè。(1)也作“告戒”。(2)规劝某人勿做某事。(3)教诲劝戒。二、引证解释⒈见“告戒”。三、国语词典申告劝诫。如:「张生品性不端,老师特予以告诫一番。」也作「告戒」、「诰诫」。四、网络解释告诫告诫,指警告劝诫,如:爱默生的名言—-人类的全部历史都告诫有智慧的人,不要笃信时运,而应坚信思想。关于告诫的近义词劝诫规劝警戒劝告警告申饬关于告诫的反义词听任关于告诫的诗词《悼亡·告诫篷窗知不知》关于告诫的诗句告诫篷窗知不知从容告诫来此劝农申告诫关于告诫的单词warningwarnexhortlesson关于告诫的词语诫莫若豫断织之诫忠告善道小惩大诫无头告示差可告慰行词告状不可告人死告活央自告奋勇关于告诫的造句1、常言所说“知足不辱”包含了颇深的人生哲理,它告诫人们不能有非分的贪心,贪心容易招来祸患。2、妈妈语重心长的告诫,却被我不耐烦的打断了。3、它谆谆告诫我们必须培养正气,以身示范。4、父亲告诫儿子说,你血气方刚,凡事要忍耐,切勿跟人处处冲突。5、父亲常常告诫我们言多必失,今天看见小李招来了麻烦,才知老人家的话是很有道理的。点此查看更多关于告诫的详细信息2023-06-13 00:56:351
告诫的读音告诫的读音是什么
告诫的读音是:gàojiè。告诫的拼音是:gàojiè。注音是:ㄍㄠ_ㄐ一ㄝ_。结构是:告(上下结构)诫(左右结构)。词性是:动词。告诫的具体解释是什么呢,我们通过以下几个方面为您介绍:一、词语解释【点此查看计划详细内容】告诫gàojiè。(1)也作“告戒”。(2)规劝某人勿做某事。(3)教诲劝戒。二、引证解释⒈见“告戒”。三、国语词典申告劝诫。如:「张生品性不端,老师特予以告诫一番。」也作「告戒」、「诰诫」。四、网络解释告诫告诫,指警告劝诫,如:爱默生的名言—-人类的全部历史都告诫有智慧的人,不要笃信时运,而应坚信思想。关于告诫的近义词警告规劝警戒劝告申饬劝诫关于告诫的反义词听任关于告诫的诗词《悼亡·告诫篷窗知不知》关于告诫的诗句来此劝农申告诫告诫篷窗知不知从容告诫关于告诫的单词warnwarningexhortlesson关于告诫的成语死告活央谆谆诰诫小惩大诫谆谆告诫行词告状自告奋勇断织之诫差可告慰关于告诫的词语行词告状忠告善道三求四告告贷无门死告活央无头告示差可告慰自告奋勇诫莫若豫断织之诫关于告诫的造句1、它谆谆告诫我们必须培养正气,以身示范。2、父亲常常告诫我们言多必失,今天看见小李招来了麻烦,才知老人家的话是很有道理的。3、我们应该牢记老师对我们的谆谆告诫。4、老师常常告诫我们,骄傲使人落后。5、校长谆谆告诫我们,要继续保持艰苦奋斗的作风。点此查看更多关于告诫的详细信息2023-06-13 00:56:421
用小心翼翼、涟漪、告诫造句
河上刚结了冰,踏上去要小心翼翼,以免掉下去。2023-06-13 00:56:491
用小心翼翼,依依不舍,告诫这三个词语连起来造句,200字左右
今天我去奶奶家玩。。。奶奶送给我一个很贵重的翡翠手镯,我小心翼翼的看了看,非常的漂亮,妈妈说他贵重,怕我弄坏了,就替我保管起来。。。吃完饭后,我和哥哥玩的很开心,但是才玩了半个小时,妈妈就说明天还有事要早起,要带我回家去,我便依依不舍地跟妈妈回家了,临走是奶奶告诫我:平时要多看书。。。大体上就是这样吧。。。处请根据剧情自行脑补!2023-06-13 00:57:071
用推推搡搡 前呼后拥 寒噤 怒不可遏 告诫 雾霭造句
前人告诫,做事不可推推搡搡,不可前呼后拥,2023-06-13 00:57:333
写人物的作文400字左右
描写人物的作文,可以通过人物的个性化语言来刻画人物的性格,也可以通过对人物的外貌进行描写。下面是由我为大家整理的“写人物的作文400字左右”,仅供参考,欢迎大家阅读。 写人物的作文400字左右(一) 你喜欢谁?你喜欢的一定是个很优秀的人吧?我也是。我来介绍我喜欢的人吧! 说到喜欢的人,我立马想起他那头短头发,乌黑油亮;他的肉肉的脸上镶嵌着一双眼睛,亮晶晶的;他说出的每一个字,我都十分欣赏。他跟我一样,11岁,可是我们不是一个班的人,如何靠近呢?我是一个热情开朗的女孩,常有人说我暴烈女,但我也不在乎。可是他好像很内向,不过,我不在乎!因为可以说是互补嘛! 有一次,我在路上走着,发现他也在走,我尽量靠近着他。我一直不经意的瞥他一眼,怕被旁边的同学发现。我发现他也会瞥我一眼,我立马扭过头,我害怕他理解我的用意,因为我知道,他不会喜欢我,但我还会默默喜欢着他的!还有一次,学校组织一起上课,我和他前后桌,我激动极了!要一起讨论了,我和他头对着头,一起讨论。我开心极了!我心想:天呐,这是一次多么难得的机会,我和他的距离竟然这么近! 这就是我最喜欢的一个人,一个帅气优秀的“帅哥”。 写人物的作文400字左右(二) 我有一个活泼、可爱的弟弟。他虽然像个“人来疯”,但是学习成绩名列前茅,总是让老师和同学对他刮目相看。接下来就让我给你们讲讲我弟弟的故事吧。 一个阳光灿烂的早晨,我和弟弟悠闲自得的走在路上,突然,一个不明飞行物掉在我头上,把我吓得像热锅上的蚂蚁团团转!这时,弟弟骄傲的说:“姐姐,你真胆小,不就是一只小鸟吗?有什么好大惊小怪的呀!让我这个“动物学家”帮你来看看吧!”弟弟仔细大量了一番,“不好这只小鸟受伤了,我们赶快把它带回家,不然它会死的。”我二话不说,小心翼翼的把小鸟捧回了家。 我们到了家,急忙打开急救箱,拿出了消毒水和棉花棒。弟弟一丝不苟地用棉花棒沾了一点消毒水小心翼翼的擦在小鸟的腿上。两天后小鸟腿上的伤好了。这时妈妈说:“宝贝,我和姐姐准备去购物,你去吗?”弟弟一本正经的说:“我不去,我要照顾小鸟。” 一个小时后,我们一回到家就听到叽叽喳喳的声音,我恍然大悟,完了,我直朝阳台跑去看到弟弟趴在阳台上睡着了,而小鸟却在衣架上痛苦的叫着,我急忙把小鸟救下,我真想大笑一场,最终我还是忍住了。 我偷偷摸摸的跑道弟弟旁边,大叫了一声。弟弟说:“姐姐,快跑,怪兽来了。”我明知故问:“奥特曼呢?”弟弟才缓过神来。“你是不是给小鸟洗澡了?”我说。弟弟说:“嗯!”我又说:“你为什么把小鸟的翅膀夹杂在衣架上?”弟弟说:“我想把他晾干。”我说:“它不疼吗?”弟弟低着头不说话,脸羞的像一只红苹果。我的弟弟就是这么可爱。 写人物的作文400字左右(三) 我在外面的英语班上结识了一位新的朋友,他有一口好口才,说起话来如滔滔江水没完没了,还一套一套的,就因为这,大家才会把他叫做是说评书的“庞然大物”。 在我的朋友中,口才最好的就数他了。他每天一到休息就哇啦哇啦地说了起来。还记得他第一次说评书是在病毒爆发时。他大踏步地走上讲台,用板擦一拍桌子就开讲了:“话说这病毒是哪来的呢?是由什么组成的呢?你们都不知道吧,是由超级xx等等东西组成……”他的话没头没脑的,还乱七八糟地说个不停,我们大笑不止。有时候他也会给我们大家讲很多的鬼故事,鬼屋惊魂,逃离埃及等等。他讲得有声有色,我们听得也毛骨悚然! 我一直认为他太能说,而且都是“废话连篇”,可那一次我发现了他“话匣子”的新用途…… 有一次,我们在回家的路上看见了一个小孩,骑车摔倒了,腿被划伤了,看起来十分疼痛。他的家长正在给他上药,可小孩疼得直哭闹,都不能好好上药了。他看到了连忙跑过去,挤眉弄眼地说起了笑话。他一会儿瞪眼睛,一会儿撇嘴巴,一会儿又像猴子一样活蹦乱跳。小孩见他说得有趣,好像忘记了疼痛,天真地笑了起来。小孩的家长十分感谢“庞然大物”。可他没有说什么,而是继续不停地认真地给小孩讲笑话,直到药上好了为止,他才擦擦汗笑着跟他们说再见。 看来,他除了能说外还是一个十分热心的人!我十分敬佩,做为他的朋友我应该像他那样,用自己的能力,去帮助别人。 写人物的作文400字左右(四) 只要在学校老远看见一个爆炸头,走路风风火火的一定是我妈妈。别看她平时跟我互相打闹,教育起来可厉害了。 记得有一次,我课堂作业没有在放学之前完成,妈妈本来笑容满面来到教室,一看我作业没做完,晴空万里的脸马上就“阴沉”下来了,我就知道暴风雨要来了。果不其然,妈妈回到家第一件事不是什么,正是开始“虐待”我,你看:不是拎耳朵就是用皮带抽我的屁股,这个痛呀。好不容易才熬过去。但从这以后,我的课堂作业很少是不完成的。 我妈妈还会烧一手好菜,她刚烧完饭就会叫我们尝尝她做的“特色”,她还连着喊,假如一分钟后还没见我们过去吃,火就好像罐了油一样“嘭”上来了,声音分贝马上提高。 我和爸爸只能一个从电脑桌前起来,一个从课桌上起来,用最快的速度洗完手坐到餐桌前,她火才灭掉。 我的妈妈虽然脾气暴躁,但是她也经常和我一起玩游戏,在公园里经常你追我赶,玩得和小孩一样的开心。 她不仅是我的好妈妈,还是我的好朋友。2023-06-13 00:57:381
谆谆告诫是什么意思
谆谆告诫意思是恳切耐心地劝告。谆谆告诫,汉语成语,拼音是zhūn zhūn gào jiè,意思是恳切耐心地劝告。出自《诗经·大雅·抑》:诲尔谆谆,听我藐藐。近义词谆谆教导、循循善诱、诲人不倦,反义词不教而诛,成语用法偏正式;作谓语;含褒义。谆谆告诫造句1、我们应该牢记老师对我们的谆谆告诫。2、老师的谆谆告诫,一直印在我的脑海。3、它谆谆告诫我们必须培养正气,以身示范。4、我们要做一个对社会有贡献的人,我们不能忘了老师的谆谆告诫。5、父母的谆谆告诫通常被孩子们当做生活的指南。6、校长谆谆告诫我们,要继续保持艰苦奋斗的作风。7、我把老师的谆谆告诫铭记在心。8、在老师的谆谆告诫教导下,这学期我进步很快。9、因此张仲景谆谆告诫后世医者,在行针施灸时,要注意针宜灸忌和针忌灸宜。10、同时,周人谆谆告诫自己人,天命靡常,惟有德者居之,不可自己骄奢,以致失落天命。11、他谆谆告诫我们,不要犯胜利时骄傲起来,不要犯生活腐化的错误。2023-06-13 00:57:461
告诫,闪耀,放射造句子
妈妈告诫我,做人一定要诚实守信。2023-06-13 00:58:052
告诫某人去做用英语怎么说并造句
复制。o(* ̄▽ ̄*)ブwarn sb to do sth I warn him to do his homework.2023-06-13 00:56:083
用实践......告诫......造句
这次的实践活动告诫我们一定要保护环境2023-06-13 00:55:592
用小心翼翼,依依不舍,告诫这三个词语连起来造句,200字左右
你自己去想2023-06-13 00:55:322
告诫的近义词
告诫的近义词包括:申饬、警戒、劝诫、劝告、警告等词语。1、申饬 [ shēn chì ] 告诫。2、警戒 [ jǐng jiè ] 使人注意改正错误。3、劝诫 [ quàn jiè ] 劝告人改正缺点错误,警惕未来。如:他把我当成亲兄弟一样,时时劝诫我,帮助我。 扩展资料告诫的反义词是什么:与告诫一词含义相反的词语有:听任、放任等。1、听任 [ tīng rèn ] 听凭。2、放任 [ fàng rèn ] 听其自然,不加约束或干涉。如:对错误的行为不能放任不管。告诫造句1、人们告诫他不要做坏事.2、分手时,他告诫我,切不可把今晚的谈话说出去.3、青年篮球赛中的不文明行为再次告诫我们,在运动队中,思想政治工作要得紧而又紧、实而又实,万万不可松懈.4、母蛇听说公蛇被杀,十分悲痛,从此躲在很深的岩洞里,不敢轻易出来,还经常告诫子孙,不要再冒险过海。5、他告诫那些疯狂的足球迷们改变那种捣蛋的做法。6、妈妈常告诫我:平时要多读书。7、人类的.全部历史都告诫有智慧的人,不要笃信时运,而应坚信思想。2023-06-13 00:55:191
用告诉和告诫造句
1王芳告诉小刚:“老师让你到办公室去。”2老师告诫王林不要违犯课堂纪律。2023-06-13 00:55:122
告诫的近义词是什么
1、警戒:[jǐng jiè] 警惕防备。2、劝告:[quàn gào] 为让人听取建议、更正错误而用道理劝服。3、警告:[jǐng gào] 提醒劝诫,使防备。4、告诫的造句:(1)老师常常告诫我们,骄傲使人落后。(2)他语重心长地告诫我要好好学习。2023-06-13 00:54:581
描写人物 事物的作文
我最熟悉的一个人 是她滋润着我们这些娇嫩的祖国之花,她就像辛勤的园丁一样,哺育我们成长,传授我们知识.她,中等身材,有一头棕色的卷发,洁白的瓜子脸,高高的鼻梁上架着一副眼镜,罩着她那双沉稳得来又明亮的眼睛。还有一张能说会道的巧嘴以及一对灵敏的耳朵。她平易进人,上课非常认真。讲课时,她常把难题用生活中的事例或者一些历史故事来分析给我们听,让我们一边听故事一边学知识,使我百听不厌。 有一次,有位同学在课堂上讲悄悄话,被她发现了。那时她正面对着黑板写字,我不知道她是怎样发现的,可能是她的耳朵真的像顺风耳一样吧。那位同学被她罚站了,可我看得出那位同学很不情愿站起来,是啊,有谁又想被老师批评呢!但面对着她,他还是无奈地站了起来。无时无刻,都是她昼夜不停地为我们操心:深夜里,我们已经进入了甜美的梦乡,而她却在皎洁的月光下,微微的灯光下为我们批改作业;白天,她又站在讲台上,引领我们进入知识的海洋,在知识的海洋里遨游。她认真地去把每一粒种子传播给我们,并让它发芽、开花、结果,结出一堆硕大、饱满、甜美的果实……她是谁,不用说你们已经知道,她就是我们最敬佩、最熟悉的人——老师。在我心灵深处 在我心灵深处,有一份爱,时时刻刻给予我温暖。 那是在一个雨天。大雨滂沱,晶莹的水珠都打砸在窗子上“啪啪”作响,时不时传来震耳欲聋的雷声。我想着:糟了,我没带伞,妈妈又带了弟弟到广州去看病,我怎么回家啊! 同学们陆陆续续地被家长接走了。雨越下越大,如水柱一般从天而降,阵势惊人!我就像热锅上的蚂蚁,急得团团转。 过来一会儿,大部分同学们都走了,只有我急促的呼吸声回响在耳边。天快黑了,雨还没有停,我的心中充满了恐惧,背起书包就像校门外跑去。我的心似乎随着鼓点“咚咚”跳个不停,只想快些到家。雨水把地面冲得坑坑洼洼的。跑着跑着,我一脚就踩进了水里,“扑通"一声摔倒了,腿不停地在流血,还溅了一身的污泥。又爱笑的我“哇哇”地哭了起来。 这时,有一个人奔了过来,轻轻地问我:”小朋友,你怎么了?“我抬起头一看,原来是妈妈!我马上停止了哭泣,用力地搂住妈妈。妈妈洁白的衣服被我弄得脏兮兮的。然后,妈妈帮我拍拍泥水,把我扶了起来,她晶莹的泪珠挂在了腮边,对着我温柔地说:“孩子,我们回家吧,妈妈给你包扎伤口。”一下子,我的心充满温暖。妈妈不顾劳苦地把我背回了家。 以前,我总以为妈妈经常打我,是在怪责我,但我知道那也是一种爱,因为妈妈很希望我成材,所以我要把这份沉甸甸的爱小心翼翼地藏在心里,让我永远珍惜人间最美好的爱!我的傻瓜妈妈 我的妈妈是我们家的家庭“煮”妇,她还是一个大傻瓜,经常做错事。 记得有一次,妈妈一边烧菜一边看书。她看得入了迷,把菜给忘了,菜都烧焦了。后来,她还把盐、糖、酱油、醋都调换了。那回,我跟爸爸可要受罪,这菜酸甜苦辣咸味都有。可妈妈还是吃得津津有味。还有一次,妈妈出去买油,我让妈妈顺便帮我买一本50多元的《走进名人的背后》。谁知妈妈买完东西后,却在商店里跟她的朋友聊天,一聊就是一小时,竟把付了钱的油和书放在了地面,两手空空地回来,自己还不知道发生了什么事呢!可把我给气死了!再有一次,妈妈要到街市去买菜,但起来晚了,随随便便把头发绑好、把衣服穿好了,就匆匆忙忙地骑着自行车“飞”向市场。这时,爸爸走出来说:“不用10秒,她肯定会回来的。”我有点疑惑:妈妈不是出去了吗,为什么爸爸会那么肯定呢?但我还是在心里暗暗地数了10下,妈妈真的在我数到10的时候骑着自行车回来了,我仔细一看,原来妈妈穿鸳鸯鞋了!我捧腹大笑,妈妈也笑了起来:“我真是太笨了,怎会连鞋都穿不好呢!”于是妈妈赶快把鞋子换了,又开始向市场冲去…… 虽然我的妈妈很笨很傻,可是,我非常喜欢我的傻瓜妈妈,我比世界上任何一个人都要爱她。2023-06-13 00:54:532
用告诉和告诫造句
1 王芳告诉小刚:“老师让你到办公室去.” 2 老师告诫王林不要违犯课堂纪律.2023-06-13 00:54:441
人物的作文
在日常学习、工作或生活中,说到作文,大家肯定都不陌生吧,写作文可以锻炼我们的独处习惯,让自己的心静下来,思考自己未来的方向。一篇什么样的作文才能称之为优秀作文呢?以下是我整理的人物的作文,仅供参考,欢迎大家阅读。 人物的作文1 啊!她是外国人吗:瞧那双深邃的大眼睛,额前有些褐色的微卷留嗨,我们都说,她长得像阿拉伯人。 她,是个要强的女孩,每每个课的时候都见她在座位上奋笔疾书,戴着,或是卸下那副看上去似乎很沉的圆框眼镜,懒懒的挂在鼻梁上或是让它随意趟在敞开的眼镜盒里。她不很在意这些,只是专注于眼睛睁的更大,一轮一轮的轻转,领会的看着你,或是久久的盯着你整理着她的思路。然后有些厚的唇向上一扬,耷下一点那四层的眼皮,像是轻松了许多呢,小跑跳着回去,或是和你随意的聊起来。 她,也是个单纯的女孩,不怎么在意生活,跟她聊起生活的一些小事时,她总是不太清楚,纯真又急切的询问着。她不刻意改变说话的方式,又总是那么敏感对朋友的每一句话,她觉得说错了,整下下午不时唤着你,想说似又说不出口,有些闷闷的样子。她就是很随意表现出她的个性,似有些慌慌张张,却最能马上安静自己的心,只是她慌张而急切的要和另一位课代表抢任务,她想多干,她想干好自己的一切。 她的个头不高,是教室的一二排,但她有很强的体育能力,会打排球,羽毛球,也有很好的长跑素质,一个马尾辫用粉色头绳扎了,随意搭在后肩。 她单纯却明白着,也无忧无虑的快乐着。她总是聪“惠”,她总是谦虚的把学习中的一切当恩惠,她就那样沉默而快乐的“承惠”。 人物的作文2 说起我们班的同学,可真是各有特色!下面请听我为大家介绍几个吧! 先说我们班的语文课代表吧!她,个子高高的,一条又长又粗的马尾辫在脑后晃来晃去,再加上一双水汪汪的大眼睛,可爱极了。她对工作极其负责,学习成绩也很好,唯一的缺点就是上课不爱举手发言。有一次,老师提出了一个问题,让她回答。虽然她没有举手,可是她还是答对了问题,下课后,老师教育了她一通。 再说我班的“数学尖子”吧。他大大的脑袋,长长的脸,一双炯炯有神的眼睛,眉毛很浓。这样称呼他一点也不夸张。下课后,他总是捧着一些数学难题想方设法地攻克。还记得有一次,老师给我们出了一题奥数题。很多同学都想不出个解题方法,纷纷弃权。只有他刻苦钻研,终于做出了那道题。 “你这该死的温柔……”一阵悦耳的歌声传入我们的耳中。哦!原来是“歌唱家”正在为大家演唱歌曲呢,她一直是班中的文艺骨干,她那甜美的歌声又为我班增添了一丝色彩。 “快!抢篮板!好!快攻!”哎,我班的“篮球王”又开始“发疯”了。虽然他痴迷于篮球,可他对篮球也只是一知半解。但他还不知道天高地厚地自称“球王”。上次学校篮球比赛时,还充当我们球队的主力队员,结果我班输得一败涂地。 …… 我们班的同学就是这样…… 人物的作文3 爸爸长着浓浓的眉毛,一双炯炯有神的大眼睛总是闪着严厉的目光。可能是因为长期从事脑力劳动的原因,额头上那深深的皱纹和他不到四十岁的年龄很相称。 爸爸两眼盯着我的“三好奖状”,站立在那里出神,好像在看着一件价值连城的宝物。 此时,伯父的面孔十分严肃,简直像生铁铸成的。 哥哥的眼睛高度近视,处处离不开眼镜,就像个“睁眼瞎子”一样,只要把他的眼镜摘下来,在我面前他就像绵羊一样服服帖帖。一天下午,哥哥要洗头了。他吩咐我给他拿肥皂换水。我得意地想:哼!我先给你跑跑腿,然后再治你。一会儿,哥哥伸长了脖子,把肥皂沫打得满头满脸都是。我一看时机到了,就悄悄地把哥哥的盆拿走了。哥哥搓完后去洗头,一捧水,捧了个空。他忙去找,可刚一睁眼,肥皂沫就杀得他直流眼泪。他像盲人摸路一样,东摸摸,西摸摸,好容易才摸起了毛巾,把眼一擦,可眼睛还是模糊的,就去找他的眼镜。 观众的目光,像无数条探照灯的光柱,紧紧地追逐着正在表演的武术运动员。 她的脸一下子红到了耳根,仿佛做了什么不道德的事情似的。 她脸儿红得像熟透了的山柿子,忙低下头去,不敢再看我一眼。 她是个不经夸的人,这时脸红得简直像墙上贴的对联纸。 妹妹今年十岁,读小学三年级。她那红扑扑的脸蛋上,一双水灵灵的大眼睛适着聪明伶俐的神色。乌黑的头发下,两条弯弯的眉毛,像那月牙儿。她那一排雪白的牙齿当中,缺了颗门牙,一笑起来,就成了个豁牙巴,十分逗人喜欢。 人物的作文4 初次见面,我对他的印象印象并不大。 最近小区的小下水道好像出了问题,每天上学放学的路上,总会看到有一群人围在路上挖的一个深坑旁,各忙各自的。 好不容易忙完这边,那边的下水道好像又出了问题,一行人又匆匆跑到那边去砸了个坑。 “沙沙沙”,雨淅沥沥的下着,雨清洗着污垢,冲去了尘埃,也将街道上的人们冲散开来,冷清的道路上,几朵颜色各异的大花相继走过,也不去在意他人。 坑旁,大伞下,一个身影依旧忙碌着,雨点斜斜地打在身影的背上,洗去了其他人的身影,填起了其他人的脚印。 豆大的水珠从黑中藏白的发丝中流过,顺着皱巴巴的脸颊,滴落下来。有着历史印记的双手此刻却又被下水道弄上了印痕,工作还没有多久,他又站直,挺了挺腰,叹了口气,像是在感叹自己老了。可休息还没一会儿,他又埋头干起来。 慢慢的,雨水已经将他背后上的衣服打湿,可他好像浑然不知,又或者知道了,却并不在意,依然蹲着身,沉迷工作。额头上的水珠依然在往下流,只是不知,那是雨水,还是汗水,也有可能两者都有吧! 雨天过后是太阳。在晴天里,深坑边可就热闹了。伞还是在那里立着,将余音留给人们。几人在坑边有说有笑,遇上熟的人,还站起说两句。过往的行人见到了,也伸出脑袋好奇一下。热闹的气氛围绕在坑旁。可他还是忙着,手没有停住,偶尔也直起身休息一下,尽自己的职责,努力修补着下水道出现的毛病。 雨依然淅淅沥沥地下着,坑边,那道身影一刻不停的忙碌着。 人物的作文5 世界上的名人有很多,有足球类的明星;歌舞类的明星;演戏类的明星……但在我身边也有个“名人”。 她长着一头浓密的短发,乌黑的头发中有几缕白发,前额上有一丝皱纹,衣着朴素,却不失淡雅。她,就是我的外婆。 她很乐于助人。记得有一次,我去她家时,她正在做家务。 “来了,孙女!”她热情地说道。 “嗯,婆婆好!”我亲切地说道。 “这天想吃什么菜?” “嗨!下午帮我接下孩子能够吗?”我刚想说话,却被邻居打断,“嗯!”婆婆爽快地回答。 “谢谢啊!”邻居高兴地说。 “婆婆,您为什么要答应帮她接孩子,你下午本能够睡会儿觉的。” “没关系,生命在于运动,多走走没事的,你此刻帮忙人家做些力所能及的小事,到时候你有什么事情请人家帮忙,人家也会帮忙你的,人与人之间是相互的。”婆婆意味深长地说。 “我明白了。”我若有所悟地说。 还有一次,当我去外婆家时,看到外婆不在家,“奇怪了?外婆呢?”我十分疑惑,忽然听见隔壁传来小孩子的嬉笑声,“看!这部动画片多好玩呀!”是外婆的声音!我急忙走到门口敲了敲门,“哟!咱家孙女回来了!”外婆乐呵呵的笑着,“您——怎样不在家里。” “我帮这家带下孩子,主人出去不在,过一会儿才回来。”天呐!又是帮人家带孩子,这就应是第无数次了吧!外婆你太…… 我的外婆不仅仅外貌整齐,更有一颗乐于助人的心。她就是我身边的“名人”。 人物的作文6 我有一个好朋友叫赖嘉濠,就坐在我后面。他长得比我高,身材均匀适当,一张充满帅气的脸,真是一个帅小伙! 赖嘉濠的学习成绩在班上算中等,但他很有志向,想有好成绩,想考名牌中学。他很谦虚,经常问我问题,毕竟我也不是老师,也不知道怎么向他讲解,但我能帮他的我就尽量帮,不能的我就没办法了。近来,他的成绩突然变得好起来,真叫人不可思议,也许是他暗暗努力的结果吧。 在生活上,他可是一个“小老大”,有很多人喜欢跟着他玩。赖嘉濠足球和篮球都打得好,他为人很大方,又很友善,一直都很讲道理,对老师长辈也很尊敬,很有礼貌,所有他的人气旺。记得那次我满12岁的生日,我请了赖嘉濠吃了一顿饭,回家后妈妈就说,赖嘉濠在吃饭时很讲礼貌,是个懂事明理的孩子,她很喜欢那个孩子。我听说了妈妈对他的赞扬,感觉真高兴。 我和赖嘉濠成为好朋友的经历说起来很简单,记得在4年级的一天,赖嘉濠对我说:“谭彦哲,在我心目中,只把你和樊耀洋看成好朋友,其他人只看做同学。”听了以后,我高兴的不得了,我和他的关系以“掩耳不及迅雷之势”,从普通朋友变成了好朋友。从此我便经常在一起玩,这个学期我们坐到了一起,是我们的缘分,也有可能是上天给我们的最后一学期的好运。 我们要珍惜这个机会,一起努力,取得优异的成绩。 人物的作文7 我们班有一个啰嗦大王,不管是上课还是课间,他都很闹。有一天他在我们上语文课时,老师刚刚讲到重点,他就开始和其他同学讲笑话,叽叽喳喳地,特别吵,弄得全班不得安宁。当老师转身后,他又立马坐正,装作若无其事的样子,实在是太“机智”了! 当我们以为今天这节课上他不会再讲话时,他又讲了起话,但这回他就没有这么的幸运了。老师一个转身就发现了他,他被老师叫到了教室最后排罚站,和他一起说话的人也叫到了后面。可是他们又开始说悄悄话了。更是越聊越起劲,像一个大喇叭一样,停都不停一下。 老师最后实在没有办法,只好让他们两个站得间隔远一点,可谁知道他们那竟然扔纸条来聊。老师真的生气了,把他拎进了办公室,让他们俩连面都不能见,可是这一番折腾下来,就已经下课了,他们又“重聚”了。 这一次把老师气得“七窍生烟”,可后来的一次就更过分了。 那次是在数学公开课上,他竟当着副校长的面爬来爬去,爬到了另一个人的桌子旁边,开始了他的常规操作,老师竟然还没有发现教室里的课桌上少了一个人。 事后直到有同学告状了,老师才知道。老师满脸通红,气势汹汹地把他叫进了办公室训话。还有几个同学,在办公室的门口看戏,他还在办公室里满不在乎地笑。老师语重心长地教育他:以后不能再这样了,他也不听。老师还打电话给他的家长,没想到没打通,老师只好让自己打电话给家长说明情况,可他的家长的电话过了半个小时也没反应。把数学老师也整没法子了,只好去叫了班主任说要去家访,这件事才算告一段落了。 这是我们班那令人头疼的“啰嗦大王”。 人物的作文8 小眼镜,竖鼻子,刺猬头,一个浅红色的嘴唇总带着微笑。要问他是谁,当然是老任啦! 要说他啊,眼镜小、手掌小、个子更小,我们班的小个子排名,他就在我前两位。在队伍中,他只能艰难地探出脑袋,或者伸出双手,以此证明,我还在队伍中。要是学校弄出来个“三小学生”,他绝对在内。 虽然他个子小,却创造了大能量。 这学期,我们班七手八脚搞出来了个“男生女生大PK”。这一重大消息,让全班的人都沸腾了,但女生是自信地沸腾,而男生……是紧张地沸腾。 吴姥姥看大家状态不对,高声问道:“比不比?” “比!”女生们用坚定不移的口吻说到。他们似乎早已习惯了比赛的胜利。 “叽里呱啦……”男生群里的声音混乱无比,就连士可杀不可辱的我,也只是硬着头皮叫了一声“比”,心里的退堂鼓一直在响。 “比!”此时,一个如巨浪一般的"声音,将男生们的“混乱音”迎面扑灭。男生们齐刷刷地望向声音的来源,那里站着一个戴眼镜的小个子男生,没错,他就是老任。 这一叫,就像一块打火石,擦出了我们体内男子气概的火花。“我们为什么要怕女生?”男子气概的火花越烧越大,最后成为了一片火海。 “堂堂大男儿,竟然输给女孩子,丢脸!”老任坚定不移的目光盯着男生们。男生们下意识攥紧了拳头,眼里冒出了必胜的光芒。 “宁可站着输,不可跪着死!”这一信念在男生们的心中播下了种子。 “比,谁怕谁!”叫声中老任立在中央。这时,他不再是那个小个子小任,他是我们的首领,带着我们,向前进…… 人物的作文9 我的爸爸长着一张笑脸,平时脸上总是带着自然的微笑,开心了会哈哈大笑,伤心的时候会哭笑不得,就连生气时都是带着笑的模样,所以我也是乐天派,每天都乐呵呵的。 我和爸爸是好朋友。我俩在一起时总是没大没小,我会坐在他的肚子上跟他打闹,他会把我按在地上使劲挠我咯吱窝,我们每天晚上一起享受各看各书的时光,一有新上映的电影我们就迫不及待的去买票……爸爸最喜欢带我去“探险”。有一次,爸爸神秘的跟我说“我带你去森林探险吧?”我有点害怕,最后还是带着期待和疑惑跟着爸爸走。爸爸带我来到一片黑漆漆的森林,跟我说:“这个森林里有5个小怪兽,他们是邪恶、懦弱、灰暗、害怕和孤独,我们要找到它们,再去战胜他们!”一路上,虽然我很累,有时想耍赖让爸爸背我走,但爸爸一直和我有说有笑,变着法的鼓励我,我们最终把“5个小怪兽”全都找到,也战胜了他们! 当然,爸爸可不是只会和我闹着玩,他也很注重我的学习。爸爸是个书虫,特别喜欢买书,我们家的书柜早就摆不下了,床上都堆满了他的书。受他的影响我也喜欢买书和读书。爸爸的历史很好,他每次给我读历史故事时,还会扩充很多他脑子里的历史故事。他还会给我讲数学题。有一次我有数学题做不出来,妈妈给我讲的已经没有耐心了,爸爸出现了,才解决了这个问题。 这就是我爸爸,一位可爱的爸爸,我很想抱抱他。 人物的作文10 今天,我想给大家介绍我身边的卡通的人物。 美羊羊 美羊羊特别爱美,头上会戴着一个发卡,我的姐姐和它如出一辙。一大早。她就来到镜子前臭美,拿起梳子,左梳梳,右梳梳,就像金丝雀在梳理它的羽毛,总是梳个没完。我也想照镜子,可是姐姐却把我推开,我不服气地说:“凭什么,让你照不让我照!”姐姐满不在乎地说:“男孩子照什么镜子。”出门的时候,她也会在头发上多放几个发卡,你看我的姐姐是不是一个活脱脱的美羊羊呢? 肥波 肥波是熊出没里的猫。它特别懒,也特别好吃,我的哥哥就是这样的人。一次,我和他出去吃饭。他一走进店里就聚精会神地看着菜单,一点就点一大堆,我们根本就吃不完。终于上菜了,他拿起筷子狼吞虎咽地吃起来,嘴里的食物还没有咽下去,另外一种菜又塞进了嘴里,嘴巴被撑得鼓鼓的,就像快要爆炸的气球。 大白 大白是个温暖的卡通人物,也很温柔。我的妈妈就是这样。有一次,我考试没考好,怕妈妈打我。可是妈妈看到我的卷子后,并没有暴跳如雷,而是温柔地对我说:“这次没有考好,下次努力。”她又指着我的错题说:“这些题目不应该错,要仔细一点。”我听了,眼泪一下子就流出来了。 这就是我身边的卡通人物,你也来介绍一下吧! 人物的作文11 彩笔、铅笔、毛笔在肖雅琳手中像一只只神笔,画出了公主,画出了王子,画出了一个美丽的世界。 瞧,肖雅琳又拿出了她的图画簿。这里面有米奇,有唐老鸭,还有许多同学们喜爱的卡通人物。这些在别人眼里看起来那么复杂的东西,她都能非常快速地画出来,还可以保证它们可爱的形象。 她拿起了铅笔,画出了城堡的草图,再拿起彩笔,画出了美丽的城堡。咦,怎么城堡有的地方太深,有的地方太浅,颜色有些太怪了,画坏了吧?没关系!她又拿起了毛笔,在纸上轻轻地刷几下。哈,好了!看,颜色多均匀,多鲜艳啊!那些如同一只只神笔,又划了几下,王子和公主一起登上这漂亮的城堡了! 每当肖雅琳花完一幅画后总会仔细检查,看哪里画得不好。当把一幅画完全画完,达到她的标准时,她就会常呼出一口气,笑眯眯地欣赏自己的画。如果一时想不出怎么修改才能达到标准就继续想,直到想出办法为止。她一直这么认真地对待自己的画。如果她实在是没有办法把画改好,就果断地重新画一张,而原来的失败品则留在那儿,告诉自己:我不能再犯同样的错误了! 有的时候,肖雅琳还让别人往她的本子上画画,她在一旁观看,看别人绘画的方式,再把精华融入自己的画里。她的画是给自己和同学们看的,所以她从不炫耀。 肖雅琳的画技像一颗宝石,又用谦虚镶边,用微笑做名片,使它更加光彩夺目。 我不仅在心底为她暗暗喝彩,同时推荐她为“雏鹰争章”活动中“绘画奖”的得主! 这篇文章小作者 构思巧妙,看似在写肖雅琳的画,实则是从肖雅琳的画中体现出她的绘画技艺高超、为人谦虚低调的优秀品质。本文语言优美准确,描写具体形象,真是一篇不错的文章。 人物的作文12 哈,要说起谁能得表演章,那就非我的好朋友——叶璟莫属了。 她呀,可爱表演了!叶璟身材娇小玲珑,跳起舞来如同翩翩起舞的蝴蝶,她曾在少年宫学跳拉丁舞,还获得铜、银牌呢!叶璟不仅跳舞好,唱歌也很好呢!只要她一唱起歌来,就如痴如醉。她还在学校报了合唱呢! 有一次,“六一”儿童节到了,一个节目就是合唱,叶璟她也在里面。歌声响起,叶璟那嘹亮而又动听的歌声是全场的焦点,她一会儿唱得如高山流水,一会儿又如梦中鸟鸣、如云淡风轻、如急风骤雨!听着听着,我就入迷了。等结束了,我还沉浸在她优美的声音中。“功夫不负有心人”在两次比赛中,叶璟用自己最动听的声音比赛,分别获得了“鼓励奖”、“二等奖”!另外,她在合唱队里可努力了,唱一首歌,练了很长时间,老师都说很好了,可以休息了,但她还是坚持练习。说了这么多关于叶璟唱歌的事例,现在该说说她的跳舞经历了。有一次,我到她家玩,她正在练习跳舞。我就对她说:“给我表演一段吧!”她毫不犹豫地答应了。她放起了音乐,那优美的身影一会到这儿,一会到那儿,小手浑洒自如,往前,往后,练得滚瓜烂熟,一双腿又细又长,可灵活了!跳舞结束了,她摆了一个POSE。那样子,简直就是一个小公主。我还看到有一本专门是叶璟表演的相册,心想;她现在所取得的成就,都是她用一点一滴的汗水换来的,有一句俗话说得好:“台上一分钟,台下十年功。”我为她的表演艺术而喝彩。作文 人物的作文13 我们班是一个团结向上的班级,是一个群英荟萃的班级,是一个藏龙卧虎的班级,更是一个精英聚集的班级。下面就听我介绍给大家吧。 “小书迷”王海龙 我们班的王海龙是个十足的小书迷,他每天都要看书,每时每刻都在看书,你每天都会看到他在看书,仿佛不看书,他就会很难受似的。 有一次放学时,他还在看书,只见他小寸头,戴着黑边眼镜,手托着腮帮,黑边眼镜下的两眼放光,一会眉头紧皱,一会撅着小嘴,一会又眉开眼笑。他完全漫游在书的海洋。看呀,看呀,直到他的肚子像一个小闹钟一样不停地叫着他时,他才发觉到同学们都站好队去吃饭了。真是个小书迷! “跑步健将”王兆龙 王兆龙在我们班是跑步最快的一个,在跑步的时候,他身体里的每一个运动细胞似乎都在工作。 记得在上学期的运动会上,男生要跑接力比赛,他是男生队的主力队员,他迅速地组织好男生,然后自己担当最后一棒。比赛开始了,王兆龙在起跑线上等待着队友的到来,他伸着手,弓着腰,瞪着眼,死死地紧盯着接力棒,时刻准备着他的那一棒,到他时,他像一匹脱缰的野马一样向前冲去,他那轻巧的身姿像在云中飘一般,显得是那样的轻盈。 “礼貌标兵”李云丹 李云丹很讲礼貌,不管是遇到老师,还是遇到家长,他都会问声好或者行少先队礼。 有一次,住宿生站队回家,来到楼梯口,有一位老奶奶在那里,其他同学都不理不睬,只有李云丹行了个少先队礼,老奶奶乐呵呵地走了。 这就是我们班的精英们!想知道更多的精英吗?那就到我们班来看看吧! 人物的作文14 “今天中午的作业,你没交,体育课留在班上补写!”老师板着脸严肃地对我说。 这是发生在二年级时令我伤心的一件事。 那天上午放学时,老师布置了一项作业,我按时在下午上课前交给了组长。 谁知,到了最后一节体育课,遭殃的事情却发生了,老师点名批评我没有交,不但不能去上体育课,而且还得留在班里补写。我一听,感到非常的委屈,心想:“为了写好这篇,我中午都没有休息,下午一到学校就交上去了啊!”但我不敢说,怕老师不相信,误认为我是撒谎的坏孩子,所以就只能忍气吞声,硬着头皮回到座位上,含着眼泪伤心地写已经交上去的。 平时,我是最爱上体育课的了,可现在同学们都在操场上高兴地上体育课,我却跟关在笼子里的小鸟一样闷在空荡荡的教室里…。 等写完交上去了,体育课也下课了,也就是要放学了,我眼巴巴地看着教室门口,盼望爸爸快点来为我解围,可爸爸一来,老师却就叫我向爸爸认错。 面对爸爸严厉的眼光,我不知道该怎么说,只想大哭一场。 就在这时,旁边的黄东毅大声为我作证:“何宇晖有交作业啊!”,林千卉也紧跟着说:“我也看到了,他是用有格子的纸写的!” 老师一听,便转过头来温和地对我说:“对不起,我误会你了!” 我鼻根一酸,眼泪差点夺眶而出,但我竭力忍住了,爸爸摸摸我的头,慈爱地说:“老师对你要求严格是好事”,可我却又想大哭一场。 人物的作文15 她,大大咧咧,爱说爱笑。大家最熟悉的她的表情:咧开嘴巴,露出标志性的兔牙,温暖的笑容使唇畔生花。她,时不时会幽默一下,使大家在高三烦躁的学习生活中获得快乐。有同学这样说过,“没有哪天听不到戴秋萍的笑声,除非她病了。” 就是这样一个乐观幽默的女孩,带给了我们欢乐和帮助。 她,拾金不昧,是年级中的“捡钱专业户”。曾拾到三百多元现金和证件等的她总是在无人知晓的情况下主动上交,成为了老师表扬的典型。 她,乐于助人,是同学口中亲切的“秋萍姐姐”。天气降温,她会唠叨大家多穿衣服;流感爆发,她会张罗体温计、药、水,一应俱全;同学生病,她会主动陪护去医院,忙上忙下。对于大家的感谢,也只是笑着摆摆手,“这没什么。” 她,身为副班长兼纪律委员,班级工作认真负责,井井有条,是老师的好帮手。她可以较好组织起班级的学习氛围,让大家在安静中刻苦;同学发生矛盾,她总会迎上一张笑意盈盈的脸,调解好同学间的关系。我们班运动会,广播操取得的辉煌成绩,和她的热情组织是分不开的。课余生活,她同样积极主动。运动赛场上,她奋力奔跑的身影,为同学摇旗呐喊的声音始终留在大家的脑海中。大扫除时,她不怕脏不怕累的精神同样令我们感动。拖把弄不干时,她会选择用自己的双手拧干而从不抱怨……一幕幕发生在我们周围的场景,令我们感动! 戴秋萍,这个快乐的女孩,愿她的快乐能够感动你我,愿我们在快乐中学习、进步!2023-06-13 00:54:431
用告诉和告诫造句
这个秘密是小明告诉我的。老师多次告诫你不要这样去做,你就是不听。2023-06-13 00:54:374