如何运行linux shell程序】的更多相关文章

原文地址:http://www.sohu.com/a/138822796_610671 首先,我们从一个十分简单的例子test.sh开始吧: #!/bin/sh #this is a test. cd /tmp echo "hello,this is a test" 这是一个十分简单的程序,但是运行结果可能会让你吃惊哦! 这个时候,我们发现程序运行之后,并没有改变当前目录.(黑人问号???) 别着急,我们先了解一下linux程序如何运行. linux程序三种执行方法 运行linux程序…
Linux Shell 程序调试 Shell程序的调试是通过运行程序时加入相关调试选项或在脚本程序中加入相关语句,让shell程序在执行过程中显示出一些可供参考的“调试信息”.当然,用户也可以在shell程序中的适当位置加入一些echo命令用于调试与跟踪.   方法一:在运行脚本程序时加入调试选项: [用法]bash –选项 ./shellScript.sh 几个常用的调试选择项如下:         -e :如果一个命令返回一个非0退出状态值(失败),就退出.         -n : 不需要…
安卓是可以运行linux应用程序的,安卓系统原来就基于Linux.但是安卓已经把linux改头换面了.具体方法是安装Termux软件,然后就可以运行pkg命令安装软件包了,希望可以帮助到大家.…
shell程序介绍 1.查看我们的Linux(centos6.5为例)有多少我们可以使用的shell: [root@localhost bin]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh 系统某些服务在运作过程中,会去检查使用者能够使用的shells,而这些shell的查询就是由/etc/shells这个档案. 2.当我们登入Linux系统的时候,系统就会给我一个shell来工作,而…
设计一个Shell程序,在/$HONE/test目录下建立50个目录,即user1-user50, 并设置每个目录的权限,其中其他用户的权限为:读:文件所有者的权限为: 读.写.执行:文件所有者所在组的权限为:读.执行. mkdir -p /home/www/ chmod chhh 编写shell程序,添加一个新组为class1,然后添加属于这个组的20个用户, 用户名的形式为stdxx,其中xx从01到20. 提示: groupadd class1 添加用户组 useradd $usernam…
1.Java调用shell  Java语言以其跨平台性和简易性而著称,在Java里面的lang包里(java.lang.Runtime)提供了一个允许Java程序与该程序所运行的环境交互的接口,这就是Runtime类,在Runtime类里提供了获取当前运行环境的接口.其中的exec函数返回一个执行shell命令的子进程.exec函数的具体实现形式有以下几种:public Process exec(String command) throws IOExceptionpublic Process e…
在工作中情况会在碰到linux下进行执行shell的脚本,而就会使用shell的脚本,但经常使用的Windows的系统,而想在Windows电脑中进行直接shell的脚本,而不用再进行学习其它的脚本语言. 工具/原料   Windows git 方法/步骤   首先电脑中需要安装的是git的应用程序,安装完成之后,可以在开始菜单进行查看. 并需要配置好git的bin,配置环境变量,把bin的绝对路径复制到环境变量中path. 配置git的环境变量之后,在任意文件进行创建一个为mkdir.sh,文…
一.循环读取文件 循环读取文件方式有多种,推荐下列方法 while read line;do local include=$(echo ${line} | grep "filter" | wc -l) if [ ${include} -eq 0 ];then exit 1 fi done < /tmp/xxx 如上程序中,如果遇到某行内容不包含"filter",则退出程序. cat /tmp/xxx | while read line;do local inc…
目的 在windows环境下, 整理代码,代码中含有 .svn 文件夹, 此文件夹在所有受控目录下都存在, 需要统一删除. 但是对windows的shell不熟悉,想用linux rm来删除, 如何实现? 方法 1.找到运行linux shell的工具, cygwin限制为安装目录. git工具可以执行shell,正适合此场景. 2. 鼠标右键点击目录目录, 选择 “git bash here” 3. 执行如下命令: find . -name ".svn"  | xargs rm -r…
Linux服务器程序一般以后台进程形式运行,后台进程又称守护进程.它没有控制终端,不会接收到用户输入.守护进程的父进程通常是init进程(PID为1). Linux服务器程序有一套日志系统 Linux服务器程序一般以某个专门的非root身份运行 Linux服务器程序通常是可配置的 Linux服务器程序通常会在启动的时候生成一个PID文件并存入/var/run目录,以记录该后台进程的PID. Linux服务器程序通常需要考虑系统资源和限制. 1.日志 rsyslogd来处理系统日志…
  这里我首先会介绍一个Shell是什么,再介绍我的第一个Shell程序和从中总结的经验. 一.Shell是什么 在说我的这个Shell程序之前,还是先跟大家说说什么是Shell吧,相信Shell这个词大家一定听过很多了,但是它其实是什么东西呢?其实Shell是一个程序,我们在shell中输入一些命令,它就告诉操作系统内核我们想做什么,好让内核可以控制硬件来正确无误地工作.简单点来说就是,Shell的功能只是提供一个用户操作系统的接口,而这个shell则可以调用其他的程序来完成这些操作,只要能操…
