Linux系统编程

2023-05-16

Linux系统中所见皆文件

bin:所存放二进制可执行文件
boot:存放开机启动程序
dev:存放设备文件
home:存放用户
etc:用户信息和系统配置文件
lib:库文件
root:管理员宿主目录(家目录)
usr:用户资源管理目录

Linux系统文件类型:
普通文件:-
目录文件:d
字符设备文件:c
块设备文件:b
软连接:l
管道文件:p
套接字:s
未知文件。

软连接:
ln -s 文件1 文件2
为保证软连接可以任意搬移,创建时务必对源文件使用绝对路径。

硬链接:
ln file flie.hard
操作系统给每一个文件赋予唯一的innode,当有相同的innode文件存在时,彼此同步。
删除时,只将硬链接计数减一,innode被释放。

硬链接和软链接的区别:
软连接就是相当于一个快捷方式,打开的还是源文件
硬链接就相当于共享文件,就两个文件同吃同住。但是硬链接文件不能编译(现在所了解的)

find命令:
-type 按文件类型搜索 d/p/s/b/l/f 文件
-name 按文件名搜索
-maxdepth 指定搜索深度
-size 按文件大小搜索。单位:K,M,G
eg:find /home/itcast -size +20M -size -50M:它的意思是查找在20M到50M大小之间的文件
-atim,mtime,ctime:这个atime参数是开发者最近访问时间,mtime参数是开发者最近改动内容时间,ctime参数是开发者修改文件属性时间。都是find可用的查询参数。
-exec:将find搜索的结果集执行某一指定命令
eg:find /usr/ -name “tmp” -exec ls -l {} ; :这个命令的意思是查询/usr这个路径下文件名称为tmp的文件,把查询的结果放在后面大括号中,再加个转义字符表示本意,然后-exec执行大括号中的结果集。
-ok:以交互式的方式,将find搜索的结果集执行某一指定命令
eg:find ./ -name “tmp” -ok rm { } ; :这个命令表示我找到tmp文件,然后是否要进行删除它的操作,会提示开发者是否要进行删除。
-xargs:同-exec一样,也是把find搜索的结果集执行某一命令,区别在于当搜索完的结果集太大时,-exec会一股脑的处理,而-xargs会切片进行映射,处理效率会更高。
在这里插入图片描述
但是,xargs默认是以空格形式加以区分,若文件名是用空格隔开的,则会分成两个文件。
想要解决上述说的以空格区分的问题,则可以用参数 -print0
eg:find ./ -maxdepth 1 - type f -print0 | xargs -print0 ls -l;
它是把搜索完的结果集的分隔符以null形式打印,然后xargs也以null分隔符形式执行。

grep命令:找文件的内容
grep -r ‘要查找的内容’ ./ -n :这个命令是在当前目录下查找相关内容,并输出查到的内容的行数

**status 文件:**是查看文件状态和情况的

使用chown 一次修改所有者和所属组
sudo chown 所有者:所属组 待操作文件。

压缩命令:
tar zcvf 压缩完成的文件名字 要压缩的文件。
eg:tar zcvf jj.tar.gz j.c k.c
注意:这个z是gzip格式压缩的意思,c是创建压缩文件的意思,v是显示压缩流程的意思,f是文件的意思。这个是使用gzip格式压缩
eg:tar jcvf jj.tar.gz j.c k.c
注意,这个是使用bzip2格式压缩。

解压:
将zcvf中的c---->x
eg:tar zxvf jj.tar.gz 使用gzip格式解压缩。
tar jxvf jj.tar.gz 使用bzip2格式解压缩。
rar压缩:
rar a -r 压缩包名(带.rar后缀)压缩材料
eg:rar a -r testrar.rar stdio.h test2.mp3
rar解压:
unrar x 压缩包名(带.rar后缀)

zip压缩
zip -r 压缩包名(带.zip后缀)压缩材料。
eg:zip -r testzip.zip dir stdio.h test2.mp3
zip解压:
unzip 压缩包名(带.zip后缀)
eg:unzip testzip.zip

GCC编译4步骤
1.预处理
2.编译
3.汇编
4.链接

在这里插入图片描述
编译参数:
-I:指定头文件所在目录位置
-c:只做预处理,编译,汇编。得到二进制文件
-g:编译时添加调试语句。主要支持gdb调试
-Wall:显示所有警告信息。
-D:向程序中“动态”注册宏定义。

动态库(共享库):就是一个库文件,在程序编译的时候会链接它,然后进行程序的编译,多个程序都公用这一个库,不给程序增添空间负担,但是运行速度慢。

静态库:也是一个库文件,但他相当于程序里面的一个东西,多个程序编译的时候,会把他拉进自己的程序文件中,每个编译程序都会拉一遍,会给程序增添空间负担,但是运行速度快。

两者区别:动态库是以时间换空间,静态库刚好相反。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux系统编程 的相关文章

