Linux学习

Linux复习资料

Linux的考点基本围绕虚拟机和开发板上的操作
(以虚拟机ubuntu为示例)

Linux创始人是芬兰人Linus Torvalds

  1. 使用ifconfig和route命令设置网络地址
    使用ifconfig命令设置网卡的IP地址和掩码
    ifconfig eth0 192.168.43.52 netmask 255.255.255.0
    下面命令用于设置默认路由
    route add default gw 192.168.43.254

  2. 在ununtu中进入root管理员模式
    sudo su root

    管理员的符号是#,普通用户是$

  3. linux常用命令

命令用途说明
pwd显示用户当前完整的工作目录
su更改登录用户,默认为root(管理员)
cd进入桌面
cp将一个文件拷贝到另一个位置,原文件不变
ifconfig查看和设置本机IP地址和掩码
ps查看当前运行的所有进程
chmod修改文件或目录的权限
uname用于打印当前系统(内核版本号,硬件架构,主机名称和操作系统类型等信息)
uname-r查看内核版本号
  1. SSH协议连接到其他主机
    SSH协议是安全登录协议,对用户名和密码进行了加密,telnet也可以远程登录,但telnet采用明文传输用户名和密码,它们都使用的是TCP协议。

  2. GCC是一个以命令行形式操作的编译工具
    编译命令:gcc xxx.c -o xxx

    下表列出GCC工具的常用参数开关和作用

参数开关作用
o指定生成的输出文件
E仅执行编译预处理
S将C代码转换为汇编代码
wall显示警告信息
c仅执行编译操作,不进行连接操作
g为gdb调试工具工具产生符号信息,调试程序用
vgcc执行时执行的详细过程,gcc及其相关程序的版本号
x指定文件使用的编程语言,如gcc -x c hello.pig
lpthread支持线程代码,如gcc -o pt pthread.c -lpthread
  1. *GDB是UNIX和Linux平台下字符界面的调试工具,可以用它在linux上调试C和C++程序
    它提供了以下的功能
    1 在程序中设置断点,当程序运行到断点处暂停
    2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显示出来
    3 单步执行
    4 运行时修改变量的值
    5 跟踪路径
    6 线程切换
    要使用GDB对源代码进行调试,在使用GCC工具编译时需加上-g开关。

  2. make编译
    ①标签(Label)(示例)
    cacu:add_int.o add_float.o main.o
    ②#编译命令 gcc(add/目录)
    gcc -o cacu add/add_int.o add/add_float.o main.o
    ③#生成add_int.o的规则,[目标:依赖]
    add_int.o:add/add_int.c add/add.h

8.抓包工具wireshark
在这里插入图片描述
在上面的抓包截图中,Protocol指示该层协议的名称为TCP,Source Port指示源端口值为80,Destination Port指示目标端口值为36240,source源IP地址为63.245.213.196,destination目标IP地址为192.168.43.196。

9.网络协议
在这里插入图片描述
网络协议分层与对应工作的硬件设备。
物理层:网卡、网线、中继器、集线器
链路层:网桥
链路层:交换机
网络层:路由器

10.Linux平台TCP实现多连接的四种典型方式包括:

①多进程方式;②多线程方式;③select方式;④epoll方式

Linux平台支持并发TCP连接的服务器模式有多进程,多线程,基本select的I/O复用,epoll模式,其中epoll模式是性能最好的。

UDP连接:常用的无连接的网络协议,SNMP网络管理的协议就是基于UDP的应用层协议。
在这里插入图片描述udp数据发送和接收

TCP客户端主要使用的方法有socket,connect,send,receive,shutdown,close。
TCP服务端主要使用的方法有socket,bind,listen,accept,send,receive,shutdown,close。

TCP和UDP是传输层最典型的两种协议,它们的区别可概述如下:
a.TCP与UDP都是传输层的协议。
b.TCP面向字节流的传输层协议,UDP面向数据报的传输层协议。
c.TCP是可靠的传输,UDP会丢包,是不可靠的传输。
d.TCP常用于文件传输,UDP协议常用于语音、视频等数据的传输。

11.Linux中Socket函数说明与使用

函数名说明
socket创建一个socket文件资源[TCP、UDP和RawSock],用于通讯[UDP和TCP 意义不一样]。
bind绑定本机IP地址和端口。[UDP和TCP使用意义不一样]
listen开始执行监听。[仅限TCP]
accept[仅限TCP]服务端收到客户端连接请求后,创建一个新的用于数据通讯的socket文件资源,不同于监听的socket资源,无连接请求则该方法阻塞。
connect客户端向服务端主动发起连接。(实现三次握手)
send向目标主机发送字节序列[限TCP]
recv接收网络发来的字节序列[限TCP],函数返回值是实际收到的字节个数,如果对方使用了shutdown方法,则该方法返回值为0,对方无动作,则该方法阻塞。
recvfrom接收网络发来的字节序列[限UDP]
sendto向目标主机发送字节序列**[限UDP]**
shutdown断开socket的TCP连接[限TCP,但并没有清

close方法实现关闭文件资源

12.Linux中的Qt开发
信号与槽的连接是通过 QObject 的 connect() 成员函数来实现的。

Qt程序在PC平台的编译过程如下:
1.qmake -project 生成项目文件;
2.qmake 生成Makefile文件;
3.make 根据Makefile文件对项目执行编译,编译工具是g++;

(在arm上)在配置好交叉编译环境的ubuntu12系统中,假设有一个名为hello.cpp的QT程序,使其在smart210开发板上运行的编译命令和操作步骤。
1.qmake-arm –project 生成hello.pro文件
2.qmake-arm 生成Makefile文件
3.make编译生成或执行文件hello
4.使用rz命令通过串口线将程序拷贝到smart210开发板上
5.chmod a+x hello 给hello程序添加运行属生
6./hello –qws命令运行程序。

13.Linux中的线程创建

1.线程创建函数pthread_create
2.等待另一线程结束函数pthread_join
3.线程分离函数pthread_detach
4.线程自我结束函数pthread_exit

在虚拟机上创建线程程序时要使用-lpthread命令,如:gcc -o hello hello.c -lpthread

14.无名信号量
linux中使用无名(匿名)信号量的方法如下:

方法名称方法说明
sem_init创建信号量变量,value是信号量的初值
sem_post信号量值增加1,OS激活其它等待该信号量的线程
sem_wait为0时将调用该方法的线程被OS阻塞,大于0信号量值减少1,线程继续
sem_destroy销毁信号量

题外话
以上就是学习Linux中比较多的而且也运用多的知识点了,掌握了他们,去编写程序读懂程序就没那么难了,像程序分析这些就只能靠个人理解了,也可以多去问问老师,网上也有很多学习文档,会加深自己的理解与掌握。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值