Java程序员常用Linux命令


linux 三剑客 grep awk sed
1. 1. 安装服务命令
1. 在线安装
```shell
yun install -y vim
```
2. 离线安装
```shell
rpm -ivh xxx.rpm
rpm -ivh tomcat.rpm
示例含义:离线安装tomcat服务
注意:rpm文件安装包需要上传到服务器上,再执行安装命令
```
2. 文件操作命令
1. 创建文件(3种)
```shell
touch aa.txt
vi aaa.txt
echo vim > aaaa.txt
```
2. 编辑文件
```shell
vi xxx.txt
vim xxx.txt
```
3. vi或vim内查找关键词
```shell 用法:vi或vim打开文件后(不要进入到编辑模式)输入英文的?或/,后面跟上要搜索的关键词即可
用法:vi或vim打开文件后(不要进入到编辑模式)输入英文的?或/,后面跟上要搜索的关键词即可
yacas ?hello
然后按住n健查找下一个,按N健查找上一个
yacas /hello
然后按住n健查找下一个,按N健查找上一个
```
4. 命令光标的移动
```shell
这个命令非常实用,有时候当我们输入一段比较长的命令时,光标已经到最后了,但发现前面的命令写错了,一般的做法是按照向左箭头按键一直往左移动光标,改完由按向右监听按键一直向右移动光标,这个效率太慢了,以下快捷键能快速解决这个问题,能直接达到命令最前面和最后面。
移动到命令最前:按住快捷键 ctrl +a
移动到命令最后:按住快捷键 ctrl+e
```
5. vi或vim设置或取消行号
```shell
vi或vim打开文件后,根据要求分别输入如下命令(不要进入到编辑模式)
设置行号
shell :set nu
取消行号
shell :set nonu
```

6. vi或vim 调到末行及首行
g到首行,G到末行
```shell
vi编辑文件时,如果内容太长,想要快速将光标跳转到文件头部或尾部,使用下面按键
跳转末行 ,按住 G健
跳转首行 ,按住 g健
```
7. vi或vim删除行
```shell
命令模式用dd删除行
4 dd 删除4行 以此类推
```
8. vi或vim复制行
```shell
不进入编辑模式,在要删除的行敲击 4 yy,标识从当前行开始复制4行,再移动光标到指定位置按p键粘贴
```
9. 不编辑查看文件全部内容
```shell
cat xxx.xxx
```
10. 不编辑查找文件内容(2种)
方式一:
cat xx.xx | grep "hello"
方式二:
grep "a" aaaa.txt
11. 统计某个关键字在文件中出现的次数(2种)
```shell
shell grep "heima" abc.txt |wc -l
```
12. 查看文件首行或尾行
```shell
查看前3行
shell head -3 abc.txt
查看尾3行
shell tail -3 abc.txt
查看尾实时输出的3行日志
shell tail -3f abc.txt
```
13. 替换文件内某个关键字
sed作为Linux三剑客之一,是使用的最流行的替换命令,主要用于替换本文中的内容
```
sed -i s/heima/itcast/g abc.txt
```
示例含义:替换abc.txt文件内所有heima为itcast
14. 重命名文件
```shell
mv aaa.txt bbb.txt
rename a b aaaa.txt ait.txt
方式1
shell mv abc.txt bcd.txt
方式2
shell rename abc bcd abc.txt
```
15. 输出格式固定的文件中第几行第几列数据
```shell
awk作为Linux三剑客之一,主要用于输出固定格式文件的内容
假设文本文件内每行数据的格式如: 姓名,年龄,城市,注意分隔符是逗号
输出每一行
shell awk '{print;}' aaa.txt
输出第三列所有值
shell awk -F ',' '{print $3}' aaa.txt
-F后紧跟的是每行内容的分割符号
输出倒数第2列的值
shell awk -F ',' '{print $(NF-1)}' aaa.txt
输出前2行的第2列的值
shell awk -F ',' '{print $2}' aaa.txt|head -2
```
16. 根据名称查找某目录下的文件
```shell
find test/ -name abc*
```
17. 查找文件并删除
```shell
find test/ -name "abc*" | xargs rm -rf
```
示例含义:查找test目录下,所以文件名包含abc的文件并执行删除操作
18. 查找30天前创建的文件并删除
19. 下载文件
```shell
单线程下载
shell wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.9/bin/apache-tomcat-8.5.9.tar.gz
多线程下载
shell axel -n 10 https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.9/bin/apache-tomcat-8.5.9.tar.gz
示例含义:开启10个线程一起下载一个文件,注意这种下载效率会比单线程快很多
```
20. 将本地文件上传到服务器或从服务器下载
sz rz
```shell
rz
执行命令后会弹出窗口,选择本地的文件,确认后会执行上传
下载
sz 文件命名
默认会下载到本地操作系统downloads目录下
说明:以上两个命令执行的前提是已经安装了lrzsz,可通过在线命令yum install -y lrzsz安装
```
3. 压缩解压命令
1. zip(压缩和解压命令)
```shell
压缩
shell zip -r xxxx.zip xxxx
实例含义:将xxx的全部内容压缩为xxx.zip
```
```shell
解压
shell unzip -d xxxx xxxx.zip
```
2. tar.gz(压缩和解压命令)
```shell
压缩
shell tar -zcvf test.tar.gz test/
解压
shell tar -zxvf test.tar.gz test
```
4. 系统命令(熟稔于心)
1. 查看网卡信息
ifconfig
2. 修改密码(当前用户和其他用户)
3. 重启系统
4. 重启网卡
5. 关闭防火墙
```shell
#临时关闭
systemctl stop firewalld
#永久关闭
systemctl disable firewalld
```
5. 查看内存大小(查看m单位和g为单位)
7. 查看磁盘空间
- 查看总共剩下多少空间
- 查看某个目录占用空间
- 查看某个文件占用空间
8. 查看cpu使用情况
9. 跨服务器传输文件
1. 将本服务器文件传输到其他服务器
2. 将本服务器目录传输到其他服务器
3. 将其他服务器文件传输到本服务器
4. 将其他服务器目录传输到本服务器
6. 文件权限命令
1. 为文件添加权限
7. 为某个目录添加执行权限
3. 以root身份执行命令
8. 进程命令
1. 查看进程
2. 查看端口是否占用
9. 确认端口是否开启
4. 杀掉进程
10. 其他命令学习
1. jdk命令
2. maven命令
11. git命令
14. docker相关命令