![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 71
春风来不来
CXY 进化中
展开
-
Linux 文件权限引起的坑
问题的发现之前有过一个reload 数据文件的的上线需求,在上线之后,突然有一天,产品人员提出需求说需要在白名单平台自己reload,以后更新就不需要技术人员来操作,然后产品在更新的时候,发现一只无法更新失败。排查在排查的过程中,发现数据文件的权限是600,即rw-------,产品端平台转换后使用的是用户和运维上线时候的用户不一样,在运维操作的时候是自己的用户可以正常读,但是另外...原创 2018-09-14 20:52:45 · 1077 阅读 · 0 评论 -
Linux 系统管理之一次性定时任务 at 的使用
环境Centos 6.5at 一次性定时任务1、查看at服务是否安装chkconfig --list | grep atdservice atd restartservice atd status如果系统中有 /etc/at.allow 这是白名单中的用户可以使用at命令,此时黑名单会被忽略 如果没allow,/etc/at.deny 黑名单中的用户不能使用,对root 不起作用如果两个文件都不原创 2017-07-09 10:23:17 · 9954 阅读 · 1 评论 -
Linux 系统管理之进程管理:目的、方法、命令
文章概要 本文主要介绍了Linux 系统管理的目的,还有常见系统信息查看的命令,ps 、pstree和top命令,还介绍了如何杀死异常进程,其方式有杀死单个进程、杀死一组进程、以及如何将用户踢出终端(杀掉终端),文末还介绍了进程优先级的概念和修改进程优先级的两个命令 nice 和 renice。一、简介 进程是正在执行的一个程序或命令,每一个进程都有自己的地址空间,并占用一定的系统资源。而原创 2017-07-08 15:25:20 · 1626 阅读 · 0 评论 -
【Linux】学会 core dump 事后调试 快速定位段错误
环境: centos 6.5core dump是什么其实就是操作系统在进程收到某些信号而终止运行时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。最常见的就是段错误,然后程序直接挂掉。当程序出现段错误时,不要一脸蒙蔽,有一种简单而有效的方式快速定位错误。常见 core dump 错误总结自前辈的经验:一、无效指针对空指针进行了操作对未初始化的指针进行了操作使用一个已经原创 2017-07-04 11:59:15 · 6311 阅读 · 1 评论 -
解决错误 libmysqlclient.so.18: cannot open shared object file: No such file or directory
我的环境是 centos6.5在连接数据库的时候发现编译可以通过,但是执行的时候提示下面的保存信息。error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory这时候需要看一下的makefi原创 2017-07-04 17:39:59 · 5387 阅读 · 0 评论 -
【Linux命令】用 scp 命令在不同主机之间拷贝文件或目录
scp 命令scp 命令 意思是 secure copy 即安全拷贝,可以把它看做是 cp 命令的高级版,可以跨主机拷贝。经常用来在局域网内不同主机之间分享文件,或者在本机与远程主机中分享文件。在使用的时候就像使用cp 命令一样,第一个参数是源,第二个参数的目的。基本格式:[bob @ host myfile]$ scp 需要拷贝的源路径 拷贝后存放的路径从本机拷贝到远程主机将当前目录下的原创 2017-06-24 14:30:25 · 12615 阅读 · 2 评论 -
Makefile 入门
一、什么是Makefile 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。这一切都由make 工具 和 Makefile中的规则文件替我们完成。二、Makefi原创 2017-06-30 22:56:09 · 386 阅读 · 0 评论 -
【Linux网络编程】I/O多路转接之 epoll 高性能简洁http服务器模型
和之前的select ,poll一样,服务器比较简陋,为了学习模型的基本框架,只向客户端回写一条html语句。启动服务器后,用手机或者电脑浏览器发起请求,服务端向浏览器写回html,响应字符串,然后可以看到,浏览器解析并显示 Hello epoll!.完整代码:#include #include #include #include #include #in原创 2017-06-09 18:29:31 · 1672 阅读 · 0 评论 -
【Linux网络编程】基于TCP流 I/O多路转接(poll) 的高性能http服务器
服务器比较简陋,为了学习poll的使用,只向客户端回写一条html语句。启动服务器后,浏览器发起请求,服务端向浏览器写回html,响应字符串,然后可以看到,浏览器解析并显示 Hellp Poll!.启动服务端:用浏览器访问:浏览器解析出字符串:完整代码:#include #include #include #include原创 2017-06-08 17:44:57 · 1216 阅读 · 0 评论 -
创建守护进程以及为什么fork两次
守护进程守护进程也叫精灵进程(Daemon),它在后台运行,独立于控制终端并周期性地执行某种任务或等待某些事情发生,一般用于C/S 服务中,在服务端监听端口,等待客户端的连接,如果有客户端发出连接,则fork出一个子进程去响应,而守护进程继续监听。步骤创建一个守护进程一般有如下几步: 调用umask(0),将文件模式创建屏蔽字改为0调用fork(),父进程退出,目的是: 父进程终止可以让she原创 2017-05-25 13:30:40 · 1589 阅读 · 3 评论 -
【Linux网络编程】基于UDP的客户端/服务器程序
效果就像开晚会的表白墙或者上墙一样,多个udp客户端都可以给服务端发送消息。服务端代码:#include #include #include #include #include #include int main(int argc, char** argv){ int sock = socket(AF_INET, SOCK_DGRAM, 0); if(sock原创 2017-06-01 13:31:32 · 1559 阅读 · 0 评论 -
shell编程 实例----彩色进度条
看图:#!/bin/bashindex=('|' '/' '-' '\\')bar='#'i=0while [ $i -le 100 ]do ((colour=30+i%8)) echo -en "\e[1;"$colour"m" printf "[%-100s][%d][%c]\r" "$bar" "$i" "${index[i%4]}"原创 2017-06-29 00:08:58 · 625 阅读 · 0 评论 -
shell 编程实验--实现学生成绩管理系统
shell 编程实验--实现学生成绩管理系统原创 2017-06-28 15:32:34 · 6530 阅读 · 0 评论 -
shell 编程实验--实现文件的备份和恢复
########################################################################## File Name: backup-restore.sh# Author: HZG# Created Time: Mon 26 Jun 2017 09:56:19 PM PDT#################################原创 2017-06-27 13:42:52 · 1981 阅读 · 0 评论 -
Linux 下 ACE 网络库的编译安装
这里使用的环境是rehat,centos也类似下载下载链接进去找任意找一个版本,wget 到本地,然后用 tar 解压。比如我这里使用6。4。6mkdir acecd acewget http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.4.6.tar.gztar -vxf ACE+TAO-6.4.6...原创 2018-03-07 10:07:02 · 1123 阅读 · 0 评论 -
awk 有多个文件输入时判断来源分别处理
如果 awk 脚本在 Hadoop streaming 上执行awk -F"\t" '{ if(match(ENVIRON["map_input_file"], "xxx") > 0){ pass pass }}'如果awk 脚本在本地单机执行awk -F"\t" '{ if(match(FILENAME, "xx")原创 2018-01-25 14:39:16 · 790 阅读 · 2 评论 -
awk内建变量示例详解之NR、FNR、NF
NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。 在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record。转载 2018-01-16 10:36:24 · 20190 阅读 · 0 评论 -
awk sort cut uniq 速查
介绍基本概念awk不仅能以行为单位处理还能以列为单位处理。缺省列分割符是空格或TAB,也可以自定义。命令行调用方式awk [选项参数] 'script' var=value file(s)或awk [选项参数] -f scriptfile var=value file(s)-F 指定输入文件拆分符-f 从脚本文件中读取awk 命令-v 设置变量脚本调用方式将所有的awk命令写入文件中,指原创 2017-08-05 15:26:58 · 462 阅读 · 0 评论 -
sed 工具的高级用法
模式空间与保持空间sed 在正常情况下,将文本一行一行读入到模式空间(pattern space),对匹配的行执行处理后再输出,直到文件末尾。在某些时候可以使用保持空间(hold space),可以完成一些复杂操作。将模式空间理解为流水线,每经过一条数据都会进行处理。而保持空间可以看做一个仓库,可以从里面取数据到模式空间,也可以将模式空间已有数据放到保持空间。sed 高级命令g:将保持空间中的内容原创 2017-07-27 14:02:58 · 1690 阅读 · 0 评论 -
sed 工具基本使用方法
什么是 sedsed 是流编辑器(Stream Editor),在Shell 脚本和 Makefile 中作为过滤器使用。把一个程序的输入引入 sed 的出入,经过一些列的命令转换为另一种格式输出。sed 使用基础处理文件的来源sed 处理的文件来源有两种方式:标准输入重定向得到。比如将上一个程序的标准输出通过管道重定向到sed工具命令行参数传入。通过命令行参数可以一次传入多个文件,sed 会依原创 2017-07-27 10:41:34 · 2084 阅读 · 0 评论 -
【Linux】线程总结:线程同步 -互斥锁,条件变量,信号量实现多生产者多消费者模型
学习环境 : Centos6.5 Linux 内核 2.6 Linux线程部分总结分为两部分:(1)线程的使用 ,(2)线程的同步与互斥。第一部分线程的使用主要介绍,线程的概念,创建线程,线程退出,以及线程的终止与分离。【完成】 地址:【Linux】线程总结:初识、创建、等待、终止、分离第二部分主要介绍在多线程环境下,使用同步与互斥保护共享资源,有互斥锁,条件变量,信号量,以及读写锁。原创 2017-07-19 21:23:56 · 3522 阅读 · 3 评论 -
Linux系统管理之 crond 与 crontab
cron是任务的意思,tab 表示table。crontab 可以理解为,任务时间表。 crontab 命令是用来让计算机替我们执行周期性任务,比如要在每周二的凌晨五点重启服务器,每天凌晨执行一次备份任务。主要管理以分钟、小时、日、月、周,为周期来执行定期任务。守护进程 crond 为 crontab 命令提供服务。准备工作在使用命令之前,首先要确保服务已安装并启动。1、查看 crond 服务是原创 2017-07-09 16:19:42 · 8214 阅读 · 0 评论 -
Linux 中 eval命令的作用
eval是一个bash内部命令,在bash手册页中进行了描述。eval [arg ...] The args are read and concatenated together into a single com- mand. This command is then read and executed by the shell, and its exit原创 2017-06-25 20:16:01 · 4350 阅读 · 0 评论 -
Linux 中 shell 中反引号与 $() 的对比
这两者都是命令替换,命令替换是指:是Shell 执行命令并将命令替换部分替换为执行该命令后的结果。比如:[bob@centos home]$ val=hello[bob@centos home]$ echo $(echo $val)val[bob@centos home]$ echo `echo $val`val或者:[bob@centos home]$ echo $(date)2017年原创 2017-06-25 20:54:22 · 1722 阅读 · 0 评论 -
【Linux网络编程】基于TCP的多线程(pthread)版本最简陋的HTTP服务器
服务器代码:#include #include #include #include #include #include #include #include "my.h"#define SOCK_FAIL 1#define BIND_FAIL 2#define LISTEN_FAIL 3#define USE_ERROR 4#define ACCPET_FAI原创 2017-06-01 17:44:44 · 1592 阅读 · 0 评论 -
三种 I/O 复用(select poll epoll)的优缺点总结 & epoll 为何如此高效
什么是 I/O?I/O 可以理解为在内存和外设之间搬迁数据。而 I 就是将外设数据搬迁到内存, O 即将内存数据搬迁到外设。一次 I/O 事件主要分两步,等数据和搬数据。等数据:等数据就绪搬数据:将就绪的数据从内存写到外设,或将数据从外设读到内存。I/O 复用I/O 复用是通过一种机制,可以监视多个描述符(或句柄),一但描述符有关心的时间就绪,既可以进行下一步搬数据。 本质任是同步 I/O ,原创 2017-06-17 21:29:30 · 1811 阅读 · 0 评论 -
【Linux网络编程】基于TCP的线程池(pthread_pool)版本HTTP服务器
(线程池代码参考网上的)服务器代码:#include #include #include #include #include #include #include #include "mypthreadpool.h"#define SOCK_FAIL 1#define BIND_FAIL 2#define LISTEN_FAIL 3#define U原创 2017-06-01 17:50:12 · 1915 阅读 · 0 评论 -
【Linux】进程间通信(IPC)之消息队列详解及测试用例
学习环境 Centos6.5 Linux 内核 2.6一、什么是消息队列?消息队列是SystemV版本中三种进程通信机制之一,另外两种是信号量和共享存储段。消息队列提供了进程间发送数据块的方法,而且每个数据块都有一个类型标识。消息队列是基于消息的,而管道是基于字节流。创建的消息队列,生命周期随内核,只有内核重启或用户主动去删除,才可以真正关闭消息队列。二、背景知识:I P C 标识符:每一个内核原创 2017-03-12 18:12:22 · 5999 阅读 · 0 评论 -
【Linux】线程总结:初识、创建、等待、终止、分离
学习环境 : Centos6.5 Linux 内核 2.6 Linux线程部分总结分为两部分:(1)线程的使用 ,(2)线程的同步与互斥。第一部分线程的使用主要介绍,线程的概念,创建线程,线程退出,以及线程的终止与分离。第二部分主要介绍在多线程环境下,使用同步与互斥保护共享资源,有互斥锁,条件变量,信号量,以及读写锁。 第一部分开始初识线程 线程:也称轻量级进程(Lightw原创 2017-04-29 19:32:45 · 8747 阅读 · 2 评论 -
【Linux】进程间通信(IPC)之信号量详解与测试用例
学习环境centos6.5 Linux内核2.6进程间通信概述进程通信机制一般情况下,系统中运行着大量的进程,而每个进程之间并不是相互独立的,有些进程之间经常需要互相传递消息。但是每个进程在系统中都有自己的地址空间,操作系统通过页表和实际物理内存所关联,不允许其他进程随意进入。因此,就必须有一种机制既能保证进程之间的通信,又能保证系统的安全,即进程间通信机制——I P C (Inter_Proces原创 2017-03-22 17:28:50 · 11609 阅读 · 2 评论 -
写一个简单的shell命令解释器
目前只可以实现一些基本的命令。原创 2017-02-25 14:11:13 · 1840 阅读 · 0 评论 -
Linux 快速配置 VIM 实现语法高亮 自动补全 自动缩进以及文件管理等功能
1.首先下载以下压缩包并解压链接:http://pan.baidu.com/s/1o82ke5k 密码:75rq解压后可以看到里面有三个文件文件夹doc文件夹plugin隐藏文件.vimrc2.然后 cd ~ 进入自己的工作目录ls -a 看在隐藏文件中有没有 文件夹.vim 和隐藏的配置文件 .vimrc没有的话 mkdi原创 2017-02-15 18:56:14 · 6782 阅读 · 0 评论 -
Linux中find命令及常见用法实例
Linux下find命令在目录结构中搜索文件,并执行指定的操作。find命令提供了相当多的查找条件,功能也十分强大,它的选项特别多。1.命令格式find pathname -options [ -print -exec -ok ]2.命令功能用于在文件树中查找文件,并作出相应的处理3.命令参数pathname: 所查找的目录路径。-prin原创 2017-02-15 12:19:16 · 599 阅读 · 0 评论 -
linux中用stat查看文件信息的三个时间的含义
stat xxx 后出现的三个文件信息含义运行stat test.c然后执行 cat test.c 读取文件打印出来然后再次执行 stat test.c可以看到 Access 时间戳发生的变化 因此也把ACCESS作为文件和最后一次被访问的时间用vim命令对 test.c修改后Change和 Modify都发原创 2017-02-15 11:42:08 · 1139 阅读 · 0 评论 -
Unix环境高级编程第三版第一章练习代码
练习环境Centos6.5 , linux内核版本2.6p4, 1-3/*************************************************************************# > File Name: 1-3.c# # # Created Time: 2017年02月28日 星期二 23时53分36秒 ***原创 2017-03-02 14:37:17 · 471 阅读 · 0 评论 -
操作系统进程调度算法
调度:当计算机系统是多道程序设计系统时,通常就会有多个进程或线程同时竞争CPU、只要有两个或更多的进程处于就绪状态,这种情形就会发生。如果只有一个CPU可用,那么就必须选择下一个要运行的进程。在操作系统中,完成选择工作的这一部分称为调度程序(scheduler),该程序使用的算法称为调度算法(scheduling algorithm)。1.先来先服务算法基本思想:按照进程进入就原创 2017-02-19 13:31:50 · 1188 阅读 · 0 评论 -
Linux中进程控制块(PCB)的task_struct结构描述
进程控制块PCB:在Linux中进程信息存放在叫做进程控制块的数据结构中,每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息。Linux内核的进程控制块是task_struct结构体。task_struct是Linux内核的一种数据结构,它会被装载到RAM并且包含着进程的信息。每个进程都把它的信息放在task_struct这个数据结构体中,其中包含了众多信息。原创 2017-02-18 00:37:22 · 2341 阅读 · 0 评论 -
【Linux】进程间通信(IPC)之共享内存详解与测试用例
学习环境centos6.5 Linux内核2.6什么是共享内存共享内存允许两个或更多进程访问同一块内存。当一个进程改变了这块内存中的内容的的时候,其他进程都会察觉到这个更改。效率:因为所有进程共享同一块内存,共享内存在各种进程间通信方式中具有最高的效率。就像访问进程独有的内存区域一样快,并不需要通过系统调用或其他需要切入内核的过程来完成。同时还能避免对数据的各种不必要的复制。因为系统内核没有对访问共原创 2017-04-06 14:54:54 · 6643 阅读 · 0 评论 -
【Linux】信号的理解以及信号集处理函数的使用
信号产生方式通过终端按键产生。 如ctrl+c 终止进程通过系统函数向进程发送信号。如kill()函数,给指定进程发送信号。有软件条件产生信号。如alarm()函数,设定一个闹钟信号。硬件异常。如内存越界,除0异常。利用kill()函数实现自己的kill 命令// 发送信号给进程#include <sys/types.h>#include <signal.h>int kill(pid_原创 2017-05-11 18:33:09 · 2074 阅读 · 0 评论 -
【Linux】利用信号实现sleep函数
在另一篇文章Linux信号中,介绍了信号的产生与处理方式,以及一系列信号集函数的使用。 本文使用信号机制,模拟实现sleep函数并了解竞态条件。在此之前先介绍一波需要用到的函数。sigaction函数#include <signal.h>int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact)原创 2017-05-11 21:29:04 · 1689 阅读 · 2 评论