命令模式

shell命令三剑客之sed命令详解

守給你的承諾、 提交于 2020-04-05 17:29:58
目录 1.初识sed命令 1.1 sed命令是什么 1.2 sed工作原理 1.3 sed 命令怎么用 1.4 示例 1.4.1 sed的n选项和编辑命令p的示例 1.4.2 sed的d编辑命令(不删除原文件内容)示例 1.4.3 sed的编辑命令之a追加命令示例 1.4.4 sed的编辑命令之i插入命令示例 1.4.5 sed的编辑命令之c替换命令示例 1.4.6 sed的编辑命令之r读入命令示例 1.4.7 sed的编辑命令之w写入命令示例(w命令不加-i也是直接修改原文件!) 1.4.8 sed的编辑命令之替换s命令示例 1.5 sed的s编辑命令可以使用任意分隔符作为定界符 1.6 sed 命令的-i 选项 1.7 sed的编辑命令补充之:G命令 1.8 sed命令特殊用法 1.9 sed的s命令中支持\t \n \s(正则里表示空白) 2 练习 shell中最核心的三个命令grep、sed、awk。 其中, grep:文本搜索。 sed:文本处理。 awk:文本分析工具、语言。 本文主要讲述sed命令的用法。 1.初识sed命令 1.1 sed命令是什么 sed是一种支持正则表达式的非交互式流编辑器。是脚本中修改文本或者文本替换的最佳工具。 1.2 sed工作原理 sed工作在内存,有两个空间: pattern space(模式空间):缓存空间,较多使用

转载Makefile学习教程

邮差的信 提交于 2020-04-05 15:38:27
该篇文章为转载,是对原作者系列文章的总汇加上标注。 支持原创,请移步陈浩大神博客: http://blog.csdn.net/haoel/article/details/2886 makefile很重要 什么是 makefile ?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了, 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力 。 因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按 类型、功能、模块 分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。 makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具

linux命令使用

浪尽此生 提交于 2020-04-04 17:40:25
*1,使用xshell远程连接虚拟机* *2创建用户并设置密码* *3* *在该(姓名-学号)普通用户下熟悉ls,touch,mkdir,pwd,find,man,chmod等* 使用mkdir创建一个test目录,ls查看当前目录 cd 命令进入test目录,使用touch命令创建te.txt目录 使用pwd命令查看当前的绝对路径 打开vim在te.txt文件中加入一行数据 保存并退出 使用cat命令查看刚刚输入的值 使用 cp 命令复制文件 使用 man 命令 使用chomd命令加权限 *4,* *深刻立即目录和文件的权限含义:* a,在超级用户下,于/tmp/下创建一个新目录,目录名称为test,修改目录权限为777,在test下新增一个文件testfile,修改文件权限为744,用 *姓名-学号* 普通用户登录,尝试是否能够删除testfile文件? 能 b. 切换用户到root,修改test目录权限为755;再切换到 *姓名-学号* 用户下,在test目录下创建新的文件testfile,查看系统提示?如何解决? 没有删除权限 解决方案: 加入w权限,可以切换到root用户,设置test文件夹夹的权限为722/733或者777则,即加入w权限就可以 c. 在root用户下,修改/tmp/test目录权限为 1777,命令为chmod 1777 /tmp/test, 在

locale命令设置语言环境

有些话、适合烂在心里 提交于 2020-04-04 12:42:53
locale命令设置语言环境 在Linux中通过locale来设置程序运行的不同语言环境,locale由 ANSI C提供支持。locale的命名规则为_.,如zh_CN.GBK,zh代表中文, CN代表大陆地区,GBK表示字符集。在locale环境中,有一组变量,代表国际化环境中的不同设置: CODE: LC_COLLATE,定义该环境的排序和比较规则 LC_CTYPE,用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。 LC_MONETARY,货币格式 LC_NUMERIC,非货币的数字显示格式 LC_TIME,时间和日期格式 LC_MESSAGES,提示信息的语言。 另外还有一个LANGUAGE参数,它与LC_MESSAGES相似,但如果该参数一旦设置,则LC_MESSAGES参数就会失效。 LANGUAGE参数可同时设置多种语言信息,如LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"。 LANG,LC_ 的默认值,是最低级别的设置,如果LC_ 没有设置,则使用该值。类似于 LC_ALL LC_ALL,它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值。注意,LANG的值不受该宏影响 举个例子,使用zh_CN.GBK中文locale: CODE:

Linux Core Dump

南楼画角 提交于 2020-04-04 01:06:04
转载 1. 前言: 有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的. 但这不像编译错误一样会提示到文件->行, 而是没有任何信息, 使得我们的调试变得困难起来. 2. gdb: 有一种办法是, 我们用gdb的step, 一步一步寻找. 这放在短小的代码中是可行的, 但要让你step一个上万行的代码, 我想你会从此厌恶程序员这个名字, 而把他叫做调试员. 我们还有更好的办法, 这就是core file. 3. ulimit: 如果想让系统在信号中断造成的错误时产生core文件, 我们需要在shell中按如下设置: #设置core大小为无限 ulimit -c unlimited #设置文件大小为无限 ulimit unlimited 这些需要有root权限, 在ubuntu下每次重新打开中断都需要重新输入上面的第一条命令, 来设置core大小为无限. 4. 用gdb查看core文件: 下面我们可以在发生运行时信号引起的错误时发生core dump了. 发生core dump之后, 用gdb进行查看core文件的内容, 以定位文件中引发core dump的行. gdb [exec file] [core file] 如: gdb ./test test.core 在进入gdb后,

