【notes1】samba服务器,pip/office/pi/版本,文件

文章目录

  • 1.Samba服务器:利用文件传输协议:ftp,http,SMB(Samba)
    • 1.1 隐藏共享和拒绝访问:无法在网上邻居看到我们所共享的文件夹,但是通过unc路径做具体指定,我们可以访问到该文件夹下
    • 1.2 别名:别名配置文件要自己建立
    • 1.3 免登陆名:启用share级别(安全性最低,不需要通过用户名认证)
    • 1.4 linux访问windows共享目录:mount
  • 2.pip/ffmpeg/office/pi:su直接切换root,需输入root密码。sudo su/-i:当前用户暂时申请root权限,需输入当前用户密码
    • 2.1 pip换源:win和linux
    • 2.2 shapely:https://www.lfd.uci.edu/~gohlke/pythonlibs/ 或pypi网
    • 2.3 ffmpeg压缩并拼接音频:.wav到.mp3
    • 2.4 office:下载visio:http://www.itellyou.cn/用迅雷复制链接下载
    • 2.5 深浅拷贝:curl ipinfo.io 查公网出口ip
    • 2.6 树莓派:是完整个人电脑,功耗大(相比于没有soc的单片机),物联网中要性能弱,树莓派只用于教学,树莓派4性能更强并有了usb3.0口和千兆网卡:做NAS(网络附加存储器),但做局域网中NAS不需要这么高性能,路由器就行且功耗比树莓派低
    • 2.7 双系统安装:Ubuntu镜像网站http://mirrors.ustc.edu.cn/ubuntu-releases/16.04/
    • 2.8 版本:os-release.bb,openbmc_version.bbclass
  • 3.文件:C语言中‘\0’(对应的ASCLL码值为0)表示的空字符
    • 3.1 find:找文件
    • 3.2 grep:找文件中内容
    • 3.3 cat/more:查看文件全部内容
    • 3.4 head/tail:查看文件部分内容
    • 3.5 iNode:磁盘中块和扇区


1.Samba服务器:利用文件传输协议:ftp,http,SMB(Samba)

win下更改ip:本地连接右击属性,更改适配器。@market指market组。
【notes1】samba服务器,pip/office/pi/版本,文件_第1张图片
【notes1】samba服务器,pip/office/pi/版本,文件_第2张图片
如下将本地用户转变为samba用户即共享用户。通过如下转变可实现该用户通过客户端访问服务器时提供验证标准了。
【notes1】samba服务器,pip/office/pi/版本,文件_第3张图片
如下都是在文件末尾新添加的内容,都是逗号,writeable=no指除了下行外都不能写。[manager]是共享名即对方能看到的网络文件夹名称,comment是可共享目录的描述信息(可加可不加),valid_users指谁可以访问。
【notes1】samba服务器,pip/office/pi/版本,文件_第4张图片
【notes1】samba服务器,pip/office/pi/版本,文件_第5张图片

1.1 隐藏共享和拒绝访问:无法在网上邻居看到我们所共享的文件夹,但是通过unc路径做具体指定,我们可以访问到该文件夹下

windows里只需在共享文件夹名后面加一个$符号就能实现隐藏共享了。linux的samba中需修改主配置文件。如下将manager目录做一个隐藏。
【notes1】samba服务器,pip/office/pi/版本,文件_第6张图片

1.2 别名:别名配置文件要自己建立

【notes1】samba服务器,pip/office/pi/版本,文件_第7张图片

1.3 免登陆名:启用share级别(安全性最低,不需要通过用户名认证)

【notes1】samba服务器,pip/office/pi/版本,文件_第8张图片

1.4 linux访问windows共享目录:mount

【notes1】samba服务器,pip/office/pi/版本,文件_第9张图片
【notes1】samba服务器,pip/office/pi/版本,文件_第10张图片
如上操作后share文件夹就有读写权限了。如下设置win账号,因为默认禁止空密码登录。
【notes1】samba服务器,pip/office/pi/版本,文件_第11张图片

