导航

LINUX学习笔记(四)

Posted on 2021-06-16 23:07  rossxp  阅读(62)  评论(0编辑  收藏  举报

1,linux下的javaEE开发

(1)安装JDK

 第七步配置环境变量:echo $PATH 显示当前PATH环境变量,该变量的值由一系列以冒号分隔的目录名组成。如:/usr/local/bin:/bin:/usr/bin。当我们执行程序时,shell自动跟据PATH变量的值去搜索该程序。比如我们现在的工作目录是根目录/ ,有一个程序sunrise在/bin/目录下,我们可以在命令行输入/bin/sunrise 这样来执行它,还可以直接输入sunrise,这时shell会自动去寻找sunrise这个程序所在的完整路径,找到之后才会去执行该程序。shell在搜索时先搜索PATH环境变量中的第一个目录,没找到再接着搜索,如果找到则执行它,不会再继续搜索。

使用方法如下:

 配置环境变量的目的是为了方便在控制台编译和运行java程序,不必进入到java的程序目录(安装目录)里面去运行。如果我们不配置环境变量,就会出现执行程序十分麻烦或者出错的情况,如下所示:

 按照上面的使用方法加一个环境变量:

 然后这时候要执行第十步让环境变量文件生效。

 之后就可以执行jdk里面的javac了,从而可以编写程序了。

(2)安装TOMCAT

Tomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且开源免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范。

 

 如果防火墙把8080端口关闭了,要先打开

 成功之后,tomcat默认访问的是linux的tomcat文件夹下的webapps/Root,比如在该文件夹下写一个html文件htest1,那么输入【ip:8080:htest1]就可以直接打开这个网页。

 

 

 (3)安装数据库mysql

2,shell脚本

图形界面和命令行要达到的目的是一样的,都是让用户控制计算机。

然而,真正能够控制计算机硬件(CPU、内存、显示器等)的只有操作系统内核(Kernel),图形界面和命令行只是架设在用户和内核之间的一座桥梁。

由于安全、复杂、繁琐等原因,用户不能直接接触内核(也没有必要),需要另外再开发一个程序,让用户直接使用这个程序;该程序的作用就是接收用户的操作(点击图标、输入命令),并进行简单的处理,然后再传递给内核。如此一来,用户和内核之间就多了一层“代理”,这层“代理”既简化了用户的操作,也保护了内核。

用户界面和命令行就是这个另外开发的程序,就是这层“代理”。在Linux下,这个命令行程序叫做 Shell

Shell 除了能解释用户输入的命令,将它传递给内核,还可以:

  • 调用其他程序,给其他程序传递数据或参数,并获取程序的处理结果;
  • 在多个程序之间传递数据,把一个程序的输出作为另一个程序的输入;
  • Shell 本身也可以被其他程序调用。


由此可见,Shell 是将内核、程序和用户连接了起来。

Shell 本身支持的命令并不多,但是它可以调用其他的程序,每个程序就是一个命令,这使得 Shell 命令的数量可以无限扩展,其结果就是 Shell 的功能非常强大,完全能够胜任 Linux 的日常管理工作,如文本或字符串检索、文件的查找或创建、大规模软件的自动部署、更改系统设置、监控服务器性能、发送报警邮件、抓取网页内容、压缩文件等。

Shell 并不是简单的堆砌命令,我们还可以在 Shell 中编程,这和使用 C/C++、Java、Python 等常见的编程语言并没有什么两样。

Shell 虽然没有 C/C++、Java、Python 等强大,但也支持了基本的编程元素,例如:

  • if...else 选择结构,switch...case 开关语句,for、while、until 循环;
  • 变量、数组、字符串、注释、加减乘除、逻辑运算等概念;
  • 函数,包括用户自定义的函数和内置函数(例如 printf、export、eval 等)。


站在这个角度讲,Shell 也是一种编程语言,它的编译器(解释器)是 Shell 这个程序。我们平时所说的 Shell,有时候是指连接用户和内核的这个程序,有时候又是指 Shell 编程。

Shell 主要用来开发一些实用的、自动化的小工具,而不是用来开发具有复杂业务逻辑的中大型软件,例如检测计算机的硬件参数、一键搭建Web开发环境、日志分析等,Shell 都非常合适。

使用 Shell 的熟练程度反映了用户对 Linux 的掌握程度,运维工程师、网络管理员、程序员都应该学习 Shell。

尤其是 Linux 运维工程师,Shell 更是必不可少的,是必须掌握的技能,它使得我们能够自动化地管理服务器集群,否则你就得一个一个地登录所有的服务器,对每一台服务器都进行相同的设置,而这些服务器可能有成百上千之多,会浪费大量的时间在重复性的工作上。

Shell 是一种脚本语言

任何代码最终都要被“翻译”成二进制的形式才能在计算机中执行。

有的编程语言,如 C/C++、Pascal、Go语言、汇编等,必须在程序运行之前将所有代码都翻译成二进制形式,也就是生成可执行文件,用户拿到的是最终生成的可执行文件,看不到源码。

这个过程叫做编译(Compile),这样的编程语言叫做编译型语言,完成编译过程的软件叫做编译器(Compiler)。

而有的编程语言,如 Shell、JavaScript、Python、PHP等,需要一边执行一边翻译,不会生成任何可执行文件,用户必须拿到源码才能运行程序。程序运行后会即时翻译,翻译完一部分执行一部分,不用等到所有代码都翻译完。

这个过程叫做解释,这样的编程语言叫做解释型语言或者脚本语言(Script),完成解释过程的软件叫做解释器。

编译型语言的优点是执行速度快、对硬件要求低、保密性好,适合开发操作系统、大型应用程序、数据库等。

脚本语言的优点是使用灵活、部署容易、跨平台性好,非常适合Web开发以及小工具的制作。

Shell 就是一种脚本语言,我们编写完源码后不用编译,直接运行源码即可。

 3,shell变量

 

 如果不加反引号,相当于把单词date赋值给A

 $号表示后面是一个变量,会进行变量替代。readonly表示是静态变量。

 

4,环境变量(相当于将路径赋予一个变量,用export写进etc/profile之后再生效就相当于成了一个全局变量,可以被不同的shell程序调用)

5,位置参数变量

 

 6,预定义变量

 

 

  7,运算符

 

 

 

 

   8,流程控制

  (1)条件判断

 

 

 

 形式【 判断语句 】注意判断语句前后要留一个空格。

(2)case语句

 例子如下:

 (3)for循环

 下面是第一种写法的例子:

第一行其实是遍历命令行参数中所有的参数,依次赋值给i变量,赋值一次,执行一次下面的循环体。

由于$*是将所有的参数看成是一个整体,所以这里循环只执行一次;

而$@是将参数区分对待,所以会循环多次,依次遍历所有的参数。

下面是第二种的写法:

 (4)while循环

 

 9,读取控制台输入

 

两个例子如下:

 

 

 例一正常时,

 

 如果例二带时间限制的没有及时进行控制台输入,就会自动跳转,不再等待,

例二也正常时,

 

10,系统函数+自定义函数

 

 例子:

 

 

 

 

 

11,shell综合编程(备份数据库)

解决问题的思路图解如下:

 

 具体的shell编程如下:

 

 

 最后再将sh文件交给crontab处理即可。