Linux
文章平均质量分 65
Linux
雪飞_海
会泽百家 至公天下
展开
-
Linux进程通信和线程通信
1、进程和线程是什么 简单的描述:进程好比是工厂,线程是工厂里的生产线,一个进程里面可以包含多个线程。 专业术语:进程是cpu资源分配的最小单位,线程是cpu调度的最小单位。 每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),...原创 2019-01-29 10:19:37 · 2673 阅读 · 2 评论 -
adb 删除 andriod下的app
1、首先要adb shell能连接上手机(本人环境ubuntu14.04)。 如果出现device not found 可参考http://www.360doc.com/content/14/0325/12/13253385_363563827.shtml2、查看手机安装的app adb shell pm list package 或ad原创 2016-07-20 08:54:39 · 687 阅读 · 0 评论 -
Linux下查找文件,并对文件操作
先说命令find . -name "signal.*" | xargs -i cp {} ~/Desktop/命令解析find . -name "signal.*" 在当前目录下,查找与signal相关的文件xargs -i 把查找的文件信息,放到缓存区cp {} ~/Desktop原创 2016-09-29 15:24:23 · 381 阅读 · 0 评论 -
ubuntu下 gbk转utf-8
Ubuntu gbk > utf-8转换 把 1.txt 从 gbk 转成 utf-8 并保存为 2.txt iconv -f gbk -t utf-8 1.txt > 2.txt 注意:报告错误(非法字符)的话,加 -c 参数忽略错误 或者 使用 perl 的 convmv convmv -f gb2312 -t utf8 -r --notest转载 2016-10-11 09:38:07 · 2764 阅读 · 0 评论 -
ubuntu下 gedit兼容gbk、gb2312
解决gedit打开GBK编码文件乱码的问题 gedit打开GBK编码的文件时显示为乱码,需做以下设置: (1)确认dconf-editor已经安装 (2)运行dconf-editor,在org/gnome/gedit/preferences/encodings中,设auto-detected的值为转载 2016-09-23 12:48:04 · 1084 阅读 · 0 评论 -
putty 中psftp向linux传送文件夹
psftp向linux主机 传入/传出 文件夹1. psftp chencj@10.5.133.204登陆主机 显示 ftp>2. cd /mnt/mount/liuyh进入对应的服务器目录中3.(m)put -r 本地文件夹 向服务器传入文件夹4.lcd c:\进入本地地址5.(m)get -r 服务器文件夹向本地copy文件夹原创 2017-02-16 19:51:32 · 708 阅读 · 0 评论 -
解决Ubuntu 14.04 grub选择启动项10秒等待时间
sudo vim /etc/default/grub注释掉:GRUB_HIDDEN_TIMEOUT修改:GRUB_HIDDEN_TIMEOUT= 秒数最后sudo update-grub转载 2016-06-03 14:45:55 · 3566 阅读 · 0 评论 -
linux下配置JDK JAVA环境
如果你的ubuntu系统,没有安装JDK环境运行步骤1. 再上图的地址内,下载jdk-6u45-linux-x64.bin2. 更改jdk-6u45-linux-x64.bin的权限,并执行./jdk-6u45-linux-x64.bin3. 执行完会生成jdk1.6.0_45/的文件夹4. 再~/.bashrc文件下添加,如上图配置环境变量内容5. 执行sourc原创 2016-04-07 15:48:09 · 354 阅读 · 0 评论 -
Linux查看某个进程并停止
按名称查找某个进程,并停止 #! /bin/sh ID=`ps -ef| grep 'TcpServer.sh'|grep -v 'grep'|awk '{print $2}'` for pid in $ID do kill -9 $pid echo " kill TcpServer.sh转载 2016-08-05 10:10:37 · 1378 阅读 · 0 评论 -
linux下 有线和无线同时工作
又要使用公司内网收邮件, 又要使用wifi上外网 为了这个问题,百度了下,都是抄来抄去的文章,好烦。解决方法,就是使用route命令,修改静态路由表。方法: 1. 查看eth0 IP 和 wifi IP2. 修改静态路由 a. sudo route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.5.133原创 2016-09-18 09:48:03 · 3569 阅读 · 0 评论 -
Linux下 UNIX域套接字
在Linux系统中,有很多进程间通信方式,套接字(Socket)就是其中的一种。但传统的套接字的用法都是基于TCP/IP协议栈的,需要指定IP地址。如果不同主机上的两个进程进行通信,当然这样做没什么问题。但是,如果只需要在一台机器上的两个不同进程间通信,还要用到IP地址就有点大材小用了。Unix域套接字,专门用来解决这个问题。其API的调用方法基本上和普通TCP/IP的套接字一样,只是有些许差别。注: UNIX域套接字仅仅复制数据;它们并不执行协议处理,不需要添加或删除网络报头,无需计算检验和,原创 2021-01-19 15:12:13 · 711 阅读 · 0 评论 -
Linux 下 不同进程之间传递描述符
1. 接收传递描述符,demo(fd_read_file.c)创建流管道 fork并exec 父进程等待子进程 接收描述符#include <stdio.h>#include <stdlib.h>#include <string.h> #include <sys/socket.h>#include <unistd.h>#include <sys/wait.h>#include <fcntl.h>.原创 2021-01-14 19:57:09 · 547 阅读 · 0 评论 -
Linux - signal通信
对于 Linux来说,信号实际是软中断,许多重要的程序都需要处理信号。信号,为 Linux 提供了一种处理异步事件的方法。比如,终端用户输入了 ctrl+c 来中断程序,会通过信号机制停止一个程序。1. 信号概述1.1 信号的名字和编号每个信号都有一个名字和编号,这些名字都以“SIG”开头,例如“SIGIO ”、“SIGCHLD”等等。信号定义在signal.h头文件中,信号名都定义为正整数。使用kill -l来查看信号的名字以及序号,信号是从1开始编号的,不存在0号信号。kill对.原创 2021-01-12 11:30:56 · 312 阅读 · 0 评论 -
Linux下,write/read,recv/send, recvfrom/sendto的区别
先说概念和应用场景:read/wirte是通用的文件描述符操作;recv/send 通常应用于TCP;recvfrom/sendto通常应用于UDP。1. read/writessize_twrite(int fd, const void*buf,size_t nbytes);ssize_t read(int fd,void *buf,size_t nbyte);write函数是将buf中的nbytes字节内容写入文件描述符fd.成功时返回写的字节数.失败时返回-1. 并设置errno变量.原创 2021-01-06 13:35:28 · 3159 阅读 · 0 评论 -
syslog 和 rsyslog
1. 介绍rsyslog可以简单的理解为syslog的超集,在老版本的Linux系统中,Red Hat Enterprise Linux 3/4/5默认是使用的syslog作为系统的日志工具,从RHEL 6 开始系统默认使用了rsyslog。其特性包括:支持输出日志到各种数据库,如 MySQL,PostgreSQL,MongoDB,ElasticSearch,等等; 通过 RELP + TCP 实现数据的可靠传输(基于此结合丰富的过滤条件可以建立一种 可靠的数据传输通道供其他应用来使用);.原创 2021-01-04 15:48:11 · 5762 阅读 · 0 评论 -
Linux - 守护进程-2
利用daemon()函数创建守护进程1. 函数简介#include <unistd.h>int daemon(int nochdir, int noclose);DESCRIPTION The daemon() function is for programs wishing to detach themselves from the controlling terminal and run in the background as system d...原创 2020-12-29 15:40:12 · 97 阅读 · 0 评论 -
Linux - 守护进程-1
1. 守护进程概述Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。常见的守护进程包括系统日志进程syslogd、 web服务器httpd、邮件服务器sendmail和数据库服务器mysqld等。守护进程一般在系统启动时开始运行,除非强行终止,否则直到系统关机都保持运行。守护进程经常以超原创 2020-12-29 11:39:06 · 141 阅读 · 0 评论 -
Linux下 socket-udp通信
UDP是无连接不可靠的数据报协议,非常不同于TCP提供的面向连接的可靠字节流。典型的UDP客户/服务器程序,客户不与服务器建立连接,而是只管使用sendto函数给服务器发送数据报。类似地,服务器不接受来自客户端地连接,而是只管调用recvfrom函数。1. 服务器程序demo#include <stdio.h>#include <string.h>#include <sys/socket.h>#include <netinet/in.h>原创 2020-12-11 10:47:24 · 741 阅读 · 0 评论 -
Linux下 socket-tcp通信
1. 代码分为clien和serverclient:连接服务器server,并获取时间。server:检测到client连接上来,获取当前时间,并传给client2. 源码如下client.c#include <stdio.h>#include <string.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#inclu.原创 2020-11-10 18:07:51 · 262 阅读 · 0 评论 -
Linux下 select/epoll
一、Unix/Linux网络IO模型 在经典的Unix网络编程中,总结出了5种不同的网络IO模型,分别是阻塞式IO,非阻塞IO, IO多路复用,信号驱动IO,以及异步IO模型。1. 阻塞式IO2. 非阻塞式IO3. IO多路复用4. 信号驱动式IO5. 异步IO模型二、为什么IO多路复用应用最广泛 异步IO模型:理论上来说性能更好,但是目前阶段在linux平台下,操作系统底层并没有真正实现完全异步IO...原创 2020-07-02 11:20:32 · 806 阅读 · 0 评论 -
Linux 下 简单的多线程
linux 下,简单的多线程应用。编译的时候,因为引用了pthread库,所以要加-lpthread#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <unistd.h>#include <pthread.h>pthrea...原创 2020-01-07 10:05:41 · 216 阅读 · 0 评论 -
Linux下 进程简单创建fork
linux使用fork来生成一个子进程,fork() 函数的返回值。如果创建失败,将得到 -1;如果创建成功,在父进程中将得到子进程的 PID,在子进程中将得到 0 如果在 fork() 函数之后用一个 if 语句对 fork() 函数的返回值进行判断,子进程和父进程将进入不同的分支。#include <stdlib.h>#include <...原创 2020-03-27 17:44:06 · 353 阅读 · 0 评论 -
Linux下 进程简单创建vfork
上文,简单得介绍了fork。这里,我们来说一下vforkfork和vfork的区别1.内存空间fork (): 子进程拷贝父进程的数据段,代码段vfork(): 子进程与父进程共享数据段2.执行次序fork (): 父/子进程的执行次序不确定vfork(): 子进程先运行,在调用exec 或exit 之前与父进程数据是共享的, 子进程调用exec ...原创 2020-03-27 18:15:04 · 168 阅读 · 0 评论 -
Linux下 debug手段
在linux下开发难免会遇到bug,但是由于没有图形IDE,导致debug也变得困难,其实只要掌握一些常用的debug工具,一些错误就能很快解决,本文就介绍一些常用的工具用以调试:log输出log永远是最简单快捷的调试方式,可以快速定位bug,通过设置日志级别控制日志的输出详略程度,结合一些文本分析工具awk/sed/grep可以快速在大量日志中找到错误信息。strace是一个用来跟踪系统调用的简易工具。它最简单的用途就是跟踪一个程序整个生命周期里所有的系统调用,并把调用参数和返回值以文本的原创 2020-10-20 18:06:21 · 9829 阅读 · 1 评论 -
Linux下 exec系列
fork()是用于建立进程的手段之一,但是fork()只能建立相同程序的副本。Linux系统还提供了系统调用exec系列。它可用于新程序的运行。 如果exec调用成功,调用进程将被覆盖,然后从新程序的入口开始执行。这样就产生了一个新的进程,但是它的进程标识符与调用进程相同。这就是说,exec没有建立一个与调用进程并发的新进程,而是用新进程取代了原来的进程。所以,对exec...原创 2020-01-02 16:15:39 · 301 阅读 · 1 评论 -
Linux下简单Makefile文件的编写
网上有很多写Makefile的文件看起来很费事又伤脑筋,简单的写的话假设由3个文件, films3.c list.c list.h正常有gcc手动编译的话是 gcc films3.c list.c -o film -Wall -g写成Makefile文件,如下CC = gcc//表示用的...原创 2016-04-06 16:50:03 · 1305 阅读 · 0 评论 -
Linux 获取镜像
1. linux学习网站窝窝科技http://www.wowotech.net/2. linux源码获取官方网址:https://www.kernel.org/原创 2020-08-14 15:31:10 · 112 阅读 · 0 评论 -
linux 杀掉某用户下所有进程
两种方式,我们以kill用户user为例:1. pkill方式# pkill -u user2. killall方式# killall -u user原创 2019-11-12 14:58:53 · 676 阅读 · 0 评论 -
进程与线程的区别
要解释,进程和线程的区别,首先要了解,什么是线程,什么是进程?网上关于进程和线程的说法有很多,我们先看一下?1、什么是进程?什么是线程?#解释1:进程:是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,每一个进程都有一个自己的地址空间,至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。线程:是CPU调度和分派的基本...原创 2020-03-05 17:38:06 · 144 阅读 · 0 评论 -
【转】linux设备模型之kset/kobj/ktype分析
背 景Read the fucking source code!--By 鲁迅 A picture is worth a thousand words.--By 高尔基说明:Kernel版本:4.14 ARM64处理器,Contex-A53,双核 使用工具:Source Insight 3.5, Visio1. 概述今天来聊一下Linux设备模型的基石:kset/kobject/ktype。sysfs文件系统提供了一种用户与内核数据结构进行交互的方式,可以通过mount -..原创 2020-08-17 18:21:57 · 472 阅读 · 0 评论 -
sys/time.h 和 time.h的区别
time.h 是ISO C99 标准日期头文件。sys/time.h 是Linux系统的日期头文件。注: sys/time.h 通常会包含include "time.h"一、time.h编写的代码如果与平台无关的,则需要在代码里#include"time.h"但这样使用time_t等数据结构的话需要手动#define __need_time_t#defi...原创 2020-01-02 15:21:53 · 7943 阅读 · 1 评论 -
ubuntu下 rc.local的脚本不运行
ubuntu下想要开机启动如下脚本#!/bin/shsudo mount -t cifs //10.5.133.203/yangqj/liuyh /mnt/workspace -o user=yangqj,password=123456,rw,gid=1000,uid=1000sudo route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.5....原创 2016-04-03 18:07:47 · 10931 阅读 · 7 评论 -
ssh免密登录linux
1、在本地~/.ssh目录下生成密钥ssh-keygen -t rsa -C "server@aliyun.com" 一路回车运行结束以后, 默认在 ~/.ssh目录生成两个文件:id_rsa :私钥id_rsa.pub :公钥2、导入公钥到linux服务器复制id_rsa.pub文件到linux服务器下,然后复制id_rsa中的内容到authorized_keys...原创 2019-11-13 17:53:38 · 442 阅读 · 1 评论 -
window挂载linux共享目录
通过window远程访问linux的文件夹1、linux上,添加共享权限用户smbpasswd -a liuyuhai # 添加用户并设置密码systemctl restart smbd # 重启smb服务,各发行版有差异2、window上,挂载linux文件夹,我的电脑 -> 右键 -> 映射网络驱动器...原创 2018-10-15 18:26:02 · 5626 阅读 · 0 评论 -
解决 error while loading shared libraries: libfastdb.so.2
在使用fastdb的动态库时,遇到如下问题,其他项目依然可以参考error while loading shared libraries: libfastdb.so.2: cannot open shared object file: No such file or directory1、问题分析编译的时候,使用 g++ FastDb.cpp -I fastdb/inc -L f...原创 2018-08-29 11:04:50 · 1190 阅读 · 0 评论 -
ubuntu teminal如何显示更多行
ubuntu Terminal默认显示512行,有时候不够多,需要设置一下 Edit -> Profile Preferences -> Scrolling原创 2018-08-28 16:51:29 · 7528 阅读 · 0 评论 -
解决Ubuntu中使用windows文件名乱码问题
使ubuntu正常显示GB2312、GBK编码文件 ubuntu环境设置的字符集utf8,windows默认字符集是GBK,Ubuntu的默认字符集为utf-8,这使得在用telnet登录远程服务器或查看windows文件时出现乱码。需要将ubuntu环境设置为GBK或GB2312,或设置软件使其正确显示汉字。下面以GBK字符集为例进行说明:一、修改Ubuntu默认字符集为GBK1...原创 2016-07-28 17:41:55 · 1646 阅读 · 0 评论