段错误调试神器 - Core Dump详解

喜欢而已 提交于 2020-04-04 00:57:37
一、前言 : 有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的. 但这不像编译错误一样会提示到文件某一行, 而是没有任何信息, 使得我们的调试变得困难起来. gdb: 有一种办法是, 我们用gdb的step, 一步一步寻找. 这放在短小的代码中是可行的, 但要让你step一个上万行的代码, 我想你会从此厌恶程序员这个名字, 而把他叫做调试员. 我们还有更好的办法, 这就是core file. ulimit: 如果想让系统在信号中断造成的错误时产生core文件, 我们需要在shell中按如下设置: #设置core大小为无限 ulimit -c unlimited #设置文件大小为无限 ulimit unlimited 这些需要有root权限, 在ubuntu下每次重新打开中断都需要重新输入上面的第一条命令, 来设置core大小为无限. 用gdb查看core文件: 下面我们可以在发生运行时信号引起的错误时发生core dump了. 发生core dump之后, 用gdb进行查看core文件的内容, 以定位文件中引发core dump的行. gdb [exec file] [core file] 如: gdb ./test test.core 在进入gdb后, 用bt命令查看backtrace以检查发生程序运行到哪里,

用DOS命令获取文件列表

こ雲淡風輕ζ 提交于 2020-04-04 00:08:39
其实就是两个命令:dir 跟 tree 在C:盘根目录下生成了一个名为“filelist.txt”的文本文件,该文件中即包含D:盘的文件夹列表。 dir d:\ >c:\filelist.txt 复制代码 将D:盘中子目录中的文件和文件夹列表也全部列出来,可以在命令提示符窗口中输入以下命令。 dir d:\ /s >c:\filelist.txt 复制代码 如果使用下面的命令,即加一个/b,则会生成一个简单的文件名列表,不包括其它信息,这种方法可能更加实用一些。 dir d:\ /s /b >c:\filelist.txt 复制代码 有时,我们需要将文件夹中的所有文件信息导出为一个列表,其实你并不需要第三方软件来帮忙。在命令提示符模式下直接使用DOS命令就可以,例如将当前文件夹中的所有文件信息导出到lb.txt文件,可以使用如下命令: TREE /F >lb.txt 复制代码 。 这里的“/F”是TREE命令的一个参数,表示显示每个文件夹中文件的名称;“>”则是管道命令,表示将列表信息输出至lb.txt文件中。或者,你也可以使用“DIR >lb.txt”命令,执行后除了显示文件名外,还可以显示创建日期、文件大小等更多内容,可选择的参数也更为丰富,例如只显示系统文件、隐藏文件、目录,还可以设置使用小写或大小,你可以使用“?”参数查看具体的使用方法。 另一条资料:

sed 命令详解

ぃ、小莉子 提交于 2020-04-03 22:14:55
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。 sed的选项、命令、替换标记 命令格式 sed [options] 'command' file(s) sed [options] -f scriptfile file(s) 选项 -e<script>或--expression=<script>:以选项中的指定的script来处理输入的文本文件; -f<script文件>或--file=<script文件>:以选项中指定的script文件来处理输入的文本文件; -h或--help:显示帮助; -n或--quiet或——silent:仅显示script处理后的结果; -V或--version:显示版本信息。 参数 文件:指定待处理的文本文件列表。 sed命令 a\ 在当前行下面插入文本。 i\ 在当前行上面插入文本。 c\ 把选定的行改为新的文本。 d 删除,删除选择的行。 D 删除模板块的第一行。 s

linux ln用法

余生颓废 提交于 2020-04-03 18:38:57
这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是: ln -s 源文件 目标文件 这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件。 当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。 例如:ln -s /bin/less /usr/local/bin/less -s 是代号(symbolic)的意思。 这 里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接 和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。 如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls

在shell脚本中使用alias

浪尽此生 提交于 2020-04-03 06:56:08
Linux shell有交互式与非交互式两种工作模式。我们日常使用shell输入命令得到结果的方式是交互式的方式,而shell脚本使用的是非交互式方式。 shell提供了alias功能来简化我们的日常操作,使得我们可以为一个复杂的命令取一个简单的名字,从而提高我们的工作效率。在交互式模式下,shell的alias扩展功能是打开的,因此我们可以键入自己定义的alias别名来执行对应的命令。 但是,在非交互式模式下alias扩展功能默认是关闭的,此时仍然可以定义alias别名,但是shell不会将alias别名扩展成对应的命令,而是将alias别名本身当作命令执行,如果shell内置命令和PATH中均没有与alias别名同名的命令,则shell会“抱怨”找不到指定的命令。 那么,有没有办法在非交互式模式下启用alias扩展呢?答案是使用shell内置命令shopt命令来开启alias扩展选项。shopt是shell的内置命令,可以控制shell功能选项的开启和关闭,从而控制shell的行为。shopt的使用方式如下: shopt -s opt_name Enable (set) opt_name. shopt -u opt_name Disable (unset) opt_name. shopt opt_name Show current status of opt_name.