Linux命令和使用
Linux介绍
Linux是⼀个操作系统
Linux的优势
- 开源(意味着免费,便宜)
- 稳定(Linux可以运行很多年,都不会发生重大问题)
- 安全(Linux只有管理员或者特定用户才能访问Linux内核)
- 自由(不会被强加商业产品和服务)
- 社区支持(Linux在全球社区都非常活跃和使用广泛,很多志愿者在线帮大家解决问题)
对于Java程序员来说,关于Linux重点学习基础命令和项目部署即可.
首先需要搭建Linux环境
Linux环境搭建方式
有四种方式:
- 直接安装在物理机上.
- 使用虚拟机软件,将Linux搭建在虚拟机上.
- 使用WSL(Windows Subsystem for Linux).这个是Windows近几年开发的新功能,在Windows系统内集成了⼀个Linux.
- 使用云服务器(推荐),可以直接在腾讯云,阿里云或华为云等服务器厂商处直接购买⼀个云服务器.
需要获取到的信息
- 服务器的外网IP
- 服务器的管理员账户(固定为root)
- 管理员账户密码
连接Linux
博主使用XShell
下载地址:Xshell
使用XShell登陆主机
ssh 服务器外网ip地址
如果网络畅通,将会提示输入用户名密码.输入即可正确登陆.
登录失败的原因
- 未输入用户名和密码
- IP输入错误
- 确认安装的是Ubuntu(安装其他操作系统,比如windowsserver,确实⽆法登录)
- 是否设置了初始密码
- 服务器是否启动
- 通过控制台登录
- 以上都没问题,咨询客服
Linux常用命令
文件相关(mv mkdir cd ls)
进程相关( ps top netstat )
权限相关(chmod chown useradd groupadd)
网络相关(netstat ip addr)
测试相关(测试网络连通性:ping 测试端口连通性:telnet)
文件相关
mv
mv 源文件 目标文件
• -f:force强制的意思,如果=目标文件已经存在,不会询问而直接覆盖
• -i:若目标文件(destination)已经存在时,就会询问是否覆盖!
mv test1.txt test2.txt
ls
列出该目录下的所有子目录与文件
常⽤选项:
• -a 列出目录下的所有文件,包括以.开头的隐含文件。
• -d 将目录象文件⼀样显示,而不是显示其下的文件。如:ls ‒d指定目录
• -k 以k字节的形式表示文件的大小。ls ‒alk指定文件
• -l 列出文件的详细信息。
• -r 对目录反向排序
• -t 以时间排序。
• -r 列出所有子目录下的文件。(递归)
tail
用于显示文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:
• -f 循环读取
• -n<行数>显示行数
tail -10 test1.txt
mkdir
在当前目录下创建目录
-p 此时若路径中的某些目录尚不存在,加上此选项后,系统将自动
建立好那些尚不存在的目录,即⼀次可以建立多级目录
mkdir –p test/test1
cd
将当前工作目录改变到指定的目录下.
返回上级目录
cd …
进入用户家目录
cd ~
返回最近访问目录
cd -
pwd
显示用户当前所在的目录
vim
vim是⼀个知名的文本编辑器,使用vim可以进行文本编辑了
- 创建文件
vim 文件名 - 插入模式
使用i 进入插入模式,使用j 光标往下一行 - 保存
先回到普通模式(esc),在普通模式下输入:w 再回车即可保存 - 退出
先回到普通模式
1)文件未修改 :q 再回车
2)文件修改并保存 :wq 再回车
3)文件修改但不保存 :wq!再回车
grep
grep 参数 文件名
用于查找文件中是否包含指定字符串,并显示对应的行
-n: 显示行数
-w: 全字匹配
-r : 递归查找
–color: 高亮查找结果
–include: 指定查找某些文件
–exclude: 指定排除某些文件
rm
删除文件或目录
• -f 即使文件属性为只读(即写保护),亦直接删除
• -i 删除前逐⼀询问确认
• -r 删除目录及其下所有文件
cat
查看相关文件的内容
-n 对输出的所有行进行编号
进程相关
ps命令里都有哪些选项,ps展示哪些东西?
ps命令展示内容:
PID:进程ID。
PPID:父进程ID。
USER:进程所属用户。
%CPU:CPU占用率。
%MEM:内存占用率。
VSZ:虚拟内存大小。
RSS:物理内存大小。
TTY:终端设备。
STAT:进程状态。
START:进程启动时间。
TIME:进程累计CPU占用时间。
COMMAND:进程命令或可执行文件。
ps命令选项:
-a:显示所有进程,包括其他用户的进程。
-u:显示用户相关的进程信息。
-x:显示没有控制终端的进程。
-e:显示所有进程,等同于-a选项。
-f:显示详细的进程信息,包括进程的父进程、运行状态等。
-l:显示长格式的进程信息,包括进程的PID、PPID、CPU占用率等。
-r:显示正在运行的进程。
-o:自定义输出格式。
top
主要会展示:
Load average(平均负载):显示系统在最近1分钟、5分钟和15分钟内的平均负载情况。
Tasks(任务):显示当前运行、睡眠、停止和僵尸状态的进程数量。
CPU usage(CPU使用情况):显示CPU的总体使用率以及每个CPU核心的使用率。
Memory usage(内存使用情况):显示物理内存的总量、已使用量、空闲量、缓冲区和缓存区的使用量。
Swap usage(交换空间使用情况):显示交换空间的总量、已使用量和剩余量。
进程列表:显示当前运行的进程列表,包括进程的PID、用户、CPU占用率、内存占用率、进程状态、启动时间和进程命令。
netstat
netstat[参数]…
查看系统上的网络状态.
选项:
• -a 显示所有正在或不在侦听的套接字
• -n 显示数字形式地址而不是去解析主机、端口或用户名
• -p 显示套接字所属进程的PID和名称
|
将前一个指令标准输出的内容,作为第二个指令的标准输入内容.
部署到Linux
apt常用命令
列出所有软件包
apt list
过滤出java
apt list |grep “java”
更新软件包
sudo apt-get update
如果切换到root用户命令前就不需要加sudo了
安装软件包
sudo apt install package_name
移除软件包
sudo apt remove package_name
如果要删除包含所有配置文件的软件
包,使用purge而不是remove
查看MySQL状态
sudo systemctl status mysql
连接mysql
sudo mysql
使用alter user命令修改密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY
‘BITE@yyds.666’;
卸载MySQL
停止mysql
sudo systemctl stop mysql
卸载mysql
sudo apt-get remove --purge mysql-server mysql-client mysql-common
删除 MySQL 配置文件和数据
sudo rm -rf /etc/mysql /var/lib/mysql
#清理残留文件和目录
sudo apt-get autoremove
sudo apt-get autoclean
#验证卸载结果
mysql --version
修改配置文件
Maven打包上传到Linux
后台运行程序
nohup java -jar 包 &
Linux可以通过> 把需要输出的内容写到指定文件中.这样的操作称为"重定向".
nohup java -jar 包 >/指定文件&
查看当前服务的进程
ps -ef|grep java
杀掉进程
kill -9 PID