随机推荐

  • VSS Invalid Handle 问题解决

    VSS Invalid Handle 问题解决 在浏览器中打开 VSS 服务器的共享目录 ip folder xff0c 输入用户名和密码登录后 xff0c 再运行客户端即可
  • 程序员自己的定位以及怪物追踪寻路AI (转)

    先从程序员的思想定位开始 程序员是什么 其实我们不是什么高深摸测的数学家 能使用多少种算法 能把计算机玩得那么厉害 其实程序的本质就是一个翻译者 是一个将人类的行为描述成计算机语言的翻译者 在这个解释里面 有一个根本的定位 就是计算机从属于
  • 游戏开发真功夫:游戏开发定律

    游戏开发真功夫 xff1a 游戏开发定律 http www shuzifun com article 56 t 8856 html 发布 2010 4 08 11 18 作者 十二 来源 游戏圈 虽然全球已经有了那么多游戏培训机构和学院 x
  • 游戏开发流程和部分分工

    http blog csdn net njhua123 archive 2009 11 23 4859662 aspx 原创 游戏开发流程和部分分工 收藏 游戏开发流程和部分分工 流程 xff1a 调研 开发 测试 运营 xff08 我们公
  • C++以http接口推送json流和图片流

    一 C 43 43 推送json流 C 43 43 代码 xff1a span class token comment span span class token comment a single threaded multi client
  • subprocess.Popen执行程序以及关闭进程

    python中有一个很好用的方式来开启进程 xff0c 即subprocess Popen 正常来说 xff0c 如果subprocess Popen要执行的脚本是一个死循环的脚本 xff0c 那么我们就需要手动的来关闭这个脚本 xff0c
  • 【Simulink教程案例16】基于simulink的LDPC编译码+16QAM调制解调通信系统性能仿真——输出误码和星座图

    欢迎订阅 FPGA MATLAB SIMULINK系列教程 Simulink教程目录 本课程学习成果预览 目录 1 软件版本 2 LDPC编译码理论简介
  • C++头文件定义全局函数或类成员函数

    C 43 43 头文件定义全局函数或类成员函数 你可能很熟悉C C 43 43 的声明定义规则 xff1a 头文件中声明变量和函数 xff0c 源文件中定义变量和函数 在头文件中定义变量和函数会导致 重定义 xff0c 因为包含该头文件的不
  • 分享几种锂电池均衡电路的工作原理

    新能源的发展 xff0c 电动汽车发展 xff0c 都会用到能量密度比更高的锂电池 xff0c 而锂电池串联使用过程中 xff0c 为了保证电池电压的一致性 xff0c 必然会用到电压均衡电路 在这几年的工作过程中 xff0c 用到过几种电
  • 思岚科技激光雷达全面升级:RPLIDAR A1仅需900元,A2测距提升至8米

    思岚科技自2009年着手研发低成本激光雷达 xff0c 2014年面向全球推出了第一代产品RPLIDAR A1 xff0c 在6米测量半径内 xff0c 可完成每秒2000次激光测距 自推出至今 xff0c 已累计使用用户达上千家 时隔两年
  • 【产品评测】用RPLIDAR A2搭建gmapping

    以我自己的小车mrobot为例 1 硬件环境 xff1a mrobot小车 xff08 采用turtlebot create协议 xff0c 可以用turtlebot xff09 rplidar激光雷达 2 rplidar包下载 git c
  • 如何利用RPLIDAR A2进行多点触摸应用

    1 RPLidar激光雷达套件 2 RPlidar multi touch SDK 请点击 这里 下载 注意事项 注意 此SDK仅适用于RPLiDAR A2 型号 xff0c 其他型号暂不支持 xff0c 请知悉 1 请确保USB线不宜过长
  • ROS机器人编程学习(五)——ROS命令3

    第5章 ROS命令 本章主要讲解了ROS下的常用操作命令 xff0c 包括shell命令 执行命令 信息命令 catkin命令 功能包命令 由于这一章内容实在太多了 xff0c 因此博客分三节进行学习记录 本文主要记录catkin命令和功能
  • 什么是哈希码?它的作用是什么?

    哈希值 哈希算法将任意长度的二进制值映射为固定长度的较小二进制值 xff0c 这个小的二进制值称为哈希值 哈希值是一段数据唯一且极其紧凑的数值表示形式 如果散列一段明文而且哪怕只更改该段落的一个字母 xff0c 随后的哈希都将产生不同的值
  • 队列数据结构详解

    1 队列既可以用链表实现 xff0c 也可以用顺序表实现 跟栈相反的是 xff0c 栈一般用顺序表来实现 xff0c 而队列我们常用链表来实现 xff0c 称为链队列 xff0c 它是后入前出 头结点进 xff0c 尾结点出 xff0c 头
  • 数据结构之树的存储结构

    大家可能都知道 xff0c 存储结构有顺序存储结构和链式存储结构 很明显这两个结构不管哪一个 xff0c 都不能很好的表达数这种数据结构 xff0c 所以我们特此在这说一下数的存储结构 用这个树作为例子 xff1a 树的存储结构分为以下几类
  • 收发多径都考虑的情况

    0 完整源码获得方式 订阅MATLAB FPGA教程 xff0c 免得获得教程案例以及任意2份完整源码 收发多径都考虑的情况 clear all close all clc c 61 3e8 f0 61 150e6 载波频率 fd 61 1
  • Linux进程管理命令

    1 ps命令 ps aux xff1a 查看系统中的所有进程 xff0c 使用BS操作系统格式 ps le xff1a 查看系统中的所有进程 xff0c 使用LINUX标准命令格式 选项 xff1a a xff1a 显示一个终端的所有进程
  • C++信号概念

    信号 xff1a 它是操作系统传给进程的中断 xff0c 用来中断程序 xff0c 在Linux系统和Windows系统上可以用ctr 43 c产生中断信号 一 xff1a 穿插一个linux下各个快捷按键的信号区别 xff1a 1 ctr
  • Linux系统编程

    Linux系统中所见皆文件 bin xff1a 所存放二进制可执行文件 boot xff1a 存放开机启动程序 dev xff1a 存放设备文件 home xff1a 存放用户 etc xff1a 用户信息和系统配置文件 lib xff1a