当前位置: 首页 > news >正文

学习大数据DAY21 Linux基本指令2

目录

思维导图

搜索查看查找类

find 从指定目录查找文件

head 与 tail 查看行

cat 查看内容

more 查看大内容

grep 过滤查找

history 查看已经执行过的历史命令

wc 统计文件

du 查看空间

管道符号 | 配合命令使用

上机练习 4

解压安装类

zip unzip 压缩解压

tar 压缩解压

Yum 包管理

用户权限类

基本介绍

用户及用户组

用户和组的相关文件

rwx 权限详解

chmod 修改权限

chown 修改文件所有者

上机练习 5

自主发挥:

vim 编辑更完整版


思维导图

搜索查看查找类

find 从指定目录查找文件

-name <查询方式> 按照指定的文件名查找模式查找文件
-mtime n 查找 n 天以前被修改过的所有文件。
-exec<执行指令>:假设 find 指令的回传值为 True,就执行该指令;
-size <文件大小> 按照指定的文件大小查找文件
find /root -name "*.pdf"
find /root -name "*.pdf" -a -size +1M
find /root -mtime +7 #七天前被修改过的文件
find /root -name "*.sql" -exec ls -l {} \; #查找文件并以 ls -l 形式显示
find /root -name "*.pdf" -exec rm -f {} \;

head 与 tail 查看行

head -n 文件名 (不加默认开头十行)
tail -n 文件名 (不加默认结尾十行)
head 3.txt
tail 3.txt
head -n +3 3.txt
#只显示前三行
tail -n -3 3.txt
#只显示后三行

cat 查看内容

cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。
-n 显示行号包括空行
-b 跳过空白行编号
-s 将所有的连续的多个空行替换为一个空行(压缩成一个空行)
cat 1.log 2.log
cat -sb test.log

more 查看大内容

more 分屏查看文件(敲空格查看下一页)

grep 过滤查找

以行为单位进行查找,显示结果为满足的行
-c 统计满足的行数
-v 反转不包含
grep "p" 1.txt 单文件搜索包含 p 的行
grep "P" 1.txt b.txt 多文件搜索
grep -v "p" 1.txt 单文件搜索不包含 p 的行
grep -c "p" 1.txt #统计出现多少行
grep "n$" 1.txt #现实以 n 结尾的行
grep "^n" 1.txt #现实以 n 开头的行

history 查看已经执行过的历史命令

history
history 5 最近五个命令

wc 统计文件

查看文件的字节数 wc -c t2.txt
查看文件的行数 wc -l t2.txt

du 查看空间

du -h 人性化方式(带单位)
du -s 只统计每个参数所占用空间总的大小
du -sh /etc

管道符号 | 配合命令使用

管道符 | 表示将前一个命令的处理结果输出传递给后面的命令处理
> 和 >> 指令
> 输出重定向(覆盖写), >> 追加(追加写)
示例:
ls -l | grep -c "^d"
ls -l | grep "^d" | wc -l
history | grep -c "ls" history | grep "ls" | grep "s$" > ttt.txt
cat a.txt b.txt >> ttt.txt
cat a.txt b.txt | grep "s" >> ttt.txt

上机练习 4

上机练习 4
1. /etc/passwd 文件拷贝到 /root/ 目录下,并改名为 ptest
mv /etc/passwd /root/
cd /root
mv passwd ptest
2. 查看 ptest 的前八行数据
head -n +8 ptest
3. 过滤查看 ptest 文件中包含 root 的行
grep "root" ptest
4. 查看 /home 目录占用空间
du -sh /home
5./root 中新建文件 test.log ,插入内容如下:
@directory-client
@gnome-apps
@gnome-desktop
cd /root
touch test.log
vim test.log
i
插入
ESC
:wq!
6. test.log ptest 合并到 /root 目录下的 test1.log
cd /root
cat test.log ptest >>test1.log
7. /root 目录下的 ptest 加上行号输出到 test2.log
cat -sb ptest >>test2.log
8. 查找并显示根目录下大于 1M png 文件
find /root -name "*.png" -a -size +1M
9. 统计系统上使用 ls 命令的次数
history | grep -c "ls"
10. /root/ptest 中出现了 root 的行存储到 test.txt 文件
grep "root" /root/ptest >> test.txt
11. 根据名称查找 /root 下的 txt 文件
find /root -name "*.txt"
12. 查找整个 linux 系统下大于 20M 的文件 (+n 大于 -n 小于 n 等于 )
find / -type f -size +20M 13. 查找 /root/xxx/yyy/zzz 下所有 .txt 文件并把他们删掉
find /root/xxx/yyy/zzz -name "*.txt" -exec rm -f {} \;
14. 统计 ptest 文件的字节数
wc -c /root/ptest
15. 统计 ptest 文件以 s 开头的行的数量
grep "^s" ptest |wc -l

