Linux学习笔记
小菜鸡的蜕变之路
长路漫漫,若能坚持,未来可期,加油~
展开
-
Linux命令之scp使用总结
scp命令使用总结:(直接上干货)1、本地服务器->远程服务器①上传文件格式一:将本地文件上传至远程服务器(指定用户名)scp 本地文件 远程用户名@远程IP:远程目录例:scp test.c quants@10.0.53.90:/home/quants/tj格式二:将本地文件上传远程服务器并覆盖指定文件中的内容(指定用户名)scp 本地文件 远程用户名@远程IP:远程文件例:scp test.c quants@10.0.53.90:/ho...原创 2020-07-11 16:33:45 · 528 阅读 · 0 评论 -
CentOS中安装增强功能失败
在CentOS上,想要挂载文件,需要安装设备中的增强功能,但是我安装时失败了,经过一番折腾,发现使用yum更新一下本地软件,然后安装增强功能就成功了。具体命令:yumupdate之后,等待更新完成即可安装增强功能了。...原创 2020-06-25 17:47:44 · 1150 阅读 · 0 评论 -
Linux工具使用
Linux工具使用在Linux下从事C程序设计时,需要使用4种基本的工具,分别是编辑器、编译器、调试器、makefile。 编辑器用于源文件的编写,在当前的linux中存在很多的编辑器,有可视化工具,如KDE,也有经典的非可视化工具,如vi,vim。 编译器一般采用GCC,调试器采用GDB,而针对工程中数量众多的源文件的编译,一般采用make脚本,如果能够熟练应用这些工...原创 2019-08-07 09:53:37 · 271 阅读 · 0 评论 -
gcc的基本使用
GCC是Linux系统中最为著名得编译器,它是由Richard Stallman在1984年编写的。1、GCC基础 由于GCC支持多种语言,因此GCC能够支持多种文件后缀的编译 后缀名 意义 .c C源文件 .C/.cpp/.cc/.cxx C++源文件 ...原创 2019-08-07 15:39:30 · 326 阅读 · 0 评论 -
gdb的基本使用
GDB是GNU组织在Linux系统中发布的程序调试器,它功能强大,使用方便,已经成为Linux系统中C/C++程序调试的必备工具。1、GDB命令GDB是Linux系统上的一款强有力的调试工具,它能够帮助开发者观察程序运行时的内部结构和内存的使用状态。 一般说来,GDB能够完成4个方面的工作:调试程序:支持程序代码级调试,可以一行一行地执行程序代码 动态断点设置:可以动...原创 2019-08-07 15:45:43 · 237 阅读 · 0 评论 -
atoi()函数
atoi()函数是把字符串转化为数字。实例:#include<stdlib.h>#include<stdio.h>int main(){ char str[]="123"; int a; a=atoi(str); /*将字符串转化为int型的数字*/ printf("%d\n",a);}输出为:12...转载 2019-08-07 16:21:09 · 152 阅读 · 0 评论 -
*** missing separator. Stop.
学习编写Makefile时,写了如下Makefile:出现如下错误:在网上查了一下,原因是每个具体命令之前少了table,按了table就OK了。原创 2019-08-07 17:07:19 · 5571 阅读 · 2 评论 -
virtualbox创建共享文件夹和上传文件
共享文件夹用于Windows系统向Linux系统上传文件。1、安装增强功能首先,我们先安装增强功能,点击->设备->安装增强功能,然后耐心等待安装,直至出现可以close提示,表示安装成功。截图如下:2、在Windows系统上建立一个文件夹,用于共享文件然后设置共享文件夹,在Windows系统上某个磁盘中新建一个文件夹,我在D盘新建了一个文件夹Virtua...原创 2019-08-07 18:20:26 · 4680 阅读 · 1 评论 -
perror函数
perror头文件#include<stdio.h>#include<stdlib.h>注意: 不可以掉了#include<stdio.h>这个头文件,perror是包含在这个文件里的。perror表头文件完善版定义函数void perror(const char *s); perror ("open_port");...转载 2019-08-09 21:38:36 · 2020 阅读 · 0 评论 -
信号量(sem)学习笔记
信号量是一个特殊的整数值,主要用来控制多个进程对临界资源的互斥访问,进程根据信号量来判断是否有访问的资源,而信号和信号量是不同的概念,信号是一种处理异步事件的方法,而信号量是一种进程同步机制。信号量是一个计数器,可用于同步多进程对共享数据对象得访问,为了获得共享资源,进程需要执行以下操作:1、测试控制该资源的信号量2、若此信号量的值为正,则进程可以使用该资源,进程将信号量值减...原创 2019-08-11 08:51:58 · 1826 阅读 · 0 评论 -
消息队列(msg)学习笔记
消息队列 消息队列是将消息按队列的方式组织成的链表,每个消息都是其中的一个节点。 消息队列的运行方式与命名管道非常相似。欲与其他进程通信的进程只要将消息发送到消息队列中,目的进程就从消息队列中读取需要的消息。需要注意的是,消息队列的长度以及每个消息的大小都是有限制的。Linux系统提供的消息队列操作函数主要有以下几个:int msgget(key_t key,int m...原创 2019-08-11 15:13:19 · 2099 阅读 · 0 评论 -
写时复制
前言在读《Redis设计与实现》关于哈希表扩容的时候,发现这么一段话:执行BGSAVE命令或者BGREWRITEAOF命令的过程中,Redis需要创建当前服务器进程的子进程,而大多数操作系统都采用写时复制(copy-on-write)来优化子进程的使用效率,所以在子进程存在期间,服务器会提高负载因子的阈值,从而避免在子进程存在期间进行哈希表扩展操作,避免不必要的内存写入操作,最大限度地节...转载 2019-08-24 22:03:46 · 245 阅读 · 0 评论 -
strchr函数
strchr函数原型:char * strchr(char * str, int ch);功能就是找出在字符串str中第一次出项字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是 null)。...转载 2019-08-16 09:06:00 · 235 阅读 · 0 评论 -
socket编程学习
面向连接编程(TCP)面向连接的网络应用程序开发流程比较固定,需要开发者创建服务器与客户端两个应用程序,通过网络是想进程间的通讯。服务器端流程创建套接字(socket) 服务绑定(bind) 服务侦听(listen) 处理新到连接(accept) 数据收发(recv\send) 套接字关闭(close)客户端流程 客户端套接字创建(socket) 发起连接 (connec...原创 2019-08-12 18:03:38 · 314 阅读 · 0 评论 -
gdb调试
GDB调试启动程序准备调试GDB yourpram或者先输入GDB然后输入file yourpram然后使用run或者r命令开始程序的执行,也可以使用 run parameter将参数传递给该程序参数列表 命令 命令缩写 命令说明 list l 显示多行源代码...转载 2019-09-22 22:37:04 · 118 阅读 · 0 评论 -
如何查看tcp和udp连接
netstat命令的作用Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义从整体上看,netstat的输出结果可以分为两个部分:一个是ActiveInternet connections,称为有源TCP连接,...转载 2019-09-23 20:52:40 · 7895 阅读 · 0 评论 -
linux下如何实现高并发服务器
在做网络服务的时候tcp并发服务端程序的编写必不可少。tcp并发通常有几种固定的设计模式套路,他们各有优点,也各有应用之处。下面就简单的讨论下这几种模式的差异:单进程,单线程在accept之后,就开始在这一个连接连接上的数据收接收,收到之后处理,发送,不再接收新的连接,除非这个连接的处理结束。优点: 简单。缺点: 因为只为一个客户端服务,所以不存在并发的可能。应...转载 2019-10-08 09:28:00 · 648 阅读 · 0 评论 -
yum源配置
1、网络yum源配置RHEL7.2 配置网络yum 源配置[root@localhost~]#wget -O /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo[root@localhost ~]# sed -i 's/$releasever/7/g' /etc/yum.r...原创 2019-08-07 09:12:41 · 49243 阅读 · 1 评论 -
Linux下压缩与解压缩
zip格式zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。我们可以使用下列的命令压缩一个目录:# zip -r archive_name.zip directory_to_compress下面是如果解压一个zi...原创 2019-08-07 08:58:37 · 217 阅读 · 0 评论 -
Linux进程学习(一)
一、Linux 进程1、进程概念进程是一个动态的实体,是程序执行的一次过程。进程是操作系统资源分配的基本单位。区分进程和程序,进程是动态的,程序是静态的;进程是运行中的程序,程序是一些可执行的代码。Linux下可通过命令ps或pstree或ps -Af查看当前系统中的进程。如图所示:再认识几个ID:UID:user id = 用户ID PID:program id...原创 2019-08-09 09:15:36 · 254 阅读 · 0 评论 -
套接字、网络字节序、socket编程接口
原文:https://blog.csdn.net/qq_39290490/article/details/80981745套接字--IP地址+端口号1.IP地址----确认插入互联网中的某一台主机IP数据包头中有两个IP地址:源IP地址与目的IP地址,源MAC地址与目的MAC地址2.端口号=进程号,确定某台主机上的某一个进程3.套接字确定了互联网中某台主机上的某一个进...转载 2019-05-12 17:51:59 · 319 阅读 · 0 评论 -
tinyhttpd编译错误修改(开源小项目)
简介:tinyhttpd是一个相对简单的网络服务器。 虽然非常简单,但tinyhttpd具有线程并处理基本的CGI脚本! 这是一个教育工具,用于演示http背后的概念。源代码链接:https://sourceforge.net/projects/tinyhttpd/之前在google上找了很多相关的资料,在这里总结一下如何改错(不喜勿喷),话不多说,上干货~①修改MakeFile...原创 2019-05-26 23:01:52 · 886 阅读 · 0 评论 -
Socket的accept函数解析
转载自 tickTick http://ticktick.blog.51cto.com/823160/779866今天与同学争执一个话题:由于socket的accept函数在有客户端连接的时候产生了新的socket用于服务该客户端,那么,这个新的socket到底有没有占用一个新的端口?讨论完后,才发现,自己虽然熟悉socket的编程套路,但是却并不是那么清...转载 2019-05-27 21:21:00 · 386 阅读 · 0 评论 -
memset()函数及其作用
转自:https://blog.csdn.net/monk1992/article/details/826977611. memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组, c:是赋给buffer的值, count:是buff...转载 2019-05-27 21:55:16 · 430 阅读 · 0 评论 -
htons(), htonl(), ntohs(), ntohl()详解
将多字节整数类型的数据,从主机的字节顺序转化为网络字节顺序#include <netinet/in.h>uint32_t htonl(uint32_t hostlong);uint16_t htons(uint16_t hostshort);uint32_t ntohl(uint32_t netlong);uint16_t ntohs(uint16_t netshort...转载 2019-05-27 22:05:11 · 346 阅读 · 0 评论 -
Linux如何才能ping通外网(详细设置过程,基于Qracle VM VirtualBox)
首先,在虚拟机装好Linux系统后,打开虚拟机,点击“设置”。点击“网络”,网卡1设置成“网络地址转换NAT”。网卡2设置成“桥接网卡”,界面名称设置看你插网线还是连WIFI了,若连WIFI,就设置成“Qualcomm Atheros QCA9377 Wireless Network Adapter”若插的网线,界面设置得看你的本地是什么类型了,查看方法如下所述:右击...原创 2019-05-29 21:26:15 · 7059 阅读 · 0 评论 -
Linux /etc/vimrc 简洁配置
首先进入配置文件vim /etc/vimrc然后在末尾加上以下代码即可:syntax on " 自动语法高亮set number " 显示行号set autoindent " 自动对齐set smartindent " 智能对齐set cursorli...原创 2019-06-21 11:31:16 · 1805 阅读 · 0 评论 -
获取virtualbox COM对象失败
1、在开始菜单,运行里输入regedit,运行系统的注册表。2、找到选项HKEY_CLASSES_ROOT\CLSID\{00020420-0000-0000-C000-000000000046}InprocServer32 的值,如下图:3、将默认的oleaut32.dll改成C:\Windows\system32\oleaut32.dll,如图:4、再找...原创 2019-08-03 11:00:09 · 5889 阅读 · 6 评论 -
如何配置IP
首先,进入配置的目录cd /etc/sysconfig/network-scripts/我配置的是ifcfg-enp0s8,命令如下:vim ifcfg-enp0s8然后,进行相关设置;dhcp改为static 将ONBOOT中no改为yes 添加ip地址IPADDR="192.168.1.47" 添加NETWORK=192.168.1.1(这个对应Wi...原创 2019-08-08 09:47:34 · 1359 阅读 · 0 评论 -
putty连接本地虚拟机的Linux
1、首先,保证我们putty安装好。2、保证Linux上安装了sshd服务:sshd -v有版本信息,说明我们是安装好的。3、看sshd服务是否启动:systemctl status sshdactive说明sshd服务是正在运行的,若是dead,则启动服务:systemctl start sshd4、保证我们ip是设置好的,用ifconfig查看。https://...原创 2019-08-08 09:49:16 · 3361 阅读 · 0 评论 -
如何让vsftpd自启动
1、进入开机启动配置文件:vim /etc/rc.local2、在最后一行加上一行命令:/etc/rc.d/init.d/vsftpd start3、重启:reboot4、查看vsftpd运行状态:systemctl status vsftpd5、设置成功~...原创 2019-08-13 15:03:36 · 923 阅读 · 0 评论 -
socket编程学习之TCP模式
1、目的:根据TCP编程模式,编写一个可以进行通信的进程。2、编写文件主要包括:公共头文件:utili.h 客户端进程:cli.c 服务器进程:ser.c Makefile文件:Makefile3、各个文件详细代码如下:公共头文件:utili.h#include<string.h>#include<stdlib.h>#include<s...原创 2019-08-13 15:22:51 · 339 阅读 · 0 评论 -
socket编程学习之UDP模式
1、目的:根据UDP编程模式,编写一个可以进行通信的进程。2、编写文件主要包括:公共头文件:utili.h 客户端进程:cli.c 服务器进程:ser.c Makefile文件:Makefile3、各个文件详细代码如下:公共头文件:utili.h#include<string.h>#include<stdlib.h>#include<s...原创 2019-08-13 15:40:00 · 691 阅读 · 0 评论 -
linux常用命令
一 linux常用命令对齐:gg=GLinux常用命令分类:(1) 文件传输:ftp、tftp。(2) 备份解压: bunzip2、 bzip2、 compress、 gunzip、 gzip、 tar、 unzip、 zip、 zipinfo。(3) 文件管理:diff、file、find、ln、locate、mv、rm、touch、cat、chmod、cp。(4) 磁...原创 2019-08-06 18:45:33 · 205 阅读 · 0 评论 -
跟我一起写 Makefile(一)
跟我一起写 Makefile 陈...转载 2019-08-08 20:47:21 · 106 阅读 · 0 评论 -
makefile学习笔记
编写一个判断两个整型值大小的makefile:1、编写min.h,max.h头文件min.h:#pragma onceint Min(int a, int b); max.h:#pragma onceint Max(int a, int b);2、编写min.c,max.c,main.c源文件:min.c:#include"min.h"int M...原创 2019-08-08 21:29:33 · 554 阅读 · 0 评论 -
Oracle VM VirtualBox虚拟机调整屏幕大小的工具栏怎么恢复?
快捷键就是右边的Ctrl+F键切换到全屏模式,右边的Ctrl+L键切换到无缝模式,右边的Ctrl+C键切换到比例模式,菜单显示是按右边的Ctrl+Home键,holt键就是右Ctrl键。...原创 2019-04-23 21:26:07 · 6583 阅读 · 0 评论