返回顶部
首页 > 资讯 > 操作系统 >linux下执行shell命令方法简介
  • 242
分享到

linux下执行shell命令方法简介

命令简介方法 2022-06-04 21:06:36 242人浏览 泡泡鱼
摘要

linux下执行shell命令有两种方法 在当前shell中执行shell命令 在当前shell中产生一个subshell,在subshell中执行shell命令 1.在当前shell中执行

linux下执行shell命令有两种方法

在当前shell中执行shell命令 在当前shell中产生一个subshell,在subshell中执行shell命令

1.在当前shell中执行shell命令

主要就是在命令行中通过交互方式方式直接输入shell命令,命令行直接执行给出结果.比如这样:

查看图片

2.在当前shell中产生一个subshell,在subshell中执行shell命令

比如我们把shell写成shell脚本的方式来运行,这个时候会先启动一个subshell来代替当前的shell,然后执行shell脚本比如


#demo.sh

#!/bin/bash
read -p "please input your name:" name
echo "hello $name"

添加执行权限 chmod +x demo.sh 执行如下 

查看图片

这个脚本功能很简单,就是输出一行话,提示用户输入自己的名字,然后脚本输出hello xxx。我主要想说下执行结果及其分析。先来一张图:

查看图片

首先我这边是启动了两个shell,这个时候左右两个shell的pid号分别是2473和2505,并且这两个进程都是从一个叫做进程ID号为2465的进程中fork出来的子进程。

当执行了 ./demo.sh 之后,会看到有三个bash的进程,进程ID分别是2473、2505、2633.其中2473和2505的分别对应之前的两个shell的进程ID。多出了一个pid为2633的进程。这个进程其实就是我们说的subshell。看下这个pid为2633的进程的父进程的进程号是2473,就是说是从pid为2473的shell进程中启动一个subshell,subshell的进程ID号为2633。当我们输入完warjiang,之后,脚本继续执行,执行完毕之后,subshell进程退出。

这个时候我们再去查看进程的时候,就会发现少了pid为2633的进程,也就是少了前面那个subshell。

讲到这里,对于在当前终端中执行shell与在当前终端中启动subshell执行shell两种方式执行shell也是有了一定程度的了解。下面将引出source命令与在终端中执行shell脚本的区别。

source与bash的区别

严格的来说,我这个标题有毒,因为source命令本来就是属于bash中的一部分。我这里其实想说的是 source demo.sh 与 bash demo.sh 的区别。

相信大家但凡有linux下的开发运维经验的codeframer都会配置过什么jdk等等之类的环境变量,大家一定都会记得自己都执行过 source ~/.bash.rc ,那么这个source到底是什么.先把这个问题放一放,我们先往下看.还是上面的那个demo.sh的脚本.下面我们来比较一下 bash demo.sh(或者先执行chmod +x demo.sh 再执行./demo.sh) 与 source demo.sh 的区别。

查看图片 查看图片

其中靠上面的一张图片是执行 ./demo.sh 的截图,靠下面的一张是 source demo.sh 。比较两张图片,显然,两张图片最大的区别在于,上面一张图片多了一个subshell也就是pid为2633进程的出现再消失的过程。所以如果执行执行shell脚本,当前命令行会自动产生一个子进程,当执行完脚本之后,会自动把这个子进程关闭。但是souce命令不会产生新的子进程,而是在当前终端进程中读取并执行shell脚本。

所以 source与bash的最大区别在于source不用启动新的shell,而bash需要启动新的shell

再回到上面那个 source ~/.bashrc ,其实相当于在当前的终端中执行 ~/.bashrc ,而.bashrc文件中的内容就是中关于export PATH部分的语句,也就是设置PATH变量,执行 source ~/.bashrc 让配置的新的环境变量PATH在当前终端中生效.

source与(.)

查看图片

这边的话,~/.bash_aliases一般用过alias的持久化,记录用户的alias记录。直观上来看,执行 . ~/.bash_aliases 应该是设置一些aliases中的变量别名。那么这个 . 是什么.其实这里的 . 与 source 的作用是一样,表示在当前的终端中执行脚本,这样就可以让当前的终端共享aliases中的alias配置信息

--结束END--

本文标题: linux下执行shell命令方法简介

