
Linux
文章平均质量分 71
OshynSong
百度云计算事业部研发工程师
展开
-
Linux文件存储抽象VFS
概念VFS(Virtual Filesystem Switch)称为虚拟文件系统或虚拟文件系统转换,是一个内核软件层,在具体的文件系统之上抽象的一层,用来处理与Posix文件系统相关的所有调用,表现为能够给各种文件系统提供一个通用的接口,使上层的应用程序能够使用通用的接口访问不同文件系统,同时也为不同文件系统的通信提供了媒介。架构VFS在整个Linux系统中的架构视图如下:Linux系统的User...原创 2018-03-18 23:38:12 · 2239 阅读 · 1 评论 -
Linux命令备忘实例(16)——awk(2/2)
前一篇介绍了awk的基本命令格式,以及提供的脚本编程环境的基本内容,这里接着将awk脚本环境提供的高级内容整理于此。1.数组对于比较复杂的脚本处理,awk提供了一维数组这种数据结构,这大大扩展了awk脚本的功能范围。数组将索引都视为字符串,类似一般脚本语言中的关联数组。A[1]和A[“1”]是访问同一个元素。 初始时,数组为空,对于元素添加直接使用访问同样的语法,如果对于索引的元素不存在就添加了元原创 2015-10-15 23:29:02 · 639 阅读 · 0 评论 -
Linux命令备忘实例(15)——awk(1/2)
awk是以三位发明这个工具的人的名字的首字母组合而成的,这个工具用来进行文本处理非常强大,可以进行行列操作,而且本身就是具有很多内建功能,可以看成awk提供了一种类似于C语言强大的语言子集,从简单的文本处理到任意复杂的处理基本都可以写出脚本来进行处理。本文首先对awk的基本结构和功能进行总结。1. 命令结构awk的基本使用如下:awk [-F value] [-f file] [-v var=va原创 2015-10-13 23:47:28 · 695 阅读 · 0 评论 -
Linux命令备忘实例(12)——文件管理
1.ls这是在Linux系统中使用最广的命令了,用来列举给定目录下的文件,默认为当前目录。通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息。1.概览格式:ls [选项] [目录名]常用参数: -a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件 -A 同-a,但不列出“.”(表示当前目录)和“..”(表示当原创 2015-09-17 23:24:32 · 702 阅读 · 0 评论 -
Linux安装Nginx1.7.4、php5.5.15和配置
Nginx是一个轻量级的高性能Web服务器、反向代理服务器、邮件(IMAP/POP3/SMTP)服务器,是Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发,第一个公开版本0.1.0发布于2004年10月4日,以类BSD许可证的形式发布。Nginx选择epoll and kqueue 作为开发模型并使用C编写,在系统资源和CPU使用率上比Apache有着较大的优势。同时安装非常原创 2014-08-15 01:06:00 · 1820 阅读 · 0 评论 -
Linux命令备忘实例(10)——目录管理
Linux整个系统就是一个目录树结构,每个目录也是一个文件进行保存的,占用大小为4K的一个文件节点(node)。存在两种目录路径的表示方法: - 相对路径:路径从当前所在位置开始,进行相对的计算。 - 绝对路径:以根目录“/”开始,写出所有经过的目录路径。目录管理主要涉及如下几个方面:目录的切换、目录显示、目录创建与删除、权限设置等。1.cdchange directory的缩写,功能就是改变目原创 2015-09-11 00:25:56 · 567 阅读 · 0 评论 -
Linux命令备忘实例(11)——首尾获取
在备忘4中记录的获取内容命令是直接输出文件内容的方式,非常直白地全部输出文件内容。如果遇到文件内容太大,直接输出的方式肯定比不适合,特别是遇到只需要查看首尾内容的情况,使用haed和tail就是方便这种内容的查看:适合输出文件内容的前n行或者后n行,也可以输出除了前n行或者后n行之外的内容。 另外在处理大体积文件时,对于可以翻页获取也是一种有效的方式,more和less就是用来进行翻页获取文件内容原创 2015-09-15 23:22:52 · 749 阅读 · 0 评论 -
Linux命令备忘实例(14)——sed
sed是UNIX下非常重要的文本处理工具,是stream editor(流编辑器)的缩写。这个命令配合正则表达式能够处理非常强大的文本操作功能。其中众所周知的用法就是文本替换。1.概览sed [option] 'script'/scriptfile inputfile sed可以替换给定文本中的字符串,利用正则表达式进行匹配。2.实例特性1.基本替换$ sed 's/pattern/replac原创 2015-09-28 23:45:45 · 670 阅读 · 0 评论 -
Linux命令备忘实例(8)——文件校验、分割与临时文件
1.md5sum、sha1sum文件特别是网络传输的文件,出于各种原因,数据可能在传输中丢失bit位从而导致文件损坏。为了保证数据完整和正确,需要使用特定工具进行完整性测试和校验。校验和就是用来从文件中生成校验和密钥,利用这个校验和密钥核实文件。最广泛使用的就是md5sum和sha1sum两种校验和技术。1.概览 使用时,需要将生成的校验和结果保存到文件中。然后使用-c选项进行校验。默认为文本模式原创 2015-09-08 00:01:53 · 790 阅读 · 0 评论 -
Linux命令备忘实例(7)——双向重定向与字符操作
1.tee(双向重定向)管道符或者“>”操作符都是单向的数据流,为了在数据流处理的国中将某段信息保存到文件,同时希望这个数据流继续输出到后续的命令,那么tee就是为了完成这样的工作情景。 tee相当于一个分流器,将数据流分送到文件和stdout。 这个命令的选项也很简单,-a是用来指定以追加的方式写入到文件,-i选项用来指定写入文件时忽略外部中断的信号。user@ubuntu:~$ echo原创 2015-09-07 22:55:30 · 1145 阅读 · 0 评论 -
Linux命令备忘实例(17)——cURL
cURL是Linux下进行网络访问的功能超级强大的工具,对于一般网络访问,使用wget命令基本都能完成,但是cURL比wget更胜一筹。首先,支持http、https、ftp等多个协议,同时对http协议中POST、COOKIE、认证、部分下载文件、referer、扩展头、限速、文件大小限制、进度条等多方面的控制和配置,能在命令行完成几乎所有细节操作,是进行网络相关任务的必备工具。下面是cURL 7原创 2015-11-28 11:15:16 · 1464 阅读 · 0 评论 -
Linux命令备忘实例——系列说明
回顾自从接触Linux以来,大大小小、断断续续,总的时间也有三年多了,不论是从书本上学起,还是从各种博客、文章等阅读而来,总是有一种并没有深入人心的感觉。可能毕竟还不是专做某个职位的在职人员,作为学生总是会有各种各样的事情,可能需要在Linux上做事的时候一段时间很熟悉,等下一个到了windows上,一两个月之后再回到Linux总有一种格格不入的感觉,就是一种不那么深入人心的感觉,可能是自己个人的因原创 2015-08-31 22:42:23 · 687 阅读 · 0 评论 -
磁盘挂载信息:/etc/fstab
磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。挂载的限制 1、根目录是必须挂载的,而且一定要先于其他mount po原创 2017-09-04 19:39:00 · 1545 阅读 · 0 评论 -
Makefile撰写教程
1. Makefile 简介Makefile 是和 make 命令一起配合使用的.很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂.Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作. 这个需要大家发挥自己的想象力. 1.1转载 2016-09-08 21:29:25 · 424 阅读 · 0 评论 -
libcurl库返回状态码解释与速查
CURLE_OK(0)支持返回CURLE_UNSUPPORTED_PROTOCOL(1)你的URL传递给libcurl的使用协议,这libcurl的不支持。支持可能是你没有使用一个编译时的选项,它可以是一个拼写错的协议字符串,或者只是一个协议的libcurl没有代码。 CURLE_FAILED_INIT(2)非常早期的初始化代码失败。这可能是内部错误或问题,资源问题,一些基转载 2016-09-22 16:41:42 · 4400 阅读 · 0 评论 -
一个输出内容不同引发的问题
常用的curl、mysql命令行客户端等程序,进行操作后会进行输出,这都是很正常的程序交互,并没有什么问题。但是,在使用他们的过程中,出现了下面这样的问题: curl 下载一个文件的命令后续没有任何其他管道符操作时,会默认讲文件输出到命令行,但是添加管道符进行后续操作时,就会输出下载文件的进度统计信息,文件内容则不会输出首先直接下载,输出全部文件内容:$ curl https://www.ba原创 2016-08-13 02:03:12 · 588 阅读 · 0 评论 -
makefile下的echo颜色控制
echo 颜色echo -e enable interpretation of the backslash-escaped characters listed below字背景颜色范围:40----49 40:黑 41:深红 42:绿 43:黄色 44:蓝色 45:紫色 46:深绿 47:白色字颜色:30------转载 2016-09-03 12:32:34 · 2174 阅读 · 0 评论 -
关于linux下时间延迟函数精度问题
Linux内核时钟中断设施linux的时钟中断需要两个全局变量,分别是xtime与jiffies。1、xtime一个timeval结构类型变量,是从cmos电路中取得的时间,一般是从某一历史时刻开始到现在的时间,也就是为了取得我们操作系统上显示的日期。这个就是“实时时钟”,它的精确度是微秒。获取方式是通过sys/time.h头文件里面的gettimeofday函数获取。2、HZLinux核心每隔固定原创 2016-07-27 10:31:51 · 8567 阅读 · 0 评论 -
Linux修改Shell命令提示符及颜色
1. Linux登录过程中加载配置文件顺序:/etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc → [/etc/bashrc]可查看默认的~/.bashrc文件如下:[root@~] cat ~/.bashrc # .bashrc # User specific aliases and func原创 2016-07-05 15:11:58 · 652 阅读 · 0 评论 -
Linux makefile教程
概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写m转载 2016-03-30 17:42:42 · 546 阅读 · 0 评论 -
Linux硬件信息查看工具
1. lshw 和 lshw-GTK, lscpuapt-get install lshw lshw-gtk 2. hardinfoapt-get install hardinfo3. 获取usb信息root@ubuntu:/dev# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 D原创 2016-03-02 21:18:53 · 764 阅读 · 0 评论 -
Linux命令备忘实例(13)——文件操作
1.生成任意大小文件——dd如果为了测试程序,需要生成包含随机数据的文件时,需要使用指定大小的文件作为输入,或者时分割文件等。创建特定大小的文件最简单的方法就是dd命令。 dd命令克隆给定的输入内容,然后输出一份副本到输出。stdin、设备文件、普通文件都可以作为dd的输入;stdout、设备文件、普通文件也都可以作为dd的输出。user@ubuntu:~$ dd if=/dev/zero of=原创 2015-09-23 00:05:12 · 710 阅读 · 0 评论 -
Linux命令备忘实例(6)——排序和基本统计命令
同文本文件打交道的过程中,会遇到各种各样的与重复和顺序相关的任务,比较常用的就是sort、uniq,然后对文本的基本统计就是wc这个工具了。sort命令能够对文件和stdin进行各种排序,uniq一般与sort结合使用来提取单一的行。sort和uniq结合能够用来查找重复数据。1.sort1.概览sort按照指定的参数进行排序,支持按照数字排序和字典顺序排序。 排序的选项如下: 其中选项“-原创 2015-09-06 23:21:19 · 822 阅读 · 0 评论 -
mysql无法启动——cannot allocate the memory for the buffer pool
今天打开开发网站突然不能使用,发现时Mysql数据库down掉了,就去重启: mysql.server restart一直会报错:“Manager of pid-file quit without updating file”。然后就去找原因,网上说有以下三个方面的问题:1、硬盘不够用了,无法写入pid文件2、进程卡死了,找到mysql进程kill掉,然后重启3、目录权限原创 2014-07-22 15:42:18 · 2776 阅读 · 0 评论 -
LAMP环境搭建过程
之前使用的是Win7下独立安装的Apache、php和mysql,然后后来使用过WampServer,也在Ubuntu下独立安装过Apache、php和mysql,现在遇到的是需要管理一个服务器,重新安装上述组件,由于时间太久,基本都忘记了方法,感觉什么很多流程性的东西还是需要有个记录才行,否则像环境搭建这种不会一直放在手头的工作很容易就忘记,因为环境搭建好了就一直在进行开发工作,基本不会再涉及到原创 2014-04-11 20:33:00 · 1770 阅读 · 0 评论 -
Linux学习之——查找和筛选
一、查找文件1、概况find:从指定位置进行遍历查找,也就是对文件和目录进行逐一查找。另外,可以查找具有某一类特征的文件(如指定某个权限特征的文件)。非常适合处理具有某一个特征的批量文件。格式:find【path】 【expression】expression是查找表达式,包含选项、测试和动作3类。选项:help : 帮助信息depth: 查找当前目录后再查原创 2014-03-19 14:08:34 · 2274 阅读 · 0 评论 -
Linux学习之——存储设备和分区标识及分区
1、标识方法Linux系统中,每一个设备都当成一个文件档案对待,都存放在“/dev”目录下。主要以接口类型区分存储设备,按照存储设备占用的系统接口编号为其标识符。具体规则如下:IDE接口设备:一般是硬盘和光驱使用此接口,标示符为“hd[a-d]”,按设备使用的接口编号分布命名为:hda、hdb、...SATA接口设备:有光驱和硬盘等设备使用,标示符“sd[a-p]”,命名为:sda原创 2013-12-26 11:09:46 · 2244 阅读 · 0 评论 -
Linux学习之——登录方式总结
1、本地登录本地登录就是安装好系统后从本机登录系统,一般有命令行登录和图形界面登录。默认登录系统后是图形用户界面,打开终端,使用init 3命令即可进入命令行界面。登录后会以下面的方式显示提示符root 用户:[root@localhost~]#普通用户:[user@localhost~]$2、远程登录远程登录是Linux系统作为服务器最常用的登录方式,一般有下面几原创 2013-12-26 11:41:31 · 2500 阅读 · 0 评论 -
Vim使用
查找:/word 向下寻找word?word 向上寻找wordn向下重复查找刚才字符串N向上重复查找刚才字符串:n1,n2s/word1/word2/g 从n1行到n2行之间把word1替换为word2:n1,n2s/word1/word2/gc 从n1行到n2行之间把word1替换为word2 需求确认:1,$s/word1/word2/gc 从原创 2013-12-18 14:01:02 · 1278 阅读 · 0 评论 -
Linux shell截取字符串方法总结
Linux 的字符串截取很有用。有八种方法。假设有变量 var=http://www.hao.com/123.htm一 # 号截取,删除左边字符,保留右边字符。echo ${var#*//}其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 http://结果是 :www.hao.com/123.原创 2013-12-17 21:13:02 · 1033 阅读 · 0 评论 -
linux下perl处理文本---使用hash处理
处理前文本部分片段:#!/bin/bash/perl# Program: # Gather protein and gene by every species and the TF family it belongs to.# History:# 2013-12-17 Oshyn Song# Usage:# perl gather_family_protein_gene.原创 2013-12-17 21:21:22 · 1134 阅读 · 0 评论 -
Linux学习之——用户及文件权限管理
1、用户管理(1)系统用户文件登录Linux系统的用户及其设置文件是“/etc/passwd”,查看内容类似如下:root:x:0:0:root:/root:/bin/bash这一行用冒号分割,每个为一个字段,分别的含义如下:字段一:用户名 字段二:用户登录密码,早起的系统密码直接保存在此处,上面的“x”表示用户的密码保存在“/etc/shadow”文件中字段三:用户I原创 2013-12-31 11:23:36 · 1256 阅读 · 0 评论 -
Linux学习之——特殊字符和正则表达式
1、特殊字符(1)双引号通常用来标识引用一个字符串,有时候能屏蔽一些标点等特殊字符。通常放入双引号的内容都按照字符串来处理,除非有另一个引用号告知某个特殊字符串具有特殊意义(如变量)。屏蔽特殊字符:如果在命令中使用一个较长的字符串为参数,应该讲其放入双引号内,避免Shell对字符串中的某些字符产生误解。双引号中使用其他引用符:$var => 引用变量 (echo "$var")原创 2013-12-31 00:13:14 · 1455 阅读 · 0 评论 -
wget命令详解
使用如下的命令下载https链接:wget -r -np -nd --accept=gz --no-check-certificate https://www.xxx.com/dir/ --http-user=username --http-password=password下载'dir'目录下的所有gz文件-np 没有父目录-nd 不要构建本地目录结构--accept转载 2014-07-04 14:44:56 · 966 阅读 · 0 评论 -
linux安装php与memcache过程记录
安装环境是Ubuntu13.10版本i386,已经安装好nginx服务器和mysql服务器,现在的任务是需要安装php和memcache。直接干货,多余的不说。1、php安装及错误排查由于php安装前需要安装很多库文件,因此需要耐心得按照一定的顺序来安装。我按照如下顺序安装: zlib -> freetype -> libxml2 -> libpng -> libgd2 -> lib原创 2014-08-23 18:17:25 · 1358 阅读 · 0 评论 -
Linux命令备忘实例(3)——数学运算
bash命令中,对于直接的算术操作的支持比较欠缺,但是有多个命令可以实现算术操作。对于基本的算术操作,可以使用let、(( ))、[ ]、expr执行,只支持基本整数操作;当需要进行高级操作,比如浮点数,进制转换时,可以使用bc这个工具。1.基本整数运算1.let使用普通的赋值方法定义数值时,由于默认的都为字符串,因此可以使用let命令进行算术运算。使用let命令时,变量名前不需要加$符号。而且,支原创 2015-09-02 22:03:46 · 758 阅读 · 0 评论 -
Linux命令备忘实例(5)——切取命令
切取,顾名思义就是切割和取出满足我们需求的数据。这里的分类是个人使用后的一个人为划分,只是个人的一个理解。一般地,在使用shell命令处理和分析数据后,需要取出我们需要的部分,或者经由分析关键词取出需要的行。1.cutcut就是英文中的“切”,之所以这样命名,主要是这个命令是按照列来进行切分的,然后可以从待处理文件中取出指定的列(或者是字段、字符)。1.概览 cut主要是对类似表格排布的文件(如c原创 2015-09-05 00:21:35 · 1124 阅读 · 0 评论 -
Linux命令备忘实例(4)——获取内容
Linux中的所有内容都是以文件的方式表示的,会有很多需求需要我们获取文件的内容,查看部分或者全部内容。当然最直接方式就是使用编辑器打开文件查看,比如vim、vi、emacs等。这里主要关注的是shell命令中获取文件内容的部分。1.catcat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示。 1.命令概览 在文件内容比较原创 2015-09-04 00:08:20 · 626 阅读 · 0 评论 -
Linux命令备忘实例(9)——参数代换xargs
管道命令可以将stdout重定向到stdin,但是对于只能接受命令行参数的形式接收数据的命令,无法通过stdin接收数据。此时就需要将stdin转换为后续命令的命令行参数。xargs就是实现这个功能的命令:擅长将stdin的数据转换为命令行参数,也可以将单行或多行文本输入转换为其他格式。 一般编写shell命令都追求单行命令,使用管道符进行连接,如果后续命令需要以命令行参数接收数据,那么xargs原创 2015-09-09 00:05:13 · 723 阅读 · 0 评论 -
Linux命令备忘实例(2)——变量
1.设定规则变量的等号两边不能有空格符变量名称只能为数字或英文字母,不能以数字开头双引号内的变量可替换为其值,单引号内的变量为纯文本可以使用反引号`命令`或者$(命令)的方式将内部命令的返回值赋给变量变量扩增与赋值时,直接堆砌:$a=$a“ ”$b某个变量需要在其他子程序执行时使用,可以用export使变量变为环境变量大写字母变量为系统默认变量,自定义变量用小写取消变量使用:unse原创 2015-09-01 23:53:39 · 683 阅读 · 0 评论