跟我一起写Shell脚本之十五---写文件
1、创建一个新文件并写入内容我们写脚本如下:#!/bin/bashecho "Begin to write our own file"if [ $# -lt 1 ]; then filename="myfile1"else filename=$1ficat>$filename<<EOFfirst line2nd linehahahahhohhohoEOF<<EOF 表示当遇到EOF时结束输入。执行结果
跟我一起写Shell脚本之十六---命令(wc)
今天我们来了解下wc命令的用法。1、基本用法wc命令是用来统计文件的行数、字节数等。其用法如下:wc [-lcmw] [file...]-l 统计行(line)数-w 统计字(word)数-c 统计字节(character)数我们写个脚本试验下:#!/bin/bashif [ $# -gt 0 ]; then filename=$1else filename="027_function1.sh"fiecho `wc $file
跟我一起写Shell脚本之十七--常用命令(sed)
1、介绍sed也是我们在写脚本时经常用到的一个非常强大的命令。sed是一个非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,非常灵活和方便,特别适合于大文件的编辑。sed在处理文本时会逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。sed能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上。还可以对原文件改动,但是不会再屏幕上返回结果。2、语法sed的语法有两种
跟我一起写Shell脚本之十八--常用命令(head)
1、介绍 head也是我们经常在脚本中用到的一个命令,主要用来显示文件的开头部分内容。我们可以用man head查看下它的介绍:NAME head - output the first part of filesSYNOPSIS head [OPTION]... [FILE]...DESCRIPTION Print the first 10 lines of each FILE to standard output. With mor...
跟我一起写Shell脚本之十九--常用命令(tail)
1、介绍 tail也是我们经常在脚本中用到的一个命令,它和head类似,但是如名字所示,它主要用来显示文件的结尾部分内容。我们可以用man tail查看下它的介绍:NAME tail - output the last part of filesSYNOPSIS tail [OPTION]... [FILE]...DESCRIPTION Print the last 10 lines of each FILE to standar...
跟我一起写Shell脚本之二十--常用命令(cut)
1、介绍 cut命令也是我们写脚本时经常用到的命令,主要用来显示文件或者标准输入的每一行,从xxx1到xxx2的内容。常用方法可以总结到一张表里:语法 说明 cut [-nb] [file] -b是以字节为单位进行分割,但是遇到多字节字符的时候有可能会出现乱码。所以加上-n选项就可以解决。 cut [-c] [file] -c是以字符为单位进行分割 cut [-df] [file] -f是以域为单位进行分割。 -d指定分割域的方法 ..
跟我一起写Shell脚本之二十一--常用命令(od)
1、介绍 od是Octal Dump的简写,用于将指定文件内容以八进制、十进制、十六进制、浮点格式或ASCII编码字符方式显示,通常用于显示或查看文件中不能直接显示在终端的字符。 其语法如下:od [<选项><参数>] [<文件名>] 详细命令选项介绍:-A,--address-radix=RADIX: 指定地址(文件offset)用什么基数显示,包括: d 十进制 o 八进制(系统默认值) ...
跟我一起写Shell脚本之二十二--常用命令(xargs)
1、介绍 od是Octal Dump的简写,用于将指定文件内容以八进制、十进制、十六进制、浮点格式或ASCII编码字符方式显示,通常用于显示或查看文件中不能直接显示在终端的字符。 其语法如下:od [<选项><参数>] [<文件名>] 详细命令选项介绍:-A,--address-radix=RADIX: 指定地址(文件offset)用什么基数显示,包括: d 十进制 o 八进制(系统默认值) ...
C标准、C标准库、C++标准、C++标准库
1、C标准C标准主要有三个版本:C89、C99、C11,他们之间的关系可以借用这张图来表示:C 标准主要由两部分组成:描述C的语法,和描述C标准库。C标准库定义了一组标准头文件,每个头文件中包含一些相关的函数、变量、类型声明和宏定义。要在一个平台上支持C语言,不仅要实现C编译器,还要实现C标准库,这样的实现才算符合C标准。不符合C标准的实现也是存在的,例如很多单片机的C 语言开发工具中只有C编译器而没有完整的C标准库。2、C标准库2.1 GNU/Linux版本的实现glibc是Lin
glibc所包含的各个库
1、glibc所包含的各个库介绍废话少说,直接介绍glibc包含了哪些库: Library component Content Inclusion guidelines ld (This library component is not itself a library. Instead, ld.so is an executable invoked by the ELF binary format loader to l
跟我一起写Shell脚本之二十三--标准输入和输出,以及重定向
1、什么是标准输入和输出当我们执行一个shell命令行时,一般会自动打开三个标准文件1)标准输入文件(stdin),通常对应终端的键盘;2)标准输出文件(stdout),默认对应终端的屏幕;3)标准错误输出文件(stderr),默认对应终端的屏幕。命令从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。因为Linux里一切皆是文件,所以标准输入和输出也不例外,也是文件。是文件就有文件描述符,这三个标准文件的文件描述符是固定的:1)标准输入文件
GCC详解-Binutils工具之readelf
1、介绍readelf从ELF 格式的目标文件显示信息。readelf和objdump提供的功能类似,但是它显示的信息更为具体,并且它不依赖BFD库(BFD库是一个GNU项目,它的目标就是希望通过一种统一的接口来处理不同的目标文件)2、ELF格式的文件ELF(Executable and Linking Format)是一个定义了目标文件内部信息如何组成和组织的文件格式。内核会根据这些信息加载可执行文件,内核根据这些信息可以知道从文件哪里获取代码,从哪里获取初始化数据,在哪里应该加载共享库,
GCC详解-gcc之创建动态库静态库及其使用
1、动态库1.1 创建动态库创建库文件的头文件mylib.h,内容为:int myfun(int a);创建库文件的源文件mylib.c,内容为:#include <stdio.h>#include "mylib.h"int myfun(int a){ return a;}使用如下命令生成我们的共享库libmy.so:gcc -fPIC -shared mylib.c -o libmy.so1.2 使用动态库创建main.c,...
GCC详解-Binutils工具之size
1、size工具介绍size工具会列出程序文件中各段的大小。我们可以查看帮忙:$ size --helpUsage: size [option(s)] [file(s)]Displays the sizes of sections inside binary filesIf no input file(s) are specified, a.out is assumedThe options are: -A|-B --format={sysv|berkeley} Sel...
GCC详解-Binutils工具之strings
1、介绍strings 工具在对象文件或二进制文件中查找可打印的字符串。这里的字符串是指:4个或更多可打印字符的任意序列,以换行符或空字符结束。当然,这里的4可以通过-n指定和修改。2、常用用途我们知道了strings的用法后,那么我们什么情况下才会用它呢?其实这么几个地方可能会经常用到:2.1 快速确认版本比如程序里有个版本定义:char version[] = "aaa_xxx_v0.1",那么可以通过strings xxx.binary | grep version
GCC详解-Binutils工具之strip
1、介绍strip经常用来去除目标文件中的一些符号表、调试符号表信息,以减小静态库、动态库和程序的大小。其基本用法:strip xxx或者strip xxx -o yyy2、优缺点优点:strip后占空间小缺点:strip后不方便调试,addr2line等不能使用针对缺点的应对策略:strip前的库用来调试, strip后的库用来实际发布, 他们两者有对应关系。 一旦发布的strip后的库出了问题, 就可以找对应的未strip的库来定位。3、适用范围3.1 动态库
GCC详解-Binutils工具之nm
1、介绍nm用来列出目标文件中的符号,用以定位和分析执行程序和目标文件中的符号信息和它的属性。它可以和readelf、objdump、addr2line工具配合使用。1.1 参数总结 选项 描述 -A 同选项 --print-file-name -a 同选项 --debug-syms -B 同选项 --format=bsd。这是默认设置
GCC详解-Binutils工具之objdump
1、介绍objdump是用查看目标文件或者可执行的目标文件的构成的工具。2、参数 选项 详细选项 描述 -a --archive-headers 显示档案库的成员信息,类似 ls -l 将 lib*.a 的信息列出。 -b bfdname --target=bfdname 指定目标码格式。这不是必须的,objdump 能
今日推荐
周排行