常用linux命令(项目部署)

时间:2021-07-11 14:59:21

centos 图形 命令行 界面切换

如果在图形界面下,按:Ctrl+Alt+F2进入如下命令行界面

--------------

看当前目录的路径:

pwd

...................

Tomcat

假设tomcat所在目录为/usr/local/apache-tomcat/

1、打开tomcat配置文件

#vi /usr/local/apache-tomcat/conf/server.xml

2、打开Tomcat配置文件之后按 /8080  快速检索

3、修改端口,按 i 进行,将8080 修改为 80

4、按:wq 保存并退出

5、 重启tomcat,方法如下:

#/apache-tomcat/bin/./shutdown.sh  【关闭】

#/apache-tomcat/bin/./startup.sh 【打开】

............

Linux 下修改Tomcat使用的JVM内存大小

#vi catalina.sh   //打开catalina.sh文件

我的服务器的配置:

在#OS speific ...........一行下,添加 JAVA_OPTS行,如下:

# OS specific support.  $var _must_ be set to either true or false.

JAVA_OPTS="-Xms256m -Xmx512m -Xss256K -XX:PermSize=64m -XX:MaxPermSize=128m"

或者更大:

JAVA_OPTS="-Xms1024m -Xmx4096m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m"

..................

另一种说法:

要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前 。注意引号要带上,红色的为新添加的.

# OS specific support. $var _must_ be set to either true or false.

JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"

cygwin=false

。。。。。。。。

删除目录

linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。

直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字

-r 就是向下递归,不管有多少级目录,一并删除

-f 就是直接强行删除,不作任何提示的意思

.................

重命名

linux 下文件重命名/移动/复制命令(转)

linux下重命名文件:使用mv命令就可以了,

例:要把名为:abc   重命名为:123

可以这样操作:

重命名:MV命令

1、进入你的文件目录,运行命令:   /cd  dir  (dir指的是你文件所在目录)

2、然后命令:ls (例出你的所有文件夹),我们可以看到有  abc 这个文件了

3、最后命令:mv abc 123

但是要注意的是,如果当前目录下也有个123的文件的话,我们的这个文件是会将它覆盖的。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

复制

拷贝复制:CP命令

例:我要把 abc文件复制到

  语法: cp -r 源目录  目标目录

说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

eg:

mkdir tomcat8080 //创建目录tomcat8080  

 cp -r  apache-tomcat-6.0.37   tomcat8080     //将apache-tomcat-6.0.37目录及其子目录(文件)复制一份到当前目录下,新目录名称为 tomcat8080

...............

杀掉进程

$ kill -s 9 1827

【1821是目标进程id】

其中-s 9 指定了传递给进程的信号是9,即强制、尽快终止进程。各个终止信号及其作用见百度。

..................

执行文件时权限不够吗?

可以用"chmod  a+x  文件名"来添加执行权限。

或者用 chmod  777  文件名 对所有人添加读、写、执行权限。

chmod命令

格式1:chmod   [ugoa]  [+-=] [rwx]  文件或目录...

格式2:chmod nnn 文件或目录...

................

修改目录权限

把aaa目录下的所有文件的权限都改成777

chmod -R 777 aaa

将aaa目录及其子级的 读、写、执行 权限 开放给所有用户

1:如果你是以root身份执行的话应该就没问题了。

2:如果你是以普通用户执行不成功,那就有得说了!

。。。。。。。。。

zookeeper

ZooKeeper服务命令:

在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作

在zookeeper目录中的conf目录中找到zoo.cfg文件,如果没有这个文件,就拷贝一份 zoo_sample.cfg 改名为zoo.cfg,然后编辑zoo.cfg文件,

修改客户端访问的端口号:

# the port at which the clients will connect

clientPort=2181

这里是修改我们客户端要访问的端口号为2181

1. 启动ZK服务:       sh bin/zkServer.sh start

2. 查看ZK服务状态: sh bin/zkServer.sh status

3. 停止ZK服务:       sh bin/zkServer.sh stop

4. 重启ZK服务:       sh bin/zkServer.sh restart

