Linux知识点笔记
Linux启动脚本
rcS文件,rcS文件位于系统根目录下的“/etc/init.d”下。
rcS文件本质是一个bash shell脚本,因此遵循bash脚本的语法规则。
[1] 文件首行必须为“#! /bin/sh”。
[2] 注释一行用“#”。
[3] 基本的赋值语句,如打印字符串。
[4] 打印特殊符号需加“\”。
[5] 逻辑语句、循环语句等。
启动脚本实现的功能
启动脚本可以做很多事情,只要我们需要初始化时配置或者执行的功能,几乎都满足,总结几点下来及常用的有如下几种。
[1] 启动某个进程程序,最常用的,如启动串口收发进程。
[2] 加载驱动模块(.ko文件);如驱动编译成模块时,可以在这里增加加载(insmod/modprobe)驱动模块命令。
[3] 启动其他模块启动脚本,如网络服务。
[4] 配置功能,该项功能比较实用,实现期望系统起来后进行某些配置,如:配置环境变量、创建临时文件(夹)、挂在文件到指定文件夹、设置默认IP参数,以及配置系统主机名称等基础配置。
[5] 其他,如增加打印功能,方便在调试终端(串口)查看初始化过程,或者两者执行间进行延时(sleep)等。
/proc/mtd 各个参数含义 - -linux命令 # cat /proc/mtd
dev: size erasesize name
mtd0: 00100000 00020000 "uboot"
mtd1: 00800000 00020000 "kernel"
mtd2: 00080000 00020000 "oeminfo"
mtd3: 0280000 00020000 "rootfs"
mtd4: 04e80000 00020000 "data"
#
size是本mtd分区的最大字节数空间 ,erasesize是本分区的最小擦除字节数空间(块大小,linux的flash是以块为擦除单位的)
Linux查看磁盘使用情况
# df -h
Filesystem Size Used Available Use% Mounted on
ubi0:rootfs 33.1M 25.2M 8.0M 76% /
devtmpfs 28.5M 0 28.5M 0% /dev
tmpfs 28.7M 0 28.7M 0% /tmp
tmpfs 28.7M 0 28.7M 0% /dev/shm
#
#
# df
Filesystem Size Used Available Use% Mounted on
ubi0:rootfs 33.1M 25.2M 8.0M 76% /
devtmpfs 28.5M 0 28.5M 0% /dev
tmpfs 28.7M 0 28.7M 0% /tmp
tmpfs 28.7M 0 28.7M 0% /dev/shm
#
计算文件夹大小:
#
# du -sh /bin
852.0K /bin
#
#
还可以这样使用
查看根目录/ 下各文件夹的使用情况:
# pwd
/
#
# du -sh ./*
4.0K ./DirUsrPassWord
0 ./FVDB
20.0K ./Hi_Drv_Test
12.0K ./Info20200404
852.0K ./bin
0 ./dev
3.0M ./etc
1.0M ./firmware
8.8M ./lib
0 ./lib32
8.0K ./libexec
0 ./linuxrc
0 ./media
0 ./mnt
0 ./opt
0 ./proc
8.0K ./root
0 ./run
1.8M ./sbin
4.0K ./showUSRdata.sh
0 ./sound
4.0K ./start.sh
0 ./sys
624.0K ./test_bin
0 ./tmp
12.0K ./touch_app
28.8M ./usr
0 ./var
#
df -h 和 du -sh 使用的比较多,一个统计整体磁盘情况,一个看单独指定的目录点使用情况 。
Tmpfs是什么
tmpfs是Linux/Unix系统上的一种基于内存的虚拟内存文件系统,而不是基于块设备,创建时不需要使用mkfs等初始化。
tmpfs可以使用您的内存或swap分区来存储文件。由此可见,tmpfs主要存储 暂存的文件。
它最大的特点就是它的存储空间在VM(virtual memory),VM是由linux内核里面的vm子系统管理的。
有时候,当应用程序使用到Tmpfs时,而在部署的时候如果没有对应用程序占用的内存做足够的评估时, 就有可能把Tmpfs用满,
这个时候就需要调整Tmpfs的大小了,
当然,调整的大小不能大于你机器内存大小, 否则,你只能换机器了,又或是优化你的应用程序。
当要卸载tmpfs文件系统时,意味着你的应用程序使用的共享内存将会被删除, 如果数据较重要,在umount前记得备份。
devtmpfs概述
devtmpfs可以理解为内核创建设备节点的好助手。
devtmpfs 的功用是在 Linux 核心 启动早期建立一个初步的 /dev,
主要是创建设备节点,让一般启动程序不用等待 udev,缩短 GNU/Linux 的开机时间。 2009年devtmpfs出现之前,
/dev/下面的设备节点应该都是udev-daemon收到内核的事件后用mknod程序或者直接调mknod()系统调用创建出来的;
现在基本上不走udev了,几乎所有的设备文件(比如/dev/sda1)都是内核直接创建的。
Linux网络 发送接收函数:
send/sendto函数,只是把应用层的数据拷贝到内核发送缓冲区,并不保证数据一定会被发送到对端,真正执行发送及什么时候发送是由系统(协议栈)决定的,
所以send/sendto函数返回成功,只能说明拷贝成功了,如果在还未发送之前网络断开,则发送失败。 recv/recvform函数,,将内核接收缓冲区的数据拷贝到应用层的buffer中,真正执行接收数据也是由系统层决定的。 一、send/sendto操作 @在阻塞模式下send操作将会等待所有数据均被拷贝到发送缓冲区后才会返回: 如果发送缓冲区可用大小为0或比要发送的数据长度要小,则会阻塞,直到发送缓冲区里的数据被系统发送后,可用缓冲区大小比要发送的数据长度大时,send返回成功,否则一直阻塞等待。 @在阻塞模式下sendto操作不会被阻塞: UDP没有真正意义上的发送缓冲区,它所做的只是把应用层的缓冲区数据拷贝到下层的协议栈,在此过程中加UDP头,IP头,所以不存在阻塞。 @在非阻塞模式下send操作会立即返回: 如果发送缓冲区可用大小为0,则会立即返回EWOULDBLOCK错误,表示无法拷贝任何数据到发送缓冲区;
如果发送缓冲区可用大小不为0,但小于发送数据的长度,则拷贝可用大小的数据到缓冲区; @在非阻塞模式下sendto操作也不会阻塞: 二、recv/recvfrom操作 1.在阻塞模式下,recv/recvfrom会一直阻塞到接收缓冲区里有一个字节或一个完整的UDP数据报为止,然后再返回
recv的原型:int recv(SOCKET sd, char *buffer, int len, int flag),
注意到系统并不会等待buffer被填满了再返回,而是一旦有数据被接收到,就立刻返回,因此不要期望实际一次收到的数据长度就恰好等于len。
2.在非阻塞模式下,recv/recvfrom会立即返回
如果接收缓冲区,有至少一个字节或UDP数据报,则会返回接收到的数据大小,如果没有,则返回错误EWOULDBLOCK。
.
Linux知识点笔记的更多相关文章
- [新手必备]Python 基础入门必学知识点笔记
Python 作为近几年越来越流行的语言,吸引了大量的学员开始学习,为了方便新手小白在学习过程中,更加快捷方便的查漏补缺.根据网上各种乱七八糟的资料以及实验楼的 Python 基础内容整理了一份极度适 ...
- Linux内核笔记--内存管理之用户态进程内存分配
内核版本:linux-2.6.11 Linux在加载一个可执行程序的时候做了种种复杂的工作,内存分配是其中非常重要的一环,作为一个linux程序员必然会想要知道这个过程到底是怎么样的,内核源码会告诉你 ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- linux学习笔记2-linux的常用命令
第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...
- Linux学习笔记(一)2015.4.13
研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...
- 跟着鸟哥学Linux系列笔记3-第11章BASH学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...
- 跟着鸟哥学Linux系列笔记2-第10章VIM学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...
- 跟着鸟哥学Linux系列笔记0-如何解决问题
跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1. 在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...
- 跟着鸟哥学Linux系列笔记1
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...
随机推荐
- python 四位玫瑰数 + 100以内素数求和
四位玫瑰数 描述 ...
- 总结java创建文件夹的4种方法及其优缺点-JAVA IO基础总结第三篇
本文是Java IO总结系列篇的第3篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...
- 【趣味设计模式系列】之【代理模式4--ASM框架解析】
1. 简介 ASM是assemble英文的简称,中文名为汇编,官方地址https://asm.ow2.io/,下面是官方的一段英文简介: ASM is an all purpose Java byte ...
- Spring Validation-用注解代替代码参数校验
Spring Validation 概念 在原先的编码中,我们如果要验证前端传递的参数,一般是在接受到传递过来的参数后,手动在代码中做 if-else 判断,这种编码方式会带来大量冗余代码,十分的不优 ...
- 51,N皇后
from typing import List# 这道题还是比较经典的深搜递归调用的问题.# 只需要保证二维列表的每一行,每一列,每一对角线只有一个皇后就好了.class Solution: def ...
- 腾讯大牛半年心血高级编程PDF,帮你轻松构建企业级Web应用
毫无疑问,Java 是这些年来最流行的编程语言之一.它无处不在一计算机. 手机.网站以及各种嵌入式设备中都存在着大量的Java 应用程序,而其中应用最为广泛的应该就是Java EE Web应用程序(以 ...
- [] !== [] is true
这周工作看见一个小伙伴给我私信发了这样的一个问题,我深剖了一下,希望大家能早点脱掉这个坑. Question: 如果定义了一个空数组,在开发过程中经常会做这样的一个判断,就是这个数组里发生变化不再是空 ...
- python学习第八天
解析库之bs4的基本使用方法 ''' pip install beautifulsoup4#安装bs4 pip install lxml#安装lxml ''' html_doc = "&qu ...
- 写给.NET开发者的Python教程(三):运算符、条件判断和循环语句
本节会介绍Python中运算符的用法,以及条件判断和循环语句的使用方法. 运算符 运算符包括算术运算符.赋值运算符.比较运算符.逻辑运算符等内容,大部分用法和C#基本一致,下面我们来看一下: 算数运算 ...
- Activiti7 网关(并行网关)
什么是并行网关? 并行网关允许将流程分成多条分支,也可以将多条分支合并到一起,并行网关是基于进入和外出顺序流的 fork分支: 并行后的所有外出顺序流,为每个顺序流都创建一个并发分支 jion汇聚: ...