
Lunix & Shell
文章平均质量分 66
张博208
知识搬运工
展开
-
linkname, soname and realname
As you may already know, the linker1 option should be used to specify the name of the library which is needed by your application when it was compiled. For example, if we write a program which utilize libjpeg, we should specify explicitly when we compile原创 2023-05-22 13:26:11 · 635 阅读 · 0 评论 -
Linux资料
学习原创 2023-05-06 15:32:29 · 87 阅读 · 0 评论 -
Linux 编译链接动态库版本号
无论程序是否按libxxx.so.a.b.c格式命名,但Linux上差点儿全部动态库在编译时都指定了-soname,我们能够通过readelf工具查看soname,比方文章开头列举的两个动态库。这时候发现,生成了新的链接libhello.so.1,而main程序还是使用的libhello.so.0,所以无法使用新版动态库的功能,须要又一次编译才行。执行可执行文件时保证libxxx.so.a.b.c文件存在,通过ldconfig生成libxxx.so.a链接指向libxxx.so.a.b.c。原创 2023-01-31 11:32:44 · 1105 阅读 · 0 评论 -
进程间的通讯(IPC)方式
为什么要进行进程间的通讯(IPC (Inter-process communication))数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。资源共享:多个进程...转载 2020-04-19 16:26:02 · 171 阅读 · 0 评论 -
trap 语句
Bash 的内部命令 trap,让我们可以在 Shell 脚本内捕获特定的信号并对它们进行处理。trap 命令的语法如下所示:trap command signal [ signal ... ]上述语法中,command 可以是一个脚本或是一个函数。signal 既可以用信号名,也可以用信号值指定。我们可以不指定任何参数,而直接使用 trap 命令,它将会打印与每个要捕获的信...转载 2020-01-10 19:59:14 · 499 阅读 · 0 评论 -
Cmake
https://riptutorial.com/Download/cmake.pdf转载 2019-12-04 16:42:19 · 119 阅读 · 0 评论 -
Makefile - Quick Guide
Why Makefile?Compiling the source code files can be tiring, especially when you have to include several source files and type the compiling command every time you need to compile. Makefiles are the ...转载 2019-12-04 15:02:26 · 330 阅读 · 0 评论 -
What is a Makefile and how does it work?
https://riptutorial.com/Download/makefile.pdfRun and compile your programs more efficiently with this handy automation tool.If you want to run or update a task when certain files are updated...原创 2019-12-04 14:58:26 · 233 阅读 · 0 评论 -
教你写Makefile(很全,含有工作经验的)
Makefile值得一提的是,在Makefile中的命令,必须要以[Tab]键开始。 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的...转载 2019-12-03 18:50:39 · 117 阅读 · 0 评论 -
Makefile 中:= ?= += =的区别
在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE VRE = “Hello World!”elseendififeq ($(OPT),define) VRE ?= “Hello World! First!”endififeq ($(...转载 2019-12-04 15:54:50 · 97 阅读 · 0 评论 -
Linux三剑客之sed
sedsed对文本的处理很强大,并且sed非常小,参数少,容易掌握,他的操作方式根awk有点像。sed按顺序逐行读取文件。然后,它执行为该行指定的所有操作,并在完成请求的修改之后的内容显示出来,也可以存放到文件中。完成了一行上的所有操作之后,它读取文件的下一行,然后重复该过程直到它完成该文件。在这里要注意一点,源文件(默认地)保持不被修改。sed 默认读取整个文件并对其中的每一行进行修改。说白...转载 2019-12-03 10:17:22 · 109 阅读 · 0 评论 -
不看绝对后悔的Linux三剑客之awk实战精讲
一、Linux三剑客之awk命令精讲第1章 awk基础入门1.1 awk简介awk不仅仅时linux系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告(excel)。处理的数据可以是一个或多个文件,可以是来自标准输入,也可以通过管道获取标准输入,awk可以在命令行上直接编辑命令进行操作,也可以编写成awk程序来进行更为复杂的运用。本章主要讲解awk命令的运用1.2...转载 2019-12-03 10:16:02 · 344 阅读 · 0 评论 -
linux tr命令详解
通过使用tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr所能够做的。 tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串...转载 2018-09-12 10:06:17 · 1142 阅读 · 0 评论 -
网络学习 curl 和wget 区别
它们的区别,我看到的有如下几点:1.curl是libcurl这个库支持的,wget是一个纯粹的命令行命令。2.curl支持更多的协议。curl supports FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP and RTSP at the time of th...转载 2018-08-30 09:42:35 · 390 阅读 · 0 评论 -
linux wget 命令用法详解(附实例说明)
Linux wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精力,那不没办法的事。而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步。wget...转载 2018-08-30 09:40:11 · 675 阅读 · 0 评论 -
awk命令
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势。awk命令格式和选项语法形式a...转载 2018-05-17 10:22:41 · 379 阅读 · 0 评论 -
Unix/Linux脚本中"set -e"的作用
编写shell脚本没多久,对于其许多命令的具体用法还不太熟悉。最近刚好有需求,就尝试用脚本去实现。其中就有用到set -e选项。 在用这个命令之前,也查过其功能,描述比较简单:就是当命令以非零状态退出时,则退出shell。主要作用是,当脚本执行出现意料之外的情况时,立即退出,避免错误被忽略,导致最终结果不正确。这里主要讨论的是set -e 选项的作用范围,创建如下测试文件:[plai...转载 2018-05-14 13:43:32 · 365 阅读 · 0 评论 -
Hive 脚本执行
hive执行脚本hive -e “sql语句” 会将查询的结果打印在控制台上。 hive -e “sql语句” >> xxx 会将查询的结果重定向到xxx文件中,会显示OK和抓取的数据条数 hive -S -e “sql语句” >> xxx 会将查询的结果重定向到xxx文件中,不会显示OK和抓取的数据条数 hive -f sqlfile 执行文件中的sql(用于sql比较长...转载 2018-05-14 13:51:15 · 2734 阅读 · 0 评论 -
脚本调试_sh -x 、set -x
sh -x 脚本名.sh 对整个脚本进行跟踪[root@master shellexer]# cat bash.sh #!/bin/bashvar=$1echo $var[root@master shellexer]# sh -x bash.sh hello+ var=hello+ echo hellohello #脚本输出结果 #带+的表示被跟踪的代码set -x对脚本内部部分代...转载 2018-05-14 13:59:31 · 482 阅读 · 0 评论 -
linux每天一小步---tail命令详解
1 命令功能 tail命令用于显示文件中末尾的内容(默认显示最后10行内容)2 命令语法 tail 【选项参数】 【文件名1】 【文件名2】3 命令参数 -f 用于循环读取文件的内容,监视文件的增长 -F 与-f类似,区别在于当将监视的文件删除重建后-F仍能监视该文件内容-f则不行,-F有重试的功能,会不断重试 -c N 显示文件末尾N字节的内容 -n 显示文...转载 2018-05-14 15:32:04 · 306 阅读 · 0 评论 -
linux中sed的用法
sed命令行格式为: sed [-nefri] ‘command’ 输入文本/文件 常用选项: -n∶取消默认的输出,使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来 -e∶进行多项编辑,即对输入...转载 2018-05-14 16:36:09 · 6877 阅读 · 0 评论 -
linux shell数据重定向(输入重定向与输出重定向)详细分析
在了解重定向之前,我们先来看看linux 的文件描述符。linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值。 linux启动后,会默认打开3个文件描述符,分别是:标准输入stand...转载 2018-05-14 16:51:00 · 154 阅读 · 0 评论 -
linux shell 管道命令(pipe)使用及与shell重定向区别
看了前面一节:linux shell数据重定向(输入重定向与输出重定向)详细分析 估计还有一些朋友是头晕晕的,好复杂的重定向了。这次我们看下管道命令了。shell管道,可以说用法就简单多了。 管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard error 信息没有直接处理能力。然后,传递给下一个命令,作为...转载 2018-05-14 16:54:46 · 339 阅读 · 0 评论 -
向Hive程序传递变量的三种方法
图 1 外部向Hive程序中传递变量的方法使用Hive编写程序最常用的方法是将Hive语句写到文件中,然后使用hive -f filename.hql来批量执行查询语句。经常需要将外部参数传入到hql语句中替换其中的变量来动态执行任务,比如动态设定数据库名、表名、时间值、字段序列等变量,以达到脚本泛化执行的目的。1) 方法1:字符串、正则、模板引擎等暴力方式替换最简单也最暴力的方式,是在hql文件...转载 2018-05-03 11:07:34 · 1783 阅读 · 0 评论 -
Linux中变量 #, @, 0, 1, 2, *,$$,$?的含义
12345678$# 是传给脚本的参数个数$0 是脚本本身的名字$1 是传递给该shell脚本的第一个参数$2 是传递给该shell脚本的第二个参数$@ 是传给脚本的所有参数的列表$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个$$ 是脚本运行的当前进程ID号$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误区别:@@*相同点:都是引用所有参数不同点:只有...转载 2018-05-15 21:39:30 · 495 阅读 · 0 评论 -
Linux shell之数组
引言 在Linux平台上工作,我们经常需要使用shell来编写一些有用、有意义的脚本程序。有时,会经常使用shell数组。那么,shell中的数组是怎么表现的呢,又是怎么定义的呢?接下来逐一的进行讲解,shell中的数组。数组的定义 何为数组?学过计算机编程语言的同学都知道,数组的特性就是一组数据类型相同的集合(不包括有一些编程语言提出来的关联数组的概念)。那么shell中数组是怎么定义的呢,...转载 2018-07-02 09:52:04 · 161 阅读 · 0 评论 -
linux下的find文件查找命令与grep文件内容查找命令
linux下的find文件查找命令与grep文件内容查找命令 在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 (2)grep是根据文件的内容进行查找,会对文件的每一行按照给转载 2017-10-28 16:15:33 · 1010 阅读 · 0 评论