解压安装类

zip unzip 压缩解压

# 压缩文件和目录
zip 文件名.zip 将要压缩的内容
# 解压缩文件
unzip 文件名.zip
常用选项
-r:递归压缩,即压缩目录
-d<目录> :指定解压后文件的存放目录
zip test.zip -r a/b 注:绝对路径压缩会带前面的路径文件夹
unzip linux.x64_11gR2_database_1of2.zip -d /opt/app/database/

tar 压缩解压

-z
调用 gzip 程序进行压缩或解压
-c
创建(Create).tar 格式的包文件
-x
解开.tar 格式的包文件
-C
</解压时指定释放的目标文件夹 指定目录
-v
输出详细信息(Verbose)
-f
表示使用归档文件(一般都要带上表示使用 tar,放在最后)
压缩:tar [选项] ... 归档文件名(压缩包名字) 源文件或目录
解压:tar [选项] ... 归档文件名 [-C 目标目录]
tar -zcvf abc123.tar.gz abc.txt 123.txt 压缩成 abc123.tar.gz 的命令
tar -zcvf abc123.tar.gz m
tar -zxvf abc123.tar.gz -C test/ 解压到指定目录

Yum 包管理

Yum 是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自
动下载
RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
查询 yum 服务器是否有需要安装的软件 yum list | grep xxx
查询指定的 yum 包信息 yum info xxx 安装指定的 yum 包 yum install xxx
卸载指定的 yum 包 yum remove xxx
查看已安装的软件包 yum list installed
yum install ntpdate # 安装网络对时

用户权限类

基本介绍

登录时尽量少用 root 帐号登录,因为它是系统管理员,最大的权限,避免操作
失误。可以利用普通用户登录,登录后再用 su - 用户名命令来切换

用户及用户组

类似于角色,系统可以对有共性的多个用户进行统一的管理。
新增用户组 groupadd xiaoshou
添加用户 useradd xiaomei
添加用户时加上组 useradd -g xiaoshou xiaomei
指定/修改密码 passwd xiaomei
查询用户信息 id xiaomei
切换用户 su - xiaomei
查看当前用户 whoami
修改用户的组 usermod -g 用户组 用户名
删除用户 userdel xiaomei (exit 退出后再删除)
删除组 groupdel xiaoshou

用户和组的相关文件

/etc/passwd 文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录
Shell
/etc/group 文件
组(group)的配置文件,记录 Linux 包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表

rwx 权限详解

[ r ]代表可读(read): 可以读取
[ w ]代表可写(write): 可以修改
[ x ]代表可执行(execute):可以被执行
-rwxrw-r--. 1 root root 1213 Feb 2 09:39 abc
10 个字符确定不同用户能对文件干什么
第一个字符代表文件类型:文件( - ),目录( d ),链接( l ) 第一组 rwx : 文件拥有者的权限是读、写和执行
第二组 rw- : 与文件拥有者同一组的用户的权限是读、写但不能执行
第三组 r-- : 不与文件拥有者同组的其他用户的权限是读不能写和执行
可用数字表示为: r=4,w=2,x=1
因此 rwx=4+2+1=7

chmod 修改权限

通过 chmod 指令,可修改文件或目录的权限
-R 表示递归里面的所有文件及目录
+ 、-、= 变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)
chmod u=rwx,g=rx,o=x 文件目录名
chmod o+w 文件目录名
chmod a-x 文件目录名
$ chmod u+x file
给 file 的属主增加执行权限
$ chmod 751 file
$ chmod u=rwx,g=rx,o=x file
上例的另一种形式
$ chmod 444 file
同上例
$ chmod a-wx,a+r
file
同上例
$ chmod -R u+r directory
递归地给 directory 目录下所有文件和子
目录的属主分
配读的权限

