Java程序员必须掌握的常用Linux命令。
Java程序员也是半个运维了,在日常开发中经常会接触到Linux环境操作。小公司的开发人员甚至是兼了全运维的工作,下面整理了一些常用的Linux操作命令。
Linux常用指令
ls 显示文件或目录
-l 列出文件详细信息l(list)
-a 列出当前目录下所有文件及目录,包括隐藏的a(all)
mkdir 创建目录
-p 创建目录,若无父目录,则创建p(parent)
cd 切换目录
touch 创建空文件
vim / vi 创建/编辑文件
insert 编辑
:q 退出
:q! 强制退出
:wq 保存并退出
esc 退出编辑
echo 创建带有内容的文件
cat 查看文件内容
tar 打包压缩
-c 建立压缩档案
-x 解压缩文件
-z gzip压缩文件
-j bzip2压缩文件
-v 显示所有过程
-f 使用档名
cp 拷贝
-r 递归拷贝目录
mv 移动或重命名
rm 删除文件
-r 递归删除,可删除子目录及文件
-f 强制删除
chmod 变更文件或目录的权限
kill 杀进程
find 在文件系统中搜索某文件
wc 统计文本中行数、字数、字符数
grep 在文本文件中查找某个字符串
rmdir 删除空目录
tree 树形结构显示目录,需要安装tree包
pwd 显示当前目录
ln 创建链接文件
date 显示系统时间
more / less 分页显示文本文件内容
head / tail 显示文件头、尾内容
sudo 用来以其他身份来执行命令,预设的身份为root
su 换当前用户身份到其他用户身份
stat 显示指定文件的详细信息,比ls更详细
who 显示在线登陆用户
whoami 显示当前操作用户
hostname 显示主机名
uname 显示系统信息
top 动态显示当前耗费资源最多进程信息
ps 显示瞬间进程状态
-e 显示所有进程
-f 全格式
du 查看目录大小
-s 只显示目录大小的总合
-h 带单位显示目录大小
df 查看磁盘大小df
-h 带有单位显示磁盘信息
free 查看内存情况
-b 单位(bytes)
-k 单位(KB)
-m 单位(MB)
-g 单位(GB)
ifconfig 查看网络情况
ping 测试网络连通
netstat 显示网络状态信息
-ano 查看某个端口是否被占用
-tlnp 根据端口查找PID
man 查看Linux中的指令帮助
clear 清屏
kill 杀进程
reboot 重启系统
shutdown
-r 关机重启
-h 关机不重启
now 立刻关机
1.查找文件 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个连续小写字符的字符串的行。
2.查看一个程序是否运行 ps –ef|grep tomcat 查看所有有关tomcat的进程
3.终止线程 kill -9 19979 终止线程号位19979的进程
4.查看文件,包含隐藏文件 ls -al
5.当前工作目录 pwd
6.复制文件 cp source dest 复制文件 cp -r sourceFolder targetFolder 递归复制整个文件夹 scp sourecFile romoteUserName@remoteIp:remoteAddr 远程拷贝
7.创建目录 mkdir newfolder
8.删除目录 rmdir deleteEmptyFolder删除空目录 rm -rf deleteFile 递归删除目录中所有内容
9.移动文件 mv /temp/movefile /targetFolder
10.重命令 mv oldNameFile newNameFile
11.切换用户 su -username
12.修改文件权限 chmod 777 file.java //file.java的权限-rwxrwxrwx,r表示读、w表示写、x表示可执行
13.压缩文件 tar -czf test.tar.gz /test1 /test2
14.列出压缩文件列表 tar -tzf test.tar.gz
15.解压文件 tar -xvzf test.tar.gz
16.查看文件头10行 head -n 10 example.txt
17.查看文件尾10行 tail -n 10 example.txt
18.查看日志类型文件 tail -f exmaple.log//这个命令会自动显示新增内容,屏幕只显示10行内容的(可设置)。
19.使用超级管理员身份执行命令 sudo rm a.txt 使用管理员身份删除文件
20.查看端口占用情况 netstat -tln | grep 8080 查看端口8080的使用情况
21.查看端口属于哪个程序 lsof -i :8080
22.查看进程 ps aux|grep java 查看java进程 ps aux查看所有进程
23.以树状图列出目录的内容 tree a ps:Mac下使用tree命令
24.文件下载 wget http://file.tgz mac下安装wget命令 curl http://file.tgz
25.网络检测 ping www.just-ping.com
26.远程登录 ssh userName@ip
27.打印信息 echo $JAVA_HOME 打印java home环境变量的值
28.java 常用命令 java javac jps ,jstat ,jmap, jstack
29.其他命令 svn git maven
cmd命令和linux命令的区别
cmd命令和linux命令看起来很相似,都是在一个控制台输入一些特定的指令去完成一些特定的操作。可是用过的朋友就会发现这些指令是有很多不同的,可是到底有什么不同,要说又说不上来,所以要了解一下。
cmd命令的起源:DOS
DOS(Disk Operating System,磁盘操作系统),是Windows系统之前的一个操作系统名称,属於单用户单任务式的,特点通常是黑底白字,用户全靠键盘输入命令来完成所有工作。之后Windows诞生了,属于多用户多任务式的(系统名称都是多窗口),初期当然还得使DOS系统可用,再之后专门开辟个cmd窗口来模仿DOS界面及大多数的命令,也称为命令行,这就是cmd命令行的诞生。
Windows里面运行cmd出来的DOS不是真正的DOS,那是微软在windows里虚拟的DOS环境,是用来运行一些高级命令的,真正的DOS是脱离系统的。因为他本身就是一种操作系统。因此,可以得出一个结论就是:cmd是一个实现了DOS功能的接口,可以使用DOS的部分功能,支持DOS的部分指令。
cmd命令和linux命令的区别
1.最根本的区别是linux shell是linux操作系统的一个用户交互层;而cmd只是windows系统下的一个小小的应用。
2.shell是介于应用程序和内核之间的壳,所有应用程序要和内核交互都必须要通过shell,包括linux的图形桌面Xwindow;而cmd只是windwows下一个补充,cmd是否存在对windows系统并没有那么重要。
3.linux在没有图形界面下几乎可以完成任何事情,而且比图形桌面更简洁高效,还可以配合shell编程实现自动化;而cmd只是windows下的一个终端模拟器,相当于一个桌面应用,不能单独存在。
4.shell功能强大,体验极佳;cmd蹩脚难用,功能有限。其实windows一直改善cmd,但是总是不够强大,最后还是妥协引入shell,比如win7的powershell和win10的linux shell,尽管还是没有专业的shell强大。这个一定程度上说明了shell远比cmd要强大得多。
一些具体命令的不同
功能
cmd:
linux:
复制文件
cmd:copy
linux:cp
移动文件
cmd:move
linux:mv
列举文件
cmd:dir
linux:ls
清除屏幕
cmd:cls
linux:clear
退出
cmd:exit
linux:exit
显示修改日期
cmd:date
linux:date
删除文件
cmd:del
linux:rm
回响信息到屏幕
cmd:echo
linux:echo
用编辑器编辑文件
cmd:edit
linux:vi
比较文件内容
cmd:fc
linux:diff
在文件中查找字符串
cmd:find
linux:grep
显示命令帮助
cmd:命令/?
linux:man 命令
创建目录
cmd:mkdir
linux:mkdir
删除目录
cmd:rd
linux:rmdir
目录更名
cmd:move
linux:mv
拷贝目录
cmd:xcopy
linux:copy
查看文件
cmd:more
linux:less
重命名文
cmd:ren
linux:mv
切换目录
cmd:cd
linux:cd
显示时间
cmd:time
linux:date
显示已被使用的内存
cmd:mem
linux:free
在屏幕打印文件内容
cmd:type
linux:cat