Linux
一. vi的命令
Vi是Linux操作系统中的一个记事本工具,它是完全通过命令来操作的,是无鼠标操作。
命令 | 效果 |
---|---|
h、j、k、l | 光标往左、下、上、右移动 |
i | 从命令行模式进入到编辑模式,是到当前光标的前面 |
a | 从命令行模式进入到编辑模式,是到当前光标的h后面 |
I | 从命令行模式进入到编辑模式,光标到当前行的行首 |
A | 从命令行模式进入到编辑模式,光标到当前行的行末尾 |
:set nu! | 设置行号 |
yy、p | yy是复制一行、p是将复制的行粘贴到当前行的下面 |
dd | 删除一行 |
u | 撤销操作 |
o | 直接进入当前行的下一行进行编辑 |
O | 直接进入当前行的上一行进行编辑 |
w | 光标按照单词或者符号往后跳动 |
b | 光标按照单词或者符号往前跳动 |
Esc | 从编辑模式进入到命令行模式 |
G | 光标跳到文件的末尾 |
gg | 跳到文件的开头 |
数字 + G | 跳到对应的行 |
:/字符串\c | 查找对应的字符串,\c表示忽略大小写 |
n、N | 和上面的查找搭配使用,n表示跳到写一个找到的位置,N表示跳到上一个找到的位置 |
d + $ | 0将当前光标到行末的内容删除掉 |
$ | 将光标跳到当前行的行末 |
0 | 将光标跳到当前行的行首 |
:w | 保存文件 |
:wq | 保存文件 |
二. Linux的目录结构
Linux是没有盘符的概念,它的目录的最顶层就是一 个
/
根目录,然后顺着根目录可以找到整个操作系统下所有的文件以及文件夹。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TTUEjEW6-1677580539241)(images/linux-dir.jpg)]
三. 目录的切换
目录切换使用
cd(change directory)
命令,可以通过Tab
快捷提示。可以通过pwd(print work directory)
查看当前工作目录的绝对路径
# 切换到根目录下的 etc目录
cd /etc
# 进入到当前目录下的 sysconfig 这个目录
cd sysconfig
cd ./sysconfig
# 回到上一级目录
cd ..
# 还是会到home目录下
cd ../home/../home
# 进入到当前用户的家目录下
cd
# 回到上一次的工作目录
cd -
# 查看当前工作目录的绝对路径
pwd
四. 文件夹内容查看
# 列出文件夹下的非隐藏内容,不是详情
ls
# 列出文件夹下的非隐藏内容详情信息,看第一列,如果是 “-” 表示文件,如果是 "l" 表示快捷方式;如果是 "d" 表示目录
ls -l
ll
# 列出文件夹下的所有的内容,包括隐藏文件(都是以.开头的)
ls -a
五. 文件内容查看的命令
查看文件内容总共6个命令:
- cat,查看文件的全部内容;
- more,分页查看文件内容,但是只能使用空格键实现向下返回,不能向上翻页
- less,分页查看文件内容,可以通过
空格键
、下箭头
、PgDn
实现向下翻页;通过上箭头
、PgUp
实现向上翻页,最后要使用q(quit)
来退出- head,默认查看文件的头10行内容,可以通过数字指定查看多少行内容;
- tail, 默认查看文件的末尾10行内容,可以通过数字指定查看多少行内容;
- vi,通过vi文件编辑器查看文件内容
# 查看 JwtFilter.java 文件的全部内容
cat JwtFilter.java
# 翻页查看 JwtFilter.java 内容,只能通过 空格键实现向下的翻页
more JwtFilter.java
# 可以向上、向下翻页查看文件的内容;使用 q 退出
less JwtFilter.java
# 查看 JwtFilter.java 头10行内容
head JwtFilter.java
# 查看 JwtFilter.java 头20行内容
head -20 JwtFilter.java
# 查看 JwtFilter.java 末尾10行内容
tail JwtFilter.java
# 查看 JwtFilter.java 末尾20行内容
tail -20 JwtFilter.java
六. 文件和文件夹的操作
6.1 文件和文件夹创建
# 创建 a.txt 文件
touch a.txt
# 创建a.txt b.txt c.txt m.txt 文件
touch a.txt b.txt c.txt m.txt
# 创建 test 目录
mkdir test
# 创建 a b c 目录
mkdir a b c
# 递归创建 /a/b/c/t/m 目录
mkdir -p /a/b/c/t/m
6.2 文件和文件夹删除
# -r recursive(递归) -f是force
rm -rf 文件或者文件夹
6.3 文件和文件夹拷贝
对于文件和文件夹的拷贝,要区别一下,文件不用加 -r,但是文件夹要加 -r
# 将根目录下的 a.txt 拷贝到当前目录下
cp /a.txt ./
# 将根目录下的 a.txt 拷贝到当前目录下,重命名为b.txt
cp /a.txt ./b.txt
# 将根目录下的 test目录 拷贝到当前目录下
cp -r /test ./
# 将根目录下的 test目录下的内容拷贝到当前目录下
cp -r /test/* ./
6.4 文件的移动
# 将根目录下的 datas 移动到当前目录
mv /datas ./
# 将根目录下的 datas目录下的内容移动到当前目录
mv /datas/* ./
# 将根目录下的 datas目录下移动到当前目录, 重命名为 abc 目录
mv /datas ./abc
# 将a.txt文件改名为m.txt
mv a.txt m.txt
## 将根目录下的 a.txt 移动到 /datas/ 目录目录下并重命名为 b.txt
mv /a.txt /datas/b.txt
七. 文件内容的过滤
内容过滤使用
grep
命令,会将查找内容行展示出来。内容过滤没有单独使用的价值,一般要搭配管道操作使用。
# 将 Jwt.java 文件中所有包含有 String 的行都展示出来
grep String JwtFilter.java
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tmJ88hZB-1677580539242)(images/gep.jpg)]
# 在多个文件中过滤出所有包含有 import 的行
grep javax JwtFilter.java MenuService.java
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BCvQLKWA-1677580539243)(images/gep-2.jpg)]
八. 管道操作
管道操作:将上一个命令操作的结果作为下一个操作的数据源。
# 查看 Jwt.java 文件的第6到第10行内容
head Jwt.Java | tail -5
# 找到 /etc 文件夹下,名字中包含有 sys 的文件或者文件夹
ll | grep sys
九. 软件的压缩与解压
软件解压之前,一定要看其压缩方式
9.1 查看文件的压缩方式
在 linux 操作系统,文件的压缩方式三种:
gzip
、XZ
、ZIP
file 压缩的文件名
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zd3afdME-1677580539243)(images/archive-type.jpg)]
9.2 gzip文件的压缩与解压
# -z表示解压 gzip 文件; -x表示解压;f表示文件
tar -zxf jdk-8u60-linux-x64.tar.gz
# -v是打印解压日志;在实际的工作中不要加 -v,因为它是一个 IO操作,非常耗性能
tar -zxvf jdk-8u60-linux-x64.tar.gz
# 表示将文件解压到 /test 目录下
tar -zxf jdk-8u60-linux-x64.tar.gz -C /test
# -c是创建的意思;
# 整个命令的意思是将 jdk1.8.0_60 目录压缩成 jdk.tar.gz 文件
tar -zcf jdk.tar.gz jdk1.8.0_60
9.3 XZ文件的压缩与解压
XZ这种压缩方式是使用全平台(所有的Linux操作系统都是通用的)
# -x表示解压;f表示文件
tar -xf jdk-8u60-linux-x64.tar.gz
# -v是打印解压日志;在实际的工作中不要加 -v,因为它是一个 IO操作,非常耗性能
tar -xvf jdk-8u60-linux-x64.tar.gz
# 表示将文件解压到 /test 目录下
tar -xf jdk-8u60-linux-x64.tar.gz -C /test
# -c是创建的意思;
# 整个命令的意思是将 jdk1.8.0_60 目录压缩成 jdk.tar.gz 文件
tar -cf jdk.tar.gz jdk1.8.0_60
9.4 ZIP文件的压缩与解压
对于ZIP文件的解压使用
unzip
命令;要将文件压缩成 zip 文件,需要使用zip
命令,但是需要安装。
# 安装zip
yum install -y zip
yum install -y unzip
# 解压 vue.zip 文件
unzip vue.zip
# 将 vue.zip 文件解压都 /test目录下
unzip vue.zip -d /test
# 将js文件夹压缩成 vue.zip 文件,一定要加 -r
zip -r vue.zip js
十. JDK的安装
- 解压
- 拷贝jdk的家目录
- 配置环境变量,环境变量的配置文件是
/etc/profile
,在文件的末尾加上如下的内容
# 对外暴露 Jdk的家目录
export JAVA_HOME=/datas/jdk1.8.0_60
# 配置 path
export PATH=$JAVA_HOME/bin:$PATH
- 刷新环境变量的配置文件,让配置生效
# 刷新配置文件,让环境变量生效
source /etc/profile
十一. 文件大小的查看
# 查看文件的大小
# -h 表示 human, 表示人类可读的方式展示文件的大小
du -h jdk-8u60-linux-x64.tar.gz
# 查看文件夹的大小。-d 0 表示查看文件夹的深度(因为文件夹存在递归问题)
du -h -d 0 jdk1.8.0_60
十二. 服务管理
# 查看防火墙服务的状态
systemctl status firewalld
# 关闭防火墙服务
systemctl stop firewalld
# 启动防火墙服务
systemctl start firewalld
# 重启防火墙服务
systemctl restart firewalld
# 查看防火墙服务的状态
systemctl status network
# 关闭防火墙服务
systemctl stop network
# 启动防火墙服务
systemctl start network
# 重启防火墙服务
systemctl restart network
如果使用阿里云,要想访问某个服务,不用关闭防火墙,需要配置安全组规则,开放端口;如果使用腾讯云也不用关闭防火墙,需要配置防火墙,开放端口
十三. 进程管理
# 查看tomcat进程
ps -ef | grep tomcat
# 查看tomcat进程
ps -aux | grep tomcat
杀死一个进程总共有64种方式,用的最多的方式式第9种,就是直接杀死
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-htDIoxxr-1677580539244)(images/kill-list.jpg)]
# 使用第九种方式杀死进程,3124是进程的编号
kill -9 3124
# 使用第九种方式杀死进程,3124是进程的编号
kill -kill 3124
十四. 软件的安装
# 安装vim, 但是在安装的过程有交互,需要输入 y
yum install vim
# 安装lsof 这个软件,不用输入 y
yum install -y lsof
十五. 查看端口的命令
操作系统本身自带的一个命令
netstat
# 查看系统中所有的端口占用情况
netstat -tnpl
借助于第三方软件查看端口
lsof
,需要先安装lsof
软件,安装命令见十四. 软件的安装
# 查看8080端口是否被占用
ls -i:8080
十六. 用户的添加(了解)
# 添加 qf 这样一个用户
useradd qf
# 给qf这个用户设置密码
passwd qf
十七. 文件与文件夹的权限
文件和文件夹的权限表示用户或者用户组对于文件或者文件夹的操作能力。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8G6sS1rh-1677580539244)(images/pemission.jpg)]
17.1 文件权限
读权限:就是用户是否查看文件的内容。
写权限:用户是否可以修改文件中的内容;
操作权限:指的是shell脚本,表示是否可以执行改shell脚本
#!/bin/bash
while true
do
# 类似于 Java中的 System.out.println("Hello world");
echo "Hello world";
# 类似于 Java中的 Thread.sleep(2000);
sleep 2;
done;
/bin/bash
是表示linux执行命令使用的方式。
17.2 文件夹的权限
读权限:是否可以通过 ls 查看文件夹下的内容。
写权限:是否可以在文件夹下创建和删除文件或者文件夹。
操作权限:能够进入到文件夹中。
17.3 修改文件、文件夹的权限
# u+x 给用户加上执行权限
# u-r 撤销用户的读权限
# g+w 给用户组添加写权限
# g-r 撤销用户组读权限
# o-r 给其他人撤销读权限
chmod u+x,u-r,g+w,g-r,o-r /tests
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WSzud35D-1677580539245)(images/permission-number.jpg)]
# rwxr-xr-x
chmod 755 /tests
17.4 将文件夹的拥有权赋予某个用户
# 将 /datas 以及递归子目录和文件的拥有者改为 qf 用户
chown -R qf /datas
十八. 动态查看日志信息
# 动态查看日志的增量变化数据
tail -f catalina.out
十九. 查看系统资源消耗
使用的命令是
top
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xd4e4kQF-1677580539245)(images/top.jpg)]
load average: 0.00 0.01 0.05 , load average 表示系统负载, 三个值依次表示系统在最近一分钟、5分钟、15分钟内的系统负载,超过1要关注。
Tasks: 110 total 1, 1 running 109 sleeping 表示系统总共110个任务,1个正在运行,109个正在睡眠。
%Cpu(s): 0.0 us 0.2 sy,表示cpu的消耗,us是表示用户进程对于cpu的消耗;sy表示系统进程对于cpu的消耗。
Kib Mem: 表示内存的情况。
Kib Swap: 表示交换分区的使用情况。
列表中列出了所有的进程,密切关注
%CPU
和%MEM
其他
- 配置ip地址
cd /etc/sysconfig/network-scripts
# 使用vi来编辑 ifcfg-ens33 这个文件
vi ifcfg-ens33
# 将onboot的值从no改为yes, 改完之后,保存并推出
onboot=yes
# 将网络重启
systemctl restart network
d average 表示系统负载, 三个值依次表示系统在最近一分钟、5分钟、15分钟内的系统负载,超过1要关注。
Tasks: 110 total 1, 1 running 109 sleeping 表示系统总共110个任务,1个正在运行,109个正在睡眠。
%Cpu(s): 0.0 us 0.2 sy,表示cpu的消耗,us是表示用户进程对于cpu的消耗;sy表示系统进程对于cpu的消耗。
Kib Mem: 表示内存的情况。
Kib Swap: 表示交换分区的使用情况。
列表中列出了所有的进程,密切关注
%CPU
和%MEM