。。。。。。。。。。

vim中如何快速查找到下一个相同的词

如果您已经用 /xxx 找到了一个词,那么 n N 就分别是向后,向前再找这个词。

相反,如果您用的是 ? 找到的词,则 n 是向前找,N 是向后找。

即是说 n 总是按着当前的搜索方向往下找同一个词(术语叫搜索字串)。

..................

redis关闭和启动

redis关闭

到redis节点目录下执行如下命令

redis-cli -p 端口号 shutdown

redis启动

./redis-server 参数

参数:redis.conf文件全路径

需要到redis所在目录去重新启动redis,此时redis中的数据仍然可以恢复。

...............

Redis服务器设置密码后,使用service redis stop 会出现以下信息:

service redis stop

Stopping ...

OK

(error) NOAUTH Authentication required.

Waiting for Redis to shutdown ...

Waiting for Redis to shutdown ...

Waiting for Redis to shutdown ...

Waiting for Redis to shutdown ...

Waiting for Redis to shutdown ...

Waiting for Redis to shutdown ...

Waiting for Redis to shutdown ...

Waiting for Redis to shutdown ...

出现这样的错误信息,redis 这时是没有停止服务的。

可以使用ps -ef | grep redis  查进程号 然后kill 掉,如果在deamon下还需要去删除pid文件,有点繁琐。

解决办法:

用redis-cli 密码登陆(redis-cli -a  password)就OK了。

再用ps -ef | grep redis 可以看到redis进程已经正常退出。

修改redis服务脚本,加入如下所示的红色授权信息即可:

vi /etc/init.d/redis

$CLIEXEC -a "password" -p $REDISPORT shutdown

【我的关闭方法:在scr目录下  ./redis-cli -a root -p 6379 shutdown] 其中root是在redis.conf中设置的密码,6379是用ps看到的端口号】

.....

同事说的方法:

redis在linux服务器上,redis启动采用手动前台启动,也就是每次服务器关机重启后,都要重复如下启动步骤:

首先用crt或xshell等终端连接软件连接到Linux,然后找到redis目录,

redis-cli -p 6381  ///修改当前启动的的redis的默认端口号为我们要使用的 6381端口号

ping ///测试是否能成功连接

auth root //尝试用密码root登陆

config get requirepass /// 获取当前密码

config set requirepass root  ///设置当前密码为root

设置好当前启动redis的运行参数后,就可以直接关闭crt的连接窗口了,虽然我们用的是前台启动,但是关闭远程crt的连接窗口是不会关闭当前前台启动的redis的

 【具体其他redis命令,可以百度搜索 “ redis命令参考 ”】

。。。。。。。。。。。

我用过的方法:

通过配置文件,设置后台启动方法:

1、首先在redis目录下找到redis.conf文件,然后将其复制一份到随意一个目录,比如我把它复制到了redis的src目录下,并改名为myredis.conf,

2、然后修改这个复制出来的redis.conf文件,将其中的指定行改为:

deamonize yes   ///将默认的前台启动改为后台启动

还有requirepass  后面加上我们需要的登陆密码,如

requirepass root

就是设置登陆密码为root,

然后看如果 bind 127.0.0.1 这一行存在就注释掉,即:

# bind 127.0.0.1

它如果打开,则只有本机(安装redis的服务器本身)才能访问。

修改默认监听端口
port 6381   ///这样就把默认的6379端口改成6381了

修改好配置文件并保存好后,就可以启动了,启动方法:

我们进入 redis的src目录下输入:

./redis-server myredis.conf     ///这个后面+的myredis.conf就是我们修改好的,要使用其启动redis的配置文件

即可启动redis了,想看是否启动好了,可以输入:

ps -ef | grep redis

如果结果第二行有PID号,就说明启动成功了

。。。。。。。。。

参考文章:百度搜索:

redis前端启动和后台启动的区别

..................

Linux中

configure --prefix=/有什么用

指定安装路径

不指定prefix,则可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr /local/share。你要卸载这个程序,要么在原来的make目录下用一次make uninstall(前提是make文件指定过uninstall),要么去上述目录里面把相关的文件一个个手工删掉。

