公司很多服务器都是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,显然你可以执行了,和你加不加./没关系 3 如果再严谨考虑一下
如果不加./,那么很有可能在路径变量path里面有一个和你一样的命令也叫a.sh 所以,最好的解法方法是: 在环境变量里面最前面加一个点号".",即将当前目录加入到环境变量里面。 export PATH=$PATH:. 即./a.sh表示的是执行当前目录下的a.sh,而a.sh表示执行的是%PATH%\下的xx.sh文件。 八、Linux下如何查看目标主机192.168.0.1开放哪些端口?
nmap -PS 192.168.0.1(目标主机IP) 九、Linux find: 在clssses目录下查找一个是否存在一个SyncContorller.clsss find classes -name SyncConctorller.class 如果需要在根目录下查找,使用find / -name SyncConroller.clsss. 十、Linux中查找链接的源文件 ls -l 链接文件名 如果是硬链接:则使用ls -li链接文件名 十一、查看Linux操作系统的类型: uname -a 十二、 在ubantu上安装vim
使用命令: apt-get install vim 十三、使用 -xdev的find命令: 有时使用linux的find命令时,如find / -name http.conf,会出现类似下面的exception: find /run/user/1000/gvfs' permission denied 解决方法是: find / -xdev -name http.conf 十四、查询文件中的内容: grep -i 'the_text' the-file-name 十五、vi/vim中查询内容 vi "file_name" /the text 需要注意的是the text区分大写。 十六、locate命令: locate .metadata 或者是sudo locate .metadata可以找到.metadata所在的目录。 十七、 1、# uname -a (Linux查看版本当前操作系统内核信息)
情景:
oracle用户下安装了数据库软件,现有一用户term需要使用oracle下的某些文件。
最简单的方法:将oracle用户的目录设置为其他用户可读即可:chmod -R 775 /home/oracle/xxx.(-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更))
十九、重启命令:
1、reboot
2、shutdown -r now 立刻重启(root用户使用)
3、shutdown -r 10 过10分钟自动重启(root用户使用)
4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
关机命令:
1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown -h now 立刻关机(root用户使用)
4、shutdown -h 10 10分钟后自动关机