分隔符

学习笔记6

余生颓废 提交于 2019-11-29 03:18:56
一 系统启动和内核管理 1.linux组成 Linux: kernel+rootfs kernel: 进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能 rootfs:程序和glibc 库:函数集合, function, 调用接口(头文件负责描述) 程序:二进制执行文件 2.centos6启动流程 1.加载BIOS的硬件信息,获取第一个启动设备 2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息 3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备 4.核心执行init程序,并获取默认的运行信息 5.init程序执行/etc/rc.d/rc.sysinit文件 6.启动核心的外挂模块 7.init执行运行的各个批处理文件(scripts) 8.init执行/etc/rc.d/rc.local 9.执行/bin/login程序,等待用户登录 10.登录之后开始以Shell控制主机 3.内核 Linux内核特点: 支持模块化:.ko(内核对象) 支持内核模块的动态装载和卸载 内核组成部分: 核心文件 /boot/vmlinuz-VERSION-release ramdisk:辅助的伪根系统 CentOS 5 /boot/initrd-VERSION-release.img CentOS 6,7 /boot/initramfs-VERSION

AWK

拥有回忆 提交于 2019-11-29 03:16:31
本章内容 awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 awk循环 awk数组 awk函数 调用系统命令 awk介绍 awk:Aho, Weinberger, Kernighan,报告生成器,格式化文本输出 有多种版本:New awk(nawk),GNU awk( gawk) gawk:模式扫描和处理语言 基本用法: awk [options] 'program' var=value file… awk [options] -f programfile var=value file… awk [options] 'BEGIN{action;… }pattern{action;… }END{action;… }' file ... awk 程序可由:BEGIN语句块、能够使用模式匹配的通用语句块、END语句 块,共3部分组成 program 通常是被放在单引号中 选项: -F “分隔符” 指明输入时用到的字段分隔符 -v var=value 变量赋值 awk语言 基本格式:awk [options] 'program' file… Program:pattern{action statements;..} pattern和action • pattern部分决定动作语句何时触发及触发事件 BEGIN,END • action

grub 修复及 AWK用法

时间秒杀一切 提交于 2019-11-29 02:41:12
系统启动和内核管理,各种修复及各种编译 Linux就是个内核。 ldd命令可查到每一个程序依赖的库。 Centos6的启动流程及修复 centos6启动步骤概述 1、上电POST自检,加载BIOS的硬件信息,获取第一个启动设备 2、读取第一个启动设备MBR里的引导加载程序(grub)的启动信息 3、加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备 4、核心执行init程序,并获取默认的运行信息 5、init程序执行/etc/rc.d/rc.sysinit文件 6、启动核心的外挂模块 7、init执行运行的各个批处理文件(scripts) 8、init执行/etc/rc.d/rc.local 9、执行/bin/login程序,等待一会登录 10、登录之后开始以shell控制主机 Bootloader是用来启动操作系统的。实现操作系统的前期引导。 GRUB启动程序是多部份组合而成,其中MBR的前446个字节只是他的第一个阶段。 第二阶段放在了磁盘文件:放在了/boot下的grub文件 内核放在/boot/文件下这就是内核文件 初始化的文件系统:/boot/initramfs - VERSION -release.img 这还是一个打包文件。 :先修改后缀就能解压。 :这个文件的目录和根分区的目录一样。他就是一个缩小版的根。这个文件里面就是一个隐藏版的小内核。 :-

常用字符串相关方法

我与影子孤独终老i 提交于 2019-11-29 01:07:52
前面我们见过书写字符串的一种特殊方式,即直接将两个字符串紧挨着写在一起,这样的话 Python 就会自动拼接它们,比如说: s1='Hello,''World' print(s1) #Hello,World 还有一种方式是使用 "+"的方式,比较简单 s1='Hello,'+ 'World' print(s1) #Hello,World 还有使用字符串拼接数字,因为Python不允许直接拼接,所以要将数字转换成字符串 s1 = "这是数字: " p = 99.8 #字符串直接拼接数值,程序报错 print(s1 + p) #使用str()将数值转换成字符串 print(s1 + str(p)) #使用repr()将数值转换成字符串 print(s1 + repr(p)) str() 和 repr() 函数都可以将数字转换成字符串,其中 str 是 Python 内置的类型(和 int、float 一样),而 repr() 则只是一个函数。此外,repr 还有一个功能,它会以 Python 表达式的形式来表示值 st = "I will play my fife" print (st) print(repr(st)) I will play my fife 'I will play my fife' 通过上面的输出结果可以看出,如果直接使用 print() 函数输出字符串

shell三剑客之awk 报告生成器

孤街浪徒 提交于 2019-11-29 00:50:24
shell三剑客 grep 文本搜索工具 全局搜索剪切 sed 流文本编辑器 逐行进行处理 awk 报告生成器 自由的文本格式化工具 支持判断数组循环 awk 报告生成器 显示文件名 以:为分隔符 显示总列数 NF表示列 以:为分隔符 显示总行数 NR表示行 打印第二行 以:为分隔符 显示前三列 以:为分隔符 显示第二行的前三列 以:为分隔符 显示第二行的前三列抓取中间密码占位符x 另一种方式 $2表示第二列 BEGIN{} 读取第一行文本之前执行,一般用来初始化操作 {} 逐行处理,逐行读入文本执行相应的处理,是最常见的编辑指令块 END{} 处理完最后一行文本之后执行,一般用来输出处理结果 以 : 分隔列从 NAME 为第1行开始依次输出多少行 END 为结束行 以 : 分隔列从 NAME 为第1行开始依次输出第1列 END 为结束行 以 : 分隔列从 NAME 为第1行开始依次输出第1列和第7列 END 为结束行 以 : 分隔列从 NAME 为第1行开始依次输出全部内容 END 为结束行 以 : 分隔列从 NAME 为第1行开始依次输出第1列为空显示全部内容 END 为结束行 以 : 分隔列从 NAME 为第1行开始依次输出全部内容 加上分隔符:END 为结束行 显示以bash结尾的行 显示非bash结尾的行 显示非bash结尾或nologin内容的行 显示以r开头的行

