java面试速记-linux知识点

java面试速记-linux知识点

1. linux 基础命令

  • 查看目录列表

使用ls命令。可以加上不同的参数实现不同的功能,如ls -l可以显示详细信息,ls -a可以显示隐藏文件。

  • 切换目录

使用cd命令。例如cd /home/user可以切换到/home/user目录。

  • 创建一个新目录

使用mkdir命令。例如mkdir newdir可以创建一个名为newdir的目录。

  • 如何删除一个目录和文件

使用rm命令。例如rm file.txt可以删除名为file.txt的文件。

使用rm -r命令。例如rm -r dir可以删除名为dir的目录及其内容。

  • 复制文件

使用cp 命令。例如cp file1.txt file2.txt可以将file1.txt复制为file2.txt。

  • 如何移动文件

使用mv命令。例如mv file.txt /newdir可以将file.txt移动到/newdir目录下。

  • 查看一个文件的内容?

使用cat一次性显示整个内容,more分页显示针对大文件, tail实时日志 :cat file.txt、more fi le.txt、tail -f file.txt。

  • 查找文件

使用find命令。例如find / -name file.txt可以在整个文件系统中查找名为file.txt的文件。

2. linux 权限管理

  • linux 中的文件权限有哪些

linux 中的文件权限分为三种:读(r)、写(w)、执行(x)。对于文件所有者、所属组和其他用户分别有不同的权限设置。

  • 如何查看文件的权限

使用ls -l命令可以查看文件的详细信息,其中包括文件的权限。

  • 如何修改文件的权限

使用chmod命令。可以使用数字表示法或符号表示法来修改权限。例如chmod 777 file.txt可以将文件的权限设置为所有者有读写执行权限.

  • 如何修改文件的所有者?

使用chown命令。例如chown user file.txt可以将文件的所有者修改为user。

3. 进程管理类

  • 查看正在运行的进程

使用ps命令。例如ps aux或ps -ef可以查看所有用户的所有进程。

  • 如何杀死一个进程

使用kill命令。首先使用ps命令查找。然后使用kill -9 PID来杀死进程

  • 查看进程的状态

使用ps命令结合不同的参数来查看进程的状态,如ps -aux | grep process_name

4. 系统管理类

  • 查看系统的内存使用情况

可以使用free命令查看系统的内存使用情况。

  • 查看系统的 CPU 使用情况?

可以使用top命令查看系统的 CPU 使用情况。

  • 查看系统的磁盘使用情况?

使用df命令可以查看磁盘的使用情况。df -h可以以人类可读的格式显示磁盘信息。

  • 查看系统的负载情况

使用uptime命令查看系统的负载情况。

  • 查看系统的内核版本?

使用uname -r命令可以查看系统的内核版本。

5. 网络管理类

  • 查看网络接口的状态?

使用ifconfig或ip addr命令可以查看网络接口的状态。这些命令可以显示网络接口的 IP 地址、子网掩码、MAC 地址等信息。

  • 测试网络连接?

可以使用ping命令测试网络连接。例如ping www.example.com可以测试与www.example.com的网络连接。

  • 查看网络端口的使用情况?

使用netstat或ss命令查看网络端口的使用情况。例如netstat -tuln可以查看所有正在监听的 TCP 和 UDP 端口。

  • 配置静态 IP 地址?

修改网络配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens160 不同版本查看相应发行版文档。

  • 设置主机名

使用hostnamectl命令设置主机名。例如hostnamectl set-hostname xxx

6. Shell 编程类

  • 定义 shell 变量?

使用home_path="/bin/",uname="zhangsan" 使用变量echo $uname会输出变量uanme值。

  • 定义数组

用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:数组名=(值1 值2 ... 值n)

array_name=(value0 value1 value2 value3) , 读取数组 ${数组名[下标]}

  • 如何进行条件判断?

使用if语句进行条件判断。例如if [ condition ]; then statements; fi。其中condition是条件表达式,可以使用比较运算符(如-eq、-ne、-gt等)和逻辑运算符(如&&、||等)来构建条件表达式

  • 如何进行循环?

