Java面试——Linux

Java面试——Linux

Java面试——Linux

一、如果知道一个文件名称,怎么查这个文件在 Linux下的哪个目录,如:要查找 tnsnames.ora文件

1 find / -name tnsnames.ora
2 #还可以用locate 来查找
3 locate tnsnames.ora

二、Linux 中如何查看某个端口是否被占用

netstat -anp | grep 端口号

三、如何查看所有 Java进程

ps -ef | grep java

四、怎么对命令进行取别名

alias la='ls -a'

五、什么是交换空间:交换空间是 Linux使用的一定空间,用于临时保存一些并发运行的程序。当 RAM没有足够的内存来容纳正在执行的所有程序时,就会发生这种情况。

六、简述 DNS 进行域名解析的过程:首先,客户端发出DNS 请求翻译IP 地址或主机名。DNS 服务器在收到客户机的请求后:
【1】检查 DNS 服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息;
【2】若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息;
【3】若没有查到,则将请求发给根域 DNS 服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS 服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。
【4】若没有找到,则返回错误信息。

七、如何挂起一个正在执行进程,转到后台执行:只需按 ctrl+z;

八、安装linux需要最少磁盘分区是多少,如何检查启动信息:安装 Linux时至少需要 /root分区,不过推荐最少使用3个分区,root、boot 和 swap;执行 cat /var/log/messages 可以查看启动信息;

九、创建一个新的 tar 文件: tar cvf archive_name.tar dirname/ ;解压 tar 文件:tar xvf archive_name.tar ;在不解压 tar包的情况下,查看其内容:tar tvf archive_name.tar

十、grep 命令的使用:
【1】在文件中查找字符串(不区分大小写):grep -i "the" demo_file
【2】输出成功匹配的行,以及该行之后的三行:grep -A 3 -i "example" demo_text
【3】在一个文件夹中递归查询包含指定字符串的文件:grep -r "ramesh" *

十一、export 命令:【1】输出跟字符串 oracle 匹配的环境变量:export | grep ORCALE
【2】设置全局环境变量:export ORACLE_HOME=/u01/app/oracle/product/10.2.0

十二、chmod 命令:chmod 用于改变文件和目录的权限。
【1】给指定文件的属主和属组所有权限(包括读、写、执行):chmod ug+rwx file.txt
【2】删除指定文件的属组的所有权限:chmod g-rwx file.txt
【3】修改目录的权限,以及递归修改目录下面所有文件和子目录的权限:chmod -R ug+rwx file.txt

十三、Linux 的体系结构:从大的方面讲,Linux 体系结构可以分为两块:
【1】用户空间(User Space) :用户空间又包括用户的应用程序(User Applications)、C 库(C Library) 。
【2】内核空间(Kernel Space) :内核空间又包括系统调用接口(System Call Interface)、内核(Kernel)、平台架构相关的代码(Architecture-Dependent Kernel Code) 。

十四、为什么 Linux 体系结构要分为用户空间和内核空间的原因:
【1】现代 CPU 实现了不同的工作模式,不同模式下 CPU 可以执行的指令和访问的寄存器不同。
【2】Linux 从 CPU 的角度出发,为了保护内核的安全,把系统分成了两部分。
用户空间和内核空间是程序执行的两种不同的状态,我们可以通过两种方式完成用户空间到内核空间的转移:1)系统调用;2)硬件中断。

十五、什么是 Linux 内核:Linux 系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。
【1】系统内存管理;
【2】应用程序管理;
【3】硬件设备管理;
【4】文件系统管理;

十六、Linux 开机启动过程:
【1】主机加电自检,加载 BIOS 硬件信息;
【2】读取 MBR 的引导文件(GRUB、LILO);
【3】引导 Linux 内核;
【4】运行第一个进程 init (进程号永远为 1 );
【5】进入相应的运行级别;
【6】运行终端,输入用户名和密码;

十七、Linux 使用的进程间通信方式:
【1】管道(pipe)、流管道(s_pipe)、有名管道(FIFO);
【2】信号(signal) ;
【3】消息队列;
【4】共享内存;
【5】信号量;
【6】套接字(socket) ;

十八、简单 Linux 文件系统:**在 Linux 操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件。**也就是说在 Linux 系统中有一个重要的概念:一切都是文件。其实这是 Unix 哲学的一个体现,而 Linux 是重写 Unix 而来,所以这个概念也就传承了下来。在 Unix 系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。Linux 支持 5 种文件类型,如下图所示:
img

十九、什么是硬链接和软链接
【1】硬链接:由于 Linux 下的文件是通过索引节点(inode)来识别文件,硬链接可以认为是一个指针,指向文件索引节点的指针,系统并不为它重新分配 inode 。每添加一个一个硬链接,文件的链接数就加 1 。
硬链接不足:1)不可以在不同文件系统的文件间建立链接;2)只有超级用户才可以为目录创建硬链接。
【2】软链接:软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。
软链接不足:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。
实际场景下,基本是使用软链接总结区别如下:
【1】硬链接不可以跨分区,软件链可以跨分区。
【2】硬链接指向一个 inode 节点,而软链接则是创建一个新的 inode 节点。
【3】删除硬链接文件,不会删除原文件,删除软链接文件,会把原文件删除。

二十、RAID 是什么:RAID 全称为独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、 容量巨大的硬盘。RAID 通常被用在服务器电脑上,使用完全相同的硬盘组成一个逻辑扇区,因此操作系统只会把它当做一个硬盘。

RAID 分为不同的等级,各个不同的等级均在数据可靠性及读写性能上做了不同的权衡。在实际应用中,可以依据自己的实际需求选择不同的 RAID 方案。

二十一、什么叫 CC 攻击?什么叫 DDOS 攻击:
【1】CC 攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问,从而使你的系统资源消耗殆尽。
【2】DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS 攻击。

攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。

DOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS 攻击。

攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。

二十二:怎么预防 CC 攻击和 DDOS 攻击:防 CC、DDOS 攻击,这些只能是用硬件防火墙做流量清洗,将攻击流量引入黑洞。流量清洗这一块,主要是买 ISP 服务商的防攻击的服务就可以,机房一般有空余流量,我们一般是买服务,毕竟攻击不会是持续长时间。

本文来源程序猿进阶,由javajgs_com转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/8294

发表评论