我的编程空间,编程开发者的网络收藏夹
学习永远不晚

linux下如何执行shell命令

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

linux下如何执行shell命令

这篇文章将为大家详细讲解有关linux下如何执行shell命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

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

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

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

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

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

linux下如何执行shell命令

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

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

#demo.sh#!/bin/bashread -p "please input your name:" nameecho "hello $name"
添加执行权限 chmod +x demo.sh 执行如下

linux下如何执行shell命令

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

linux下如何执行shell命令

首先我这边是启动了两个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.shbash demo.sh 的区别。

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

linux下如何执行shell命令 linux下如何执行shell命令

其中靠上面的一张图片是执行 ./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与(.)

linux下如何执行shell命令 

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

关于“linux下如何执行shell命令”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

linux下如何执行shell命令

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

linux下如何执行shell命令

这篇文章将为大家详细讲解有关linux下如何执行shell命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。linux下执行shell命令有两种方法 在当前shell中执行shell命令在当前shell中
2023-06-09

Linux命令行循环执行shell命令

目录linux命令行,循环执行shell命令死循环命令格式效果普通计数循环循环10次效果L编程inux shell循环命令 while死循环的用法Linux命令行,循环执行shell命令 死循环 命令格式 while true编程 ;do
2023-01-03

linux下执行shell命令方法简介

linux下执行shell命令有两种方法在当前shell中执行shell命令在当前shell中产生一个subshell,在subshell中执行shell命令1.在当前shell中执行shell命令 主要就是在命令行中通过交互方式方式直接输
2022-06-04

java在linux本地如何执行shell命令

这篇文章主要讲解了“java在linux本地如何执行shell命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java在linux本地如何执行shell命令”吧!一.以springboot
2023-06-29

在Laravel中如何执行Shell命令

这篇文章主要介绍在Laravel中如何执行Shell命令,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!shell_exec() 和 exec() 都可以执行 shell 命令。如果你的命令不知道因为什么原因而崩溃,你
2023-06-21

如何解决node.js在Linux下执行shell命令、.sh脚本的问题

小编给大家分享一下如何解决node.js在Linux下执行shell命令、.sh脚本的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!首先,引入子进程模块var process = require(child_proce
2023-06-28

如何用shell脚本执行hadoop命令

要使用shell脚本执行Hadoop命令,可以按照以下步骤操作:1. 创建一个新的文本文件,并使用任何文本编辑器打开它(如vi、nano等)。2. 在文件的第一行添加以下内容,以告知操作系统要使用哪个解释器来执行该脚本:```bash#!/
2023-10-11

python 之 shell命令执行

python中有几种常用的执行shell命令的模块1,os.system()2, os.popen()3,pexpect.run()下面介绍3个模块的差别1,os.system() 直接执行>>> os.system('ls /tmp')h
2023-01-31

怎么使用golang执行Linux shell命令

这篇文章主要讲解了“怎么使用golang执行Linux shell命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用golang执行Linux shell命令”吧!1. 执行命令并获
2023-07-02

python之执行shell命令

[root@s141 ~]# pythonPython 2.7.5 (default, Sep 15 2016, 22:37:39) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2Type 
2023-01-31

java如何执行(命令执行)

执行java文件方法:(相关视频教程推荐:java视频教程)使用环境:jdk1.6文件目录:javac *.java会生成对应的*.class文件java *.class就可以执行了,.class可以省略1、t.java中是没有包的public class t
java如何执行(命令执行)
2019-10-16

linux shell命令执行顺序控制方法

本篇内容主要讲解“linux shell命令执行顺序控制方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux shell命令执行顺序控制方法”吧!&&命令1 && 命令2:如果这个命令执
2023-06-09

Android执行shell命令详解

一、方法 代码如下:/** * 执行一个shell命令,并返回字符串值 * * @param cmd * 命令名称&参数组成的数组(例如:{"/system/bin/cat", "/proc/version"}) * @param work
2022-06-06

在docker中执行linux shell命令的操作

在docker中执行shell命令,需要在命令前增加sh -c,例如:docker run ubuntu sh -c 'cat /data/a.txt > b.txt'否则,指令无法被正常解析。 补充:【Docker应用】 docker中执
2022-06-03

python 执行 shell命令 的几

os.system最近有个需求就是页面上执行shell命令,第一想到的就是os.systemos.system('cat /proc/cpuinfo')但是发现页面上打印的命令执行结果 0 或者 1,当然不满足需求了。 os.popen()
2023-01-31

编程热搜

目录