shell学习笔记

shell #!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。 echo 命令用于向窗口输出文本 #!/bin/bash echo "Hello World !" 将上面的代码保存为test.sh,并 cd 到相应目录: chmod +x ./test.sh #使脚本具有执行权限 ./test.sh #执行脚本 注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。 这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如: /bin/sh test.sh 变量 变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则: 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头 中间不能有空格,可以使用下划线 _ 不能使用标点符号 不能使用bash里的关键字(可用help命令查看保留关键字) 使用一个定义过的变量,只要在变量名前面加美元符号即可,如: 实例 your_name="qinjx" **echo** $your_name **echo** $your_name 推荐给所有变量加上花括号,这是个好的编程习惯。 已定义的变量,可以被重新定义 使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。 #!/bin/bash myUrl="<https://www.google.com>" readonly myUrl myUrl="<https://www.lixingyu.top>" /bin/sh: NAME: This variable is read only....

2023-08-27 · 7 min · 1416 words · LXY

航模无人机各部分解释

航模无人机各部分解释 制作一个无人机先从最基本的部分说起 电源,电机,螺旋桨,电调,机架,主控,变压模块,接收器,遥控 上面是最基础的东西,缺一不可 各部分作用 电源 提供无人机所需的电能,用于驱动电机和供应其他电子设备的电力 相关参数 材料 一般使用锂电池,称锂聚合物电池(Li-polymer,又名高分子锂电池),相较其他材质拥有更低重量,更高能量密度,但是就锂电池种类里还有很多分类,包括正负极材料,电解液材料等等,这里暂时不做讨论 C 值 C 值是电池的放电倍率,不要超过最大持续电流放电,最大持续电流=额定容量(单位Ah)*放电倍率C,暴力飞行的时候,C数越高的电池放电性能越好,能瞬间提供的电流支持越大。 容量 电池容量表示电池能够存储的电能量,通常以毫安时(mAh)为单位。例如,2000mAh 表示电池能够以1A电流放电1小时,但是放电是非线性的,实际中会有偏差, S S 值表示电池的电池单元数,也称为电池组数。每个电池单元通常具有标准的电压(例如3.7伏),通过将多个电池单元连接在一起形成电池组来提供更高的电压。例如,一个3S电池表示由3个电池单元串联连接在一起 电机 无人机的动力来源,通过转动螺旋桨产生升力或推力,使无人机能够在空中飞行 相关参数 型号 如2205,2004,2216,表示电机定子(就是绕线圈的那部分,不是整体尺寸)的直径和高度单位毫米 KV值 KV值是每1V的电压下电机每分钟空转的转速,每增加1V转速增加kv的值中转速,一般来说同系列电机里kv越小,力矩越大,kv越大,力矩越小,根据使用场景选择 效率 g/W(克/每瓦),电机功率和拉力非线性,例如100w时拉力1000g,50w拉力就不是500g,可能时700g,一般情况下3-5A电流效率最高 螺旋桨 由电机驱动的旋转叶片,产生气流动力,用于提供升力或推力,控制无人机的运动 相关参数 型号 如2050,20表示直径20英寸,50表示桨角 直径 螺旋桨的直径是指螺旋桨旋转时所切过的圆的直径,通常以英寸(in)为单位表示。直径越大,螺旋桨产生的升力或推力通常也越大 螺距 螺旋桨螺距是指螺旋桨旋转一周时前进的距离。螺距通常以英寸(in)表示,例如“10x4.5”。第一个数字表示螺旋桨的直径,第二个数字表示每旋转一周时前进的距离。较大的螺距通常会提供更大的推力,但也可能对电机负荷和电池消耗产生影响(这里就需要大螺距选小kv) 叶片数 螺旋桨通常有两个或更多叶片。叶片数会影响到螺旋桨的平衡性、噪音和效率等方面。多叶片螺旋桨通常能够提供更平稳的飞行和更低的噪音水平 旋转方向 螺旋桨可以有不同的旋转方向,如顺时针旋转或逆时针旋转。无人机通常采用对称的旋转方向,即一个螺旋桨顺时针旋转,另一个逆时针旋转。这样可以平衡无人机的力和扭矩,提供稳定的飞行,CW和CCW都表示旋转的方向 【CW】clockwise 的缩写,表示顺时针旋转 【CCW】counter-clockwise的缩写,表示逆时针旋转 电调 电调是电机的控制器,用于调节电机的转速和功率,一般主控电压比较低,而电机需要较大电压时,使用电调来做中间转达控制对飞控比较安全。通过调整电调,可以控制电机速度,从而可以控制的飞行速度、姿态和稳定性 相关参数 额定电流 安全持续输出的最大电流值,(I=U/R)电机的电流和使用的桨叶(影响温度进而影响R)和电压(U)有关联要具体分析电流 电压范围 可以工作的电压范围 刹车功能 电机停止运转时,可以应用电调内部的刹车来快速停止电机旋转 BEC 功能 可以提供给其他电子设备(如飞行控制器、接收器等)所需的稳定电源,能减少电压转换模块 机架 无人机的骨架结构,用于支撑和连接各个组件,提供稳定的平台。机架通常由轻质材料制成,如碳纤维或铝合金 相关参数 材料 机架可以由不同类型的材料制成,如碳纤维、铝合金、玻璃纤维等。不同的材料具有不同的特性,如强度、重量和刚性等。选择适当的材料可以根据无人机的用途、负载要求和预算进行权衡 尺寸 架的尺寸指的是其外观尺寸或整体尺寸。它通常以毫米(mm)为单位表示,如250mm、450mm等。机架的尺寸与无人机的大小和用途有关,较大的机架通常用于携带更大的负载或具有更长的续航能力 轴距 轴距是指机架两个对称轴之间的距离,通常是前后轴之间的距离。轴距的选择会影响无人机的稳定性和机动性。较长的轴距可以提供更好的稳定性,但较短的轴距可以提供更好的机动性 主控 无人机的中央处理单元,负责接收和处理来自各个传感器和遥控器的信号,控制无人机的飞行和执行预定任务,常见的飞控软件包括(后面列出的网站内容不属于本站)betaflight,px4,ArduPilot,你可以将这些软件写到适配其固件的硬件上 变压模块 用于将电源的电压转换为无人机各个组件所需的不同电压。由于不同的组件可能需要不同的电压供应,变压模块确保各个组件能够正常工作并受到适当的电力供应...

