红联Linux门户

Linux帮助
  • 用realine库完善你的my_shell

    2017-05-12 - Linux下的标准IO输入很不友善,至少它都不按左右方向键来移动光标,着很多时候会给你很大的困扰,而我在完善自己的shell的时候就被这块难倒了,到底怎么解决方向键的问题呢,我搜索了很久,找到了这个好东西,readline库,他可以实现左右方向键移动光标,上下方向键查...

  • Linux下使用python脚本执行BCP导入导出操作Linux下使用python脚本执行BCP导入导出操作

    2017-05-12 - 1.创建一张表Test001 create table Test001( ID int, age int, name varchar(50) ) 2.再创建一张表Test002 create table Test002( Id int, age int, name varchar(50), addr varchar(50) ) 3.插入三条数据 insert into Test002 values(1,25,Bob,New York) in...

  • 向Linus Torvalds学习让编出的代码具有“good taste”向Linus Torvalds学习让编出的代码具有“good taste”

    2017-05-11 - 在最近关于 Linus Torvalds 的一个采访中,这位 Linux 的创始人,在采访过程中大约 14:20 的时候,提及了关于代码的 good taste。good taste?采访者请他展示更多的细节,于是,Linus Torvalds 展示了一张提前准备好的插图。 他展示的是一个代码片段。但这段...

  • 在优麒麟和银河麒麟社区版上构建Linux跨平台的snap/flatpak包在优麒麟和银河麒麟社区版上构建Linux跨平台的snap/flatpak包

    2017-05-10 - Snap和Flatpak是新一代的Linux打包格式,它们通过将软件和依赖同时安装在一个沙盒中,使得采用snap和flatpak的应用,可以跨越不同的发行版,降低了开发和维护成本,同时大大提高了系统的安全性。本文将通过实例,来介绍如何在优麒麟/银河麒麟社区版上构建这...

  • Fish shell入门教程Fish shell入门教程

    2017-05-09 - 命令行是程序员的必备技能。图形界面虽然好看,解决问题还是要靠命令行。 命令行由 Shell 提供。各种命令通过 Shell,传递给操作系统的内核。学习命令行就是在学习 Shell。 Shell 有好几种,目前最常用是 Bash 和 zsh。但是,在我看来,它们都不如 Fish Shel...

  • ESP8266交叉编译环境搭建之linux篇ESP8266交叉编译环境搭建之linux篇

    2017-05-08 - 我们知道在linux下进行嵌入式开发,都需要先搭建一套与芯片对应的交叉编译环境,ESP8266也一样。 ESP8266内置Tensilica L106,32位卫星MCU,具有超低功耗的16位RSIC。CPU时钟速度为80MHZ,最高可达160MHZ,并支持实时RTOS操作系统。ESP8266交叉编译器为xtens...

  • 如何在shell脚本中调用另一个shell的结果如何在shell脚本中调用另一个shell的结果

    2017-05-07 - 在shell脚本中调用另一个shell脚本的结果,可以分为获取内容结果和执行结果两种情况,具体可以参考如下内容。 一、获取内容结果 获取内容结果,即获取另一个脚本执行过程中的输出内容做为结果。此种情况可以借助于shell命令执行另一个脚本文件或者用变量保存...

  • 怎么用shell判断一个字符串只由字母组成?怎么用shell判断一个字符串只由字母组成?

    2017-05-07 - 最近因工作需要,需要用shell 判断一个字符串是否只由字母组成同,做为抛砖引玉,分享出来,供大参考。 方法一、使用grep正则表达式 1.判断一个字符串是否只有字母组成,可以借助于grep命令,结合正则表达式来进行判断,字符有[A-Z]这26个字符组成,只要发现...

  • 关于“.bash_profile”和“.bashrc”区别的总结关于“.bash_profile”和“.bashrc”区别的总结

    2017-05-07 - bash的startup文件 Linux shell是用户与Linux系统进行交互的媒介,而bash作为目前Linux系统中最常用的shell,它支持的startup文件也并不单一,甚至容易让人感到费解。本文以CentOS7系统为例,对bash的startup文件进行一些必要的梳理和总结。 根据bash手册上...

  • 关于“交互式-非交互式”与“登录-非登陆”shell的总结

    2017-05-07 - 运行中bash具有的两种属性 Linux shell是用户与Linux系统进行交互的媒介,而bash作为目前Linux系统中最常用的shell,它在运行时具有两种属性,即交互与登陆。 按照bash是否与用户进行交互,可以将其分为交互式与非交互式;而按照bash是否被用户登陆,又可将...

  • 那个极爽的命令行纠错软件The Fuck是如何工作的那个极爽的命令行纠错软件The Fuck是如何工作的

    2017-05-05 - 前两天我们为大家介绍(http://www.linuxdiyf.com/linux/30489.html)了一款命令行神器:The Fuck,今天让我们来看看该软件的作者是如何设计该软件的。 不久之前我写了一款实用的应用 The Fuck(https://github.com/nvbn/thefuck),用来修复在命令行中上一...

  • Linux通过shell脚本实现JDK版本之间的快速切换Linux通过shell脚本实现JDK版本之间的快速切换

    2017-05-04 - 在android官网中,关于JDK的部分有一下说明,对于不同的Android SDK版本,需要通过的合适的jdk版本才能正常编译。 - The master branch of Android in AOSP: Ubuntu - OpenJDK 8, Mac OS - jdk 8u45 or newer - Android 5.x (Lollipop) - Android 6.0 (Marshm...

  • Shell脚本生成网页版相册浏览器Shell脚本生成网页版相册浏览器

    2017-05-04 - 今天学到了一招,那就是使用脚本制作一款网页版相册浏览器。 必备基础 操作系统:以Linux为内核的操作系统都行 编程语言:Shell(bash)脚本,相关基础知识即可 下载工具:wget 图片处理工具:ImageMagicK, 解压缩工具:rar ,bzip都行 额外技能:一些基本的Li...

  • 自制Linux终端锁屏防窃助手自制Linux终端锁屏防窃助手

    2017-05-04 - 很多时候我们不能一直守护在自己的电脑旁边,而且有些文件并不想让别人知道。那么这时候来个锁屏,是再合适不过的了。今天分享一个自制的锁屏工具,如下。 准备 操作系统:我这里是ElementaryOS虚拟机 + XShell 远程登录工具 Shell语言:我使用的是默认的Bas...

  • 嵌入式Linux开打core dumps调试功能嵌入式Linux开打core dumps调试功能

    2017-05-03 - 1.简介 在Linux下为了调试应用程序可以选择GDB方式运行应用程序进行调试,这种方式也可以调试程序由于接收某些信号导致的异常退出。不过当不具备直接GDB调试环境的情况下,我们也可以使用Core Dumps功能来调试程序异常退出的问题。 Core Dumps(核心转储),...

  • C/C++获取操作系统、CPU、内存信息(windows和linux)

    2017-05-03 - 有时候需要在工程里面获取一些系统或者硬件的信息,比如系统版本,cpu,内存,显卡,硬盘等,作为后续软件功能判断的依据,甚至参与性能算法自适应建模。 Windows 操作系统和内存信息在windows下通过系统的API来获取,CPU信息则需要需要通过底层CPUID指令取...

  • 为什么linux内核函数出现错误,返回值是一个负数

    2017-04-28 - 该疑问出现与我看《Linux内核设计与实现》这本书的12.3.2这节中下面一段代码: page = __get_free_pages(GFP_KERNEL,3); if (!page){ /*没有足够的内存:你必须处理这种错误!*/ return -ENOMEM; } 1.如何理解函数返回指针 内核中的函数通常以返回指针的形式...

  • Python学习初衷、心得

    2017-04-28 - 想学Python不是一天两天了,但是一直没有出什么成果,因此,从今天开始,记录学习Python过程中的心得体会+问题总结,也算是对自己的一个敦促,敦促自己为了自己渴望的东西去奋斗。 永远不要因为自己的懒惰,眼睁睁看着机遇从自己面前溜走。 一.Why. 为什么学...

  • Linux Kernl添加spidev的设备节点Linux Kernl添加spidev的设备节点

    2017-04-27 - 一、spidev介绍 如果在内核中配置spidev,会在/dev目录下产生设备节点,通过此节点可以操作挂载在该SPI总线上的设备。用户空间通过该节点可以访问内核空间。 二、配置spidev设备步骤 在i.MX6,Kernel 4.1.15上配置spidev的支持。 1、配置dts支持spi 根据spi...

  • deepin linux如何将shell脚本进行加密deepin linux如何将shell脚本进行加密

    2017-04-27 - 有时候出于保护脚本内容的目的,需要将shell脚本进行加密,有需要的朋友可以参考本文。 一、vim加密 本身shell脚本是文本文档,在使用vim进行编辑的时候,可以直接使用vim的加密方法。具体在编辑好shell脚本后,按大写的X,如下图所示。 提示用户输入密码,...

  • linux shell脚本对未定义变量的判断以及if的用法

    2017-04-27 - 环境 操作系统:win10 虚拟机:centos7 需求 因为公司有个脚本,是用于启动程序的,但是每次启动都要手动做如下两个操作: ①先查询之前的进程ID ②杀死之前的,在启动新了 时间长了弄得我很烦躁,所以就琢磨下,把上面的的操作一起整合到启动脚本里去。 最...

  • linux后台启动进程并记录进程ID

    2017-04-27 - 环境 操作系统:win7 虚拟机:centos7 需求 最近搭建了elasticsearch+kibana,其中由于elasticsearch官方自带后台启动,并且会产生pid文件,所以我自己就写了脚本使其变成系统命令。 但是,kibana官方却没有自带后台启动的参数。假设使用的方式,虽然可以做...

  • C语言计算文件MD5

    2017-04-26 - 计算MD5这种很标准的东西,一般直接使用别人写好的了就行,本文主要针对写好的接口测试一下如何使用的问题。 下面是MD5的实现: md5.h ************************************************************ #ifndef MD5_H #define MD5_H typedef struct { unsigne...

  • Linux编程遇到的SIGBUS信号

    2017-04-26 - Linux下编程我们最常遇到的一个信号应该是段错误信号SIGSEGV,一般表示你访问了一个不合法地址。但有时会遇到SIGBUS信号,这个信号在我的印象中是硬件故障的意思,平时没太关注,但最近一个进程老打印收到这个信号,想来这信号里面应该还有其他蹊跷。 什么时...

  • shell中自增的几种方法

    2017-04-25 - Linux Shell中写循环时,常常要用到变量的自增,现在总结一下整型变量自增的方法。 我所知道的,bash中,变量自增,目前有五种方法: 1.i=`expr $i + 1`; 2.let i+=1; 3.((i++)); 4.i=$[$i+1]; 5.i=$(( $i + 1 )) 可以实践一下,简单的实例如下: 代码如下:...

  • Linux网络编程:使用AF_PACKET域套接字发送任意以太网帧Linux网络编程:使用AF_PACKET域套接字发送任意以太网帧

    2017-04-23 - Linux提供了packet套接字,使得用户层可以从设备驱动层(链路层)接收以太网帧或者发送以太网帧到设备驱动层。 packet_socket = socket(AF_PACKET, int socket_type, int protocol); socket_type参数为SOCK_RAW或SOCK_DGRAM。两者的区别是SOCK_RAW要求用户自...

  • centos6.5下编译hello.ko驱动程序

    2017-04-23 - 说明: 该驱动编译过程是在虚拟机中,安装完centos 6.5系统后: A:默认make为用的自带的内核版本,我的centos 6.5系统 版本为(命令uname -r):2.6.32-431.el6.x86_64时: A1、cd /usr/src/kernel/下; A2、将2.6.32-431.el6.x86_64的kernel文件夹复制到/usr...

  • #!/usr/bin/env python的作用

    2017-04-23 - 首先,脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单。 #!/usr/bin/env Python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找py...

  • 调试器的工作原理(一):基础篇

    2017-04-18 - 这是调试器工作原理系列文章的第一篇,我不确定这个系列会有多少篇文章,会涉及多少话题,但我仍会从这篇基础开始。 这一篇会讲什么 我将为大家展示 Linux 中调试器的主要构成模块 - ptrace 系统调用。这篇文章所有代码都是基于 32 位 Ubuntu 操作系统。值得...

  • Linux实现秒级定时任务(crontab)Shell小脚本

    2017-04-16 - 今天领导让我配置一个服务器job,要求是暂时每秒钟都要跑一次。本来想到去crontab配置。Linux的定时任务简单地配置到crontab里面就可以了,设置方法也很简单,如下所示,6个参数依次表示为分、时、日、月、周和具体任务(示例为每天凌晨3点执行freshclam工作...

  • 由一次symbol lookup error引发的思考由一次symbol lookup error引发的思考

    2017-04-15 - 开发一个跨平台的项目的时候,大部分时候都是在VS下进行编码,所以也就使用了VS的解决方案来管理项目。 因为要跨平台,当时网上看scons这个工具不错,所以在linux下就使用了scons来作为编译脚本。 linux(gcc)下与windows(vs)下的对于链接这一步稍有不同。当...

  • linux下Qt WebEngine程序打包简单记录

    2017-04-15 - 本次记录仅作参考。 程序说明: 程序是一个编解码器控制管理的工具,使用到的库有:Qt的WebEngine、OpenGL模块、poco库、libmicrohttpd、libcurl、libvlc。同时程序间接的依赖libssl/libxml2等库。 其中poco/libcurl/libmicrohttpd等都编译为了静态库,libvl...

  • Linux下使用SEAL同态加密Linux下使用SEAL同态加密

    2017-04-14 - SEAL 全称Simple Encrypted Arithmetic Library,是微软研究院提出的一种同态加密算法的实现方案,其最终结果是一个C++库,在程序中调用相关API,完成同态加密的功能。因为毕设要用到相关的内容,所以做了些调研。 0、准备工作 下载链接:http://sealcrypto....

  • Linux下使用openssl的AES加密-CBC模式

    2017-04-14 - 最近需要用到AES加密,为了图方便就打算使用openssl自带的AES加密算法的API来实现。 主要用到了ECB和CBC两种加密模式。 ECB模式之前一篇(http://www.linuxdiyf.com/linux/29980.html)已经写过了。这篇就写一下CBC模式。 代码: #include stdio.h #include...

  • Linux下使用openssl的AES加密-ECB模式

    2017-04-14 - 最近需要用到AES加密,为了图方便就打算使用openssl自带的AES加密算法的API来实现。 主要用到了ECB和CBC两种加密模式。 ECB模式如下: #include stdio.h #include stdlib.h #include string.h #include unistd.h #include openssl/aes.h int main(int argc,...

  • Linux页框分配时,node和zone的选择

    2017-04-13 - 一、页框分配时,node、zone选择方法 zonelist order、内存策略、用户选择 1、如何确定从哪个node分配 (1)通过函数参数指定 (2)通过内存策略指定 2、如何确定从哪个zonelist搜索zone 是否设置了__GFP_THISNODE 二、node选择 1、node选择方式 (1)Interl...

  • 如何学习wxPython

    2017-04-13 - 一、目录 1.如何学习wxPython 学习Python 选择一个好的编辑器 安装wxPython 阅读wxPython教程 阅读wxPython编码风格指南 阅读wxPython程序实例(demo files) 使用wxWidgets文档 使用wxPython参考手册(实验状态) 研究他人的代码 提问题 二、学习Python 如...

  • Linux内核安装补丁Linux内核安装补丁

    2017-04-12 - 本文通过自身实践,介绍了在Linux下为内核打补丁的简单实例。 Linux下安装高版本补丁到低版本的步骤大体分为以下几步: 1、选取补丁 2、构建补丁 3、编译并处理编译错误 4、安装并验证补丁 环境 本文为Ubuntu 14.04版本,64位系统。 内核版本4.1.38。 内核安...

  • Linux内核的编译与安装(图解)Linux内核的编译与安装(图解)

    2017-04-12 - 本文主要通过自身实践,介绍了Linux内核的编译与安装教程。 环境 本文为Ubuntu 14.04版本,64位系统。 内核版本4.1.38。 工作准备 (1)平台 需要安装Linux Ubuntu系统,可以安装在PC上,也可以安装在虚拟机上。 (2)内核 可在下载地址 https://www.kernel....

  • Linux driver oops异常的处理Linux driver oops异常的处理

    2017-04-09 - 如果Linux驱动里面出现了oops异常,这种情况如何快速定位到底什么原因引起的呢,需要对驱动debug。 例如: #include linux/init.h #include linux/module.h static int __init hello_init(void) { int *p = NULL; *p = 0; return 0; } static void __exit he...