常用linux命令(项目部署)
centos 圖形 命令行 界面切換
如果在圖形界面下,按:Ctrl+Alt+F2進(jìn)入如下命令行界面
--------------
看當(dāng)前目錄的路徑:
pwd
...................
Tomcat
假設(shè)tomcat所在目錄為/usr/local/apache-tomcat/
1、打開(kāi)tomcat配置文件
#vi /usr/local/apache-tomcat/conf/server.xml
2、打開(kāi)Tomcat配置文件之后按 /8080 快速檢索
3、修改端口,按 i 進(jìn)行,將8080 修改為 80
4、按:wq 保存并退出
5、 重啟tomcat,方法如下:
#/apache-tomcat/bin/./shutdown.sh【關(guān)閉】
#/apache-tomcat/bin/./startup.sh 【打開(kāi)】
............
Linux 下修改Tomcat使用的JVM內(nèi)存大小
#vi catalina.sh //打開(kāi)catalina.sh文件
我的服務(wù)器的配置:
在#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"
..................
另一種說(shuō)法:
要添加在tomcat的bin下catalina.sh里,位置cygwin=false前 。注意引號(hào)要帶上,紅色的為新添加的.
# 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刪除目錄很簡(jiǎn)單,很多人還是習(xí)慣用rmdir,不過(guò)一旦目錄非空,就陷入深深的苦惱之中,現(xiàn)在使用rm -rf命令即可。
直接rm就可以了,不過(guò)要加兩個(gè)參數(shù)-rf 即:rm -rf 目錄名字
-r 就是向下遞歸,不管有多少級(jí)目錄,一并刪除
-f 就是直接強(qiáng)行刪除,不作任何提示的意思
.................
重命名
linux 下文件重命名/移動(dòng)/復(fù)制命令(轉(zhuǎn))
linux下重命名文件:使用mv命令就可以了,
例:要把名為:abc 重命名為:123
可以這樣操作:
重命名:MV命令
1、進(jìn)入你的文件目錄,運(yùn)行命令: /cd dir (dir指的是你文件所在目錄)
2、然后命令:ls (例出你的所有文件夾),我們可以看到有 abc 這個(gè)文件了
3、最后命令:mv abc 123
但是要注意的是,如果當(dāng)前目錄下也有個(gè)123的文件的話,我們的這個(gè)文件是會(huì)將它覆蓋的。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
復(fù)制
拷貝復(fù)制:CP命令
例:我要把 abc文件復(fù)制到
語(yǔ)法: cp -r 源目錄 目標(biāo)目錄
說(shuō)明:該命令把指定的源文件復(fù)制到目標(biāo)文件或把多個(gè)源文件復(fù)制到目標(biāo)目錄中。
eg:
mkdir tomcat8080 //創(chuàng)建目錄tomcat8080
cp -r apache-tomcat-6.0.37 tomcat8080 //將apache-tomcat-6.0.37目錄及其子目錄(文件)復(fù)制一份到當(dāng)前目錄下,新目錄名稱為 tomcat8080
...............
殺掉進(jìn)程
$ kill -s 9 1827
【1821是目標(biāo)進(jìn)程id】
其中-s 9 指定了傳遞給進(jìn)程的信號(hào)是9,即強(qiáng)制、盡快終止進(jìn)程。各個(gè)終止信號(hào)及其作用見(jiàn)百度。
..................
執(zhí)行文件時(shí)權(quán)限不夠嗎?
可以用"chmod a+x 文件名"來(lái)添加執(zhí)行權(quán)限。
或者用chmod 777 文件名對(duì)所有人添加讀、寫、執(zhí)行權(quán)限。
chmod命令
格式1:chmod [ugoa] [+-=] [rwx] 文件或目錄...
格式2:chmod nnn 文件或目錄...
................
修改目錄權(quán)限
把a(bǔ)aa目錄下的所有文件的權(quán)限都改成777
chmod -R 777 aaa
將aaa目錄及其子級(jí)的 讀、寫、執(zhí)行 權(quán)限 開(kāi)放給所有用戶
1:如果你是以root身份執(zhí)行的話應(yīng)該就沒(méi)問(wèn)題了。
2:如果你是以普通用戶執(zhí)行不成功,那就有得說(shuō)了!
。。。。。。。。。
zookeeper
ZooKeeper服務(wù)命令:
在準(zhǔn)備好相應(yīng)的配置之后,可以直接通過(guò)zkServer.sh 這個(gè)腳本進(jìn)行服務(wù)的相關(guān)操作
在zookeeper目錄中的conf目錄中找到zoo.cfg文件,如果沒(méi)有這個(gè)文件,就拷貝一份 zoo_sample.cfg 改名為zoo.cfg,然后編輯zoo.cfg文件,
修改客戶端訪問(wèn)的端口號(hào):
# the port at which the clients will connect
clientPort=2181
這里是修改我們客戶端要訪問(wèn)的端口號(hào)為2181
1. 啟動(dòng)ZK服務(wù): sh bin/zkServer.sh start
2. 查看ZK服務(wù)狀態(tài): sh bin/zkServer.sh status
3. 停止ZK服務(wù): sh bin/zkServer.sh stop
4. 重啟ZK服務(wù): sh bin/zkServer.sh restart
。。。。。。。。。。
vim中如何快速查找到下一個(gè)相同的詞
如果您已經(jīng)用 /xxx找到了一個(gè)詞,那么 n N 就分別是向后,向前再找這個(gè)詞。
相反,如果您用的是 ? 找到的詞,則 n 是向前找,N 是向后找。
即是說(shuō) n 總是按著當(dāng)前的搜索方向往下找同一個(gè)詞(術(shù)語(yǔ)叫搜索字串)。
..................
redis關(guān)閉和啟動(dòng)
redis關(guān)閉
到redis節(jié)點(diǎn)目錄下執(zhí)行如下命令
redis-cli -p 端口號(hào) shutdown
redis啟動(dòng)
./redis-server 參數(shù)
參數(shù):redis.conf文件全路徑
需要到redis所在目錄去重新啟動(dòng)redis,此時(shí)redis中的數(shù)據(jù)仍然可以恢復(fù)。
...............
Redis服務(wù)器設(shè)置密碼后,使用service redis stop 會(huì)出現(xiàn)以下信息:
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 ...
出現(xiàn)這樣的錯(cuò)誤信息,redis 這時(shí)是沒(méi)有停止服務(wù)的。
可以使用ps -ef | grep redis 查進(jìn)程號(hào) 然后kill 掉,如果在deamon下還需要去刪除pid文件,有點(diǎn)繁瑣。
解決辦法:
用redis-cli 密碼登陸(redis-cli -a password)就OK了。
再用ps -ef | grep redis 可以看到redis進(jìn)程已經(jīng)正常退出。
修改redis服務(wù)腳本,加入如下所示的紅色授權(quán)信息即可:
vi /etc/init.d/redis
$CLIEXEC -a "password" -p $REDISPORT shutdown
【我的關(guān)閉方法:在scr目錄下 ./redis-cli -a root -p 6379 shutdown] 其中root是在redis.conf中設(shè)置的密碼,6379是用ps看到的端口號(hào)】
.....
同事說(shuō)的方法:
redis在linux服務(wù)器上,redis啟動(dòng)采用手動(dòng)前臺(tái)啟動(dòng),也就是每次服務(wù)器關(guān)機(jī)重啟后,都要重復(fù)如下啟動(dòng)步驟:
首先用crt或xshell等終端連接軟件連接到Linux,然后找到redis目錄,
redis-cli -p 6381 ///修改當(dāng)前啟動(dòng)的的redis的默認(rèn)端口號(hào)為我們要使用的 6381端口號(hào)
ping ///測(cè)試是否能成功連接
auth root //嘗試用密碼root登陸
config get requirepass /// 獲取當(dāng)前密碼
config set requirepass root ///設(shè)置當(dāng)前密碼為root
設(shè)置好當(dāng)前啟動(dòng)redis的運(yùn)行參數(shù)后,就可以直接關(guān)閉crt的連接窗口了,雖然我們用的是前臺(tái)啟動(dòng),但是關(guān)閉遠(yuǎn)程crt的連接窗口是不會(huì)關(guān)閉當(dāng)前前臺(tái)啟動(dòng)的redis的
【具體其他redis命令,可以百度搜索 “ redis命令參考 ”】
。。。。。。。。。。。
我用過(guò)的方法:
通過(guò)配置文件,設(shè)置后臺(tái)啟動(dòng)方法:
1、首先在redis目錄下找到redis.conf文件,然后將其復(fù)制一份到隨意一個(gè)目錄,比如我把它復(fù)制到了redis的src目錄下,并改名為myredis.conf,
2、然后修改這個(gè)復(fù)制出來(lái)的redis.conf文件,將其中的指定行改為:
deamonize yes ///將默認(rèn)的前臺(tái)啟動(dòng)改為后臺(tái)啟動(dòng)
還有requirepass 后面加上我們需要的登陸密碼,如
requirepass root
就是設(shè)置登陸密碼為root,
然后看如果bind 127.0.0.1 這一行存在就注釋掉,即:
# bind 127.0.0.1
它如果打開(kāi),則只有本機(jī)(安裝redis的服務(wù)器本身)才能訪問(wèn)。
修改默認(rèn)監(jiān)聽(tīng)端口
port 6381 ///這樣就把默認(rèn)的6379端口改成6381了
修改好配置文件并保存好后,就可以啟動(dòng)了,啟動(dòng)方法:
我們進(jìn)入 redis的src目錄下輸入:
./redis-server myredis.conf ///這個(gè)后面+的myredis.conf就是我們修改好的,要使用其啟動(dòng)redis的配置文件
即可啟動(dòng)redis了,想看是否啟動(dòng)好了,可以輸入:
ps -ef | grep redis
如果結(jié)果第二行有PID號(hào),就說(shuō)明啟動(dòng)成功了
。。。。。。。。。
參考文章:百度搜索:
redis前端啟動(dòng)和后臺(tái)啟動(dòng)的區(qū)別
..................
Linux中
configure --prefix=/有什么用
指定安裝路徑
不指定prefix,則可執(zhí)行文件默認(rèn)放在/usr /local/bin,庫(kù)文件默認(rèn)放在/usr/local/lib,配置文件默認(rèn)放在/usr/local/etc。其它的資源文件放在/usr /local/share。你要卸載這個(gè)程序,要么在原來(lái)的make目錄下用一次make uninstall(前提是make文件指定過(guò)uninstall),要么去上述目錄里面把相關(guān)的文件一個(gè)個(gè)手工刪掉。
指定prefix,直接刪掉一個(gè)文件夾就夠了。
。。。。。。。。。。。。。
退出postgresql數(shù)據(jù)庫(kù)
q 退出postgresql數(shù)據(jù)庫(kù),建議使用?查看幫助信息!
。。。。。。。。。。。。。。。
linux下清除tomcat緩存
這是一直困擾人問(wèn)題,特別是一些剛開(kāi)始菜鳥(niǎo),就會(huì)說(shuō)怎么我都更新啦都沒(méi)辦法啦什么回事啊!!!!其實(shí)我們可以靜下心去處理,當(dāng)我們靜下心來(lái)時(shí)候,你就用service tomcat stop service tomcat strat service tomcat restart 這三個(gè)命令來(lái)處理。還是不行 這樣你就會(huì)急啦,很惱火!!不要惱火!這不能怪你因?yàn)楹芏鄷r(shí)候tomcat配置者配置tomcat不是很完善,導(dǎo)致這個(gè)問(wèn)題!這個(gè)時(shí)候可以清理tomcat緩存!方法我下面這個(gè)是最好的!還有個(gè)方法是寫在tomcat的bin文件里面的!感覺(jué)不是很好!
1進(jìn)入tomcat/bin目錄下,執(zhí)行命令:./shutdown.sh
2然后執(zhí)行命令:ps -aux ,查看tomcat是否真的關(guān)閉了
【我用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 27190 1 0 2017 ? 04:55:15 /home/wahaha/soft/jdk1.7.0_79/bin..............
# PID 這個(gè)程序的 ID 下面的 PPID 則是父程序的 ID;
# C CPU 使用的資源百分比
# CMD 所下達(dá)的指令
因此CMD為“grep tomcat8090” 也就是查詢“tomcat8090”的命令,這樣看tomcat8090目錄下的Tomcat有沒(méi)有沒(méi)運(yùn)行。
注意:第二行的 27190才是 我們要的 正在啟動(dòng)的Tomcat8090目錄下Tomcat的PID 即:Tomcat的進(jìn)程id
而第一行的18887 是我們執(zhí)行 grep tomcat8090 這條指令本身的進(jìn)程id
3如果沒(méi)有關(guān)閉則執(zhí)行命令:kill -9 #pid來(lái)徹底關(guān)閉tomcat(#pid是tomcat的進(jìn)程ID)
4最后進(jìn)入tomcat/work目錄下,執(zhí)行命令:rm -rf Catalina,來(lái)刪除Catalina文件夾
5確認(rèn)是刪除命令:ls,如果work目錄下沒(méi)有Catalina文件夾,這表示刪除成功
6再進(jìn)入tomcat/bin目錄下執(zhí)行命令:./startup.sh,啟動(dòng)tomcat
7OK,搞定
.....................
看Tomcat是否啟動(dòng)
ps -ef | grep tomcat8090
............
Vim編輯時(shí)撤銷
vi 里 r 已經(jīng)被占用了,r是替換
u、r是vi個(gè)版本都有的命令,ctrl+r不是所有vi都有的
..........。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
查看rpm軟件是否已經(jīng)安裝過(guò)了
rpm -qa | grep targetSoftName
【targetSoftName是我們要用rpm安裝的軟件名稱或部分名稱】
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
Linux查看程序端口占用情況
今天發(fā)現(xiàn)服務(wù)器上Tomcat 8080端口起不來(lái),老提示端口已經(jīng)被占用。
使用命令:
ps -aux | grep tomcat
發(fā)現(xiàn)并沒(méi)有8080端口的Tomcat進(jìn)程。
使用命令:netstat –apn
查看所有的進(jìn)程和端口使用情況。發(fā)現(xiàn)下面的進(jìn)程列表,其中最后一欄是PID/Program name
發(fā)現(xiàn)8080端口被PID為9658的Java進(jìn)程占用。
進(jìn)一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看
就可以明確知道8080端口是被哪個(gè)程序占用了!然后判斷是否使用KILL命令干掉!
netstat -apn | grep +端口號(hào)或者進(jìn)程id 可以查看當(dāng)前哪個(gè)進(jìn)程占用了哪個(gè)端口,非常有用的指令
方法二:直接使用 netstat -apn | grepportno 【這里的最后一個(gè)參數(shù)portno 可以是我們要查找的 端口號(hào) 也可以是我們知道的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 就是我們查詢的端口號(hào),而最后的27630是占用8080端口的 進(jìn)程的PID 和 程序名稱(Tomcat的程序名也是java)
通過(guò)進(jìn)程號(hào)查進(jìn)程的具體路徑
這時(shí),如果我們知道了 占用8080端口的進(jìn)程id是27630,但是我們要進(jìn)一步知道27630這個(gè)進(jìn)程是哪個(gè)程序執(zhí)行的,可以再執(zhí)行:
ps -ef | grep 27630
就可以知道當(dāng)前進(jìn)程的詳細(xì)程序路徑了【詳細(xì)路徑一般在結(jié)果的第二行 -cp 后面】
..................................................
Linux看內(nèi)存占用:
free -m
................
ActiveMQ
windows下面直接關(guān)閉窗口便可
linux 下在安裝目錄下切換到 bin/linux/ ,該目錄下有個(gè)activemq的文件
你用
./activemq stop | start | restart
查看mq是否啟動(dòng)成功
如果我們知道當(dāng)前啟動(dòng)的mq服務(wù)端口是61616,則可以通過(guò)看端口是否正在監(jiān)聽(tīng)來(lái)判斷:
netstat -apn | grep 61616
如果返回結(jié)果顯示出 61616端口 且后面是 LISTEN 則說(shuō)明,已經(jīng)啟動(dòng)成功了
........................
如何檢測(cè)遠(yuǎn)程主機(jī)上的某個(gè)端口是否開(kāi)啟
有時(shí)候我們要測(cè)試遠(yuǎn)程主機(jī)上的某個(gè)端口是否開(kāi)啟,無(wú)需使用太復(fù)雜的工作,windows下就自帶了工具,那就是telnet。
怎么檢測(cè)呢,按下面的步驟來(lái):
1、安裝telnet。我的win7下就沒(méi)有telnet,在cmd下輸入telnet提示沒(méi)有該命令。于是我們進(jìn)入控制面板---->程序---->打開(kāi)或關(guān)閉windows功能。然后等一段時(shí)間,在出來(lái)的對(duì)話框把telnet客戶端和telnet服務(wù)器勾選上,其他的不用管,然后點(diǎn)擊確定。這樣就安裝好了telnet組件了。
2、 下面開(kāi)始測(cè)試某個(gè)端口是否開(kāi)啟,比如我測(cè)的是192.168.3.42的2121這個(gè)端口。在cmd下輸入
start /min telnet 192.168.3.42 2121
之后會(huì)出現(xiàn)一個(gè)窗口,是最小化的,你等一會(huì),如果窗口自動(dòng)關(guān)閉了,說(shuō)明端口是關(guān)閉的或主機(jī)ping不通,反之端口開(kāi)放.
比如這個(gè)2121端口是開(kāi)放的,就出現(xiàn)如圖所以的窗口,否則窗口關(guān)閉。
3、你可以用自己的機(jī)子做實(shí)驗(yàn).在CMD下輸入netstat -anp tcp可以查看當(dāng)前主機(jī)tcp開(kāi)放了哪些端口.
最后 ping命令是不能檢測(cè)端口,只能檢測(cè)你和相應(yīng)IP是否能連通.
補(bǔ)充: Linux下檢測(cè)本機(jī)的端口是否被占用:
netstat –apn | grep 8080
..............
linux如何關(guān)閉防火墻
1) 重啟后生效
開(kāi)啟: chkconfig iptables on
關(guān)閉: chkconfig iptables off
2) 即時(shí)生效,重啟后失效
開(kāi)啟: service iptables start
關(guān)閉: service iptables stop
需要說(shuō)明的是對(duì)于Linux下的其它服務(wù)都可以用以上命令執(zhí)行開(kāi)啟和關(guān)閉操作。
在開(kāi)啟了防火墻時(shí),做如下設(shè)置,開(kāi)啟相關(guān)端口,
修改/etc/sysconfig/iptables 文件,添加以下內(nèi)容:
-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的安裝和啟動(dòng)
安裝JAVA配置JAVA環(huán)境
下載ActiveMQ
解壓壓縮包
tar zxvf activemq-x.x.x-bin.tar.gz
至此,linux下ActiveMQ的安裝工作就完成了。
ActiveMQ在Linux下的啟動(dòng)
啟動(dòng)ActiveMQ分為兩種模式 ,以 前端進(jìn)程的方式啟動(dòng)(控制臺(tái)關(guān)閉則服務(wù)關(guān)閉)或者 后臺(tái)進(jìn)程的方式啟動(dòng):
前端進(jìn)程:
cd [activemq_install_dir]/bin
./activemq console
后端進(jìn)程:
cd [activemq_install_dir]/bin
./activemq start
測(cè)試啟動(dòng)結(jié)果
在瀏覽器中輸入 http://127.0.0.1:8161/admin/登錄名/密碼: admin/admin
切換到 “Queues” TAB頁(yè)
點(diǎn)擊 “create”創(chuàng)建一個(gè)隊(duì)列
點(diǎn)擊 “Send to ”發(fā)送消息
ActiveMQ的監(jiān)聽(tīng)的端口
Linux下ActiveMQ默認(rèn)監(jiān)聽(tīng)的端口號(hào):61616,可以通過(guò)netstat查看
netstat -nl|grep 61616
1
關(guān)閉ActiveMQ
如果啟動(dòng)的是前端進(jìn)程,那么可以直接在控制臺(tái) ctrl + C 關(guān)閉.
如果啟動(dòng)的是后端進(jìn)程,則通過(guò)以下腳本關(guān)閉.
cd [activemq_install_dir]/bin
./activemq stop
........
用Windows軟件連接linux中文件的軟件
WinSCP
........
Timer類中的"Timer already cancelled."
最近有個(gè)問(wèn)題,在沒(méi)有timer調(diào)用cancel()方法的情況下,報(bào)以下異常
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)
說(shuō)一個(gè)可以排查的點(diǎn),就是timer在執(zhí)行任務(wù)的過(guò)程中如果拋出了RuntimeException,并且接著又去執(zhí)行另一個(gè)新任務(wù)時(shí),會(huì)認(rèn)定定時(shí)器已經(jīng)取消,產(chǎn)生這個(gè)異常,所以可以在定時(shí)任務(wù)之間排查是否有異常拋出。
【項(xiàng)目中用到了ActiveMQ,在linux上部署完項(xiàng)目后,訪問(wèn)并操作時(shí),報(bào)出以上錯(cuò)誤“Timer already cancelled”,最終重啟了ActiveMQ后解決了問(wèn)題。
另外要注意一點(diǎn):同一個(gè)項(xiàng)目,部署在多個(gè)地方不能共用一個(gè)ActiveMQ,有可能沖突,要確保每個(gè)部署的項(xiàng)目都要有一個(gè)獨(dú)立的mq】
.......
。。。
總結(jié)
以上是生活随笔為你收集整理的常用linux命令(项目部署)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 高性能电脑存储硬件怎么选高性能电脑存储硬
- 下一篇: cv2 的用法