文章目录
一、LINUX介绍
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
二、环境搭建
虚拟机(学习时)
- VMware安装
- VittualBox
- Ubuntu安装
真机(公司的研发服务器)
三、如何在LINUX下做开发
1.LINUX 中—vi的使用
vi a.c // 写代码
vi firstCode.c //vi 启动 文件名firstCode.c
gcc firstCode.c -o firstProgram //编译文件 -o firstProgram //生成first Progame 成绿色的生产文件名
. / firstProgram //运行文件程序
模式:命令行模式(默认此模式回到命令行模式:按ESC键)
退出vi保存代码 (按:) wq(w表示保存 q表示退出)
输入模式:(按i进入,看到insert就能编辑代码)
ls //列出当前文件夹下有哪些文件
gcc //编译工具
如:gcc firstCode.c -o firstProgram
firstCode.c 是你要编译的c文件名字 firstProgram 是生成的程序的名字
./程序名字 //运行程序 如 ./ firstProgram 运行程序
总结:
四、LINUX常用初级指令介绍和使用
tab键 输入一些字符, 自动补全
pwd //显示当前你所在路径
ls //列出当前文件夹下有哪些文件
ls-a //显示所有文件,包含隐藏文件和文件夹
mkdir //建立文件夹
mkdir new //建立文件夹 文件夹名称为 new
cd //进入文件夹
cd new //进入new文件夹
cd… //退回上层文件夹
cd //回到工作目录
mv //剪切移动
mv *c new //*表示通配符 移动到new
mv //重命名
mv a.c b.c //表示把a.c 变成b.c
cp //拷贝指令
cp b.c test.c //表示把b.c 拷贝到test.c里
ifconflg //检查当前网卡状态 ip地址
man +数字+ 函数名 //在linux下找函数手册
set nu //出现行数
五、Linux虚拟机和windows间的文件传输方式
LINUX和WINDOWS文件共享
1. ftp:
- filezilla 工作 :
- git
- 马云
- svn
- totalcommand
- cuteftp
2.samba
3.安装完VMware Tool :
- 拖拽
- 共享文件夹
六、VMware虚拟接网络连接的三种方式
LINUX虚拟机网络配置:
bridged(桥接模式)
在物理交换机上进行window真机,虚拟机1,虚拟机2,虚拟机3,
特点:每台都能上网,4台可以相互通信,3虚拟机独立DNS 上网
NAT(网络地址转换模式)
是在物理交换机有时又虚拟了一台交换机,在虚拟的交换机上进行vmware虚拟机1,虚拟机2,虚拟机3。
特点:每一台配置好也都可以上网,但是IP地址是假的(单向).
Host-Only (仅主机模式)
特点:只能访问局域网,不能访问外网;
七、Linux线程概念引入及编程实现
首先说明一下,在Linux编写多线程程序需要包含头文件pthread.h。也就是说你在任何采用多线程设计的程序中都会看到类似这样的代码:
#include <pthread.h>
当然,进包含一个头文件是不能搞定线程的,还需要连接libpthread.so这个库,因此在程序连接阶段应该有类似这样的指令:gcc program.o -o program -lpthread
在Linux下创建的线程的API接口是pthread_create(),它的完整定义是:
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*) void *arg);
pthread_create()接口的第一个参数是一个返回参数。当一个新的线程调用成功之后,就会通过这个参数将线程的句柄返回给调用者,以便对这个线程进行管理。
pthread_create()接口的第二个参数用于设置线程的属性。这个参数是可选的,当不需要修改线程的默认属性时,给它传递NULL就行。具体线程有那些属性。
创建线程函数(示例)
#include<stdio.h>
#include <pthread.h>
void *func1()
{
while(1){
printf("this is func1:\n");
sleep(1);
}
}
void func2()
{
while(1){
printf("this is func2:\n");
sleep(1);
}
}
int main()
{
pthread_t th1;
pthread_create( &th1, NULL, func1, NULL );
func2();
}
将这段代码保存为thread.c文件,可以执行下面的命令来生成可执行文件:
gcc thread.c -lpthread -o thread
具体线程学习来看 :Linux基础 ——“线程” 进程线程谁才是最厉害的