指定prefix,直接删掉一个文件夹就够了。

。。。。。。。。。。。。。

退出postgresql数据库

\q 退出postgresql数据库,建议使用\?查看帮助信息!

。。。。。。。。。。。。。。。

linux下清除tomcat缓存

这是一直困扰人问题,特别是一些刚开始菜鸟,就会说怎么我都更新啦都没办法啦什么回事啊!!!!其实我们可以静下心去处理,当我们静下心来时候,你就用service tomcat stop service tomcat strat service tomcat restart  这三个命令来处理。还是不行 这样你就会急啦,很恼火!!不要恼火!这不能怪你因为很多时候tomcat配置者配置tomcat不是很完善,导致这个问题!这个时候可以清理tomcat缓存!方法我下面这个是最好的!还有个方法是写在tomcat的bin文件里面的!感觉不是很好!

1进入tomcat/bin目录下,执行命令:./shutdown.sh

2然后执行命令:ps -aux ,查看tomcat是否真的关闭了

【我用 ps  -ef|grep  tomcat8090】最后面是Tomcat目录名称

字段含义如下:
UID PID PPID C STIME TTY TIME CMD
root 18887 18828 0 08:09 pts/0 00:00:00 grep tomcat8090
root 1 0 2017 ?     04:55:15 /home/wahaha/soft/jdk1.7.0_79/bin.............. # PID 这个程序的 ID 下面的 PPID 则是父程序的 ID;
# C CPU 使用的资源百分比
# CMD 所下达的指令
因此CMD为“grep tomcat8090” 也就是查询“tomcat8090”的命令,这样看tomcat8090目录下的Tomcat有没有没运行。 注意:第二行的 27190才是 我们要的 正在启动的Tomcat8090目录下Tomcat的PID 即:Tomcat的进程id
而第一行的18887 是我们执行 grep tomcat8090 这条指令本身的进程id

3如果没有关闭则执行命令:kill -9 #pid来彻底关闭tomcat(#pid是tomcat的进程ID)

4最后进入tomcat/work目录下,执行命令:rm -rf Catalina,来删除Catalina文件夹

5确认是删除命令:ls,如果work目录下没有Catalina文件夹,这表示删除成功

6再进入tomcat/bin目录下执行命令:./startup.sh,启动tomcat

7OK,搞定

.....................

Tomcat是否启动

ps -ef | grep tomcat8090

............

Vim编辑时撤销

vi 里 r 已经被占用了,r是替换

u、r是vi个版本都有的命令,ctrl+r不是所有vi都有的

..........。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

查看 rpm软件是否已经安装过了

rpm -qa | grep targetSoftName

【targetSoftName是我们要用rpm安装的软件名称或部分名称】

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

Linux查看程序端口占用情况

今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占用。

使用命令:

ps -aux | grep tomcat

发现并没有8080端口的Tomcat进程。

使用命令:netstat –apn

查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name

发现8080端口被PID为9658的Java进程占用。

进一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看

就可以明确知道8080端口是被哪个程序占用了!然后判断是否使用KILL命令干掉!

netstat   -apn   |   grep   +端口号或者进程id 可以查看当前哪个进程占用了哪个端口,非常有用的指令

方法二:直接使用 netstat   -apn   |   grep  portno 【这里的最后一个参数portno 可以是我们要查找的 端口号 也可以是我们知道的pid】
即:netstat –apn | grep 8080

如我们输入

 netstat –apn | grep 8080

得到如下显示

proto  Recv-Q Send-Q   Local Address  Foreign Address    stste    PID/Program name

tcp    0    0      :::8080  :::*        LISTEN     27630/java

其中加粗的 8080 就是我们查询的端口号,而最后的27630是占用8080端口的 进程的PID 和 程序名称(Tomcat的程序名也是java)

通过进程号查进程的具体路径

这时,如果我们知道了 占用8080端口的进程id是27630,但是我们要进一步知道27630这个进程是哪个程序执行的,可以再执行:

ps -ef | grep 27630

