首页 > 系统相关 >Linux man 的使用

Linux man 的使用

时间:2023-07-26 11:11:19浏览次数:43  
标签:printf 调用 使用 系统 内核 Linux man 库函数

前言

man命令 是Linux下的帮助指令,man更为强大的是,不仅可以查看Linux中命令的使用帮助,还可以查看软件服务配置文件、系统调用、库函数等帮助信息。

而man命令也并不是英文单词“man”的意思,它是单词manual的缩写,即使用手册的意思。下面对man手册进行介绍。

man

man手册页文件存放在/usr/share/man目录下。

语法:

man(选项)(参数)

选项

-a 在所有的man帮助手册中搜索
-d 主要用于检查,如果用户加入了一个新的文件,就可以用这个参数检查是否出错
-f 显示给定关键字的简短描述信息
-p 指定内容时使用分页程序
-M 指定man手册搜索的路径
-w 显示文件所在位置
View Code

 

linux中的man 1,2,3 都代表什么

man printf 可以看到有两行输出。一个后面带数字1, 一个后面带数字3,这些数字是什么意思?

1 用户在shell环境可操作的命令或执行文件,如ls
2 系统内核可调用的函数与工具等
3 一些常用的函数(function)与函数库(library),大部分为C的函数库(libc),如printf()
4 设备文件说明,通常在/dev下的文件,如tty
5 配置文件或某些文件格式
6 游戏(games)
7 惯例与协议等,如Linux文件系统,网络协议,ASCII code等说明
8 系统管理员可用的管理命令
9 跟kernel有关的文件,内核例程
View Code

常用的是1,2,3

1,是命令,就是命令行里面输入的命令(上面的 printf(1)可以在 shell 中打印字符串)

2,系统调用,系统的函数,系统版本不同,也许就有区别了

3,库函数,大都是c的库函数,基本所有设备都是支持的.(上面的 printf(3)可以在 C 程序中打印字符串)

 

库函数的底层实现一般是系统调用.

一般情况下,推荐优先使用库函数...

比如:

输出printf()库函数 ,里面调用了write()系统调用

打开fopen()库函数 ,里面调用了open()系统调用

 

 

系统调用和库函数的区别

系统调用通常不可替换,而库函数通常可替换

普通的库函数调用由函数库或用户自己提供,因此库函数是可以替换的。例如,对于存储空间分配函数malloc,如果不习惯它的操作方式,我们完全可以定义自己的malloc函数。

不要误解认为malloc是系统系统,这是错的。因为malloc只是个库函数,内部是使用brk或者sbrk系统调用来实现内部分配。

系统调用运行在内核空间,而库函数运行在用户空间

因为系统调用属于内核,和库函数不属于内核。因此,如果当用户态进程调用一个系统调用时,CPU需要将其切换到内核态,并执行一个内核函数。

传统的方式是引发“int $0x8o”中断。内核捕获中断后,会把运行态从用户态切换到内核态。

一些其他的区别

1、库函数可以很方便的调试;而系统调用很麻烦因为运行在内核。

2、一个库函数执行时间是计算用户层次时间(user level time);但是系统调用的运行时间是作为系统时间来计算的;

 

标签:printf,调用,使用,系统,内核,Linux,man,库函数
From: https://www.cnblogs.com/FBsharl/p/17581921.html

相关文章

  • Vue中使用Echarts可视化图表
    1、首先在项目中安装Echarts1npminstallecharts2npminstallecharts--save 2、在项目main.js中全局引入1importechartsfrom'echarts'2//挂载到vue原型上3Vue.prototype.$echarts=echarts 1//全局引入echarts2import*asechartsfrom'echar......
  • 使用filesystemobject获取文件夹及子文件夹下所有文件名
    1OptionExplicit2Dimi3Functionsda(path)4Dimfso5Dimf6Dims7Dimff8Setfso=CreateObject("scripting.filesystemobject")9Setf=fso.getfolder(path)10ForEachsInf.Files11i=i......
  • Linux版python安装教程
    如果你希望在CentOS上使用源码编译的方式安装Python3,请按照以下步骤进行操作:安装编译工具和依赖项:在开始编译前,需要安装一些编译工具和Python3的依赖项。在终端中运行以下命令:sudoyumgroupinstall"DevelopmentTools"sudoyuminstallopenssl-develbzip2-devel......
  • N1nEmAn-2023集训wp&&后续pwn-wp
    week12022-12-28WP0x00T1reverse3前几天没注意到要发wp,现在补一下。最近在学汇编,pwn题没做新的了。想到之前了解到hws的pwn会考花指令,听hjx他们说那是re的内容,就特意去做了点re。题目来源是buuctf的reverse3。0x01wp第一步,查壳没壳,32位,准备丢ida第二步,反编译观察到......
  • linux服务器性能调优(udp为主)
    udp的好处很明显,效率高,减少了建立连接的流程,减少了报文头的占比,也减少了维护连接的开销。缺点就是不稳定,会丢包。还有就是由于udp的高效,导致用于udp的一些应用开发,并发都比较大,更容易丢包。io复用SO_REUSEADDRSO_REUSEPORT创建listener用来监听数据时,有时候需要配置io复用。也......
  • 使用相对路径创建快捷方式
    1.首先将可执行程序发布到桌面快捷方式。2.将快捷方式拖放到自己想要的位置。3.右击-属性,修改目标为:%windir%\system32\cmd.exe/cstartBin\Debug\Practice.exe,注意,这个Bin和快捷方式在同一目录。4.起始位置设为空。5.点击应用-确定。 ......
  • Mahout的安装配置与使用
    Mahout是Apache旗下的一个机器学习和数据挖掘的分布式框架,包括聚类,分类,协同过滤,关联规则挖掘等经典的算法。  1.安装Maven  wgethttp://apache.etoak.com//maven/maven-3/3.0.4/binaries/apache-maven-3.0.4-bin.tar.gz下载最新版本的Maven.tarxvfapache-maven-3.......
  • playwright使用
    安装时问题CMD执行playwrightinstall时出现DownloadingChromium115.0.5790.24(playwrightbuildv1067)fromhttps://playwright.azureedge.net/builds/chromium/1067/chromium-win64.zipError:unabletoverifythefirstcertificateatTLSSocket.onConnectSec......
  • linux查看进程命令
    linux查看进程命令一、Linux查看进程命令:PS命令ps命令是一个相当强大地Linux进程查看命令.运用该命令可以确定有哪些进程正在运行和运行地状态、进程是否结束、进程有没有僵死、哪些进程占用了过多地资源等等.总之大部分信息均为可以通过执行该命令得到地。PS命令语法:ps[选......
  • 使用itext生成PDF表格报表
    使用iText生成PDF表格形式报表1、引用JAR包<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.3</version></dependency> itext5是开源的,可以免费使用2、开始创建PDFpackagecom.example......