快捷搜索:

linux下执行shell命令方法简介

linux下执行shell命令方法简介

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

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

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

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

  当执行了./demo.sh之后,会看到有三个bash的进程,进程ID分别是2473、2505、2633.其中2473和2505的分别对应之前的两个shell的进程ID。多出了一个pid为2633的进程asp教程。这个进程其实就是我们说的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 demo.sh与bash demo.sh的区别。

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

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

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

  Linux file命令用于辨识文件类型。通过file指令,我们得以辨识该文件的类型。语法file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]file 是通过查看文件的头部信息来获取文件类型,而不是像 Win...查看详情

  Linux下的两种定时执行任务的方法:at命令,以及crontab服务,小编整理了关于这2个命令的详细用法,希望大家学习后能够更加深入的理解。(1)at命令假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了。设置at命令很简单,指示定运行的时间,那么就会在哪个...查看详情

  前言创建交互式shell脚本最常用的方法是使用菜单。提供各种选项可以帮助脚本用户了解脚本能做什么asp源码站长之家,不能做什么;通常菜单脚本会清空显示区域,然后显示可用的选项列表。本文给大家详细介绍了shell创建文本菜单与窗口部件的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细...查看详情

  简介: FTP(File Transfer Protocol, FTP)是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上...查看详情

  使用Shell脚本在Linux服务器上能够控制、毁坏或者获取任何东西,通过一些巧妙的攻击方法黑客可能会获取巨大的价值,但大多数攻击也留下踪迹。当然,这些踪迹也可通过Shell脚本等方法来隐藏。寻找攻击证据就从攻击者留下的这些痕迹开始,如文件的修改日期。每一个 Linu...查看详情

  前言相信大家应该都有所体会,shell脚本可以说作用非常大,在服务器领域,用shell操作事务可比手动点击要方便快捷得多了。虽然只是文字界面,但是其强大的处理功能,会让各种操作超乎想象。而且,也可以将这些习惯移植到日常的工作当中,提升办事效率。其实shell语法很简单,基本上就是...查看详情

  Linux 下没有百度网盘客户端,用浏览器下载速度慢得急死人鼠标移到链接处, 右键, 然后复制链接接着在终端里输入axel -n 50 -o filename.ext “粘贴链接到此处”axel 是下载程序名, -n 后面数字是线程数,多少自己决定, -o 后面下载到本机上 保持...查看详情

  一、概述为禁止普通用户su至root,需要分别修改/etc/pam.d/su和/etc/login.defs两个配置文件。二、详细配置(1)去除/etc/pam.d/su文件中如下行的注释:#auth required pam_wheel.so use_uid(2...查看详情

  Linux中的bz2压缩格式的实例详解一 语法bzip2 源文件压缩为bz2格式,不保存源文件bzip2 -k 源文件压缩之后保留原文件注意:bzip2命令不能压缩目录bzip2 -d 压缩文件解压缩,-k保留压缩文件bunzip2 压缩文件解压缩,-k保留压缩文件二...查看详情

  Linux链接命令的实例详解一 语法ln -s [源文件] [目标文件]命令英文含义:link功能描述:生成链接文件选项:-s 创建软链接 二 硬链接特征原文件和硬链接文件删除其中任何一个都没问题。三 硬链接实战[root@localhost ~]# cd test[root@l...查看详情

您可能还会对下面的文章感兴趣: