日期:2014-05-16  浏览次数:20608 次

linux便利帖
经常会在linux上遇到一些新的命令,然后就会到网上找,再然后就忘记了。linux命令本身很简单,却都会有很多选项,因为选项太过于复杂,而把相应的命令也给掩盖了。这里只记录linux下用到的命令,很简短,却很使用。更详细的信息可能通过man 命令名来查看,例:man mv。

1. apt-get

???? 在linux上安装软件是经常遇到的情况,初始linux的新同学可能会搞不懂软件的安装及配置,开始我也搞不懂。不过最简单的安装方式就是apt-get系列了,在终端下输入apt-get,然后连续按两次tab键会列出该系列下的可用命令,常用的如下:

apt-get install 软件名,安装新软件使用,如:apt-get install apache2
apt-get remove 软件名, 删除已安装的软件包,但不会删除相应的配置,如apt-get remove apache2
apt-get purge 软件名,如果在删除软件包的同时也需要清理相应的配置,就可以使用此命令了
apt-get update 软件名, 此命令会把已安装的软件包信息与软件源上的版本信息作比较并把最新的软件包信息同步下来,通用结合apt-get upgrade使用。
apt-get upgrade 软件名, apt-get update只是把软件包信息同步到本地,而真正的更新安装操作需要执行此命令。

    关于apt-get 还有其他一些命令可以使用,更详细的信息请 man apt-get

2. hostname

??? hostname? 是linux上查看或设置与主机相关信息的命令,例如可以直接不加参数的hostname命令查看主机名。当然我用的更多的是查看当前的主机的ip地址,也很简单,如下:
hostname -I

???? 更详细的使用方法,参见man hostname,你懂的

3. scp

???? 之前不清楚这个命令,今天偶然从同事那里学到的scp: secure copy,用于把本机文件copy到远程服务器。使用此命令的话,需要先在远程的机器上安装并启动ssh。下面的示例是把本地的文件text.sh复制到远程服务器上的指定目录:
scp /home/admin/text.sh enjiex@10.13.176.201:/home/enjiex/bak

     当然也可以作反向操作,根据实际需要。更详细的使用方法,参见man scp

4. ps

???? ps命令是用来查看当前运行着的进程的命令,官方说是查看当前进程的快照。一般我不太需要查看当前运行的所有进程,而只需要查看某个进程是否运行着(某个服务是否已开启),此时就可以结合grep命令查看jboss是否已启动
ps aux | grep jboss

如果有类似下面的结果,就说jboss已启动了:
enjiex    3442 13.1  4.5 762996 87960 pts/1    Sl+  22:02   0:07 java -Dprogram.name=run.sh -Xms128m -Xmx512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.jnu.encoding=GBK -Dfile.encoding=GBK -Djava.net.preferIPv4Stack=true -Djava.endorsed.dirs=/opt/jboss-4.2.2.GA/lib/endorsed -classpath /opt/jboss-4.2.2.GA/bin/run.jar org.jboss.Main


5. 建立最简单的http共享服务器
  
   从别的地方看到的一个方法,使用python建立最简单的http服务器,方法是在一个目录下执行python -m SimpleHTTPServer port,就可以把此目录当作共享服务器,供局域网中其他用户下载此服务器目录下的文件了。例如在/home/enjiex/share下有文件需要共享,此时就可以先进入到share目录,然后在其下执行
python -m SimpleHTTP Server 8080
,建立起服务器了。假如此时我的ip是192.168.1.7,那么局域网里的其他用户通过http://192.168.1.7:8080就能找到我们的目录了。那个端口号是可以在启动服务时指定的。
   当然使用此功能需要安装了python并配置了环境变量,ubuntu上默认是安装了python的。
  
6. netstat

  netstat是用来查看网络连接、路由表、端口使用情况等信息的命令。因为平时经常会在启动某服务时发现端口被占用了,所以就需要查看其占用情况,如下:
  netstat -pan | grep 8079

查看结果如下:
tcp6       0      0 :::8079                 :::*                    LISTEN      1180/apache2 


由结果可知已经被进程号为1180的apache2服务所占用。
?

?