Linux
文章平均质量分 58
YAIMZA
这个作者很懒,什么都没留下…
展开
-
adb常用命令
如果是USB连接,直接会连接ADB,如果是想通过网络连接(有线或者无线),则需要在同一个局域网,通过IP连接。上面192.168.1.61替换成想要连接设备的IP即可。关于如何解决screenrecord命令无法使用的文章?前提是手机已和电脑通过数据线进行连接,并且手机已打开开发者模式。此处无图,要知道具体的软件的包名及入口才可以打开。可以通过下面命令查看是否连接成功。原创 2023-05-30 19:20:42 · 698 阅读 · 0 评论 -
npm install 报错 Error: EACCES: permission denied解决
问题当以root用户执行:npm install @sentry/cli -g时,报错:npm ERR! Error: EACCES: permission denied, mkdir '/root/.npm/sentry-cli'原因参考:NPM官方文档解释npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有任何权限。这样的话如果脚本里有一些需要权限的操作,比如写文件(尤其是写/root/原创 2022-05-21 15:49:18 · 3109 阅读 · 2 评论 -
简单的TCP网络程序
TCP服务器和客户端实现需要的接口:下面介绍的接口都在这个头文件中:#include <sys/socket.h>#include <sys/types.h&a原创 2018-06-19 19:55:15 · 4651 阅读 · 2 评论 -
IO多路转接—poll,并且实现poll版本的TCP服务器
poll 实现 poll版本的TCP服务器: Makefile :.PHONY:poll_server cleanpoll_server:poll_server.c gcc -o $@ $^clean: rm -rf poll_server poll_server.c :#include <stdio.h>#include &lt...原创 2018-07-08 21:03:48 · 283 阅读 · 0 评论 -
TCP协议和UDP协议的区别及其应用
下面是TCP和UDP的简单程序: 简单的TCP网络程序 https://blog.csdn.net/qq_37941471/article/details/80738319 简单的UDP网络程序 https://blog.csdn.net/qq_37941471/article/details/80726398 接着我们通过这两个协议来更直接的理解一下TCP协议和UDP协议: 这两个协议...原创 2018-07-02 19:34:45 · 15310 阅读 · 2 评论 -
IO多路转接—epoll,并且实现epoll版本的http服务器
下面是关于高级IO我总结的一篇文章: https://blog.csdn.net/qq_37941471/article/details/80952057 可以了解一下 五种IO模型 以及 它们之间的关系; 当然还有IO多路转接的其他实现方式:poll epoll 以及三者之间的对比epoll1. epoll的目的 : 1. 按照man手册来说:为了处理大批量句...原创 2018-07-10 00:15:57 · 1628 阅读 · 0 评论 -
Shell脚本基础—编写脚本会遇到的各种问题
首先我们先理解一下 Shell bash Shell脚本的概念:1. Shell & bash bash其实就是Shell的一种2. Shell & Shell脚本 1. 两者是不同的概念;Shell是命令行解释器 2. Shell脚本(shell script),是一种为Shell编写的脚本程序 3. 在业界,所说的Shell就是Shell...原创 2018-07-21 15:54:35 · 3268 阅读 · 0 评论 -
高级IO
本节的重点:1. 理解五种IO模型,重点是非阻塞IO以及多路转接IO2. 区分阻塞IO和非阻塞IO的区别;3. 区分同步IO和异步IO的区别4. 掌握select编程模型,能够实现select版本的TCP服务器5. 掌握poll编程模型,能够实现poll版本的TCP服务器6. 掌握epoll编程模型,能够实现epoll版本的TCP服务器7. 理解epoll的LT模式和ET模式...原创 2018-07-07 15:50:36 · 475 阅读 · 0 评论 -
IO多路转接—select,并且实现select版本的TCP服务器
下面是关于高级IO我总结的一篇文章: https://blog.csdn.net/qq_37941471/article/details/80952057 可以了解一下 五种IO模型 以及 它们之间的关系具体的代码实现:Makefile : .PHONY:select_server cleanselect_server:select_server.c ...原创 2018-07-07 20:45:55 · 485 阅读 · 1 评论 -
Shell脚本的语法
本节重点:1. 掌握Shell基本语法 2. 掌握条件判断的所有方法 3. 掌握循环控制的所有方法(for/while/do while/ until 等) 4. 掌握Shell函数 5. 掌握常见位置参数和特殊变量 6. 重新了解Shell的调试方法条件测试 测试命令: Shell脚本中的测试是用命令完成的。 而命令是是通过程序(进程)执行...原创 2018-07-29 13:59:50 · 329 阅读 · 0 评论 -
TCP/IP协议模型
下面先通过我的另外一篇文章了解一下 TCP/IP协议模型 和 OSI参考模型 的对比: https://blog.csdn.net/qq_37941471/article/details/80459772接下来我来从顶向下的介绍一下TCP/IP协议模型的四层:应用层:1. 功能: 这一层为用户的应用程序提供网络服务的。包括:文件传输,电子邮件,远程登录等 而怎么提...原创 2018-07-15 18:57:24 · 2735 阅读 · 0 评论 -
Linux常用的命令以及使用方法
下面有一些其他重要的命令以及详细的解释:Linux中的一些重要的目录及其命令 https://blog.csdn.net/qq_37941471/article/details/78637286 1. 显示当前日期的命令:date 2. 显示日历的命令:cal 1. 显示当月的日历:cal 2. 显示某一年的日历:cal 2018(年) ...原创 2018-07-26 18:28:48 · 1647 阅读 · 0 评论 -
vim的可视化模式—实现多行注释,多行选中,多行取消注释
首先我们应该清楚一个问题:vim一共有几种模式? 12种 常用的三种模式:下面这篇文章具体介绍了这三种模式:而我们平常在运用vim的时候,也会经常会用一些快捷的方式,下面我来介绍一下常用的两个模式:分屏模式和可视化模式可视化模式 :如何可视化? 在命令模式下,按ctrl+V,则进入可视化而下面我来介绍一下我们经常会用到的: 1. 多行...原创 2018-07-28 00:09:05 · 16364 阅读 · 0 评论 -
程序的编译和链接过程
下面是一个进度条的代码:#include <stdio.h>#include <unistd.h>#include <string.h>int main(void){ int i = 0; char buf[102]; memset(buf,0,sizeof(buf)); ...原创 2018-08-07 09:59:54 · 270 阅读 · 0 评论 -
一个完整的gdb调试过程以及一些常用的命令
1. 启动调试gcc -g test.c // 编译文件,生成可执行程序,并且给文件加上调试信息gdb a.out // 开始启动调试 2. 显示当前的代码:l 另外:l 函数名 // 显示这个函数的代码(10行)如果想继续查看,继续输入该命令3. 在某一行打断点:b 行号4. 开始运行程序:r( run )5. 逐步执行:s( s...原创 2018-08-07 10:39:35 · 47396 阅读 · 7 评论 -
Linux—虚拟机下如何查看系统是多少位的?32 or 64
方法一:uname -a显示结果是x86_64的是64位的,如果没有就是32位的下面这个是32位的: 下面这个是64位的: 方法二:getconf LONG_BIT下面这个是32位的: 下面这个是64位的: ...原创 2018-08-07 18:27:46 · 15233 阅读 · 1 评论 -
四次挥手—服务器先关闭,客户端不关闭,继续发送数据,会出现什么情况?
四次挥手—服务器先关闭,客户端不关闭,继续发送数据,会出现什么情况?触发四次挥手机制:服务器:发出FIN,客户端回复ACK,进入TIME_WAIT状态客户端:没有close(),处于close_wait()状态, 接着向服务器继续发送数据,会出现什么情况?客户端:因为对方关闭(相当于管道中对方的读端关闭写端写满缓冲区就会触发SIGPIPE信号,操作系统会强...原创 2018-08-25 20:24:10 · 5534 阅读 · 0 评论 -
简单的UDP网络程序
UDP服务器和客户端实现需要的接口:下面介绍的接口都在这个头文件中:#include &amp;amp;amp;amp;lt;sys/socket.h&amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;lt;sys/types.h&amp;amp;amp;amp;gt;1. 创建套接字 ( socket() ) int socket(int domain, int typ原创 2018-06-18 20:47:25 · 4340 阅读 · 2 评论 -
虚拟机下桥接模式的配置
下面是桥接模式的设置步骤:1. 打开虚拟机,打开虚拟机(M)中的设置 :2. 选择网络适配器,设置成下面图片中的效果 :3. windows下打开 命令提示符(管理员),或者在运行中 输入 cmd,然后输入ipconfig /all,之所以在后面加上/all选项是为了查看网卡的描述,找到下图中的内容:方法一:方法二:记住主机的三个重要项,下面...原创 2018-06-10 11:52:48 · 55969 阅读 · 7 评论 -
Linux中的一些重要的目录及其命令
了解以下Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作原创 2017-11-26 15:10:15 · 432 阅读 · 0 评论 -
将linux终端英文版改成中文——CentOs6.5
方法: 在root用户下:vim /etc/sysconfig/i18n 进去之后改: LANG=”zh_CN.UTF-8”原创 2018-04-02 21:12:01 · 6376 阅读 · 0 评论 -
Linux终端修改背景颜色的方法
方法:原创 2018-04-02 21:29:36 · 34585 阅读 · 1 评论 -
make/Makefile的用法
make/Makefile:1. make make是一条命令 2. makefile Makefile 是一个文件,两个搭配起来使用,完成项目自动化处理 3. make/Makefile的作用: 1.一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,而Makefile定义了一系列的规则来制定。 哪些文件需...原创 2018-04-02 23:07:26 · 1760 阅读 · 0 评论 -
用Makefile实现进度条
缓冲区: 分为三种:空缓冲,行缓冲,全缓冲。 1.空缓冲: 没有缓冲,也就是信息在输入输出的时候,立马输入或输出。(eg:标准错误流stderr)2.行缓冲: 当输入输出的时候,遇到换行才执行I/O操作。(eg:键盘的操作)3.全缓冲: 当输入输出写满缓冲区才执行I/O操作。(eg:磁盘的读写)几种情况及其现象:1.#include &lt;stdio.h&...原创 2018-04-05 17:04:33 · 637 阅读 · 0 评论 -
Linux基础IO
1. 练习open/read/write/close等文件相关系统调用接口,纵向对比fd与FILE结构体 2. 对之前编写的自主shell进行修改,使其支持输入/输出/追加重定向 3. 编写简单的add/sub/mul/div函数,并打包成动/静态库,并分别使用。 1. 练习open/read/write/close等文件相关系统调用接口,纵向对比fd与FILE结构体 ...原创 2018-04-05 23:27:26 · 243 阅读 · 0 评论 -
进程基础内容
1.进程和程序的区别 2. 调研进程的调度算法. 3. 调研task_struct结构体, 理解结构体中的各个字段的含义. 4. 使用代码模拟实现僵尸进程, 孤儿进程的场景. 进程和程序的区别: 程序:完成特定任务的一系列指令集合。 进程:(每个进程都有自己的状态和独立的地址空间。)从用户角度看: 进程是程序的一次动态执行过程。分时系...原创 2018-04-06 23:20:34 · 373 阅读 · 0 评论 -
线程池
线程池: 当需要大量的并且是相对短暂的线程,我们需要创建线程池。 计算密集型: 线程池中的线程个数应该等于(=) CPU。 IO密集型: 线程池中的线程个数大于(&gt;)CPU。 目的:能够动态的增加线程池中的线程个数; 动态的销毁线程池中的线程. 本质:是一个生产者消费者模型,来了任务放到任务队列,线程池中的线程从任务队列中拿任务,然后进行处理。...原创 2018-05-12 23:50:31 · 194 阅读 · 0 评论 -
Linux网络基础
网络发展 1. 独立模式:计算机之间相互独立。 2. 网络互联模式:多台计算机通过一系列网络设备互相连接起来,实现数据分享。(其中家里上网的方式:ADSL(是最容易实现的宽带技术,因为它建筑在电话线的基础上)) 1. ISP (Internet Service Provider):互联网提供服务商。 2. 因特网 (Internet): 全国最大的互联网...原创 2018-05-26 10:40:29 · 728 阅读 · 0 评论 -
Linux进程概念
1. 了解冯.诺依曼体系结构 2. 了解操作系统,并且知道操作系统如何进行管理? 3. 进程相关概念,进程和程序的区别,父进程和子进程 3. 进程的状态及其如何修改进程的状态 冯.诺依曼体系结构我们常见的计算机:笔记本,台式计算机。而不常见的如服务器,大部分都遵循冯诺依曼体系#### 组成: 7. 输入单元:包括键盘,鼠标,扫描仪,写板等 8. 输出单元...原创 2018-06-12 17:21:20 · 284 阅读 · 0 评论 -
实现一个服务器版的计算器
服务器版的加法器 客户端 :我们需要把要计算的两个加数发过去 服务器端 :进行计算方案 : 方案一:1. 客户端发送一个例如“1+1”的字符串2. 这个字符串中有两个操作数,都是整型3. 两个数字之间有一个字符是运算符, 运算符只能是 + 4. 数字和运算符之间没有空格........ 方案二:1. 定义结构体来表示我们需要发送的信息...原创 2018-06-23 23:46:53 · 1556 阅读 · 2 评论 -
Linux实现一个简单的HTTP服务器
代码实现 : Makefile :.PHONY:all cleanall:http_serverhttp_server:http_server.c ...原创 2018-06-24 10:51:09 · 8535 阅读 · 3 评论 -
网络编程套接字
网络编程套接字本节重点 认识IP地址,端口号,TCP协议和UDP协议的区别,网络字节序等网络编程的基本概念 学习socket api的基本用法 能够实现一个简单的UDP客户端/服务器 基本概念 1. 认识IP地址 IP地址是在IP协议中,用来标识网络中的不同主机的地址 IP协议有两个版本,IPv4 和 IPv6 ...原创 2018-06-09 22:59:58 · 334 阅读 · 0 评论 -
简单的vim配置
配置文件的位置:root用户下:在目录/etc/下面,有一个名为vimrc的文件夹,这是系统中公共的vim配置文件,对所有的用户有效(即在这里配置之后,其他用户就不用配置了,相同的效果。)其方法是:vim /etc/vimrc(在/目录下)打开文件,在里面添加粉红色方框中的部分:set numberset tabstopset nobackupset c...原创 2017-12-11 18:43:11 · 319 阅读 · 0 评论