2.pip/ffmpeg/office/pi:su直接切换root,需输入root密码。sudo su/-i:当前用户暂时申请root权限,需输入当前用户密码

2.1 pip换源:win和linux

pip install速度慢,用pip换源:进入python,看os在哪个py脚本里即python工作路径在1下,所以在1下建pip文件夹可以执行。
【notes1】samba服务器,pip/office/pi/版本,文件_第12张图片
在桌面新建pip文件夹再拖进1,在pip里新建.txt,再改为.ini文件,点击打开输入下面代码保存。
【notes1】samba服务器,pip/office/pi/版本,文件_第13张图片
apt install python3-pip --fix-missing(断开,cp /etc/apt/sources.list /etc/apt/sources.list.bak,python3 -m pip install --upgrade pip,apt-get update,pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com)
在这里插入图片描述
三个源:https://pypi.tuna.tsinghua.edu.cn/simple,https://pypi.douban.com/simple,https://mirrors.aliyun.com/pypi/simple
upgrade升级下numpy,看下载速度:pip install numpy -U

以上为windows换源,下面为ubuntu换源同理:cd ~mkdir .pipcd .pipgedit pip.conf,将以下内容复制到pip配置文件pip.conf中,保存退出即可。

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com (上面http地址中间一部分,这行为了获取ssl证书,不然会报错)

2.2 shapely:https://www.lfd.uci.edu/~gohlke/pythonlibs/ 或pypi网

在这里插入图片描述
到所在文件夹:pip install Shapely-1.6.4.post1-cp37-cp37m-win_amd64.whlconda install python==3.7
No module named ‘numpy.core._multiarray_umath’:pip install numpy -U -i https://pypi.tuna.tsinghua.edu.cn/simple/
No module named 'cv2.cv2:pip install opencv-python 出错:如上面下载对应版本再pip install,python -V pip -V
在这里插入图片描述
在这里插入图片描述

2.3 ffmpeg压缩并拼接音频:.wav到.mp3

ffmpeg压缩软件链接为:链接:https://pan.baidu.com/s/1Pn1y76_HQULm9c7xaTrMXw 提取码:uvg4。
压缩:将解压后的ffpeg软件和录音文件放在同一文件夹下,并在当前文件夹cmd,在cmd中输入命令并运行:ffmpeg -i "1.wav" -b:a 64k -acodec mp3 -ar 44100 -ac 1 "1.mp3"
-i "1.wav"表示输入,后面的文件名必须要用双引号
-b:a 64k表示音频的码率为64kb/s,即8kB/s
-acodec mp3表示设定声音编解码器为mp3
-ar 44100表示设定采样率为44100
"1.mp3"表示输出保存的文件名
在这里插入图片描述
拼接:新建文本list.txt,复制下内容到其中

file '1.mp3'
file '2.mp3'
file '3.mp3'

cmd输入:ffmpeg -f concat -i list.txt -c copy "all.mp3",产生all.mp3即拼接好了。
在这里插入图片描述

2.4 office:下载visio:http://www.itellyou.cn/用迅雷复制链接下载

驱动:https://www.usb-drivers.org/ft232r-usb-uart-driver.html。
【notes1】samba服务器,pip/office/pi/版本,文件_第14张图片
安装到了D盘里:D/office/Office15/VISIO.EXE。KMspico工具安装成功后,Visio同时也正常使用了,不需要任何操作。链接:https://pan.baidu.com/s/1hRGadTjU7cPqMTqaghVFSQ 提取码:e49y

如下关于office2013,mathtype,Axmath:链接:https://pan.baidu.com/s/1XJ9KBQeKxPqjIA692f1J9Q 提取码:tyi5 ,点下图红框标出进行安装:
【notes1】samba服务器,pip/office/pi/版本,文件_第15张图片
复制下图文件到上图文件夹位置进行替换。
在这里插入图片描述
win10关闭更新:此电脑-管理-服务-双击windows update。
【notes1】samba服务器,pip/office/pi/版本,文件_第16张图片
选择文件夹右击"授权访问权限",选择"特定用户",添加"所有人",权限改为"读取与写入",以共享方式访问,就可删除文件夹了,还有删除里面文件就可删除文件夹了。