就可以知道当前进程的详细程序路径了【详细路径一般在结果的第二行 -cp 后面】

..................................................

Linux看内存占用:

free -m

................

ActiveMQ

windows下面直接关闭窗口便可
linux 下在安装目录下切换到 bin/linux/ ,该目录下有个activemq的文件
你用

./activemq stop | start | restart

查看mq是否启动成功

如果我们知道当前启动的mq服务端口是61616,则可以通过看端口是否正在监听来判断:

netstat  -apn | grep 61616

如果返回结果显示出  61616端口 且后面是 LISTEN 则说明,已经启动成功了

........................

如何检测远程主机上的某个端口是否开启

有时候我们要测试远程主机上的某个端口是否开启,无需使用太复杂的工作,windows下就自带了工具,那就是telnet。

怎么检测呢,按下面的步骤来:

1、安装telnet。我的win7下就没有telnet,在cmd下输入telnet提示没有该命令。于是我们进入控制面板---->程序---->打开或关闭windows功能。然后等一段时间,在出来的对话框把telnet客户端和telnet服务器勾选上,其他的不用管,然后点击确定。这样就安装好了telnet组件了。

2、 下面开始测试某个端口是否开启,比如我测的是192.168.3.42的2121这个端口。在cmd下输入

start /min telnet 192.168.3.42 2121

之后会出现一个窗口,是最小化的,你等一会,如果窗口自动关闭了,说明端口是关闭的或主机ping不通,反之端口开放.

比如这个2121端口是开放的,就出现如图所以的窗口,否则窗口关闭。

3、你可以用自己的机子做实验.在CMD下输入netstat -anp tcp可以查看当前主机tcp开放了哪些端口.

最后   ping命令是不能检测端口,只能检测你和相应IP是否能连通.

补充: Linux下检测本机的端口是否被占用:

netstat –apn | grep 8080

..............

linux如何关闭防火墙

1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off

2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop

需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。

在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

........

ActiveMQ的安装和启动

安装JAVA配置JAVA环境

下载ActiveMQ

解压压缩包

tar zxvf activemq-x.x.x-bin.tar.gz

至此,linux下ActiveMQ的安装工作就完成了。

ActiveMQ在Linux下的启动

启动ActiveMQ分为两种模式 ,以 前端进程的方式启动(控制台关闭则服务关闭)或者 后台进程的方式启动:

前端进程:

cd [activemq_install_dir]/bin

./activemq console

后端进程:

cd [activemq_install_dir]/bin

./activemq start

测试启动结果

在浏览器中输入 http://127.0.0.1:8161/admin/登录名/密码: admin/admin

切换到 “Queues” TAB页

点击 “create”创建一个队列

点击 “Send to ”发送消息

ActiveMQ的监听的端口

Linux下ActiveMQ默认监听的端口号:61616,可以通过netstat查看

netstat -nl|grep 61616

1

关闭ActiveMQ

如果启动的是前端进程,那么可以直接在控制台 ctrl + C 关闭.

如果启动的是后端进程,则通过以下脚本关闭.

cd [activemq_install_dir]/bin

./activemq stop

........

用Windows软件连接linux中文件的软件

WinSCP

........

Timer类中的"Timer already cancelled."

最近有个问题,在没有timer调用cancel()方法的情况下,报以下异常

Exception in thread "main" Java.lang.IllegalStateException: Timer already cancelled.

at java.util.Timer.sched(Timer.java:397)

at java.util.Timer.schedule(Timer.java:193)

at TimerTest.main(TimerTest.java:23)

说一个可以排查的点,就是timer在执行任务的过程中如果抛出了RuntimeException,并且接着又去执行另一个新任务时,会认定定时器已经取消,产生这个异常,所以可以在定时任务之间排查是否有异常抛出。

【项目中用到了ActiveMQ,在linux上部署完项目后,访问并操作时,报出以上错误“Timer already cancelled”,最终重启了ActiveMQ后解决了问题。

另外要注意一点:同一个项目,部署在多个地方不能共用一个ActiveMQ,有可能冲突,要确保每个部署的项目都要有一个独立的mq】

.......

。。。