Apache Sqoop篇

拈花ヽ惹草 提交于 2019-11-29 00:40:19
Apache Sqoop sqoop 安装验证 bin/sqoop list-databases \ --connect jdbc:mysql://localhost:3306/ \ --username root --password hadoop 注意事项:命令携带参数必须出现在一行中,若换行就意味着自动提交执行,可通过\表示未结束。 全量导入数据到hdfs mysql的地址尽量不要使用localhost 请使用ip或者host 如果不指定 导入到hdfs默认分隔符是 “,” 可以通过-- fields-terminated-by '\ t‘ 指定具体的分隔符 如果表的数据比较大 可以并行启动多个maptask执行导入操作,如果表没有主键,请指定根据哪个字段进行切分 bin/sqoop import \ --connect jdbc:mysql://node-1:3306/userdb \ --username root \ --password hadoop \ --target-dir /sqoopresult214 \ --fields-terminated-by '\t' \ --split-by id \ --table emp --m 2 导入表数据子集(query查询) 使用 query sql 语句来进行查找不能加参数--table ; 并且必须要添加

Scanner

半腔热情 提交于 2019-11-28 17:32:56
1.Scanner是什么? Scanner是JDK5的新特性,一个可以使用 正则表达式 来解析基本类型和字符串的 简单文本扫描器 。 Scanner只是用来扫描文本的一个扫描器,也就是说,它与 文本的关系 是它扫描文本 Scanner可以从字符串、文件、标准输入流中扫描数据,由构造方法指定扫描的数据源 我们常用的 new Scanner(System.in)就是从输入流中扫描数据 2.有了Scanner才能键盘输入吗? Scanner提供了一系列的构造方法,其中 new Scanner(System.in) 可以接收标准输入流输入也就是键盘输入 但其实,没有Scanner也能在控制台输入 我们可以写一个简单的HelloWorld程序,打上断点在IDE里以debug模式运行,只要程序开始运行没有结束,就可以在控制台随便输入 1 public class HelloWorld { 2 public static void main(String[] args) { 3 System.out.println("Hello,world!"); 4 } 5 } 在第3行打上断点,以debug模式运行 123 //运行开始,在控制台可以用键盘输入 Hello,world! //走下一步,在控制台打印出 "Hello,world!" 456       //此时程序未结束,可以继续在控制台输入

MySQL substring_index函数

谁说我不能喝 提交于 2019-11-28 11:30:43
MySQL substring_index函数 substring_index(str,delim,count) str:要处理的字符串 delim:分隔符 count:计数 例子:str= www.wikibt.com substring_index(str,'.',1) 结果是:www substring_index(str,'.',2) 结果是:www.wikibt 也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容 相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容, 如: substring_index(str,'.',-2) 结果为:wikibt.com 有人会问,如果我要中间的的wikibt怎么办? 很简单的,两个方向: 从右数第二个分隔符的右边全部,再从左数的第一个分隔符的左边:   substring_index(substring_index(str,'.',-2),'.',1); 来源: https://www.cnblogs.com/cyfblogs/p/11406677.html

excel小技巧-分列

落花浮王杯 提交于 2019-11-28 11:13:28
分列:1.选择要分列的单元格;2.点击数据->分列,会弹出文本分列向导;3.文件类型选择分隔符号;4.下一步,勾选要分隔的符号,也可以自定义;5.下一步,完成。 3.文件类型选择固定宽度;4.下一步,建立分列线;5.下一步,完成。 注意:选择分隔符号和固定宽度的差别在于,分隔符号是会把当做分隔的符号去除,而固定宽度则不会去除任何东西。 来源: https://www.cnblogs.com/jaci/p/11406245.html

shell - AWK

ぐ巨炮叔叔 提交于 2019-11-28 10:53:13
AWK # begin 行处理前 awk 'BEGIN {FS=":" ; OFS="+++++++++++"} {print $1,$3}' /etc/passwd # 处理前,处理中,处理后 BEGIN{处理前} {行处理} END{处理后} awk 'BEGIN {print 1/2} {print 'ok'} END {print 'over'}' /etc/passwd print 'ok' 为行处理,passwd 有两行则打印两个 # 匹配内容 awk '/root/' /etc/passwd # 处理动作 awk '{action}' filename awk -F: '{print $1}' /etc/passwd # 匹配+处理动作 awk -F ":" '/root/ {print $1,$2}' /etc/passwd # 判断大于多少则输出 df|awk '/\$/ {if ($3>500000) print $4}' awk 工作原理 # awk -F ":" '{print $1,$3}' /etc/passwd 1. 载入文件中的第一行,然后将这一行放入模式空间,并将彼此赋值给¥0 2. 通过字段分隔符,切割整行的内容,并将切割后的字段按$0,$1,$2 3. 检查print函数需要打印的字段,然后从模式空间中取出字段对应的值 4.