shell脚本ide
⑴ linux上启动python程序,shell脚本服务怎么编写
1. 只能够输入Python命令 。
在Python交互模式下输入Python代码,而不要输入系统的命令。
2. 在交互模式下打印语句不是必须的 。
在交互模式下不需要输入完整的打印语句,解释器自动打印表达式的结果,但是在文件中则需要写print 语句来打印结果。
3. 提示符的变换和复合语句 。
当在交互模式下输入两行或多行的复合语句时,提示符会由>>> 变成 …;如果要结束复合语句的输入并执行它,那么必须按下Enter键两次,复合语句才会被执行。
4. 交互提示模式一次运行一条语句 。
当你想测试某一条命令的时候,交互模式是一个很好的测试方法,输入然后回车即可看到执行结果,非常方便,当然对于复合语句来说,只要最后按两次Enter键即可运行代码,看到执行结果。
具体如下:
1、简介
Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。
2、基本信息
Linux[2]操作系统是UNIX操作系统的一种克隆系统,它诞生linux系统于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。
3、分区规定
设备管理在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等,IDE 或 SCSI 设备也不例外。Linux 把各种 IDE 设备分配了一个由 hd 前缀组成的文件;而对于各种 SCSI 设备,则分配了一个由 sd 前缀组成的文件。
用shell脚本怎样编译java工程
编译java工程一般直接用IDE或者用Ant、Maven之类的工具,很少有人用纯shell来编译java工程。正好遇到这样一个应该,用这篇博文做一下记录。
案例:用eclipse写了一个java project,然后编译打成jar包。
这个可以采用eclipse自带的Export就可以导出jar了。但是为了软件自动化等巴拉巴拉的原因,采用存shell脚本编译。
就是制定了运行的main-class(有public static void main(String args[])的类)。
将这个文件拷贝到iec104的根目录下,然后执行脚本compile.sh,内容如下:
#!/bin/bash
cur_dir=$(pwd)
echo $cur_dir
function do_compile_iec104(){
# echo $cur_dir
iec104=$cur_dir/iec104
iec104_src=$cur_dir/iec104/src
iec104_bin=$cur_dir/iec104/bin
# echo $iec104_src
# echo $iec104_bin
iec104_class=$cur_dir/iec104/class
# 将iec104的src目录下的所有java文件的名称存入到iec104/src/sources.list文件中
rm -rf $iec104_src/sources.list
find $iec104_src -name "*.java" > $iec104_src/sources.list
cat $iec104_src/sources.list
# $iec104_class是存放编译的class文件的目录
rm -rf $iec104_class
mkdir $iec104_class
# 这里开始编译java文件,注意这里的-encoding utf-8,刚开始并没有加入这个,然后就报了一堆错误,纠结了很久才发现,这里给各位提个醒了。
javac -d $iec104_class -encoding utf-8 -classpath $iec104_bin/classes12.jar:$iec104_bin/junit-4.10.jar:$iec104_bin/log4j-1.2.17.jar:$iec104_bin/mysql-connector-java-5.0.5-bin.jar:$iec104_bin/RXTXcomm.jar -g -sourcepath $iec104_src @$iec104_src/sources.list
# 由于用到了log4j,所以要将log4j的配置文件一并放入,如果没有用到,可以忽略这句
cp $iec104_src/log4j.properties $iec104_class
# 如果原来在iec104目录下有jar报就删除掉,因为要生成新的
rm $iec104/iec104.jar
# 这里要cd到存放class的目录,否则如果采用绝对路径编译,编译出来的jar包里面就是绝对路径了,这样就会有问题
# jar -cvfm $iec104/iec104.jar $iec104/MANIFEST.MF $iec104_class/*这样是错误的
cd $iec104_class
jar -cvfm $iec104/iec104.jar $iec104/MANIFEST.MF *
# 赋予可执行权限
sudo chmod a+x $iec104/iec104.jar
}
do_compile_iec104
exit 0
运行这个脚本(linux下)就可以编译并且在iec104的目录下就可以看到iec104.jar文件了。
这里补充下java命令的基本知识:
javac 用于编译Java文件,格式为:
java [options] [sourcefiles] [@files]
其中:
options:命令行选项;
sourcefiles:一个或多个要编译的源文件;
@files:一个或多个对源文件进行列表的文件,有时候要编译的文件很多,一个个敲命令会显得很长,也不方便修改,可以把要编译的源文件列在文件中,在文件名前加@,这样就可以对多个文件进行编译,对编译一个工程很有用,方便,省事。
有几个比较重要的选项:
-d 用于指定编译成的class文件的存放位置,缺省情况下不指定class文件的存放目录,编译的class文件将和源文件在同一目录下;
-classpath 可以简写成-cp,用于搜索编译所需的class文件,指出编译所用到的class文件的位置,如jar、zip或者其他包含class文件的目录,指定该选项会覆盖CLASSPATH的设定;
-sourcepath用于搜索编译所需的源文件(即java文件),指定要搜索的源文件的位置,如jar、zip或其他包含java文件的目录;
需要注意windows下和linux下文件路径分隔符和文件列表(即-classpath和-sourcepath指定的文件)分隔符的区别:
windows下文件路径分隔符用 ,文件列表分隔符用分号 ;
linux下文件路径分隔符用 / ,文件列表分隔符用冒号 :
⑶ 如何系统地学习Shell编程
步骤/方法
数据库管理系统(DBMSes)
诸如PostgreSQL、 Oracle、Microsoft SQL Server,以及Informix这种专业、耐用的数据库管理系统通过存储过程或存储函数提供了脚本功能。最受广泛认可的语言选项也许是Microsoft SQL Server和Sybase所使用的TransactSQL,以及Oracle所使用的PL/SQL。 PostgreSQL提供了一个名为PL/pgSQL的类PL/SQL的程序扩展到SQL里,但它也提供了包括PL/Perl、PL/Python、PL/Ruby和 PL/Tcl在内的其他语言的选择范围。
这种编程机会虽然限定于一组特定的问题领域,但如果你是一名DBA(数据库管理员)或你的工作涉及数据库开发报告,将会亲身体验到这是非常有用的。
插件
许多新的电脑游戏提供了编写和加载插件的功能。例如,“魔兽世界(World of Warcraft)”提供了一个使用Lua脚本语言的插件系统。随着Firefox声名鹊起和广泛使用,现代网页浏览器往往也提供灵活的插件系统;在最简单的情况下,Firefox的插件都是用JavaScript编写的。开放源码的浏览器在插件开发方面往往比封闭源代码的浏览器更具吸引力,并且Chromium浏览器的插件系统,很可能成为插件开发者们的第二大目标,这是因为谷歌Chrome浏览器高调的营销策略以及不设限的许可证(permissive licensing)政策。
其他许多应用程序具有插件和扩展系统,可以提供充分的机会来培养这些迅速发展的编码技能,甚至包括一些终端仿真器(terminal emulators)和基于控制台的文本编辑器,如Vim。(透露一点好消息:我贡献了一点代码到urlpicker项目。)
实践问题
您可以尝试解决代码任务中的通用清单所提供的问题,代码任务是特别为了给程序员提供实习机会而专业设计的。欧拉(Project Euler)是一个比较流行的、不论编程语言的项目,包括“一系列具有挑战性的数学/计算机编程问题”。欧拉项目收集了上百个问题,这些问题一般从易到难,足以让你忙碌很长一段时间。
其他例子包括RubyQuiz,它多年来一直在ruby-talk的邮件列表中广受欢迎。另外还有CodeKata,它是Dave Thomas的一个规模较小、寿命较短的项目。Dave Thomas是《The Pragmatic Programmer(程序员修炼之道)》一书的合着者之一。
这些选项不适合用作自我激励型探索性学习的任务,因为它们会让人挠破头皮,但如果发现其中的乐趣,它们可以和其它方法一样用于编程实践教育。
智能手机(Smartphones)
应用程序开发行业中最大的新热潮是智能手机的应用程序。这种装置通常需要开发人员使用一种可将装置的功能发挥到极至的特定语言作为应用平台,至少要以官方认可的方式进行。
智能手机开发体系的一个新兴产业正在崛起,即允许开发人员用非智能手机平台原生的其它语言编写自己的代码,然后转化为原生语言的应用程序。 因为不需要学习任何特定的智能手机平台的官方应用程序开发语言,Web应用程序也沾了光,成为智能手机应用程序开发的一种方法。选择语言甚于平台的另一个方案是使用像诺基亚的N900这样的设备,它运行Debian发行的Linux系统,可以运行的软件范围很宽——包括很多不是为智能手机设计的软件。
侧重于多种方法开发智能手机应用程序的书籍和在线教程纷纷出现,特别是Android和iPhone的设备。一些第三方框架将可以从HTML + JavaScript 到 Ruby 或 Python编写的代码“编译”为多种平台的“本地”应用程序,有时不仅包括智能电话平台,而且包括桌面系统。对这种情况也许最令人兴奋的是,这些框架和相关的IDE不倾向于试图解决所有的编程问题,这与同样出色的编程方式的主要框架,如Visual Studio和.NET框架有所不同。这使得人们有可能通过缩小选项至一个易于管理的问题领域来显着地简化开发过程。其结果是软件开发风格令初学者感到非常易于接受。
不足之处是,在学习如何编程时,你可能很难每天都编写新的智能手机应用程序。但是,如果您的智能手机的操作系统是类Unix系统(如N900的),同样的小工具开发项目在工作站和服务器中都非常有用。
电子表格
如果使用了附带强大宏系统的电子表格程序,你将拥有一个快速的方法来阅读其他人(或物)代码,并编写自己的代码。首先,将你执行次数多、通常需要采取数个繁琐步骤的任务记录成一个宏。接下来,打开宏的源代码,阅读并进行编辑,使之更适合于一般用途。这是一个非常有限的方法,不会带来多大的长进,但可能会帮助你上路,自然地喜欢上简单的脚本代码。
使用此类脚本的最常见的电子表格程序可能是微软Excel。Excel所使用的VBA是一种贫乏的语言,但是如果你在日常工作中大量使用Excel,这可能是无论如何你都该掌握的一种技能。OpenOffice.org使用了类似的宏系统,使用方法大致相同,LibreOffice也像微软Office一样,提供了学习代码的机会。
在任何情况下,编写程序的门坎都比编写简单的命令行shell脚本代码稍高,因为菜单选项和按钮需要点击才能启用。入门的成本类似于用市场上的一种主要IDE开始一个新项目,但是一个大幅缩水的“项目”。这会是一个不错的主意,可以确保这不仅仅是在日常开发环境中编写脚本的机会,甚至是加以利用就会很有帮助的。
Unix
如果你定期使用一些类UNIX系统,在寻找锻炼初期编程技能的方式时就具有巨大的优势。UNIX在简单脚本自动化方面提供了比任何其他家庭通用操作系统的更多的使用机会,这要感谢平台上管理脚本的极大灵活性。在最不复杂的情况下,一个管理脚本可能只不过是将一系列shell命令保存到一个文件中。在此基础上,可以利用简单的循环和条件结构、输入输出处理、文件读写、计划任务来进行扩展。
通过编写简单shell脚本爽过一把后,花一段时间来学习如何用Perl、Python和Ruby编写管理脚本对任何一个Unix系统管理员都是值得的。在Unix环境使用这些语言的关键技能包括通过UNIX管道和重定向访问文本流,处理命令行选项,读写文件,使用正则表达式搜索和操作文本。管理员也想知道编程的公共基础知识,比如处理输出,循环(或在某些情况下递归),以明确界定的标准为基础,通过使用条件判断结构编程来作出决策。
编写Unix命令行工具是一块沃土,有许多机会将脚本语言的巨大能力用于编程。由于管理脚本开发的灵活性和简约性要求,编写工具的范围可以从一些有用工具的最简例子到强大的服务器进程,甚至大规模并行任务自动化,负载平衡,启发式过滤,和一些其他有趣的问题解决作业,这些问题激起了世界上最好的程序员的兴趣。
虽然几乎所有通用操作系统都具有一些使用管理脚本的能力,其中相当一部分用途比较窄,另一些操作系统则比较均衡。Unix在管理脚本的适用条件方面高人一等,因为诸如主要Linux发行版和BSD Unix系统等Unix类系统共享相同的基本运行环境设计,他们都可以从管理脚本和脚本平台之间的可移植性中受益 - 只要你按可移植性要求来写这些脚本(如通过使用sh或Perl而不是bash,选择系统标准sysctl值而不是数据源的proc文件系统)。
这些工作也适用于除开非常高级,动态,解释型语言之外的其它语言。C,C++,Haskell,Objective-C,Objective Caml,以及大量其他选项正好合适各类简单Unix工具的编写任务。对于其中的许多语言,即使要完成像小型管理工具的这样简单的工程项目,也必须学会更广泛的技能,这一要求比Perl,Ruby和Bourne shell的这样的语言高。但这些任务与GUI应用程序开发、系统编程、其它经常使用(特别是在其他平台上的)的任务比起来,其艰巨性对编程初学者来说要小得多。
实际上,鉴于Unix哲学多年来提供了大量常用工具,这些工具严格分工(大部分),并工作良好,类UNIX环境对编程新手的价值中有一部分是充分利用Unix命令行环境力量,鼓励用户像程序员那样去思考,而非观众。
Web网页
这是一个危险的建议,通过玩JavaScript来学习编程。这不是因为JavaScript是一种不好的语言,而是因为追求动态用户体验的缘故,网页已经被不加限制地滥用JavaSciprt弄得乱七八糟,因而在网页上放纵程序员新手可能会被认为是不负责任的。在网页中JavaScript也有一些积极用法,而且可以让新手们对编写在浏览器中运行的桌面应用程序的想法愈来愈感兴趣,这给了我们在程序员职业生涯中尽早开始学习JavaScript的很多理由。
事实上,JavaScript是一种最常见的、单独的客户端网页脚本,这也意味着JavaScript可能是最简单的语言,通过阅读别人的代码就能学习。找到具有客户端动态元素的任何网页,然后右键单击并选择查看页面源代码的选项,你就会发现它布满了JavaScript的散落片段。对于更复杂的动态页面,(X)HTML的网页甚至可能引用一个纯代码的单独.js文件。
在把代码上传到公共访问的Web服务器前要细心检查;确保它是好的。如果你想让更多的有用脚本以本地方式来启动,浏览器扩展性可以让你将任意脚本应用到你查看的网页上——而且只适用于你个人的浏览体验。Firefox的Greasemonkey是一个例子。
⑷ shell脚本解释器环境可以写什么
解释型语言,只有解释器,不用编译 另外eclipse只是java的一个IDE,不是java编译器或者java字节码解释器 linux有很多种类的shell,例如最常用的bash,语法和c很像的csh,甚至连python这样的脚本语言都可以作为linux的系统shell
⑸ 如何写一个设shell脚本获得git的每一条commit修改了多少行代码
不知道你的文本格式是怎么样的...我猜想是像上面的文本内容连续输出在一个文本中,一开始是用“files changed”来匹配需要的行,然后用awk来取添加行的值和删除行的值,并分别输出到abc.txt和bcd.txt,lines是统计行数,最后再一个while循环...
随便写的,所以很难看,你看哪里需要改就自己改一下...
#!/bin/bash
ins=$(grep "files changed" test.txt | awk -F" " '{print $4}' > abc.txt)
del=$(grep "files changed" test.txt | awk -F" " '{print $6}' > bcd.txt)
lines=$(grep "files changed" test.txt | wc -l)
INS() {
local sum=0
local i=1
while [ "$i" -le "$lines" ]
do
b=$(sed -n "$i p" abc.txt)
sum=$(($sum+$b))
i=$(($i+1))
done
echo $sum
}
DEL() {
local sum=0
local i=1
while [ "$i" -le "$lines" ]
do
c=$(sed -n "$i p" bcd.txt)
sum=$(($sum+$c))
i=$(($i+1))
done
echo $sum
}
INS
DEL
⑹ win10中的Windows PowerShell是什么有哪些作用
即开发代号为monad的命令行外壳和脚本系统管理工具。
作用:
powershell是一个基于.net的命令行管理端,它像是一个极度增强版的cmd.exe,之前曾在windows
server
2008中包含,它拥有较高的管理能力,并可以直接代替远程管理工具。
第二版的powershell拥有增强的内置visual
studio脚本开发环境(ide),可以让管理更为方便和人性化,并且在扩展性,数据监测,授权上也作出了改进。
怎样卸载windows
powershell
1.0:
1.windows
xp-sp2和windows
server
2003:
在添加/移除程序中,选择显示更新。删除适用于您系统的powershell更新:
kb926139
(en-us),kb926140
(localized),
kb926141
(mui
pack),
2.windows
vista:
控制面板->程序和功能->安装更新。卸载powershell更新:
kb928439,
3.windows
server
2008:
从windows
server
2008的beta3起,powershell
1.0作为内置可选组建。
如果你激活了powershell
1.0,在你安装powershell
v2
ctp之前必须关闭此特性。启动server
manager选择删除features的选项。从列表中选择powershell,禁用此特性。