chown 修改文件所有者

chown [-R] 所有者 文件或目录
-R 表示递归里面的所有文件及目录
chown test02 /root/test.txt
chown -R 用户:组 /usr/local/mysql chown meimei:students 1.txt

上机练习 5

1.将 /root/xxx 压缩成 a.tar.gz
tar -zcvf a.tar.gz
2. 将 a.tar.gz 解压到/root/ceshi/
-zxvf a.tar.gz -C /root/ceshi/
3. 增加用户组 students
groupadd students
4. 添加新用户 kunkun 及 meimei 并直接加到 students 组
useradd -g students kunkun
useradd -g students meimei
5. 指定 kunkun 密码, 然后切换到这个用户
passwd kunkun
su - kunkun
6. 到该用户的家目录新建一个 student.txt
root 账号:chmod 777 /home/
su - kunkun
touch /home/student.txt
7. 查询并写入该用户的用户信息到 student.txt, 退出 exit
管理员账号:su - kunkun
id kunkun>/home/student.txt
8. 使用 root 账号新建文件 1.txt 及 2.txt 对文件/root/1.txt 为所有用户分
配读写执行权限
touch {1..2}.txt
chmod a-x /root/1.txt
9. 对文件/root/2.txt 设置权限为 rwxr-xr--
chmod 754 /root/2.txt
10. 对文件/root/2.txt 设置属组权限增加写的权限
chmod g+w /root/2.txt
11. 给/root/1.txt 文件修改 kunkun 用户及 students 用户组权限
chown kunkun:students /root/1.txt
12. /root/下创建文件夹 open,里面批量创建文件 open1.log...open100.log
mkdir /root/open
touch open{1..100}.log
13. 对文件夹 open 设置为 meimei 用户及 students 用户组权限
chown meimei:students /root/open
14. 对文件夹 open 设置权限为 rwxr-xr-x
chmod 755 /root/open
15. 查看/etc/group 及/etc/passwd 文件内容重定向到/root/open.txt 中
touch open.txt
cat /etc/group /etc/passwd>/root/open.txt
16. 删除用户 kunkun 和 meimei,查看/etc/passwd 的后 3 行数据追加到 /root/open.txt 中
userdel kunkun
userdel meimei
tail -n -3 /etc/passwd > /root/open.txt
17. 删除用户组,查看/etc/group 的后 3 行数据追加到/root/open.txt 中
groupdel students
tail -n -3 /etc/group > /root/open.txt
18. 删除 home 下两个用户的文件夹及里面的内容
rm -rf /home/kunkun
rm -rf /home/meimei
19. 神仙妖怪大战,使用拼音来化名,例如:shaseng 为沙僧
●建立两个组 (神仙, 妖怪),建立用户 (悟空, 八戒, 沙僧),把悟空和八戒放
入妖怪,沙僧放入神仙
groupadd god
groupadd monster
useradd -g monster Wukong
useradd -g monster Bajie
useradd -g god Shasheng
●设置三个用户的密码
passwd Wukong
passwd Bajie
passwd Shasheng (这里设置密码要求太严苛了,我就懒得设了)
●用悟空在自己的家目录下建立一个文件 monkey.txt,该文件要输出 i am a
monkey
chmod 777 /home/
su - Wukong
touch /home/monkey.txt
vim monkey.txt
i
输入
ESC
:wq!
●用 root 账号给八戒一个对悟空文件夹及内容可以 rwx 的权限
chown Bajie /home/Wukong
●八戒修改 monkey.txt 加入一句话( i am a pig )
su - Bajie
vim /home/Wukong/monkey.txt
●测试一下沙僧对该文件有没有权限访问
su - Shasheng
more /home/Wukong/monkey.txt
●把沙僧放入妖怪组
usermod -g monster Shasheng
●让沙僧修改该文件 monkey.txt,加入一句话 ("我是沙僧,我是妖怪!")
chown Shasheng /home/Wukong su - Shasheng
vim /home/Wukong/money.txt
o
输入
ESC
:wq!