for循环、while循环和until循环。

for var in item1 item2 ... itemN; do command1; command2... done;

for loop in 1 2 3 4 5 do echo "The value is: $loop" done

#!/bin/bash

int=1 while(( int\<=5 )) do echo int let "int++" done

7. 服务管理类

  • 启动服务?

使用systemctl命令来启动服务。例如systemctl start service_name

  • 停止一个服务?

使用systemctl stop service_nam

  • 查看服务的状态?

使用systemctl status service_nam

  • 设置服务自动启动?

systemctl enable service_name

8. 文件系统类

  • 如何挂载文件系统

使用mount命令可以挂载一个文件系统。例如mount /dev/sdb1 /mnt可以将设备/dev/sdb1挂载到/mnt目录下。

  • 卸载文件系统?

使用umount命令可以卸载一个文件系统。例如umount /mnt可以卸载/mnt目录下的文件系统。

  • 查看已挂载的文件系统列表?

使用mount命令或df命令可以查看已挂载的文件系统列表。

9. 用户管理类

  • 创建用户

使用useradd命令可以创建一个新用户。例如useradd newuser可以创建一个名为newuser的用户。

使用passwd命令可以设置用户密码。例如passwd newuser可以为用户newuser设置密码。

  • 如何切换用户?

使用su命令可以切换用户。例如su - user可以切换到用户user。

  • 查看当前登录的用户?

使用whoami命令可以查看当前登录的用户。

10. 文件解压缩

  • linux 常见的压缩文件格式?

文件格式有.tar、.tar.gz(.tgz)、.zip、

  • 压缩一个文件或目录?

对于.tar格式,使用tar -cvf archive.tar file_or_directory

对于.tar.gz格式,使用tar -zcvf archive.tar.gz file_or_directory

对于.zip格式,使用zip archive.zip file_or_directory

  • 如何解压文件?

对于.tar格式,使用tar -xvf archive.tar

对于.tar.gz格式,使用tar -zxvf archive.tar.gz

对于.zip格式,使用unzip archive.zip

11. 定时任务类

  • 设置定时任务?

使用crontab命令来设置定时任务。编辑用户的 crontab 文件,例如使用crontab -e,然后按照特定的格式添加定时任务。格式为"分 时 日 月 周 命令",

每 10 分钟执行一次 */10 * * * * /path/to/your/script

每天凌晨2点执行:0 2 * * * /path/to/your/script

  • 查看已设置的定时任务?

使用crontab -l可以查看当前用户已设置的定时任务。

  • 删除定时任务?

使用crontab -e编辑 crontab 文件,删除相应的定时任务行,然后保存退出。

12. SSH 相关类

  • SSH 连接到远程服务器?

使用ssh username@remote_host命令,其中username是远程服务器的用户名,remote_host是远程服务器的地址或域名。

  • 设置 SSH 免密码登录?

在本地生成 SSH 密钥对,使用ssh-keygen命令。然后将公钥复制到远程服务器上,使用ssh-copy-id username@remote_host命令。

  • 修改 SSH 的默认端口?

编辑/etc/ssh/sshd_config文件,找到Port行,修改为想要的端口号。然后重启 SSH 服务,例如使用systemctl restart sshd。

  • 禁止 root 用户通过 SSH 登录?

编辑/etc/ssh/sshd_config文件,将PermitRootLogin设置为no。然后重启 SSH 服务。

13. linux 防火墙

  • 查看开放的端口

firewall-cmd --zone=public --list-ports

  • 开放指定端口(永久生效)

firewall-cmd --permanent --zone=public --add-port=80/tcp

  • 关闭指定端口(永久生效)

firewall-cmd --permanent --zone=public --remove-port=80/tcp

  • 批量开放端口

firewall-cmd --permanent --zone=public --add-port=4000-4500/tcp

  • 重新加载规则(不影响连接)

firewall-cmd --reload