本文链接: https://lsjlt.com/news/18988.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • linux下执行shell命令方法简介
    linux下执行shell命令有两种方法 在当前shell中执行shell命令 在当前shell中产生一个subshell,在subshell中执行shell命令 1.在当前shell中执行...
    99+
    2022-06-04
    命令 简介 方法
  • linux下如何执行shell命令
    这篇文章将为大家详细讲解有关linux下如何执行shell命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。linux下执行shell命令有两种方法 在当前shell中执行shell命令在当前s...
    99+
    2023-06-09
  • shell命令行参数用法简介
    一个shell脚本,它本身的命令参数是什么样呢?首先 ,shell脚本编程和python等脚本编程一样可以使用参数;其次 ,shell参数分为位置参数和内部参数;其中,位置参数 :是由系统提供的参数,就是我...
    99+
    2022-06-04
    命令行 参数 简介
  • Linux命令行循环执行shell命令
    目录linux命令行,循环执行shell命令死循环命令格式效果普通计数循环循环10次效果LLinux命令行,循环执行shell命令 死循环 命令格式 while true ;do <command>; don...
    99+
    2023-01-03
    linuxshell循环执行命令 循环执行shell命令 linux命令行 Linuxshell循环命令 while死循环
  • linux shell命令执行顺序控制方法
    本篇内容主要讲解“linux shell命令执行顺序控制方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux shell命令执行顺序控制方法”吧!&&命令1 &&...
    99+
    2023-06-09
  • python执行shell命令的方法
    os模块os.system方式:import os os.system('top') os.system('cat /proc/cpuinfo')说明这个调用相当直接,且是同步进行的,程序需要阻塞并等待返回。返回值是依赖于系统的,直接返回系...
    99+
    2023-01-31
    命令 方法 python
  • linux shell命令执行顺序的控制方法
    &&命令1 && 命令2:如果这个命令执行成功&&那么执行这个命令。[jb]/usr/xxxx/ytcclb>ls -l test.sql-rwxr--r-- 1 xxxx group 225 Nov...
    99+
    2022-06-04
    顺序 命令 方法
  • shell脚本命令行参数简介
    之所以用到命令行参数,关键在于shell脚本需要与运行脚本的人员进行交互。bash shell提供了命令行参数添加在命令后面的数据值)、命令行选项修改命令行为的单字符值)和直接读取键盘输入。 1、命令行参数...
    99+
    2022-06-04
    命令行 脚本 参数
  • 详解golang执行Linux shell命令完整场景下的使用方法
    目录1. 执行命令并获得输出结果2. 将stdout和stderr分别处理3. 异步执行命令4. 执行时带上环境变量5. 预先检查命令是否存在6. 两个命令依次执行,管道通信7. 按行读取输出内容8. 获得exit co...
    99+
    2022-06-30
    golang执行Linuxshell golang执行shell命令
  • JavaJSch远程执行Shell命令的方法
    目录背景JSch简介使用示例需要注意的点参考文档背景 项目需求,需要远程 ssh 登录到某个节点执行 shell 命令来完成任务。对于这种需求,如果不用 java 程序,直接 lin...
    99+
    2024-04-02
  • java在linux本地执行shell命令的实现方法
    目录一.以springboot为例,建立代码1.IExecCommandServer:2.ExecCommandServerImp:3.ExecCommandController:二...
    99+
    2024-04-02
  • Java执行shell命令
    Java执行shell命令 前言一、案例场景原因解决方案 二、拓展创建临时脚本,执行shell命令 三、总结 前言 java执行shell命令的方式有很多种,但是在应...
    99+
    2023-09-05
    java 开发语言 linux
  • linux下chgrp和newgrp命令简介
    这篇文章主要讲解了“linux下chgrp和newgrp命令简介”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux下chgrp和newgrp命令简介”吧!使用 chgrpchgrp 只...
    99+
    2023-06-16
  • node执行cmd或shell命令使用介绍
    目录引言一、node原生模块:child_process使用二、npm包:shelljs引言 在实现前端工程化的过程中,经常需要在一个js脚本中去执行其他node/npm或者其他sh...
    99+
    2024-04-02
  • python执行使用shell命令方法分享
    1. os.system(shell_command) 直接在终端输出执行结果,返回执行状态0,1 此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果com...
    99+
    2022-06-04
    命令 方法 python
  • Python3 执行Linux Bash命令的方法
    和之前C++执行linux Bash命令的方法 一样,python依然支持system调用和popen()函数来执行linux bash命令。 方法一:system调用 #仅仅在一个子终端运行系统命令,而不能获取命令...
    99+
    2022-06-04
    Python3 Linux Bash命令
  • node.js在Linux下执行shell命令、.sh脚本的问题
    首先,引入子进程模块 var process = require('child_process'); 执行shell命令 调用该模块暴露出来的方法exec process.exec(...
    99+
    2024-04-02
  • Android中执行java命令的方法及java代码执行并解析shell命令
    android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析。 android的程序基于java开发,当我们接上调试器,执行adb shell,就可以...
    99+
    2022-06-06
    JAVA 方法 shell Android
  • Linux下rm命令的简单介绍
    本篇内容介绍了“Linux下rm命令的简单介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!rm 的那些事首先,这条命令是用来清除 ...
    99+
    2023-06-05
  • Linux下使用SSH远程执行命令方法收集
    说明:可以做SSH免密登录之后执行,这样可以省去每次执行输入密码的提示。 对于简单的命令: 如果是简单执行几个命令,则: ssh user@remoteNode "cd /home ; ls" 基本能完成常用的对于远程节...
    99+
    2022-06-04
    linux ssh 执行命令 远程执行命令
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作