Linux 企业实用命令 - 不断更新中

ftafta 2013-06-06

公司很多服务器都是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 test@huhu-9e4.cloud.slc.vip.com:/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 joshwang@diandi.im://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 swang6@10.249.74.114:/c/Users/swang6

然后按提示输入连接本地windows机器的密码即可。

      其中swang6为登录本地windows系统的用户名,本地的ip为10.249.74.114

总结:在本地windows中的C盘的Users/{username}目录下, 我们都可以执行如下命令:

1、 将远程的linux系统中的文件拷贝到本地windows系统:

scp root@192.168.1.157:/root/solr5/server/solr/universal/conf/stopwords.txt .

表示将远程的stopwords.txt拷贝到本地的C:/Users/{username}下

2、将本地的stopwords.txt拷贝到远程的linux系统中

scp stopwords.txt root@192.168.1.157:/root/solr5/server/solr/universal/conf

3、将远程的mmseg4j-core-1.9.1.jar拷贝到当前的window目录下,如果scp的端口不是22,而是2022的情况下:

scp -P 2022 joshwang@diandi.im://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,显然你可以执行了,和你加不加./没关系

相关推荐