作为一个Java开发人员,有些常用的Linux命令必须掌握。即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令。因为很多服务器上都是Linux系统。所以,要和服务器机器交互,就要通过shell命令。
本文并不会对所有命令进行详细讲解,只给出常见用法和解释。具体用法可以使用--help
查看帮助或者直接通过google搜索学习。
find / -name filename.txt
根据名称查找/目录下的filename.txt文件。
find . -name "*.xml"
递归查找所有的xml文件
find . -name "*.xml" |xargs grep "hello world"
递归查找所有文件内容中包含hello world的xml文件
grep -H 'spring' *.xml
查找所以有的包含spring的xml文件
find ./ -size 0 | xargs rm -f &
删除文件大小为零的文件
ls -l | grep 'jar'
查找当前目录中的所有jar文件
grep 'test' d*
显示所有以d开头的文件中包含test的行。
grep 'test' aa bb cc
显示在aa,bb,cc文件中匹配test的行。
grep '[a-z]\{5\}' aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
ps –ef|grep tomcat
查看所有有关tomcat的进程
kill -9 19979
终止线程号位19979的线程
ls -al
pwd
cp source dest
复制文件
cp -r sourceFolder targetFolder
递归复制整个文件夹
scp sourecFile romoteUserName@remoteIp:remoteAddr
远程拷贝
mkdir newfolder
rmdir deleteEmptyFolder
删除空目录 rm -rf deleteFile
递归删除目录中所有内容
mv /temp/movefile /targetFolder
mv oldNameFile newNameFile
su -username
chmod 777 file.java
//file.java的权限-rwxrwxrwx,r表示读、w表示写、x表示可执行
tar -czf test.tar.gz /test1 /test2
tar -tzf test.tar.gz
tar -xvzf test.tar.gz
head -n 10 example.txt
tail -n 10 example.txt
tail -f exmaple.log
//这个命令会自动显示新增内容,屏幕只显示10行内容的(可设置)。
sudo rm a.txt
使用管理员身份删除文件
netstat -tln | grep 8080
查看端口8080的使用情况
lsof -i :8080
ps aux|grep java
查看java进程
ps aux
查看所有进程
tree a
ps:Mac下使用tree命令
wget http://file.tgz
mac下安装wget命令
curl http://file.tgz
ping www.taobao.com
ssh userName@ip
echo $JAVA_HOME
打印java home环境变量的值
java javac jps ,jstat ,jmap, jstack
svn git maven
30 替换部分字符串:
sed -i "s/oldString/newString/g" `grep oldString -rl /yousDiration`
关于sed命令一些知识
-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。
但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e :直接在命令列模式上进行 sed 的动作编辑;
-f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;
-r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
-i :直接修改读取的文件内容,而不是输出到终端
如: sed -i "s/mold/mnew/g" `grep "mold" -rl ./`
31.虚拟机内外不能共享数据时,可以结束以下进程,然后新建该进程即可。
VBoxTray.exe ----虚拟机内外网不通的情况.