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知识点笔记的更多相关文章

  1. [新手必备]Python 基础入门必学知识点笔记

    Python 作为近几年越来越流行的语言,吸引了大量的学员开始学习,为了方便新手小白在学习过程中,更加快捷方便的查漏补缺.根据网上各种乱七八糟的资料以及实验楼的 Python 基础内容整理了一份极度适 ...

  2. Linux内核笔记--内存管理之用户态进程内存分配

    内核版本:linux-2.6.11 Linux在加载一个可执行程序的时候做了种种复杂的工作,内存分配是其中非常重要的一环,作为一个linux程序员必然会想要知道这个过程到底是怎么样的,内核源码会告诉你 ...

  3. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  4. linux学习笔记2-linux的常用命令

    第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...

  5. Linux学习笔记(一)2015.4.13

    研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...

  6. 跟着鸟哥学Linux系列笔记3-第11章BASH学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...

  7. 跟着鸟哥学Linux系列笔记2-第10章VIM学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...

  8. 跟着鸟哥学Linux系列笔记0-如何解决问题

    跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1.  在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...

  9. 跟着鸟哥学Linux系列笔记1

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...

随机推荐

  1. TCP/IP网络编程之socket交互流程

    一.概要 本篇文章主要讲解基于.net中tcp/ip网络通信编程.在自我进步的过程中记录这些内容,方便自己记忆的同时也希望可以帮助到大家.技术的进步源自于分享和不断的自我突破. 技术交流QQ群:580 ...

  2. HDU - 4548-美素数 (欧拉素数筛+打表)

    小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题,今天,小明想考考你对素数的认识.  问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为"美素数&quo ...

  3. 01_Python基础知识梳理

    1.计算机知识基础 1.计算机组成 计算机底层: 点子电路,计算机只能识别两个数 0 1         硬件: 处理器(CPU), 运行内存(RAM), 主板(总线设备), 外部存储设备(硬盘U盘等 ...

  4. Oracle SQL 判断某表是否存在

    SQL> SELECT COUNT (*) as cnt FROM ALL_TABLES WHERE table_name = UPPER('your_table'); CNT -------- ...

  5. 网易云uwp

    起因 昨天晚上折腾Ubuntu 莫名其妙任务栏的网易云音乐图标消失了,今早才发现原来是更新了. but,这个更新真的是让人一言难尽 upw更新一下直接变成了桌面版? 折腾 重新装回老版uwp 网易云U ...

  6. leetcode刷题-51N皇后

    题目 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案. 每一种解法包含一个明确的 n 皇后问 ...

  7. 初次使用maven创建web工程发现只有一个idea目录,src,webapp目录都不见了,解决方案

    修bug系列2之 初次使用maven创建web项目的src目录不知所踪 窗外下着下雨,屋内的我学着maven,本以为轻轻松松,没想到还是遇到了bug.好了不说了,来看看我是怎么解决的. 在初次使用ma ...

  8. 【小程序】---- 封装Echarts公共组件,遍历图表实现多个饼图

    一.问题描述: 在小程序的项目中,封装公共的饼图组件,并在需要的页面引入使用.要求一个页面中有多个饼图,动态渲染不同的数据. 二.效果实现: 1. 查看——小程序使用Echarts的方式 2. 封装饼 ...

  9. LuoGu P1909 买铅笔???

    题目描述 P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物.她发现商店一共有 3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同.为了公平起 见,P老师决定只买同一种包装的铅笔. ...

  10. 原生js实现懒加载并节流

    像淘宝网站等,页面中有着大量图片,一次性全部加载这些图片会使浏览器发送大量请求和造成浪费.采用懒加载技术,即用户浏览到哪儿,就加载该处的图片.这样节省网络资源.提升用户体验.减少服务器压力. 方法1: ...