发表于: 2017-11-04 21:37:04
1 795
1;在Ubuntu下,$是普通管员,#是系统管理员,
更改文件的时候,总是报错,是权限问题,用root就行了
为了避免这种每次加权限的问题,直接修改了配置文件,给普通用户设root权限
,就是编辑文件保存的时候,必须加上!!!!!!叹号强制,否则就是root权限修改也不行
2;修改了数据库的信息,重新上传运行,没毛病
3;shell脚本;与shell脚本的交流是以对话的方式进行的,因此,创建一些真正的脚本,就算是和脚本讲话;按照教程先编写一个,注册的脚本.顺便把用到的常用命令符记一下echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串
Ls(ls:list)命令显示了当前文件夹内的文件,添加-la键,它会显示更多文件信息;脚本只有读(r)和写(w)权限
在chmod(Change mode)命令执行前,脚本只有读(r)和写(w)权限。在执行chmod +x后,它就获得了执行(x)权限;而且变了可执行的颜色
在脚本名前,添加 ./ 组合。.(点)在unix是当前位置(文件夹),/(斜线)是文件夹分隔符(组合是:"从当前文件夹执行note.sh脚本"。也就是省略了路径,用pwd(print work directory 打印当前目录,显示出当前工作目录的绝对路径)查看
.
然后是添加#!/bin/bash到文件首行;这样shell将调用/bin/bash,保证使用bash会执行脚本命令:(cat Concatenate命令连接文件并打印到标准输出设备上)( vi命令是UNIX系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版)Vi单独说一下; 在Shell提示符后输入命令vi,进入vi编辑器,并处于vi的命令方式。此时,从键盘上输入的任何字符都被作为编辑命令来解释,例如,a(append)表示附加命令,i(insert)表示插入命令,x表示删除字符命令等。,在命令方式下输入的字符(即vi命令)并不在屏幕上显示出来,例如,输入i,屏幕上并无变化,但通过执行i命令,编辑器的工作方式却发生变化:由命令方式变为输入方式
继续上面的脚本, 显示信息后,脚本会等待回答,用read(read从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合)命令用来接收回答:
报了错.以为是注释部分写错了,
然后又报错
改了几次还是不行!!!!;暂时换了新的文件用,read读取,$符号变量(shell中,一般我们使用$符号来表明这是一个变量);
基础差不多了,可以简单完善内容逻辑
4;流的重定向,简单学习吧,也不知道要求的脚本让写什么.先按照教程走一遍
流,解释为物理设备的输入输出、存储设备上的文件的输入输出,都映射到逻辑上的概念「数据流」大概就是为了抹除一些设备之间的属性差异。每个进程开始,内核为进程打开3个流分别是0就是stdin 1就是stdout 2就是strerr,看了好多不是很理解大概是,这三个标准输入、标准输出、标准错误输出。都是一种抽象的说法,默认情况下,它们分别是键盘、命令行窗口、命令行窗口。之所以需要这种抽象的说法,是因为严格来讲它们不一定是健盘和命令行窗口,只不过默认情况下是。有多种方法可以把它们重定向到别的地方去,比如输出重定向到文本文件、并口、串口等等。再多的就没看了,也看不太懂了,这里就学一下重定向.两个符号>和>>前者是重定向到一个文件,后者是重定向到一个文件,而且是不覆盖,累加的形式.
这样看就输入到一个文件里了. (tail命令显示了文件的最后的n行。)
必须使用>>不能使用>否则会覆盖记录,这样就没法记录了
5,日期的使用date
而且日期区分大小写的,注意格式;默认不太好看,格式化注意格式
使用`(是反引号,不是单引号,和波浪号~在同一个键位):可以读取命令的输出到变量,这样就可以加入日期了
Read命令加-p可以显示一些信息
界面就美化多了
6;简单熟悉了脚本,先写一个用jetty的脚本,这里偶然发现jetty的正确启动方式
了解了之前的java -jar jetty.jar只是当前命令行启动,这个就是默认后台启动了;之前的关闭直接kill,这个是stop;而且百度到后台启动的方式很多也说一下吧,虽然不准备用jetty了
1.java -jar xxx.jar 的方式特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
2.java -jar xxx.jar &的方式,&表示后台启动,但是当前ssh窗口不被锁定,当窗口关闭时,程序中止运行
3.nohup java -jar xxx.jar &nohup表示不挂断运行命令,当账户退出或者终端关闭,仍然运行(默认输出到jar目录下的nohup.out的文件中自动创建)用到了命令netstat -tulp查看进程; ps(Process Status) -ef (-e显示所有进程-f全格式) |grep(gerp文件内的查找)端口号/应用程序查看pid;就是kill杀死
7;一个简单的jetty启动脚本两句话…很简单的一个都出错了…
第一个问题是不能直接访问./格式;这个是windows编辑的..格式错了set ff
Set ff(fileformat)=unix就可以了
改了之后jar不能运行的也解决了,很ok我的jetty正常启动了;虽然脚本就两句话,哈哈.
8;师兄用的都是tomcat这里也改一下,出了问题好交流,也记录一下用到了命令tar(Tape archive) -zxvf解压, mv: Move file
赋予权限ls(list file)加上参数-l,是多列显示;默认是c参数,单列,这里涉及到的chomd的应用上面说了+X表示加权限- 表示取消权限、= 表示唯一设定权限;这里出现了数字,语法为:chmod abc file, 其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人; r=4,w=2,x=1;rwx属性4+2+1=7;同理rw-属性6;r-x属性则5;这样来看实际上下面的755就可以解读为我自己是读写用,同组是读用,外人是只可用
然后是修改配置文件;同时修改启动和关闭的方便启动与关闭的命令使用
运行测试ok,关闭同样shutdown
9;部署也就简单了,war包上传,直接访问就ok
10;在这一步,就深刻体会到脚本的作用了,上面jetty还不太明显,切换目录不太多,tomcat就比较麻烦了,来回cdcdcd…写脚本之前再装个svn,这样流程就更完善了;用到的命令apt(Advanced package tool)-get install subversion使用apt-get命令的第一步就是引入必需的软件库,Debian的软件库也就是所有Debian软件包的集合,它们存在互联网上的一些公共站点上。
然后是建立仓库文件夹,以及授权等,这里就不细说了,最后启动成功
然后试一下check out项目…好像出了点问题….自己搞复杂了
明日计划的事情:
1;搞清svn流程,完善tomcat脚本
2;学习Nginx和resin
3;学习一下java基础
遇到的问题及解决方法:
1;按照教程这样启动jetty一直失败,这个不管了,用另一种方法也启动了,成功跑通了
2;开了另外一个连接,启动jetty不行,说是虚拟机内存不够..
3;突然就连不上了….又自己好了….
4; 这个是前面报错bad variable的问题,当时是又新建了一个文件,后来发现是偶尔编辑文件的时候,强行退出了,没有很好的保存,导致文件出错了
要删除掉隐藏的就好了
5;jetty正确启动的时候,报了错,缺少目录什么创建用户组,第一次装的时候没注意,这里也不改了,下次用插件
6;svn下载项目出了小问题,最后发现是我搞复杂了...
收获:
1;远程部署tomcat
2;完善jetty的使用
3;学习脚本的基本内容
4;远程部署svn
5;Ubuntu大量的命令,操作了一些,熟悉了很多,用着顺手了
评论