自主发挥:

建立一个学习小组,加上组员。
groupadd BringHonor
useradd -g BringHonor HuYingJing
useradd -g BringHonor QinYuXiao
useradd -g BringHonor ShiHaiHong
useradd -g BringHonor MoDeYu

vim 编辑更完整版

相关文章:

学习大数据DAY21 Linux基本指令2

目录 思维导图 搜索查看查找类 find 从指定目录查找文件 head 与 tail 查看行 cat 查看内容 more 查看大内容 grep 过滤查找 history 查看已经执行过的历史命令 wc 统计文件 du 查看空间 管道符号 | 配合命令使用 上机练习 4 解压安装类 zip unzip 压缩解压 tar …...

【18】Android 线程间通信(三) - Handler

概述 接下来我们会从native层来分析一下&#xff0c;Handler做了什么&#xff0c;以及之前提到过的应用层的两个native的调用链。 nativeWake 最早接触这个方法还记得是什么时候吗&#xff1f;MessageQueue#enqueueMessage中&#xff0c;在这个方法的末尾&#xff0c;我们看…...

静态路由技术

一、路由的概念 路由是指指导IP报文发送的路径信息。 二、路由表的结构 1、Destination/Mask:IP报文的接收方的IP地址及其子网掩码; 2、proto:协议(Static:静态路由协议,Direct:表示直连路由) 3、pref:优先级(数值和优先级成反比) 4、cost:路由开销(从源到目的…...

SpringBoot缓存注解使用

背景 除了 RedisTemplate 外&#xff0c; 自Spring3.1开始&#xff0c;Spring自带了对缓存的支持。我们可以直接使用Spring缓存技术将某些数据放入本机的缓存中&#xff1b;Spring缓存技术也可以搭配其他缓存中间件(如Redis等)进行使用&#xff0c;将某些数据写入到缓存中间件…...

@RequestBody接收到的参数中如何限制List的长度?

在Spring MVC中&#xff0c;你可以使用Valid注解和自定义的验证注解来限制List的长度&#xff0c;防止DOS攻击。具体步骤如下&#xff1a; 创建自定义注解&#xff1a;首先&#xff0c;创建一个自定义注解来验证List的长度。 import javax.validation.Constraint; import jav…...

Linux C语言 54-目录操作

Linux C语言 54-目录操作 本节关键字&#xff1a;Linux、C语言、目录操作、遍历目录 相关C库函数&#xff1a;opendir、readdir、closedir 遍历目录 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <dirent.h> #include <…...

Java实战中如何使用多线程(线程池)及其为什么使用?

这个话题在入行之前就想过很多次&#xff0c;很多8古文或者你搜索的结果都是告诉你什么提高高并发或者是一些很高大上的话&#xff0c;既没有案例也没有什么公式去证明&#xff0c;但是面试中总是被问到&#xff0c;也没有实战经历&#xff0c;所以面试时一问到多线程的东西就无…...

kafka集群搭建-使用zookeeper

1.环境准备&#xff1a; 使用如下3台主机搭建zookeeper集群&#xff0c;由于默认的9092客户端连接端口不在本次使用的云服务器开放端口范围内&#xff0c;故端口改为了8093。 172.2.1.69:8093 172.2.1.70:8093 172.2.1.71:8093 2.下载地址 去官网下载&#xff0c;或者使用如…...

【python】Numpy运行报错分析:IndexError与形状不匹配问题

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

你有多自律就有多自由

当你失去对时间的控制权&#xff0c;生活也就失去了平衡。 真正对自己有要求的人&#xff0c;都是高度自律的人。 追求自己想要的生活&#xff0c;任何时候开始都不会晚&#xff0c;关键在于你能够坚持下去&#xff0c;以高度自律的精神&#xff0c;日复一日、年复一年的坚持下…...

Codeforces Round 959 (Div. 1 + Div. 2 ABCDEFG 题) 文字讲解+视频讲解

Problem A. Diverse Game Statement 给定 n m n\times m nm 的矩形 a a a&#xff0c; a a a 中的每一个数均在 1 ∼ n m 1\sim nm 1∼nm 之间且互不相同。求出 n m n\times m nm 的矩形 b b b&#xff0c; b b b 中的每一个数均在 1 ∼ n m 1\sim nm 1∼nm 之间且互…...

WSL2 Centos7 Docker服务启动失败怎么办?

wsl 安装的CentOS7镜像,安装了Docker之后,发现用systemctl start docker 无法将docker启动起来。 解决办法 1、编辑文件 vim /usr/lib/systemd/system/docker.service将13行注释掉,然后在下面新增14行的内容。然后保存退出。 2、再次验证 可以发现,我们已经可以正常通过s…...

分布式锁-redisson锁重试和WatchDog机制

抢锁过程中&#xff0c;获得当前线程&#xff0c;通过tryAcquire进行抢锁&#xff0c;该抢锁逻辑和之前逻辑相同。 1、先判断当前这把锁是否存在&#xff0c;如果不存在&#xff0c;插入一把锁&#xff0c;返回null 2、判断当前这把锁是否是属于当前线程&#xff0c;如果是&a…...

ESP8266模块(2)

实例1 查看附近的WiFi 步骤1&#xff1a;进入AT指令模式 使用USB转串口适配器将ESP8266模块连接到电脑。打开串口终端软件&#xff0c;并设置正确的串口和波特率&#xff08;通常为115200&#xff09;。输入以下命令并按回车确认&#xff1a; AT如果模块响应OK&#xff0c;…...

Docker安装笔记

1. Mac安装Docker 1.1 Docker安装包下载 1.1.1 阿里云 对于10.10.3以下的用户 推荐使用 对于10.10.3以上的用户 推荐使用 1.1.2 官网下载 系统和芯片选择适合自己的安装包 1.2 镜像加速 【推荐】阿里镜像 登陆后&#xff0c;左侧菜单选中镜像加速器就可以看到你的专属地…...

《昇思25天学习打卡营第21天|Pix2Pix实现图像转换》

Pix2Pix 是一种图像转换模型&#xff0c;使用条件生成对抗网络&#xff08;Conditional Generative Adversarial Networks&#xff0c;cGANs&#xff09;实现图像到图像的转换。它主要由生成器&#xff08;Generator&#xff09;和判别器&#xff08;Discriminator&#xff09;…...

Python和MATLAB网络尺度结构和幂律度大型图生成式模型算法

&#x1f3af;要点 &#x1f3af;算法随机图模型数学概率 | &#x1f3af;图预期度序列数学定义 | &#x1f3af;生成具有任意指数的大型幂律网络&#xff0c;数学计算幂律指数和平均度 | &#x1f3af;随机图分析中巨型连接分量数学理论和推论 | &#x1f3af;生成式多层网络…...

在jsPsych中使用Vue

jspsych 介绍 jsPsych是一个非常好用的心理学实验插件&#xff0c;可以用来构建心理学实验。具体的就不多介绍了&#xff0c;大家可以去看官网&#xff1a;https://www.jspsych.org/latest/ 但是大家在使用时就会发现&#xff0c;这个插件只能使用js绘制界面&#xff0c;或者…...

机器学习·概率论基础

概率论 概率基础 这部分太简单&#xff0c;直接略过 条件概率 独立性 独立事件A和B的交集如下 非独立事件 非独立事件A和B的交集如下 贝叶斯定理 先验 事件 后验 在概率论和统计学中&#xff0c;先验概率和后验概率是贝叶斯统计的核心概念 简单来说后验概率就是结合了先验概…...

c生万物系列(面向对象:封装)

本系列博客主要介绍c语言的一些屠龙技&#xff0c;里面包含了笔者本人的一些奇思妙想。 该系列博客笔者只是用作记录。如果你偶然找到了这篇博客&#xff0c;但是发现不知所云&#xff0c;请不要过多投入时间&#xff0c;可能笔者本人那时候也看不懂了。 笔者决定用c语言模仿…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率&#xff08;或其他自定义指标&#xff09;来调整这些对象的规模&#xff0c;从而帮助应用程序在负…...

《Offer来了:Java面试核心知识点精讲》大纲

文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...