精华内容
下载资源
问答
  • 常用的系统调用命令
    千次阅读
    2019-10-11 08:20:30

    命令接口是方便人机交互设计的,你输入一个命令可能会使用到系统调用也可能不会,

    系统调用是程序使用的是方便程序设计使用的。

    更多相关内容
  • go调用系统命令(管道)

    千次阅读 2022-04-25 10:24:17
    func runCmdbyGrep(cmdStr string) string { cmd...= nil { return stderr.String() } else { return out.String() } } 监听udp端口命令 netstat -pln |grep 端口号 监听tcp端口命令: netstat -an |grep 端口号
    func runCmdbyGrep(cmdStr string) string {
    	cmd := exec.Command("bash", "-c", cmdStr)
    	var out bytes.Buffer
    	var stderr bytes.Buffer
    	cmd.Stdout = &out
    	cmd.Stderr = &stderr
    	err := cmd.Run()
    	if err != nil {
    		return stderr.String()
    	} else {
    		return out.String()
    	}
    }
    

    监听udp端口命令
    netstat -pln |grep 端口号
    监听tcp端口命令:
    netstat -an |grep 端口号

    展开全文
  • 操作系统【用户接口】命令解释程序的主要功能、系统调用与一般过程调用的不同之处、系统调用的参数传递方式、系统调用的处理步骤

    操作系统 第九章 接口——用户接口   系统安全

    命令解释程序:命令解释程序的主要功能;

    系统调用:①系统调用与一般过程调用的不同之处②系统调用的参数传递方式③系统调用的处理步骤

    命令解释程序的主要功能:

    (1)等待用户输入。

    (2)接收并识别命令。命令以回车符结束后,由终端处理程序提交给命令解释程序,由命令解释程序分析其合法性。

    (3)执行相应的命令处理程序。内部命令的处理程序已经包含在命令解释程序中,直接进行处理;外部命令必须由命令解释程序

    将命令指定程序装入内存,为之创建一个子进程后,由子进程完成相应的工作。

    ①系统调用与一般过程调用的不同之处:

    (1)运行在不同的系统状态。一般的过程调用,调用过程和被调用过程运行在相同的状态——系统态或用户态。

    系统调用的调用程序运行在用户态,被调用程序运行在系统态。

    (2)通过软中断进入。

    (3)返回问题。一般过程调用在被调用过程执行结束后,将直接返回到调用过程继续执行。系统调用采用抢占调度方式,在被调用过程执行后,必须对系统中所有要求运行的进程做优先权分析,只有当调用进程的优先权最高时,才返回到调用进程继续执行,否则将引起重新调度。

    ②系统调用的参数传递方式:

    (1)将系统调用号和参数作为操作数直接包含在系统调用指令中。

    (2)将系统调用号和参数存放在操作系统指定的寄存器中传递给系统。

    (3)将参数存放在一张参数表中,将指向该参数表的指针作为系统调用指令的操作数或存放在每个指定的寄存器中传递给系统。

    ③系统调用的处理步骤:

    (1)系统产生软中断(或陷入),由硬件进行现场保护,并通过中断向量转向系统调用总控程序,处理机的状态转系统态。

    (2)系统调用总控程序进行系统调用的一般性处理,根据调用号和系统内部的系统调用入口表转入相应的系统调用处理子程序。

    (3)在系统调用处理子程序执行完后,恢复被中断进程或新进程(若重新调度)的CPU现场,再返回被中断的进程或新进程,继续往下处理。

     

     

    展开全文
  • python调用系统命令的6种方法

    千次阅读 2021-08-16 23:37:52
    文章目录1、os.system2、os....作为胶水语言,Python可以很方便的执行系统命令,Python3中常用的执行操作系统命令有os.system()、os.popen()、subprocess.popen()、subprocess.call()、subprocess.run()、subprocess.g


    本文参考https://mp.weixin.qq.com/s/2XQKrKAUr54ER4SHwRYciQ,单纯为了学习理解

    作为胶水语言,Python可以很方便的执行系统命令,Python3中常用的执行操作系统命令有os.system()、os.popen()、subprocess.popen()、subprocess.call()、subprocess.run()、subprocess.getstatusoutput()六种方法。 也就是说依赖于os和subprocess库,可以实现对linux系统命令的操作,并分别有两种和四种实现方法。下面依次查看.

    1、os.system

    system函数可以将字符串转化成命令在服务器上运行;其原理是每一条system函数执行时,其会创建一个子进程在系统上执行命令行,子进程的执行结果无法影响主进程。

    其返回值是指令运行后返回的状态码,0表示指令成功执行,1表示失败,256表示没有返回结果,该方法适用于系统命令不需要输出内容的场景。

    用法:

    os.system("command")
    

    示例:

    import os
    a=os.system("lsb_release -a")#用a接收返回值
    

    在这里插入图片描述
    当然还有其它类似命令:

    import os
    os.system("ls")
    os.system("cd test && mkdir test1")
    

    总之,可以在os.system中执行shell中通常可以执行的命令。

    2、os.popen(command,mode)

    这种调用方式是通过管道的方式来实现,这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是’r’)。如果mode为’r’,调用该对象的read()或readlines()方法可以读取输出内容。

    用法:

    os.popen(command[, mode[, bufsize]])
    

    os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。

    a = os.popen("lsb_release -a")
    print(a.read())
    a= os.popen("ifconfig")
    print(a.read())
    

    在这里插入图片描述

    3、subprocess模块

    subprocess模块是python从2.4版本开始引入的模块,主要用来取代 一些旧的模块方法,如os.system、os.spawn、os.popen、commands.*等。官方推荐使用该模块执行系统命令,subprocess模块通过子进程来执行外部指令,并通过input/output/error管道,获取子进程的执行的返回信息。

    好处在于:运用对线程的控制和监控,将返回的结果赋于一变量,便于程序的处理。

    3.1 subprocess.Popen()

    使用Popen可以创建进程,并与进程进行复杂的交互。
    用法:

    child = subprocess.Popen(["cmd","arg1"...])
    

    常用参数说明:
    在这里插入图片描述
    示例:

    from subprocess import PIPE,Popen
    #返回的是Popen实例对像
    proc = Popen(
        'lsb_release -a',  # cmd特定的查询空间的命令
        stdin=None,  # 标准输入 键盘
        stdout=PIPE,  # -1 标准输出(演示器、终端) 保存到管道中以便进行操作
        stderr=PIPE,  # 标准错误,保存到管道
        shell=True)
    # print(proc.communicate()) # 标准输出的字符串+标准错误的字符串
    outinfo, errinfo = proc.communicate()
    print(outinfo.decode('gbk'))  # 外部程序(windows系统)决定编码格式
    print(errinfo.decode('gbk'))
    print(outinfo.decode('utf-8'))  # 外部程序(linux系统)决定编码格式
    print(errinfo.decode('utf-8'))
    

    在这里插入图片描述

    3.2 subprocess.call()

    执行指定的命令, 返回命令执行状态, 功能类似os.system(cmd),参数shell默认为False
    用法:

    subprocess.call("command")
    

    示例:

    import subprocess
    subprocess.call(["lsb_release","-a"])# 数组作为参数运行命令
    
    

    在这里插入图片描述

    3.3 subporcess.run()

    python3.5中新增的函数, 执行指定的命令, 等待命令执行完成后返回一个包含执行结果的CompletedProcess类的实例。run默认不会返回输出,只返回命令和执行状态。

    用法:

    subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, shell=False, timeout=None, check=False, universal_newlines=False)
    

    示例:

    import subprocess
    completed = subprocess.run(["lsb_release","-a"])
    print('returncode:',completed.returncode)
    

    在这里插入图片描述

    3.4 subprocess.getstatusoutput()

    执行cmd命令,返回一个元组(命令执行状态,命令执行结果输出)。

    返回状态码和结果,0表示成功

    示例:

    import subprocess
    ret, val = subprocess.getstatusoutput("lsb_release -a")
    print(ret)
    print(val)
    

    在这里插入图片描述

    4.实际用例

    用python为开启的服务写一个守护进程。
    定义一个每隔5秒就输出当前时间的python程序time.py

    import time
    while True:
        #输出年月日时分秒
        print(time.strftime('%Y/%m/%d %H:%M:%S',time.localtime(time.time())))
        time.sleep(5)
    

    运行结果为:
    在这里插入图片描述
    此时,要写一个守护程序来检查这个时间程序是否在运行,如果没有要重新启动。具体会用到linux的ps命令:

    ps aux | grep time.py |grep -v grep
    

    在这里插入图片描述
    所以用python来做就要执行shell命令:
    可以这样,定义check.py:
    用os.popen

    import os
    import time
    
    def execCmd(cmd):
        r = os.popen(cmd)
        text = r.read()
        r.close()
        return text
    while True:
        #检查程序是否在运行
        programIsRunningCmd = "ps -aux | grep time.py | grep -v grep"
        programIsRunningCmdAns = execCmd(programIsRunningCmd)
        #打印返回结果
        print(programIsRunningCmdAns)
        ansLine = programIsRunningCmdAns.split(' ')
        print(ansLine)
    
        # 判断打印结果
        if len(ansLine) > 2:
            print(time.strftime('%Y/%m/%d %H:%M:%S',time.localtime(time.time()))+"  time.py is running")
            #休息20秒,除低检查频率
            time.sleep(20)
        else:
            print("restarting time.py")
            os.system('nohup python time.py > time.log 2>&1 &')
            #0 表示stdin标准输入
            #1 表示stdout标准输出
            #2 表示stderr标准错误
    

    check.py也要后台进行运行:

    nohup python check.py > /dev/null 2>&1 &
    

    /dev/null 表示输出空设备,不显示。
    在这里插入图片描述
    其它几个命令就不试了,按需进行深度研究吧。

    实护程序如果换成shell脚本,check.sh:

    while true;
    do
            server=`ps -aux | grep time.py | grep -v grep`
            if [ ! "$server" ]; then
                #echo "time.py挂了" | ./start.sh     
                echo "time.py挂了,进行重启" 
                nohup python time.py > time.log 2>&1 &                      
                # break
            fi
            sleep 5
    done
    
    
    展开全文
  • Java 调用系统命令

    千次阅读 2019-03-16 15:08:15
    Java 调用系统命令 操作 通过 java.lang.Runtime 类用操作系统命令 然后调用run.exec()进程来执行命令程序 package com.framework.test; import java.io.BufferedReader; import java.io....
  • 什么是系统调用

    千次阅读 2022-05-05 23:27:17
    01、 系统调用是什么 系统内核通过包装一些能够实现特定功能的特殊硬件指令和硬件状态,即为内核函数,通过一组称为系统调用(system call)的接口呈现给用户,为系统调用而封装出来的API也达数百个。 为了保护设备,...
  • 在计算机中,系统调用(英语:system call),又称为系统呼叫,指运行在使用者空间的程序向 操作系统内核请求需要更高权限运行的服务。系统调用提供了用户程序与操作系统之间的接口( 即系统调用是用户程序和内核...
  • linux下使用man命令查看系统调用

    千次阅读 2019-02-24 17:32:46
    作为linux菜鸟,刚使用linux时,我们都知道可以用man命令来查看linux命令的用法,但是却不知道怎么查看系统调用函数的用法。 方法是: man 2 read 或者是man 3 read。 中间的数字是什么意思呢?是man的分卷号,...
  • 使用Java调用Linux系统命令

    千次阅读 2019-03-24 10:47:29
    我们这里封装一个类,用来调用系统命令,然后得到系统调用的返回结果。 我们先封装了一个返回结果类: package com.majing.learning.fileupload.common.process; public class ProcessResult { private ...
  • Linux操作系统10条最常用的基础操作命令玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用命令就可以了。当然你也...
  • JavaScript调用Linux系统命令

    千次阅读 2020-02-20 20:27:51
    在脚本内执行系统命令,我们采用开个子进程的方式 var exec = require('child_process').exec; var cmdStr = '这里输入系统命令'; exec(cmdStr ,function(err,stdout,stderr){ if(err) { console.log('get weather...
  • linux之strace命令跟踪进程的系统调用

    千次阅读 2019-06-04 21:00:50
    1 系统调用 操作系统的进程空间分为用户空间和内核空间,操作系统内核直接运行在硬件上,提供设备管理、内存管理、任务调度等功能,我们用户空间不能直接调用,所以就有了系统调用(运行在用户空间的程序向操作系统...
  • Linux常用命令,Linux常用基本命令大全

    万次阅读 多人点赞 2022-03-19 07:58:25
    Linux常用命令大全整理前言 最近在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令...一、系统信息Linux常用命令大全 arch 显示机器的处理器架构 uname -m 显示机器的处理器架.
  • C# 调用CAD系统命令

    千次阅读 2019-06-16 13:30:24
    C# 调用CAD系统命令 https://www.cnblogs.com/sly-tongtong/p/3564802.html AutoCAD.net: 如何实现裁剪功能--Trim https://blog.csdn.net/sx811125/article/details/6326066 用.NET执行AutoCAD自带命令 vip ...
  • 1.系统调用:  应用程序和内核间的桥梁,是应用程序访问内核的入口点;但通常情况下,应用程序通过操作系统提供的API进行编程而不是使用系统调用直接编程; linux的全部系统调用加起来大约只有250个左右。 2.API: ...
  • 为了从操作系统中获得服务,用户程序必须使用系统调用( System Call),系统调用陷入内核并调用操作系统。访管指令把目态切换成管态,并启用操作系统。当有关工作完成之后,在系统调用后面的指令把控制权返回给用户程序。...
  • java程序中如何调用linux命令

    千次阅读 2021-02-28 11:26:46
    java程序中如何调用linux命令作为一个Java开发人员,有些常用的Linux命令必须掌握。即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令。因为很多服务器上都是Linux系统。所以,要和服务器...
  • Python调用执行Linux系统命令(四种方法)

    万次阅读 多人点赞 2021-01-31 21:34:31
    Python调用执行Linux系统命令(四种方法) Python作为一门脚本语言,胶水语言,自然是有它的胶水特性的,就比如Python和Linux系统的结合,比如,在使用Python编写自动化运维脚本的时候,总免不了需要和Linux系统...
  • 操作系统实验一
  • 系统调用

    万次阅读 多人点赞 2019-03-02 17:47:48
    程序接口通常是由各种类型的系统调用所组成的,因而,也可以说,系统调用提供了用户程序和操作系统之间的接口,应用程序通过系统调用实现其与 OS 的通信,并可取得它的服务。 处理器(CPU)=运算器+控制器+...
  • 【操作系统】系统调用是什么

    千次阅读 2020-09-17 11:45:14
    01、 系统调用是什么 操作系统提供给程序员的接口就是系统调用。 进程在系统上的运行分为2个级别: (1) 用户态(user mode):用户态运行的进程可以直接读取用户程序的数据; (2) 系统态(kernel mode):系统态...
  • 系统调用和函数调用的区别

    千次阅读 2021-03-07 14:32:37
    系统调用与函数调用 什么是系统调用 百度百科的解释是: 由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。 什么...
  • Matlab常用工具箱的调用命令

    万次阅读 2017-09-20 21:38:36
    原文地址:Matlab常用工具箱的调用命令作者:实验室的博客 1.优化工具箱​​ 用途:优化问题 调用命令:在CommandWindow输入“optimtool”​,其窗口如下 图1Optimization Tool 2. 神经网络工具箱​ ...
  • 系统调用、POSIX、C库、系统命令和内核函数  (1)系统调用和POSIX。   系统调用虽然是内核和用户应用程序之间的沟通桥梁,是用户应用程序访问内核的入口点,但通常情况下,应用程序是通过操作系统提供的应用...
  • android 调用系统自带录音机

    千次下载 热门讨论 2013-10-10 13:53:59
    android 中调用系统自带的录音机进行录音
  • 系统调用类型(六大类)

    千次阅读 2020-03-14 17:07:26
    系统调用大致可分为六大类: 进程控制(process control) 文件管理(file manipulation) 设备管理(device manipulation) 信息维护(information maintenance) 通信(communication) 保护(protection) 进程...
  • 这绝对是整理的最全面最详细最认真最适合用来当笔记的Linux终端命令汇总的文章了
  • 一、os.system方法在子终端运行系统命令,可以获取命令执行后的返回信息以及执行返回的状态。执行后返回两行结果,第一行是结果, 第二行是执行状态信息,如果命令成功执行,这条语句返回0,否则返回1。...
  • PHP如何调用Linux系统下的命令

    千次阅读 2018-09-01 15:49:58
    在编程开发过程中,有时候难免会需要调用Linux系统下的 Shell 命令来辅助完成一些相关的操作,那么在 PHP 编程开发中如何才能调用系统下的shell命令呢? 下面介绍3种调用的方法: shell_exec( )、system( )、exec...
  • 熟悉类UNIX系统的常用系统调用fork(), exec(), exit()等,体会并理解类UNIX操作系统创建进程的机制。 通过进程的创建、撤销和运行加深对进程概念和进程并发执行的理解,明确进程与程序之间的区别。通过本实验提高...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,074,075
精华内容 429,630
热门标签
关键字:

常用的系统调用命令