linux命令小记

本文深入讲解了Linux Shell的基础知识及常用命令,包括shell种类、环境切换、文件操作、权限设置、压缩解压、磁盘管理、网络工具等,是Linux初学者和系统管理员的实用指南。
  1. shell是内核与用户接口。主要有两种①Bourne Shell(SH),它是UNIX最初使用的Shell。它有一种扩展Bourne Again Shell,简称Bash。②C Shell(CSH),语法与C语言相似,比如它有一个扩展是Tcsh。
  2. 检查当前系统运行的 :Shellecho $SHELL
  3. su 和su - 的区别:前者只是切换身份,后者切换身份和环境
  4. more:分屏显示,只能向后翻
  5. less:可以前后翻
  6. grep “root” /etc/passwd :在/etc/passwd中寻找“root”字符串
  7. find / -name ‘temp’ -o -name ‘install*’:查找更目录下名称为temp或和install*匹配的文件
  8. wc -clw f1:统计文件f1的字节数,行数,字数
  9. cp -b -r f1 f2 :递归复制f1到f2,若存在同名f2,则覆盖前先备份
  10. history :查看历史命令记录
  11. wc <f1 :用wc命令统计f1文件的相关信息,f1作为wc命令的输入(<,输入重定向)
  12. cat >f1:使用输出重定向,创建文件f1
  13. cat >>f1:向f1中追加信息
  14. java test 2>error :执行java程序的错误信息将输入到error文件中(2>错误信息重定向)
  15. /etc/passwd 用户账号文件;/etc/shadow 用户影子文件(包含用户的被加密后的密码等)
  16. useradd -d /newhome :添加用户并指定家目录
  17. fdisk /dev/sda :管理硬盘sda的分区
  18. mkfs -t ext4 /dev/sda1 给sda1分区创建ext4的文件系统
  19. ls -l显示文件详细信息,开头‘-’表示普通文件,‘d’表示目录文件,‘l’表示软连接,‘c’表示设备文件,‘s’表示套接字文件,‘p’表示管道文件
  20. /bin 存放基本二进制文件 ;/sbin存放root才能运行的二进制文件 ;/lib 存放系统最基本的动态链接共享库文件,类似windows的dll文件;/etc存放配置文件和脚本文件;/var存放不断变化的文件,如日志;/tmp存放临时文件;/boot存放系统启动所需文件,如系统内核;/dev 存放外围设备 ;/root root的家目录;/home 普通用户的 家目录;/mnt挂载其他分区的标准目录 ;/proc存放内核和进程信息的虚拟文件目录,内容在内存中,其中的内核参数一经修改立即生效;/usr一般文件的存放目录
  21. ln -s test.txt test.txt.softlink 给test.txt创建个软连接
  22. ln test.txt test.txt.hard 给test.txt创建个硬链接
  23. tar -cvf /usr/backup/home.jar /home :将整个home目录下的文件都打包成为/usr/backup/home.jar
  24. tar -zcvf /usr/backup/home.jar.gz /home :打包之后并使用gzip压缩
  25. tar -jcvf /usr/backup/home.jar.bz2 /home:打包之后并使用bzip2压缩
  26. tar -zxvf /usr/backup/home.tar.gz 解压缩
  27. zip mypro.zip *.c *.txt :将*.c和*.tex压缩成mypro.zip
  28. zip -g mypro.zip data/*.log:将data下的*.log文件进行压缩并添加到mypro.zip中
  29. unzip mypro.zip :解压缩
  30. gzip text :将text压缩
  31. gzip -d text.gz:将text.gz解压缩
  32. chmod u+rwx file1设置用户拥有对file1的读写执行权限在这里插入图片描述在这里插入图片描述在这里插入图片描述
  33. chmod 600 file1 :设置file1权限为600,也就是文件拥有者有读写权利
  34. mount -t ext4 /dev/sdb1 /mnt/linux1 :将/dev/sdb1分区挂载到/mnt/linux1目录
  35. fdisk -l :查看系统硬盘和硬盘分区情况
  36. 永久挂载需要修改配置文件/etc/fstab
  37. umount /mnt/linux1或者umount /dev/sdb1:卸载文件系统
  38. 交换内存:分区类型的交换内存,文件类型的交换内存
  39. pvcreate /dev/sda6 :创建物理卷(之前需要将/dev/sda6分区类型修改为8e)
  40. vgcreate -s 8M vg0 /dev/sda6 :创建卷组vg0,并且指定PE块都8M(默认4M)
  41. lvcreate -n lv0 -L 200M /dev/vg0 :创建逻辑卷
  42. mkfs -t ext4 /dev/vg0/lv0 创建文件系统
  43. mount /dev/vg0/lv0 /data :挂载文件系统
  44. lvcreate -n lv0-snap -s -L 100M /dev/vg0/lv0 给逻辑卷创建快照
  45. ls -a >text & : 将ls出的内容重定向到text文件,并且在后台运行(就是生成了一个子shell来执行这个命令)
  46. cat f1 | grep “ile” |wc -l : 像使用了管道符的这种命令,会同时启动三个shell进程,都是现在shell的子进程,互相称为兄弟进程。
  47. ps 参数小记: -a累出当前终端上所有进程(包括其他用户的进程),-e列出系统中所有进程(包括其他用户和系统进程),-u显示面向用户的格式(包括用户名、cpu以及内存使用情况等),-r显示正在运行的进程,-x显示后台进程,-f显示进程的所有信息 ,-o定制属性(指定显示某些属性比如: ps -ao pid,pcpu 只显示pid和CPU使用率)
  48. jobs显示所有作业
  49. Ctrl + Z 挂起当前作业进程
  50. Ctrl + C结束作业进程
  51. bg + 作业号:将此作业转到后台运行
  52. fg + 作业和 :将此作业转到前台运行
  53. nice -3 vi 启动vi并将其优先级设置为3
  54. renice 8 -p 8888:将pid为8888的进程优先级设置为8
  55. kill -9 PID :杀死此PID对应的进程(参数-2的话,相当于对前台运行的进程使用Ctrl + Z)
  56. top -d 5 :动态显示系统信息,5秒钟刷新一次
  57. free -s 10 : 显示内存、缓存和交换分区的使用情况,10秒钟刷新一次
  58. who:显示当前登录的所有用户
  59. at -f job 8:00+2days :两天后的上午八点执行job文件中的作业
  60. crontab -e :设置周期性任务,接61
  61. 在编辑器中输入*/30 * * * 1,3,5 /bin/ls /etc/passwd:星期1,3,5每过三十分钟查看一次passwd下的内容。定时文件生成并保存在/var/spool/cron ,名为root。
  62. ls>/dev/null 2>&1:将ls的标准输出定向到黑洞,错误输出定向到标准输出,而标准输出已经定向到了黑洞,所以,所以信息都入了黑洞。
  63. netstat 参数小记:-a显示所有连接的信息;-i显示已配置网络设备的统计信息;-c持续更新网络状态,直到被终止;-r显示内核路由表,-n以ip地址代替主机名称,显示网络连接情况;-t显示TCP连接情况;-u显示UDP连接情况
  64. ping -c 12 www.baidu.com :ping十二次
  65. ping -i 5 www.baidu.com : 每五秒种ping一次
  66. traceroute www.baidu.com :显示数据包到baidu的路径
