linux基础
Meison92
百万军中取上将首级如探囊取物,千万行里改关键源码在弹指瞬间。
“大圣,此去欲何?”
“踏南天,碎凌霄。”
“若一去不回…”
“便一去不回!”
展开
-
sed之N和$!N的区别和运用
这个问题我相信很多同学困扰了很久,懂的大师们早已熟练于心,不懂的小鸟们百思不解。今天我就彻底的分析透彻这2个命令的区别,和在什么场合下使用。我们首先看看它们的区别:$ seq 512345$ seq 5 | sed -n 'N;P' #命令⑴13$ seq 5 | sed -n '$!N;P' #命令⑵135N的作用是读取下一行的内容到模式空间(pattern s...转载 2020-04-09 17:55:04 · 1045 阅读 · 0 评论 -
编译错误汇总
error: undefined reference to 'vtable for TTrace'解决:虚函数没有全部实现,仔细再检查一遍 D:/android_NDK/android-ndk-r10e/platforms/android-3/arch-arm/usr/lib/crtbegin_dynamic.o:crtbrand.c:function _start: error: u...原创 2017-03-06 21:18:48 · 685 阅读 · 0 评论 -
--sysroot - rpath --sysroot
--sysroot 的作用如果在编译时指定了-sysroot就是为编译时指定了逻辑目录。编译过程中需要引用的库,头文件,如果要到/usr/include目录下去找的情况下,则会在前面加上逻辑目录。如此处我们指定 -sysroot=/home/shell.albert/tools/toolschain_arm/4.4.3/arm-none-linux-gnueabi/sys-root转载 2017-09-25 13:45:49 · 3519 阅读 · 0 评论 -
如何在交互式shell脚本中创建对话框
当你在终端环境下安装新的软件时,你可以经常看到信息对话框弹出,需要你的输入。对话框的类型有密码箱,检查表,菜单,等等。他们可以引导你以一种直观的方式输入必要的信息,使用这样的用户友好的对话框的好处是显而易见的。如下图所示:当你写一个交互式shell脚本,你可以使用这样的对话框来接受用户的输入。whiptail可以在shell脚本中创建基于终端的对话框,消息框的过程,类似于Zenit转载 2017-11-21 14:27:05 · 360 阅读 · 0 评论 -
关于 shell 脚本编程的10 个最佳实践
每一个在UNIX/Linux上工作的程序员可能都擅长shell脚本编程。但大家解决问题的方式却不尽相同,这要取决于对专业知识的掌握程度、使用命令的种类、看待问题的方式等等。对于那些处在shell脚本编程初级阶段的程序员来说,遵循一些恰当的做法可以帮助你更快、更好的学习这些编程技巧。下面,我们就来讨论这些能帮助你学习shell脚本编程的方法吧。0、多动手你想学习shell脚本编程,这转载 2017-11-21 14:32:05 · 247 阅读 · 0 评论 -
TOP命令详解
简介top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该转载 2017-12-21 11:32:49 · 178 阅读 · 0 评论 -
error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
解决办法:一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory原因一般有两个, 一个是操作系统里确实没有包含该...转载 2018-07-25 17:06:22 · 986 阅读 · 0 评论 -
linux ar命令
简介ar命令可以用来创建、修改库,也可以从库中提出单个模块。库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member)。原始文件的内容、模式、时间戳、属主、组等属性都保留在库文件中。参考:http://blog.csdn.net/xuhongning/article/details/6365200 实例1)创建静态库ar -rcs *...转载 2018-09-02 18:06:19 · 386 阅读 · 0 评论 -
Ubuntu下安装MySQL 以及C++连接MySQL
一、简单分享Ubuntu 16.04下安装MySQL的过程。 首先执行下面三条命令:Linux下C++连MySQL数据库sudo apt-get install mysql-serversudo apt-get isntall mysql-clientsudo apt-get install libmysqlclient-dev启动mysql服务器sudo serv...原创 2019-02-14 17:11:20 · 4751 阅读 · 4 评论 -
在Linux端使用windows的system pause
#include <stdio.h>#include <termios.h>#include <unistd.h>int main(){ printf("Press any key to continue") ; struct termios te; int ch; tcgetattr( STDIN_FILENO,&a...原创 2019-01-29 16:04:50 · 1482 阅读 · 0 评论 -
rc.local简介
rc.local 是启动加载文件1、在ubuntu下要把一个程序加入开机启动,一般可以通过修改rc.local来完成,但ubuntu下有两个rc.local文件。分别是/etc/rc.local和/etc/init.d/rc.local。可以看一下两个文件的内容找到他俩的关系:/etc/init.d/rc.local2、从注释可以看出该脚本运行在2 3 4 5的启动级别,只能处理...转载 2019-06-14 11:23:25 · 62186 阅读 · 0 评论 -
VirtualBox导入VmWare生成的.vmdk格式虚拟机镜像
VmWare默认的镜像格式是.vmdk格式的,VirtualBox则默认是.vdi格式的。其实这在VirtualBox新建虚拟机的过程中是可选的。导入.vmdk格式的镜像到VirtualBox只需要新建一个虚拟机,并且不创建虚拟硬盘。如下图:无视警告,继续:创建好之后,在设置里面把.vmdk格式的虚拟硬盘添加进去:这样就可以了。如果遇到windows虚拟机起不开的情...转载 2019-06-19 17:01:36 · 4619 阅读 · 0 评论 -
linux命令 递归修改文件名(包括文件夹)
遇到一道题目,如何把某个目录下的每个文件统一在名字前加上”abc”,用shell实现首先分析,一个目录下除了文件,还可能存在目录,这里可以看出需要有递归操作,如果是文件直接改名,目录则进入然后进行遍历如何实现遍历?我们写一个函数:function travFolder(){ #echo "travFolder start" flist=`ls $1` cd $1 for f ...原创 2019-08-08 17:38:07 · 2544 阅读 · 3 评论 -
rename 文件扩展名
需求:家目录下有一些sql文件,想批量重命名成txt的1、find + xargs +sedfind /root -name ‘*.sql' |xargs -i echo {} {} |sed ‘s/sql/txt/2′ |xargs mvfind /root/ -name ‘*.sql' |sed -e ‘s/\(.*\).sql$/mv & \1.txt/e' ...原创 2019-08-08 18:03:28 · 661 阅读 · 0 评论 -
Systemd
Systemd 的简介和特点 Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。系统启动和服务器守护进程管理器,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程,向下兼容,但是效率没有systemd高。 Systemd新特性: 系统引导时实现服务并行启动...转载 2019-08-15 18:30:13 · 615 阅读 · 0 评论 -
Makefile(14)
使用make更新函数库文件———————————函数库文件也就是对Object文件(程序编译的中间文件)的打包文件。在Unix下,一般是由命令"ar"来完成打包工作。一、函数库文件的成员一个函数库文件由多个文件组成。你可以以如下格式指定函数库文件及其组成: archive(member)这个不是一个命令,而一个目标和依赖的定义。一般来说,这种用法基本上就是为了"ar"转载 2017-01-09 21:54:27 · 215 阅读 · 0 评论 -
Makefile(13)
五、定义模式规则你可以使用模式规则来定义一个隐含规则。一个模式规则就好像一个一般的规则,只是在规则中,目标的定义需要有"%"字符。"%"的意思是表示一个或多个任意字符。在依赖目标中同样可以使用"%",只是依赖目标中的"%"的取值,取决于其目标。有一点需要注意的是,"%"的展开发生在变量和函数的展开之后,变量和函数的展开发生在make载入Makefile时,而模式规则中的"%"则发生在运行时转载 2017-01-09 21:53:33 · 206 阅读 · 0 评论 -
Makefile(12)
隐含规则————在我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix下是[.o]文件,Windows下是[.obj]文件)。本章讲述的就是一些在Makefile中的“隐含的”,早先约定了的,不需要我们再写出来的规则。“隐含规则”也就是一种惯例,make会按照这种“惯例”心照不喧地来运行,那怕我们的Make转载 2017-01-09 21:52:50 · 203 阅读 · 0 评论 -
gcc编译参数-fPIC的一些问题
ppc_85xx-gcc -shared -fPIC liberr.c -o liberr.so-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code), 则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意 位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固转载 2016-01-23 11:51:20 · 236 阅读 · 0 评论 -
ubuntu 修改 ls 下的目录颜色
ubuntu 修改 ls 下的目录颜色ubuntu 下, ls 显示的目录的颜色,怎么说呢,看起来太费劲了。于是想着修改成容易识别的颜色。于是搜索了一下。这里列举三个搜到的教程吧。简单说我按这上面的方法做了,然后都失败了。1. http://blog.csdn.net/star11053234/article/details/8680530转载 2015-12-08 23:03:38 · 367 阅读 · 0 评论 -
socket同步、异步、阻塞和非阻塞
在进行网络编程时,我们常常见到同步、异步、阻塞和非阻塞四种调用方式。这些方式彼此概念并不好理解。下面是我对这些术语的理解。同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin, isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。最常转载 2016-04-02 23:18:53 · 229 阅读 · 0 评论 -
Makefile(1)
跟我一起写 Makefile 陈皓概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就转载 2017-01-09 21:43:36 · 188 阅读 · 0 评论 -
Makefile(2)
三、make是如何工作的在默认的方式下,也就是我们只输入make命令。那么, 1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。 2、如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。 3、如果edit文件不存在,或是edit所依赖的后面的 .转载 2017-01-09 21:44:47 · 164 阅读 · 0 评论 -
Makefile(3)
Makefile 总述———————一、Makefile里有什么?Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略转载 2017-01-09 21:45:22 · 200 阅读 · 0 评论 -
Makefile(4)
书写规则————规则包含两个部分,一个是依赖关系,一个是生成目标的方法。在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么。一般来说,定义在Makefile中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标。如果第一条规则中的目标有很多个,那么,第一个目转载 2017-01-09 21:46:27 · 140 阅读 · 0 评论 -
Makefile(5)
六、多目标Makefile的规则中的目标可以不止一个,其支持多目标,有可能我们的多个目标同时依赖于一个文件,并且其生成的命令大体类似。于是我们就能把其合并起来。当然,多个目标的生成规则的执行命令是同一个,这可能会可我们带来麻烦,不过好在我们的可以使用一个自动化变量“$@”(关于自动化变量,将在后面讲述),这个变量表示着目前规则中所有的目标的集合,这样说可能很抽象,还是看一个例子吧。转载 2017-01-09 21:47:01 · 177 阅读 · 0 评论 -
Makefile(6)
书写命令————每条规则中的命令和操作系统Shell的命令行是一致的。make会一按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略,但是如果该空格或空行是以Tab键开头的,那么make会认为其是一个空命令。我们在UNIX下可能会使用不同的Shell,但是make的命令默认是被“/bin/sh”转载 2017-01-09 21:48:25 · 191 阅读 · 0 评论 -
Makefile(7)
使用变量————在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候其会自动原模原样地展开在所使用的地方。其与C/C++所不同的是,你可以在Makefile中改变其值。在Makefile中,变量可以使用在“目标”,“依赖目标”,“命令”或是Makefile的其它部分中。变量的命名字可以包含字符、数字,下划线(可以是数字开转载 2017-01-09 21:49:19 · 172 阅读 · 0 评论 -
Makefile(8)
六、多行变量 还有一种设置变量值的方法是使用define关键字。使用define关键字设置变量的值可以有换行,这有利于定义一系列的命令(前面我们讲过“命令包”的技术就是利用这个关键字)。define指示符后面跟的是变量的名字,而重起一行定义变量的值,定义是以endef关键字结束。其工作方式和“=”操作符一样。变量的值可以包含函数、命令、文字,或是其它变量。因为命令需要以[Tab]键开头转载 2017-01-09 21:49:54 · 176 阅读 · 0 评论 -
Makefile(9)
使用函数————在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。一、函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $( )或是 ${ }这里,就是函数名,make支持的函数不多。转载 2017-01-09 21:50:39 · 203 阅读 · 0 评论 -
Makefile(10)
四、foreach 函数 foreach函数和别的函数非常的不一样。因为这个函数是用来做循环用的,Makefile中的foreach函数几乎是仿照于Unix标准Shell(/bin/sh)中的for语句,或是C-Shell(/bin/csh)中的foreach语句而构建的。它的语法是: $(foreach,,) 这个函数的意思是,把参数中的单词逐一取出放到参数所指定转载 2017-01-09 21:51:41 · 161 阅读 · 0 评论 -
Makefile(11)
make 的运行——————一般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切都是自动的。但也有时你也许只想让make重编译某些文件,而不是整个工程,而又有的时候你有几套编译规则,你想在不同的时候使用不同的编译规则,等等。本章节就是讲述如何使用make命令的。一、make的退出码make命令执行后有三个退出码: 0转载 2017-01-09 21:52:14 · 315 阅读 · 0 评论 -
linux命令英文缩写
命令缩写: ls:list(列出目录内容)cd:Change Directory(改变目录)su:switch user 切换用户rpm:redhat package manager 红帽子打包管理器pwd:print work directory 打印当前目录 显示出当前工作目录的绝对路径ps: process status(进程状态,类似于windows的任务管理器转载 2015-11-09 23:15:40 · 326 阅读 · 0 评论