作为一个Java程序员,Linux或许不用精通,但是有些命令是必须要熟悉使用的,以满足平常的Java程序的部署等。
文件
- cd + 文件路径
进入到该文件路径下 - cd . .
进入到当前上一级目录 - cd ~
返回到当前用户身份的根目录($代表普通用户,#代表root) - ls
展示当前目录中所有的文件和文件夹名称 - ll
- 展示当前目录中所有的文件和文件夹名称的详细信息
- ls -a
除了ls的功能,还能显示出隐藏文件 - mkdir+文件夹名称
创建一个文件夹 - rmdir + 文件夹名称
删除一个文件夹 - touch + 文件名
创建一个文件 - rm + 文件名
删除一个文件 - rm -rf + 文件的名称
删除文件夹已经文件夹中的所有内容,强制删除不询问 - mv + 文件+路径
移动文件到指定路径下 - mv -r + 文件夹+路径
移动文件夹到指定路径下 - cp + 文件 + 路径
拷贝文件到指定路径下 - cat + 文件
输出文件的内容 - tar + 命令选项 + 压缩包名
压缩或解压 -cvzf表示压缩 -xzvf表示解压
这两个表示.gz文件
Vi/Vim
vim+文件名:如果文件存在,直接打开该文件,如果文件不存在,那么会创建该名字的新文件并打开
vim分为三个模式,一个是ESC模式(命令模式),一个是I模式(编辑模式),还有一个是底行命令模式
命令模式是通过移动光标在代码段上,输入命令完成操作
编辑模式就是正常的输入内容
命令模式下常用的命令:
- dd:删除当前行
- x:删除光标所在字符
- yy:拷贝当前行
- p:粘贴
- u:撤销到上一步
底行命令模式常用的命令: - w:保存文件
- q:退出
- wq:保存并退出
- q!:不保存强制退出
- /关键字:在内容中搜素该关键字,n往下搜素下一个,N往上搜索上一个
进程
- ps
查看进程PID - ps -ef
查看Linux系统下所有运行的进程的详细信息 - ps -ef | grep + 关键字
查看指定关键字的进程的详细信息 - top -p + PID
查看指定PID进程的资源使用情况 - top -Hp + PID
查看指定PID进程中的所有线程的使用情况 - kill -9 PID
强制杀死进程号为PID的进程
网络
- ping
检测host地址或者域名代表的主机是否可达 - ifconfig
查看当前主机的所有网卡以及工作状态 - netstat
查看当前主机的tcp端口使用的情况,服务端的情况 - netstat -tanp
查看tcp,发送缓冲区等数据 - netcat
可以模拟实现一个tcp/udp服务器客户端 - netcat -l host port
模拟实现一个可以收发数据的TCP服务器 - netcat host port
模拟实现一个可以收发数据的TCP客户端 - tcpdump
在Linux上非常实用的抓包工具 - tcpdump -i [网卡名称] host [ip地址] port [端口号]
验证TCP三次握手,四次挥手 - telnet ip地址 port端口号
一个简单的TCP客户端,模拟远程登录 - curl + url地址
开发javaweb的时候,模拟浏览器连接http服务器 - curl -v url地址
可以把模拟的浏览器客户端和http服务器通信的细节全部输出
搜索
- find 搜索目录 文件名
在指定目录下搜索文件,实时查找,速度比较慢
find / -name "Test.java"
//在根目录下递归查找Test.java
find / -name "Test*"
//在根目录下递归查找Test开头的所有文件
find / -iname "Test*"
//忽略大小写在根目录下递归查找Test开头的所有文件
- locate 搜索的文件名称(支持通配符)
搜索文件,可以使用sudo updatedb,手动更新linux系统记录的文件数据库,加速locate文件查找,该种搜索方法最近安装的内容可能无法找到,但是查询的速度很快。 - whereis + 文件名
不是用来搜索文件用的,主要是用来搜素系统环境变量配置的路径下的可执行文件 - grep
grep用来检索文件内容
创建target.java,target2.java,然后模糊检索target中含有的dd
grep -v :过滤掉某些信息
对日志文件做统计
- awk
摘选netstat.txt文件的两列
查看日志文件
tail -f xxx.log 查看日志的末尾,一般用来动态查看日志
tail -n 100 xxx.log 查看后100行日志
批量替换文本
使用sed指令,例子如下:
sed -i 's/^Str/String/' replace.java
将replace.java文件中的Str替换为String
sed -i 's/\.$/\;/' replace.java
将replace.java文件中的以.结尾的替换为; $代表以什么结尾
sed -i 's/Jack/me/g' replace.java
将replace.java文件中Jack替换为me,加g的原因是可以替换一行的中的多个,如果不加则只会替换该行中的第一个Jack