### 光流法C++源代码解析与应用 #### 光流法原理 光流法是一种在计算机视觉领域中用于追踪视频序列中运动物体的方法。它基于亮度不变性假设,即场景中的点在时间上保持相同的灰度值,从而通过分析连续帧之间的像素变化来估计运动方向和速度。在数学上,光流场可以表示为像素位置和时间的一阶导数,即Ex、Ey(空间梯度)和Et(时间梯度),它们共同构成光流方程的基础。 #### C++实现细节 在给定的C++源代码片段中,`calculate`函数负责计算光流场。该函数接收一个图像缓冲区`buf`作为输入,并初始化了几个关键变量:`Ex`、`Ey`和`Et`分别代表沿x轴、y轴和时间轴的像素强度变化;`gray1`和`gray2`用于存储当前帧和前一帧的平均灰度值;`u`则表示计算出的光流矢量大小。 #### 图像处理流程 1. **初始化和预处理**:`memset`函数被用来清零`opticalflow`数组,它将保存计算出的光流数据。同时,`output`数组被填充为白色,这通常用于可视化结果。 2. **灰度计算**:对每一像素点进行处理,计算其灰度值。这里采用的是RGB通道平均值的计算方法,将每个像素的R、G、B值相加后除以3,得到一个近似灰度值。此步骤确保了计算过程的鲁棒性和效率。 3. **光流向量计算**:通过比较当前帧和前一帧的灰度值,计算出每个像素点的Ex、Ey和Et值。这里值得注意的是,光流向量的大小`u`是通过`Et`除以`sqrt(Ex^2 + Ey^2)`得到的,再乘以10进行量化处理,以减少计算复杂度。 4. **结果存储与阈值处理**:计算出的光流值被存储在`opticalflow`数组中。如果`u`的绝对值超过10,则认为该点存在显著运动,因此在`output`数组中将对应位置标记为黑色,形成运动区域的可视化效果。 5. **状态更新**:通过`memcpy`函数将当前帧复制到`prevframe`中,为下一次迭代做准备。 #### 扩展应用:Lukas-Kanade算法 除了上述基础的光流计算外,代码还提到了Lukas-Kanade算法的应用。这是一种更高级的光流计算方法,能够提供更精确的运动估计。在`ImgOpticalFlow`函数中,通过调用`cvCalcOpticalFlowLK`函数实现了这一算法,该函数接受前一帧和当前帧的灰度图,以及窗口大小等参数,返回像素级别的光流场信息。 在实际应用中,光流法常用于目标跟踪、运动检测、视频压缩等领域。通过深入理解和优化光流算法,可以进一步提升视频分析的准确性和实时性能。 光流法及其C++实现是计算机视觉领域的一个重要组成部分,通过对连续帧间像素变化的精细分析,能够有效捕捉和理解动态场景中的运动信息
微信小程序作为腾讯推出的一种轻型应用形式,因其便捷性与高效性,已广泛应用于日常生活中。以下为该平台的主要特性及配套资源说明: 特性方面: 操作便捷,即开即用:用户通过微信内搜索或扫描二维码即可直接使用,无需额外下载安装,减少了对手机存储空间的占用,也简化了使用流程。 多端兼容,统一开发:该平台支持在多种操作系统与设备上运行,开发者无需针对不同平台进行重复适配,可在一个统一的环境中完成开发工作。 功能丰富,接口完善:平台提供了多样化的API接口,便于开发者实现如支付功能、用户身份验证及消息通知等多样化需求。 社交整合,传播高效:小程序深度嵌入微信生态,能有效利用社交关系链,促进用户之间的互动与传播。 开发成本低,周期短:相比传统应用程序,小程序的开发投入更少,开发周期更短,有助于企业快速实现产品上线。 资源内容: “微信小程序-项目源码-原生开发框架-含效果截图示例”这一资料包,提供了完整的项目源码,并基于原生开发方式构建,确保了代码的稳定性与可维护性。内容涵盖项目结构、页面设计、功能模块等关键部分,配有详细说明与注释,便于使用者迅速理解并掌握开发方法。此外,还附有多个实际运行效果的截图,帮助用户直观了解功能实现情况,评估其在实际应用中的表现与价值。该资源适用于前端开发人员、技术爱好者及希望拓展业务的机构,具有较高的参考与使用价值。欢迎查阅,助力小程序开发实践。资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值