2.5 深浅拷贝:curl ipinfo.io 查公网出口ip

locate 文件:全局
rm \\
ctrl + H :显示隐藏文件
0,-1:0成功
0,1:0假

在这里插入图片描述
在这里插入图片描述
【notes1】samba服务器,pip/office/pi/版本,文件_第17张图片
【notes1】samba服务器,pip/office/pi/版本,文件_第18张图片
在这里插入图片描述
【notes1】samba服务器,pip/office/pi/版本,文件_第19张图片

2.6 树莓派:是完整个人电脑,功耗大(相比于没有soc的单片机),物联网中要性能弱,树莓派只用于教学,树莓派4性能更强并有了usb3.0口和千兆网卡:做NAS(网络附加存储器),但做局域网中NAS不需要这么高性能,路由器就行且功耗比树莓派低

1.内存卡插入读卡器再插入电脑的usb接口,将u盘格式化为FAT32格式。如果右击格式化没有FAT32则用格式化fat32工具:http://www.ridgecrop.demon.co.uk/guiformat.exe。树莓派系统官网:https://www.raspberrypi.org/downloads/raspbian/。下载完系统(1.9G),用写盘工具(https://www.balena.io/etcher/或win32diskimager)将系统写入u盘,写完后不要格式化其他盘。

2.树莓派插上内存卡,接上网线(网络认证)或连上wifi(连wifi,eth0信息为空,因为没有连接网线,wlan0显示内网ip)用ifconfig查看网络。service ssh start开启ssh服务,树莓派默认用户名pi,密码raspberry,sudo netstat -antp可查看到当前有22端口即ssh端口被监听,这时可关闭显示器。如果忘了树莓派内网ip,可用win下cmd中输入arp -a查看局域网下所有ip和mac对应。本电脑就可以ssh连接树莓派再通过picocom -b 115200 /dev/ttyUSB0连接到机器,minicom -D /dev/ttyUSB0 登不上时进入/var/lock,删除lockfile,minicom又可正常启动。

2.7 双系统安装:Ubuntu镜像网站http://mirrors.ustc.edu.cn/ubuntu-releases/16.04/

【notes1】samba服务器,pip/office/pi/版本,文件_第20张图片
如下图先删除所有,再在驱动1即固态上新建满存再应用,默认被分成4个区,选中分区4安装win10。
【notes1】samba服务器,pip/office/pi/版本,文件_第21张图片
此电脑右击管理到磁盘管理(或搜索磁盘管理选择创建并格式化分区),右击删除卷(或压缩卷)到未分配,右击新建简单卷再命名。压缩卷C盘分出50G装ubuntu,ubuntu自动识别未分配空间。

软碟通Ultraiso将从itellyou下载的win10镜像(用户customer版64位,复制链接迅雷下载)或ubuntu镜像写入U盘,Boot设置为UEFI启动U盘,legacy为老版本不用。下面两图都为f2。注意f12选择UEFI OPTIONS:USB1…启动,进入安装界面会提示与其他系统共存。
【notes1】samba服务器,pip/office/pi/版本,文件_第22张图片

2.8 版本:os-release.bb,openbmc_version.bbclass

【notes1】samba服务器,pip/office/pi/版本,文件_第23张图片

# sv restart sensor-mon,  ./sy..sh生成yocto文件夹
# 如下aliases.sh(在rootfs/etc/procfile.d, 参考环境变量章节)同init.d/setup_*.sh上电启动脚本。
alias ls='ls --color=auto'
alias i="ip addr show | grep 'inet '| grep ' eth0' | grep -v '240.1.1.1' | awk '{print $2}'|awk -F "/" '{print $1}'"
alias a="python3 /usr/local/bin/board_setup_routes.py"
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin    #在脚本中只能对这行下面的执行脚本的路径生效,不能对外面的shell窗口生效,在shell窗口命令行下PATH=,echo $PATH才生效。

