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