Java面试集锦(一)之Linux

  • 作者: 凯哥Java(公众号:凯哥Java)
  • 面试宝典
  • 时间:2020-08-04 22:05
  • 4974人已阅读
简介 1.软链接:软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式软链接可以跨文件系统,硬链接不可以软链接可以对一个不存在的文件名进行链接软链接可以对目录进行链接2.硬链接:硬链接,以文件副本的形式存在。但不占用实际空间。不允许给目录创建硬链接硬链接只有在同一个文件系统中才能创建创建分区:fdisk创建文件系统:mkfs-text3/dev/sdb1mkfs-tvfat/dev/sdb

🔔🔔🔔好消息!好消息!🔔🔔🔔

有需要的朋友👉:联系凯哥 微信号 kaigejava2022

1. 软链接:

  1. 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式

  2. 软链接可以跨文件系统 ,硬链接不可以

  3. 软链接可以对一个不存在的文件名进行链接

  4. 软链接可以对目录进行链接

2. 硬链接:

  1. 硬链接,以文件副本的形式存在。但不占用实际空间。

  2. 不允许给目录创建硬链接

  3. 硬链接只有在同一个文件系统中才能创建

创建分区:fdisk
创建文件系统:
mkfs -t ext3 /dev/sdb1
mkfs -t vfat /dev/sdb5
建立挂载点:
mkdir /mnt/mountpoint1 /mnt/mountpoint2
网络参数:
nmcli connection

3. 查看Linux下系统资源的占用情况的命令

1.top命令
top [-] [d delay] [q] [c] [S] [s] [i] [n]
top命令用来显示执行中的程序进程,使用权限是所有用户。

2 free命令
free [-b-k-m] [-o] [-s delay] [-t] [-V]
free命令用来显示内存的使用情况,使用权限是所有用户。

3 uptime 命令

在linux系统中,有一种说法,当load avarage <3 系统良好,大于5 则有严重的性能问题。注意,这个值还应当除以CPU数目。
如果load avarage=8 ,CPU=3,8/3=2.666,2.66这个值表示系统状态良好
大于5也不一定是严重性能问题,有可能是的确主机提供的服务超过了他能够提供的能力,需要扩容了。要具体看看。

4.vmstat命令
是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,
我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。
一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数
5.iostat命令
iostat[参数][时间][次数]

2.命令功能:
通过iostat方便查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况, 负载信息。
3.命令参数:
-C 显示CPU使用情况
-d 显示磁盘使用情况
-k 以 KB 为单位显示
-m 以 M 为单位显示
-N 显示磁盘阵列(LVM) 信息
-n 显示NFS 使用情况
-p[磁盘] 显示磁盘和分区的情况
-t 显示终端和CPU的信息
-x 显示详细信息
-V 显示版本信息

4. 基本命令

1.ls:
查看文件和目录
-a:显示所有文件(隐藏文件:前面带'.')
-l:显示详细信息:

第一个字符:文件类型
普通文件:- 白色 (txt、压缩包、可执行文件)
目录:d 蓝色
符号链接:l 青色
管道:p
套接字:s
字符设备: c 黄色 (鼠标、键盘)
块设备: b (u盘、硬盘)
第二部分(三个字符一组):读写权限
rwx:文件所有者权限(读、写、运行)
rw-:文件所属组用户权限(读、写)
r--:其他人权限(读)

第三部分:硬链接计数
第四部分:文件所有者
第五部分:文件所属组名字
第六部分:文件的大小(目录都是4K)
第七部分:日期
第八部分:文件名

2.cd:
切换目录
切换到家目录:cd
在最后的两个目录间切换:cd -

3.pwd:
显示当前目录

4.mkdir:
建立目录
-p:递归创建多级目录

5.touch:
若文件不存在则创建文件,若存在则删除旧的创建新的