# if [ -f /sys/bus/i2c/devices/48-0058/mfr_id ]; then ln -snf /sys/bus/i2c/devices/48-0058/mfr_id /sys_switch/psu/psu1/model_name;fi 
# model_name 必须不存在,相当于快捷方式

# ln -s $(find /sys/bus/i2c/devices/i2c-42/42-0048/hwmon -name "hwmon*" | tail -n 1)/name /sys_switch/temp_sensor/temp2/alias

# pwm:0%(cpld的0即0x0),   50%(cpld的127即0x7f),   100%(cpld的255即0xff)

3.文件:C语言中‘\0’(对应的ASCLL码值为0)表示的空字符

3.1 find:找文件

过滤一下看文件大小:-print0将如上三行打印为1行并用null即‘\0’隔开,再用xargs -0即用‘\0’再分开(原因是默认管道到下一个里面空格会出错)。
在这里插入图片描述
如上/是整个系统搜索慢,如下是当前路径搜索快。
在这里插入图片描述
日志文件没清空非常大,要找到删除,如下找系统中大文件,超过10M。
在这里插入图片描述
如下查找文件夹,文件夹有相应名字或大小属性。
在这里插入图片描述
如下基于修改时间,time是天。-1:今天一天之内。1:1天前这一天。+1:1天前。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如下指定最大文件深度。
在这里插入图片描述
如下是find指令总结。
在这里插入图片描述

3.2 grep:找文件中内容

echo “aa” >> 1.txt,追加内容。cat -n 1.txt(行号:number)。grep “a” 1.txt。
在这里插入图片描述
如下* 可换成 * .txt
在这里插入图片描述
-r:递归子路径,-n:显示行号。-i:忽略大小写。
在这里插入图片描述
如下用于java日志文件非常大,要grep出某个异常如ioexception,且需要打印出exception下面几行看什么出了错。
在这里插入图片描述

3.3 cat/more:查看文件全部内容

cat的文件非常大,非常占用cpu和内存,这时候可以每次读取一小部分。
在这里插入图片描述
如下通过空格往后翻页。
在这里插入图片描述
如下指定从第四行开始读。
在这里插入图片描述
如下查看前后10行。
在这里插入图片描述
在这里插入图片描述

3.4 head/tail:查看文件部分内容

在这里插入图片描述
如下打印文件最后两行,tail -f 阻塞监控。
在这里插入图片描述
df -h查看磁盘使用,占用率太高就需要使用前面find,grep指令并进行删除。
在这里插入图片描述
如上找出占空间的文件夹再去里面找。
在这里插入图片描述
在这里插入图片描述
题目:输出当前路径及当前路径子路径下所有.txt文件,要求大小超过1M,并且按照从大到小顺序进行排序输出前10个?
先通过find . -name '*.txt' -size +1M -type f 查看是否有大于1M的txt文件,没有的话就不用继续了。
再通过find . -name '*.txt' -size +1M -type f -print0|xargs -0 du -m|sort -nr|head -10

3.5 iNode:磁盘中块和扇区

linux文件系统中iNode用来存储文件原数据信息,不存储文件内容原数据信息包括:
类型:这个文件是个目录还是普通文件。
拥有者:这个文件是owner还是group owner。
时间ctime:上次inode变动时间。atime:上次访问时间。mtime:上次文件内容发生变动时间。
连接数:有多少文件名同时指向inode。一个文件名只对应一个inode,但一个inode可能被多个文件名同时指向。
文件内容所在的位置:文件真正内容所在磁盘块的标号。

1.文件系统fs在格式化好后,inode以什么样格式存储的呢?整个inode以数组形式存储,每个元素是一个inode,每个inode大小根据当前文件系统以及整个磁盘大小,inode会有一个固定128或256字节大小。