shell是一种命令行解释器 对于一般用户,我们不能直接使用操作系统(kernel).而是通过 kernel的"外壳"程序,也就是所谓的shell,来与kernel沟通.    为什么不能直接使用kernel?    从 技 术 角 度 , Shell 的 最 简 单 定 义 : 命 令 行 解 释 器(command Interpreter)主要包含:    a. 将使用者的命令翻译给核心(kernel)处理.    b. 同时,将核心的处理结果翻译给使用者.    对于window…
fg.bg.jobs.&.ctrl+z   1.&    (最经常被用到)     这个用在一个命令的最后,可以把这个命令放到后台执行   2.ctrl + z     可以将一个正在前台执行的命令放到后台,并且暂停   3.jobs     查看当前有多少在后台运行的命令   4.fg     将后台中的程序调至前台继续运行     如果后台中有多个命令,可以用 fg %jobnumber 将选中的命令调出,%jobnumber 是通过 jobs 命令查到的后台正在执行的命令的序号(不是…
上节中已经对后台作业进行了简单处理,基本上要实现的功能已经完了,下面回过头来,对代码进行一个调整,把写得不好的地方梳理一下,给代码加入适当的注释,这种习惯其实是比较好了,由于在开发的时候时间都比较紧,都只是想办法去尽快实现,而肯定会有一些代码是写得不太好的,所以有时间的话最好是从头至尾将整个代码进行梳理,也许在梳理的过程中会发现许多不足的地方,好了,下面开始: 而这个信号安装函数是在init.c中实现的: 接下来进行shell循环: 它的实现是在parse.c中: 如注释所示,可以挪至init.…
之前已经花了不少篇幅学习了linux系统编程的很多知识点:文件与io.进程.信号.管道,而零散的知识点,怎么能够综合的串接起来是学习的一个很重要的目的,当然最好的方式就是用所学的知识点做一个项目了,所以接下来会实现一个小型的迷你shell程序,跟缩减版的系统shell程序,不要看着项目很小,但是五脏俱全,先来看一下我们要实现的功能: 如exit会退出程序等. 另外还能捕捉一些信号,如:ctrl+c,也能忽略一些信号,如:ctrl+\,禁止退出自己的程序,这里就不演示了. 下面就来从零开始一步步实…
Expect是Linux操作系统下的一个用来处理交互操作,系统默认是没有安装expect库,所以执行expect会提示找不到命令,需要手动安装,其它安装也比较简单,可以通过二进制源码包编译配置进行安装,也可以通过网络借助yum源来安装,yum源安装比较简单:我们下面借助Expect库来实现Linux交互式自动化运维操作,只需要执行脚本就可以实现自动化运维操作,不需要手动输入一些信息按确定,我们可以将交互过程写在一个脚本上,使之自动化完成.我们可以通过expect实现ssh自动登录.ftp自动登录…
整理自: https://www.runoob.com/?s=shell Shell 脚本(shell script),是一种为 shell 编写的脚本程序. 业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念. 由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身. 用shell脚本可以在linux中很方便的执行一些机械的操作. 这个hell…
最近在研究如何将.NET应用程序移植到非Windows操作系统中运行,逐渐会写一些文章出来.目前还没有太深的研究,所以这些文章大多主要是记录我的一些实验. 这篇文章记录了我如何利用NancyFx编写一个自托管(Self-host)的应用程序,并且将其发布到Linux系统中. 什么是NancyFx? 简单地说,这真是一个神奇的框架.它给自己的定义是:lightweigh web framework for .NET.不用不知道,一用吓一跳哈 http://nancyfx.org/ 与微软官方的AS…
linux命令行上默认运行path系统变量的路径的程序,所以我们在运行时命令时会在系统变量中查找,而发现查找完系统变量之后是不会再查找当前目录的. 有以下方式解决: 1.在运行当前目录的程序时,前面加上./,其中.表示当前目录 2.把程序的目录也加入到path的系统变量中…
上午登录服务器编译运行服务端程序的时候,学到了在命令后加上字符“&”后,退出shell,运行的命令可以继续运行.不解原因,并到网上搜索了以下,明白了点! 以下是搜索到的片段: & 放在启动参数后面表示设置此进程为后台进程 默认情况下,进程是前台进程,这时就把Shell给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的. 如: tianfang > run &    [1] 11319t…
linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果.例如,执行外部…
1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物理内存. 虚拟内存可以不用考虑,它并不占用实际物理内存. (2). top 命令也可以 其中  VIRT(或VSS)列  表示,程序占用了多少虚拟内存. 同 ps aux 中的 VSZ列 RES列 表示, 程序占用了多少物理内存.同 ps aux 中的RSS列 2.在linux下, 查看当前系统占用…
第一个shell脚本 1.       shell编程的方式 交互式shell编程 非交互式shell编程:执行的语句存放到一个文件 shell脚本:可以任意文件名,建议扩展名为sh 2.       shell脚本的语法(algol语法:basic|pascl) 字word:字面值(word),标示字(name),保留字 使用空格tab键 分隔 语句statement: 使用:与newline键(回车)等分隔 块block: 多种:流程控制块/函数块 元字符:容易歧义字符 | ; & ( )…
不看笔记,长时间不用自己都忘了,还是得经常看看笔记啊. 一个简单的shell程序 shell结构 1.#!指定执行脚本的shell 2.#注释行 3.命令和控制结构 创建shell程序的步骤 第一步:创建一个包含命令和控制结构的文件 第二步:修改这个文件的权限使它可以执行. 使用chmod u+x 第三步:执行shell sh /test/example.sh   Shell变量 变量:是shell传递数据的一种方法,用来代表每个取值的符号名 shell有两类变量:临时变量和永久变量 临时变量是…
微软在去年发布了Bash On Windows, 这项技术允许在Windows上运行Linux程序, 我相信已经有很多文章解释过Bash On Windows的原理, 而今天的这篇文章将会讲解如何自己实现一个简单的原生Linux程序运行器, 这个运行器在用户层实现, 原理和Bash On Windows不完全一样,比较接近Linux上的Wine. 示例程序完整的代码在github上, 地址是 https://github.com/303248153/HelloElfLoader 初步了解ELF格…
1.在Windows主机上安装X Server软件,如Cygwin带的XWin Server 2.在Windows主机上启动X服务器,并将Linux主机设为允许访问该Windows主机上的X服务器. #xhost +[IP of Linux host] 或 #xhost + //允许所有主机访问 3.在Windows主机上用SecureCRT远程登录Linux主机 下面的步骤有两种方法可实现: 一.设定DISPLAY环境变量 4.设置DISPLAY环境变量,即设定X Server的地址和显示接口…
我试图做什么:把我的破代码放到服务器上运行,并成功与客户端进行 socket通信. 预备环境:刚安装好 MySQL 和 JVM 的 Linux远程服务器(Debian 8)一台. 主要有如下几个步骤: 将编译好的代码打包成可执行的 jar包  在 Debian 上用 JDBC 连接 MySQL socket客户端进程连接 socket服务端进程 1.将编译好的代码打包成可执行的 jar包 参考资料:[IntelliJ IDEA 2017.3 Help] Packaging a Module in…
1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物理内存. 虚拟内存可以不用考虑,它并不占用实际物理内存. #ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 19360 1528 ? Ss Jul18 0:00 /sbin/initroot 2 0…
本文中的脚本适用范围: 1)检测某些IP地址是否被占用: 2)检测网络中某些设备是否存活: 3)在分配新的ip地址之前,批量检测环境中是否存在冲突的机器 以上检测基于ICMP Ping报文,要求所有的设备允许Ping,设备开通禁止ICMP策略,防火墙禁止ICMP报文等情况不在本文的考虑范围之内. 不多说,上代码: (一)windows 批处理脚本 ::autor lb ::date 2018 05 @echo off ::屏显当前的测试时间并输出到测试结果(详细日志和结果日志) echo %da…
本文主要描述的是:解决  Win10 Ubuntu子系统中运行  32bit Linux原生程序 报错  Exec format error . 问题来源于  在 Win10 Ubuntu子系统中运行  Linux原生交叉编译器  32bit  gcc  . 解压gcc 后直接运行 ./arm-linux-gcc -v     报错 :  Exec format error 按照常规方式   :  原生 Ubuntu 添加 32bit 运行环境 sudo dpkg --add-architect…