6.rm:
删除文件
-p:递归删除目录
-f:强制删除
-i:删除的时候提示
-rf:删除目录
rm 文件夹/* -r: 删除目录里的所有东西

7.cp:

拷贝
cp 文件1 文件2:把文件1拷贝到文件2(若文件2不存在则创建,若存在则覆盖)
cp 文件 目录:把文件拷贝到目录中
cp 目录1 目录2 -r:把目录拷贝到目录(若目录2不存在则创建且不包括目录本身,若存在则包括目录本身)

8.mv:
改名或移动文件
mv 文件1(存在) 文件2(不存在):改名
mv 目录1(存在) 目录2(不存在):改名
mv 文件(存在) 目录(存在):移动
mv 目录1(存在) 目录2(存在):移动
mv 文件1(存在) 文件2(存在):文件1覆盖文件2
9.查看文件内容

echo:输出内容到控制台
cat:将文件内容打印到终端(内容少)
more:逐行浏览
less:可以翻页
head:
查看头部
head 文件:查看文件前10行
head -n 5 文件:查看文件前5行
tail:
查看尾部
tail 文件:查看文件后10行
tail -n 5 文件:查看文件后5行
tail -f 文件:实时监控文件
10.ln:

软硬链接
ln -s 文件名 /目录名(绝对路径) 快捷方式名:软链接(类似快捷方式)
ln 文件名 硬链接名:硬链接(类似引用)
创建新文件,硬链接计数为1
给文件创建硬链接,硬链接计数+1
删除硬链接,硬链接计数-1

11.文件查找

find:
(1)文件名:find 目录 -name "文件名"
文件类型:find 目录 -type 文件类型(普通文件: f、目录: d、符号链接: l 青色、管道: p 、套接字: s、字符设备: c、块设备: b)
(2)文件大小:find 目录 -size +/-大小(k(kb)/M(mb))
(3)日期: 创建日期:find 目录 -ctime +/-n(n天之外/内)、修改日期:目录 -mtime +/-n、访问日期:目录 -atime +/-n
(4)深度: find 目录 maxdepth/mindepth n(层数)
(5)高级查找: find 目录 -type 文件类型 -exec shell命令 {} \;
find 目录 -type 文件类型 -ok shell命令 {} \;(安全)
find 目录 -type 文件类型 | xargs shell命令(管道,效率高)
grep:
grep -r "查找内容" 搜索路径
grep -n:显示行数

12.压缩包管理

压缩格式: .gz、.bz2
(1)tar:

tar 参数 压缩包名 压缩内容
tar 参数 压缩包名 压缩内容 -C 解压目录
c:创建压缩文件
x:释放压缩文件
v:打印提示信息
f:指定压缩包名字
z:使用gzip压缩文件 xxx.tar.gz
j:使用bzip2压缩文件 xxx.tar.bz2
例: 压缩:tar zcvf test.tar.gz file1 file2
解压:tar zxvf test.tar.gz -C 解压目录
(2)rar(需安装):

压缩:rar a 压缩包名(不需指定后缀) 压缩内容 (压缩目录加-r)
解压:rar x 压缩包名 解压目录

zip:

压缩:zip 压缩包名 压缩内容 (压缩目录加-r)
解压:unzip 压缩包名 -d 解压目录

13.软件的安装和卸载

(1)在线安装
安装:sudo apt-get install 安装包名字
卸载:sudo apt-get remove 软件名字
更新软件列表:sudo apt-get update
清空缓存:sudo apt-get clean
(2)软件包安装
安装:sudo dpkg -i xxx.deb
卸载:sudo dpkg -r 软件名

14.进程管理

ps -aux | grep tomcat
ps -aux | grep java
结束进程:kill 8080

15用户和组管理

1.chmod:

修改用户权限
文字设定法:chomd WHO+/-/=(默认)MODE 文件名
WHO:u文件所有者、g文件所属组、o其他人、a所有人(默认)
MODE:r 读、w 写、x 执行、- 无任何权限
数字设定法:chmod +/-/=(默认)MODE 文件名
MODE(3个八进制的数):r4、w2、x1、-0

2.chown:

修改文件所属者/组
chown 新所有者 文件名
chown 新所有者 : 新组 文件名
chgrp 新组 文件名

16.vim

  1. 安装vim(sudo apt-get install vim vim-scripts vim-doc)

  2. 三种模式(命令模式、编辑模式、末行模式)
    e3f368546d484b11b028b261e95c4976.png

  3. 命令模式下操作方法

打开文件: vi xxx
保存退出: ZZ
代码格式化: gg=G
(1)光标移动:
上:K 下:J 左:H 右:L
移动到行首:0 尾:

(2)删除:
删除光标前字符:X
后 :x
删除光标后单词:dw
删除光标前字符串:d0
后 :dggG123123Gnn(2)Xxdwd0d
删除光标所在行:dd
删除多行:ndd(n:行数)
删除光标前所有:dgg
后:dG
(3)撤销:u,反撤销:crtl+r
(4)复制 粘贴
复制1行:yy
复制多行:nyy
粘贴到光标下一行:p
上 :P
可视模式:v(hjkl 复制y 删除d 粘贴到光标前p 后q)
(5)替换
替换一个:r+要替换的(光标所在位置)
替换多个:R+要替换的(光标之后)
(6)查找: /xxx
按n切换到找到的下一个
N 上
光标移动到待搜索关键字上 按#
4.编辑模式
命令模式切编辑模式:
a:从光标后开始插入
A:从光标行尾开始插入
i:从光标前开始插入
I:从光标行首开始插入
o:在光标下一行创建空行
O: 上
s:删除光标盖住的字符
S:删除光标所在行
5.末行模式
命令模式切末行模式: ':'
(1)保存退出:wq/x

q:退出
保存不退出:w
!:强制
(2)行跳转:行号+回车

(3)替换

替换光标所在行的字符串:s/OLD/NEW/gc
替换一个范围:x,ys/OLD/NEW/gc (x,y为行数)
替换当前文档所有:%s/old/new/gc

(4)分屏
当前文件:水平分屏:sp、垂直分屏:vsp
不同文件: 水平分屏sp 文件名、垂直分屏:vsp 文件名
打开的时候分屏:水平vim -on 文件名 文件名、垂直分屏:vim-On 文件名 文件名(n:分屏的个数)
屏幕切换:crl+w+w
关闭所有:qall
保存关闭所有:wqall
保存所有:wall
(5)shell命令
:!+shell
(6)配置文件
用户级别:~/.vimrc
系统级别:/etc/vim/vimrc


TopTop