Linux操作系统之进程命令和库文件

2023-10-30

一、有关进程命令

1、ps命令:显示当前终端信息

![在这里插入图片描述](https://img-blog.csdnimg.cn/63595f24c9fa4609b86c2636beeeb89c.png

在这里插入图片描述

2、ps -ef命令:查看当前终端进程的详细信息

在这里插入图片描述
在这里插入图片描述

二、前台程序和后台程序模式的切换

1、首先了解前台后台命令

./main :前台运行进程
./main & :后台运行进程

2、前后台的切换

1)kill 命令

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2)进程前后台切换

bg % 任务号 进程/挂起程序,调到后台执行
fg % 任务号 将后台进程 调到前台执行

也可以直接用 bg 任务号、fg 任务号

在这里插入图片描述
在这里插入图片描述

三、runlevel 查看系统运行级别(了解)

在这里插入图片描述

四、静态库文件和动态库文件(面试可能会考)

1、什么是库文件?

库文件是计算机上的一类文件,提供给使用者一些开箱即用的变量、函数、或类。库文件分为静态库和动态库,静态库和动态库的区别在于程序的链接过程
windows中静态库扩展名:.lib
动态库扩展名:.dll
Linux静态库扩展名:.a
动态库扩展名:.so
Linux系统存储库一般在:/lib下面

2、静态库动态库的创建

静态库的格式必须为 lib***.a
1)add.c mul.c 编译 add.o mul.o
2)创建静态库:ar crv libfoo.a add.o mul.o
3)使用静态库
在这里插入图片描述
在这里插入图片描述
静态库大小
在这里插入图片描述
静态库特点:每一个程序静态库链接文件,生成的可执行文件都有一份副本(静态库文件),存储空间有些浪费

动态库的格式必须为 lib***.so
第一种方法:
1).c 编译生成 .o 文件
在这里插入图片描述
2) .o生成 共享库文件,生成 libfoo.so 库文件
在这里插入图片描述
3) 共享库的使用
3.1首先移动库文件:sudo mv libfoo.so /lib
3.2 使用命令gcc -o main main.c -lfoo在这里插入图片描述

第二种方法:修改环境变量
1.修改环境变量,使得动态链接路径由原来的 usr/lib 或 /lib 修改为自定义路径
命令:export LD_LIBRARY_PATH=.

2.gcc -o main main.c -L. -lfoo
默认使用动态库(当前路径,前提修改系统路径是当前路径下的)
否则若不修改系统配置,方法使用不通过,需要移动动态库至 usr/lib 或 /lib 下

3.查看变量值
echo $LD_LIBRARY_PATH

4.删除环境变量
unset LD_LIBRARY_PATH

动态库大小
在这里插入图片描述

总结:动态库文件链接生成的可执行文件小于静态库生成的可执行文件

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