2023-08-17 · 1 min · 74 words · LXY

哔哩哔哩24小时直播

哔哩哔哩24小时直播 前提 有个直播账号 有个用于直播的服务器,我用的是一个树莓派,可以是云服务器,也可以是本地服务器 直播的内容 工具 ffmpeg(推流工具,使用这个软件来推流视频) 服务器如树莓派(软件和直播内容运行在上面) 一个远程工具,如果是本地那直接插键盘鼠标显示器也不是不行 步骤 服务器正常配置好 创建一个文件夹来放推流脚本和要直播的视频 我的如下 live(大文件夹) live.sh(这个是推流脚本) videos(这个是放视频的文件夹) 推流脚本如下,保存为live.sh #!/bin/bash echo "LIXINGYU" ##补充完整下面的rtmp_link,就是你直播的链接加上推流吗 rtmp_link="rtmp://live-push.bilivideo.com/live-bvc/..........flag=1" ##下面的是你的推流视频的地址,写绝对地址,就是从根目录开始写,注意斜线别打成反的 vidfo_src="/home/user/live/videos" ##定义一个开始推流的函数 stream_start(){ echo "开始推流" while true do ##打开视频所在文件夹 cd $vidfo_src ##循环推流文件夹每个视频 for video_x in $(ls *.mp4) do ##为了节省占用,这里没有压缩直接推流的,所以文件夹放的视频码率要先自己压一遍,如果实时压制会比较消耗资源 ffmpeg -re -i "$video_x" -c:v copy -c:a aac -b:a 192k -strict -2 -f flv ${rtmp_link} done done } stream_stop(){ echo "停止推流" screen -S live -X quit killall ffmpeg } echo "1是开始推流" read -p "请输入数字1推流,2停止推流,选择你要进行的操作:" num case "$num" in 1) stream_start ;; 2) stream_stop ;; *) echo "输入错误" ;; esac } 安装screen...

2023-01-26 · 1 min · 143 words · LXY

树莓派入门

树莓派的简单入门 你需要 树莓派本体 供电,可以typec或poe供电 装有树莓派系统的高速内存卡,至少8G 用来连接树莓派和电脑的网线或可用wifi 准备阶段 系统选择 去树莓派官网找到树莓派的三种官方系统 下面是区别 图形化桌面 推荐软件 大小(相较而言) Raspberry Pi OS with desktop and recommended software 有 有 大 Raspberry Pi OS with desktop 有 无 中 Raspberry Pi OS Lite 无 无 小 系统烧录 把内存卡通过读卡器连接到电脑 使用SDcardformatter格式化内存卡,系统自带的格式化可能会有问题 使用win32manager,烧录到要安装的内存卡中,还有其他烧录工具都可以用,包括树莓派官方有自己的烧录工具 如果使用WiFi连接的话(你也可以网线连接,这一步是保证你能进入系统,如果你连接了屏幕鼠标键盘设备,也可以进入系统后在联网),在烧录好的内存卡根目录创建wpa_supplicant.conf文件并写入以下内容 country=CN ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="wifi名称" psk="wifi密码" key_mgmt=WPA-PSK priority=2 } 这会在系统初次运行自动连接上面的WiFi,priority是优先级,越小越优先,可以配置多个network模块,key_mgmt是WiFi加密方式 如果初次开机想要使用ssh连接,需要在根目录创建无后缀文件ssh,即可打开ssh连接开关(进入系统后需要再次打开ssh连接,否则在关机或者重启后ssh会被关闭,就是说创建ssh文件是个临时的操作) 官方更新安全问题更改信息,默认无用户,你要先创建一个userconf.txt文件,内容如下,会创建以下步骤提到的用户密码,如果你会可以自行设定,不设定则必须保证你有屏幕键盘鼠标等必要设备否则无法登入系统 pi:$6$/4.VdYgDm7RJ0qM1$FwXCeQgDKkqrOU3RIRuDSKpauAbBvP11msq9X58c8Que2l1Dwq3vdJMgiZlQSbEXGaY5esVHGBNbCxKLVNqZW1 弹出sd卡 系统安装 把烧录好的内存卡插入树莓派 有键盘鼠标屏幕什么的在插电前接入树莓派,通电再插入可能导致电流不稳,系统重启 网线连接的话插入网线 没有poe供电的话就插电,这时树莓派会自动开机(没开的话就长按板子上的开机键) 有屏幕的话就自己配置,没有的话,使用ssh用ip连接 默认用户pi,默认密码raspberry ssh进入后输入 sudo raspi-config 进入配置 系统配置 以raspi-config为例,图形化界面应该不用教程吧 输入sudo raspi-config 后,你会看到如下文本...

2022-12-31 · 2 min · 236 words · LXY