2.除了inode数组,fs初始化好后还会生成一个Map映射关系表(存储filename和inode index)。现在要读取/ect/1.txt,整个过程怎么样先根据文件名到Map中找到inode index,找到下标为假如是3的inode后拿出来如下图左边整个框。当前在读取/ect/1.txt,所以查看是否有读权限,如果有读权限就继续往下,找到文件内容所在位置(磁盘上块的下标)。
在这里插入图片描述
文件内容在磁盘中存储区域如下:以进行分隔,每个块大小也是根据当前fs和整个磁盘大小决定,并不是一个特定大小【扇区在磁盘生产时有多少个扇区,每个大小是定的,早期扇区512byte,现在4k】。文件系统fs在文件访问过程中不可能直接使用扇区,扇区是硬件的概念,所以抽象出一个概念:fs角度去看最小文件存储单元就是块,一个块可以有一个或多个扇区组成(2的幂次方即1,2,4…个扇区)。
在这里插入图片描述
一个块采用多少扇区也是有权衡的,比如一个块有好几兆,存一个1k文件也要占一个文件块,造成磁盘空间浪费。块选择过小的话也不好,如果一个块大小1bit,导致一个文件假如是1kb,它所在的块由1千个块组成,在inode中存储文件内容所在位置这个字段时候造成存1千个块信息(1千个块下标),一个inode(存1千个块下标)不可能128/256字节大小了,一个inode会很大,进而导致inode数组会很大,整个inode区大,这样导致磁盘损耗大量空间存储inode信息,较少的空间存储真正文件内容。

即使进行权衡,目前存在问题,如经常听到inode用完了即inode数组初始化大小用完了,声明完数组大小后不能增加或减少了。inode数组用完了即使磁盘还有额外空间也不能存储文件了,常见特别零碎文件数量又特别多占据磁盘大量inode导致整个inode用完。如早期docker采用overlay文件存储格式导致镜像的碎文件很多,导致inode用尽这样问题,后面采用overlay2文件存储格式一定程度上解决了这问题。

查看linux系统中inode数组以及每个文件所对应inode标号:df -i(inode),查看当前文件夹下文件所在的inode标号是什么ls -il。访问1.txt先查文件名和inode标号映射即Map,1.txt能找到270306这个标号。根据这个标号到1183200这个数组中拿取第270306个标号的inode。根据这个inode信息查看权限,最终找到1.txt在磁盘中存储位置,最后把这些磁盘块进行读取,最终读取到1.txt这个文件。
在这里插入图片描述
在这里插入图片描述
如果是一块移动硬盘,在其他设备上创建了文件,把这个移动硬盘拿到linux上面,有没有inode呢?
1.os可以支持多种fs。2.inode是在ext2/3/4等linux支持的文件系统(fs)有的。所以移动硬盘看是什么文件系统了,如果是ntfs或者exfat、fat32等等就是另一种访问形式了,inode其实是文件系统里的概念,而不是linux的概念。
【notes1】samba服务器,pip/office/pi/版本,文件_第24张图片

#include 
#include 

int main() {
    DIR *dir;
    struct dirent *node;

    dir = opendir("."); // 打开当前目录
    if (dir == NULL) {
        printf("无法打开目录\n");
        return 1;
    }

    while ((node = readdir(dir)) != NULL) {  // 遍历目录, node->d_name是文件或目录名
        if (node->d_type == DT_REG) {
            printf("文件: %s,%d\n", node->d_name, DT_REG);    // DT_REG:8
        } else if (node->d_type == DT_DIR) { 
            printf("目录: %s,%d\n", node->d_name, DT_DIR);    // DT_DIR:4
        } else if (node->d_type == DT_LNK) { 
            printf("符号链接: %s,%d\n", node->d_name,DT_LNK); // DT_LNK:10
        } else {
            printf("其他类型: %s\n", node->d_name);
        }
    }

    closedir(dir);
    return 0;
}

你可能感兴趣的:(notes,linux)