Linux操作系统之进程命令和库文件 的相关文章

  • 如何回忆上一个 bash 命令的参数?

    Bash 有没有办法回忆上一个命令的参数 我通常这样做vi file c其次是gcc file c Bash 有没有办法回忆上一个命令的参数 您可以使用 or 调用上一个命令的最后一个参数 Also Alt can be used to r
  • 从哪里获取 iostream.h

    我正在尝试在 Linux 中做一些事情 但它抱怨找不到 iostream h 我需要安装什么才能获取此文件 这个标准头的正确名称是iostream没有扩展名 如果您的编译器仍然找不到它 请尝试以下操作 find usr include na
  • 在 ubuntu 中找不到 .android 文件夹 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在哪里可以找到 android在 Ubuntu 中 我想使用debug keystore 转到您的主文件夹并按 ctrl h 瞧
  • 如何使用 VSCode 调试 Linux 核心转储?

    我故意从我使用 VSCode 编写的 C 应用程序生成核心转储 我不知道如何调试核心转储 有没有人愿意分享这方面的经验 更新 我相信我现在已经可以使用了 我为核心文件创建了第二个调试配置 我需要添加指向生成的转储文件的 coreDumpPa
  • 为什么无论 -rdynamic 如何,backtrace 都不包含 Objective-C 符号?

    Update 我正在 Linux 上使用 GNU 运行时 问题是not发生在带有 Apple 运行时的 MacOS 上 更新2 我在 MacOS 上编译了 GNU 运行时并用它构建了示例 该错误确实not发生在带有 GNU 运行时的 Mac
  • 是否有 Ubuntu 10.04 存储库可以下载最新版本的 Eclipse?

    我还没有找到一个可以安装 Eclipse 4 2 Juno 的软件 默认的 Ubuntu 存储库 我使用的是 Ubuntu 10 04 建议我使用古老的 Galileo 版本 我在 Launchpad 上找到了 Eclipse 的页面 该页
  • Linux 中有没有一种轻量级的方法来获取当前进程数?

    我希望我的 基于 C C 的 程序显示一个数字指示器 指示本地系统上当前有多少个进程 将经常查询正在运行的进程数值 例如每秒一次 以更新我的显示 有没有一种轻量级的方法来获取该数字 显然我可以调用 ps ax wc l 但我不想强迫计算机生
  • BeagleBone Black 如何用作大容量存储设备?

    是否可以使用 BB 作为大容量存储设备 我希望将其连接到可以从 USB 连接 例如 USB 闪存驱动器 读取文件的音频播放器并充当包含一个特定文件夹的数据存储设备 及其子文件夹 从文件系统 如果可能 在连接到开发板的闪存驱动器上 正如设备规
  • grep 彩色线条

    我编写了一个简单的 PHP shell 脚本 它解析文件并输出某些元素 它产生大量的输出 采用不同的 bash 颜色 绿色表示正常 黄色表示警告 红色表示错误等 在开发过程中我想过滤掉一些行 例如 所有包含红色文本的行 我可以使用grep
  • 用于 e NetworkManager VPN 连接的 dbus 信号处理程序

    我需要开发一些在建立 VPN 连接时执行的 python 代码 VPN 由 NetworkManager 控制 我试图弄清楚如何为此使用 NM DBUS 事件 使用 dbus monitor system 我能够识别连接信号 signal
  • Ubuntu 上的 Tomcat8 .log.gz 已存在且未覆盖

    在我们的 Tomcat 服务器上 我经常看到如下警告 etc cron daily tomcat8 gzip var log tomcat8 app1 app1 log gz already exists not overwritten g
  • 有没有办法在 TypeScript 2+ 中全局添加类型定义?

    我有一堆简单的 ts files 不是项目 即独立的 ts 脚本 他们使用一些 Node js 功能 TypeScript 和节点类型定义通过安装 npm install g typescript npm install g types n
  • 如何使用 PyAudio 选择特定的输入设备

    通过 PyAudio 录制音频时 如何指定要使用的确切输入设备 我的电脑有两个麦克风 一个内置 一个通过 USB 我想使用 USB 麦克风进行录音 这流类 https people csail mit edu hubert pyaudio
  • 使用 Vala 和 GLib 的正则表达式

    有没有一个函数 比如http php net manual en function preg match all php http php net manual en function preg match all php 使用 GLibh
  • 为什么我的代码在编译用于分析 (-pg) 时在多线程下运行比在单线程下运行慢?

    我正在写一个光线追踪器 最近 我在程序中添加了线程 以利用 i5 四核上的附加内核 奇怪的是 应用程序的调试版本现在运行速度变慢 但优化后的构建运行速度比添加线程之前更快 我将 g pg 标志传递给 gcc 以进行调试构建 并将 O3 标志
  • Flex 的远程版本误解了我的规则

    我使用 flex 和 bison 编写了一个小汇编程序 可以在我的机器 ubuntu 10 10 上构建并运行正常 现在其他人正在尝试在 arch linux 上构建它 并且他们安装的 flex 产生了不同的 lex yy c 这是不匹配的
  • 在 Android 2.2 上运行 HelloCordova 时找不到类“android.webkit.WebResourceResponse”

    我尝试按照本教程进行操作 http docs phonegap com en 2 7 0 guide getting started android index md html Getting 20 Started 20with 20 An
  • 如何从 Dockerfile 安装 Python 3.7 和 Pip

    我正在尝试构建基于 Ubuntu 18 04 的自定义 Docker 映像 Ubuntu 预装了 Python 3 6 但我想 1 安装 Python 3 7 2 将其设置为默认 Python 版本 这样就可以使用python代替pytho
  • 设置 Vim 背景颜色

    当我尝试更改背景颜色时 vimrc或者直接在 Vim 中使用以下命令 set background dark 这根本不影响我的背景 也没有light选项 不过 当我运行 gvim 时 看起来还不错 有没有办法在不更改 Konsole 设置的
  • 使用 hcitool 扫描低功耗蓝牙?

    当我运行此命令时 BLE 设备扫描仅持续 5 秒 sudo timeout 5s hcitool i hci0 lescan 输出显示在终端屏幕中 但是 当我将输出重定向到文件以保存广告设备的地址时 每次运行该命令时 我都会发现该文件是空的

