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

搭建环境需要的linux的一些命令
今天需要搭一台机器的环境,原以为还是和以前一样,拷贝一些文件就可以,但是后来才发现远远不是这么简单。
1.首先,我拿到的是root用户,但是用root用户进行操作,肯定不太好,这样以后空kill的时候,所有的用户进程都会被删掉,这样是不行的。于是我认为应该新加用户,查了命令是
useradd
passwd
删除用户是userdel.

但是奇怪的是,我添加用户后,没有出现让我输入密码的提示,我还需要再查查。
可以直接用passwd命令修改密码的。

2.拷贝完所有文件后,我运行启动脚本,发现里面没有装maven.突然想起应该是环境变量还没有设置,于是设置了.bash_profile的内容,继续运行,还是提示没有安装maven.于是我查看了安装目录,但是ls的结果竟然是

ls: .: Stale NFS file handle
cd也不行

于是,查了一些资料,发现可能和mount有关系。我试了http://linux.chinaunix.net/bbs/thread-1130518-1-1.html 这篇文章介绍的方法,但是最后发现用fuser -k是不行的,还是提示Stale NFS file handle ,于是继续查找,最后我用http://www.91linux.cn/?p=182介绍的办法把关系到有问题的目录的进程全部杀掉了,然后umount -f才算解决问题。

3.目录可用后,发现里面没有东西,第一个反应是从别的机器上拷贝过来,我每次都是用
tar -zcf **.tgz **
tar -zxf **.tgz
先把文件打包,然后用sz下载到本地,再用rz上传,然后解压。但是我在打包的时候遇到问题了,/opt目录里的有些文件就是用root用户也不能打包的,咨询同事才知道有scp这样一个命令。scp命令的用法是
复制文件
(1)将本地文件拷贝到远程
scp 文件名 用户名@计算机名称或者计算机ip:远程路径
(2)将远程文件拷贝到本地
scp 用户名@计算机名称或者计算机ip:文件名 本地路径
复制目录
(1)将本地目录拷贝到远程
scp -r 目录名 用户名@计算机名称或者计算机ip:远程路径/
(2)将本地文件拷贝到远程
scp -r 用户名@计算机名称或者计算机ip:目录名 本地路径/


知道这个后,才知道以前做了很多无用功的。

4.拷贝成功后终于可以运行了。这中间还修改了/etc/resolv.conf为了能够进行正确的dns解析。这次还学到了一些命令
mount
umount
前面的两个命令是挂载和卸下分区
http://linux.chinaunix.net/bbs/viewthread.php?tid=1030849

lsof lsof命令的功能是列出打开文件的进程
lsof -c abc 显示abc进程现在打开的文件
lsof abc.txt 显示开启文件abc.txt的进程
lsof -i :22 知道22端口现在运行什么程序
lsof -g gid 显示归属gid的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4 显示使用fd为4的进程
lsof -i 用以显示符合条件的进程情况

fuser 能识别出正在对某个文件或端口访问的进程,它可以一次杀死那些正在访问指定文件的进程 -k
http://www.diybl.com/course/6_system/linux/linuxjq/20090307/159422.html介绍的比较多