Linux 企业实用命令 - 不断更新中
公司很多服务器都是Linux服务器,实际开发过程中,都是在Windows平台上进行开发,最终在部署到Linxu服务器上,在这过程中就会碰到许多常用的Linux命令。在这里这是写一个备份,避免忘记,以后会不停的更新相关有用的命令。
一、 判断本地Windows机器能否和远程的Linux服务器连通
在本地的windows的linux command中输入: ping huhu-89e4.cloud.slc.vip.com
二、从本地windows机器登录远程的linux服务器:
比如登录服务器huhu-89e4.cloud.slc.vip.com, 用户名是test,密码是admin
则在本地的windows的linux command中输入:ssh test@huhu-89e4.cloud.slc.vip.com, 如果能够连接上远程服务器,则command会自动提示输入密码,输入密码既可以连接上。
三、从本地Windows机器断开与远程Linxu服务器的连接:
在本地的windows的linux command中输入: exit
四、拷贝log。将远程Linux服务器上的log拷贝到本地C盘目录c/Users/swang6 下。
方法1:在本地拷贝:
假设当前本地Windows Command所在的路径是:c:/Users/swang6
在本地Windows Command中执行:scp nginx.conf [email protected]:/usr/local/nginx/conf
然后按提示输入连接远程Linux机器的密码即可。
其中 test是连接远程的user, huhu-89e4.cloud.slc.vip.com是远程机器的host,拷贝的文件是nginx.conf,
该文件在远程host下所在的目录是: /usr/local/nginx/conf。
需要注意的是,有时出现类似文件不存在的错误可能是当前访问的用户(test)没有对/usr/local/nginx/conf
的访问权限,所以一种比较common的做法是:
1)windows中确保所在目录是c:/Users/swang6 (拷贝的文件将会被默认放在当前目录下),一般改目录都是远程机器可以访问的目录。
2)可将远程的文件先拷贝到/tmp目录下或者/home/test目录下。
再如将远程的mmseg4j-core-1.9.1.jar拷贝到当前的window目录下
scp -P 2022 [email protected]://usr/local/solr/apache-tomcat-7.0.54/webapps/solr/WEB-INF/lib/mmseg4j-core-1.9.1.jar .
方法2:在远程拷贝:
用SSH登录到远程Linux服务器后,并进入远程服务器的log所在的目录,然后执行:
scp XX.log [email protected]:/c/Users/swang6
然后按提示输入连接本地windows机器的密码即可。
其中swang6为登录本地windows系统的用户名,本地的ip为10.249.74.114
总结:在本地windows中的C盘的Users/{username}目录下, 我们都可以执行如下命令:
1、 将远程的linux系统中的文件拷贝到本地windows系统:
scp [email protected]:/root/solr5/server/solr/universal/conf/stopwords.txt .
表示将远程的stopwords.txt拷贝到本地的C:/Users/{username}下
2、将本地的stopwords.txt拷贝到远程的linux系统中
scp stopwords.txt [email protected]:/root/solr5/server/solr/universal/conf
3、将远程的mmseg4j-core-1.9.1.jar拷贝到当前的window目录下,如果scp的端口不是22,而是2022的情况下:
scp -P 2022 [email protected]://usr/local/solr/apache-tomcat-7.0.54/webapps/solr/WEB-INF/lib/mmseg4j-core-1.9.1.jar .
五、查看某个端口被哪个service占用
netstat -an | grep 8080 :查看8080端口当前被哪个service占用及其专用的状态。
netstat命令用于查看整个Linux系统的网络情况
-a:显示所有连接中的socket
-n:直接使用IP地址,而不通过域名解析器。
六、查看tomcat占用的进程的ID:
ps- aux | grep tomcat或者ps -ef | grep tomcat.
au:现实角详细的咨询
aux:显示所有包含其他使用者的线程。
得到tomcat的进程id后,如果需要查看该tomcat占用的端口号,可以用命令:netstat -anp | grep pid
157 $ bin netstat -anp | grep 16622 tcp 0 0 :::8909 :::* LISTEN 16622/java tcp 0 0 ::ffff:127.0.0.1:8015 :::* LISTEN 16622/java tcp 0 0 :::8888 :::* LISTEN 16622/java unix 2 [ ] STREAM CONNECTED 679387 16622/java unix 2 [ ] STREAM CONNECTED 678915 16622/java
可以看到tomcat的http端口是8888
七、Linux中执行sh文件的区别,即./a.sh 和a.sh的区别。
问题:在当前目录下有一个a.sh,如果需要执行a.sh,则需要使用命令./a.sh,直接执行a.sh就不行。
原因:
1 首先你应该理解这个过程:
你现在运行的是shell,那么你在和shell对话的过程,其实就是shell解释你的输入过程,那么,shell如何知道你的输入有意义呢,我们预先在shell的变量path里面增加了shell的搜索路径,你只要一输入解释,shell就会去先在路径下找有没有你输入的命令的应用
2 正如上面所说:
如果你的当前的路径"."不含在变量PATH里面,首先,shell就根本找不到你输入的这个命令:a.sh也就是你自己说发现的那样,根本无法执行。但是你如果把你的路径"."加到你的PATH变量里面,ok,显然你可以执行了,和你加不加./没关系