随机推荐

  • 数字电路设计之低功耗设计方法五:门控

    Clock gating 在时钟频率加快的同时 有时候会产生不必要的跳转 有的时候输入并没有改变 但是由于时钟的跳转 寄存器的值会被一遍一遍的刷新 可能输入才更改一次 结果时钟已经跳了几万次 这样的差距是可怕的 每次时钟上升沿 输出就要重新
  • 如何实现物料的柔性“强预留”和“弱预留”占用

    一 占料场景 车间实际领料过程中 需要预先对物料进行占用 预先将特定的物料分配至特殊的工单 优先级较高 需要预先占用物料 物料占用存在多种混合的形态 1 承诺优先 已经承诺的需求 优先占用物料 未承诺的需求后占用物料 且后承诺的需求占用物料
  • HC05-ESP8266实现控制LED的闪烁

    蓝牙设备是不可或缺的一部分 在这里我们将用HC05 ESP8266实现控制LED的闪烁 在本篇文章中 将HC 05蓝牙模块与流行的Wi Fi模块ESP8266连接 并通过蓝牙发送命令无线控制LED 该LED可以由继电器和AC设备代替 以构建
  • sort函数源码分析(超详细)

    直接呈现源码 if IS CALLABLE comparefn comparefn function x y if x y return 0 如果x与y取值相同返回0 x与y位置不变 if IsSmi x IsSmi y return Sm
  • 从一个程序中启动和关闭另一个程序

    今天正在编写的程序是一个插件 PlugIn 插件其实就是一个动态链接库 可以被主程序装入内存中 并调用插件中按照主程序规定编写的函数 由于插件受制于主程序 因此我必须另外提供一个程序可以扩展插件的功能 于是乎 我就编写了一个更加复杂的程序来
  • JSTS学习(一) - 简介

    JSTS是一个符合OGC规范的简单要素空间位置判定函数JavaScript库 JSTS也是Java类库JTS的一个接口 且与OpenLayer3具有互操作性 目前原生的OpenLayers3并不支持空间拓扑关系查询 此类库可以作为重要的补充
  • 前端面试题汇总

    前端面试题汇总 一 Html css js 1 Html5新增的语义化标签有哪些 语义化标签的优点 提升可访问性 SEO 结构清晰 利于维护 header页面头部 main页面主要内容 footer页面底部 Nav导航栏 aside侧边栏
  • pyqt5弹出提示框

    弹窗的分类 1 软件关闭提示弹框 2 信息提示弹框 3 错误提示弹框 4 信息警告弹框 5 关于弹窗 模块导入 from PyQt5 QtWidgets import QMessageBox 1 软件关闭弹框 这类的弹框一般是在整个软件关闭
  • Shell脚本入门 03:字符串与数组

    文章目录 目的 字符串 获取字符串长度 拼接字符串 截取字符串 替换字符串 判断与默认值 内嵌文档与内嵌字符串 内嵌文档 Here Document 内嵌字符串 Here String 数组 数组定义与使用 获取数组长度 拼接数组 删除数组
  • UBUNTU20.04配置qt+vtk+pcl+libtorch+cuda+cudnn+tensorrt开发环境

    总目录 1 环境及版本说明 2 下载并安装Qt 3 下载并编译vtk 4 下载并编译PCL依赖库 4 1 metslib 4 2 libpng 4 3 libpcap 5 编译PCL 6 cuda cudnn tensorrt安装与测试 6
  • 关于js导出excel的标题日期问题

    注意 获取日期放入标题和sheet中 不能用空格 否则不好使 var startTime startTime val substring 0 10 var endTime endTime val substring 0 10 var tit
  • STM32系统学习——TIM(基本定时器)

    一 定时器分类 STM32F1 系列中 除了互联型的产品 共有 8 个定时器 分为基本定时器 通用定时器和高级定时器 基本定时器 TIM6 和 TIM7 是一个 16 位的只能向上计数的定时器 只能定时 没有外部 IO 通用定时器 TIM2
  • qemu-linux-user ELF vs XCOFF 1

    最后更新2021 12 14 注 以下及以后本系列都是个人对相关技术在此时此刻的理解和研究 会根据学习深入 不断修正 但过去历史文章不见得会被 及时 修改订正 见谅 当然欢迎读者批评指正 本人虚心接受 但什么时候把文章修改正确 不好说 qe
  • 关于echarts无数据时显示问题

    我是做java开发的 最近公司让我做前端统计图表柱形图之类的 我用的就是echarts 版本是2 2 7 接下来 就说说我遇到的问题 因为我是小白 所以记录一下 ajax请求返回数据为空时显示暂无数据 echarts默认的是显示气泡 我换了
  • K-means聚类算法的应用以及实现

    K means 聚类算法属于无监督学习 它会将相似的对象归到同一个簇中 该算法原理简单 执行效率高 并且容易实现 是解决聚类问题的经典算法 尽管如此 任何一款算法都不可能做到完美无瑕 K measn 算法也有自身的不足之处 比如 K mea
  • k8s deployment 以root角色启动容器

    containers name image securityContext runAsUser 0 这样可以使容器以root用户运行 0指root用户的uid
  • C# 新增

    C 三层架构实现新增功能 第一步 用WPF实现用户界面代码 WPF中的代码就不详细说明了 现在只要和大家分享一下的是它们的后台的实现新增方法的代码 要实现我们的新增 并且新增数据 数据库必不可少 在数据库中写个新增方法的存储过程 用一个 t
  • [数学建模]MATLAB回归分析

    一 前言 第24届冬季奥林匹克运动会在北京隆重展开 我们要研究一个问题 奥运会东道主是否有优势 在历史数据中 我们发现好像东道主的国家在当年奥运会上获得金牌的数目比四年前非东道主国家获得的金牌数多 我们需要探究这个规律 二 历史背景 回归
  • 自学Python05-学会Python中的函数定义

    亲爱的同学们 今天我们将开始学习 Python 中的函数 函数就像一个魔法盒子 可以让我们在程序中执行一段代码 并且可以反复使用 这样 我们的程序就可以变得更加简洁和易于理解 现在 让我们一起来学习如何使用函数吧 首先 我们需要知道如何定义
  • Linux操作系统之进程命令和库文件

    文章目录 一 有关进程命令 1 ps命令 显示当前终端信息 2 ps ef命令 查看当前终端进程的详细信息 二 前台程序和后台程序模式的切换 1 首先了解前台后台命令 2 前后台的切换 1 kill 命令 2 进程前后台切换 三 runle