Linux 是一种广泛应用于服务器、嵌入式系统和桌面计算机的开源操作系统。掌握 Linux 的核心知识和常用命令,对成为一名合格的系统管理员或开发者至关重要。本文将涵盖 Linux 的基础知识、高级功能及其常见面试题。
🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。CSDN优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:
gylzbk
)
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。
Linux 是一个自由和开源的类 Unix 操作系统,其内核由 Linus Torvalds 于 1991 年首次发布。Linux 通常与 GNU 项目组件结合使用,以形成完整的操作系统。
Linux 文件系统采用树形结构,从根目录 /
开始,并向下分支到各个子目录,如 /home
、/etc
、/usr
等。
/bin
:存放基本的用户命令。/sbin
:存放系统管理员使用的命令。/etc
:配置文件目录。/home
:用户主目录。/var
:存放动态数据,如日志文件。/usr
:用户二进制文件和库的存放目录。ls
:列出目录内容。cd
:改变当前目录。pwd
:打印当前工作目录。cp
:复制文件或目录。mv
:移动或重命名文件或目录。rm
:删除文件或目录。mkdir
:创建目录。rmdir
:删除空目录。每个文件和目录都有权限和所有者属性,定义了谁可以读、写和执行。
ls -l
列出文件权限,如 -rwxr-xr--
。 -
表示普通文件,d
表示目录。chmod
:更改文件权限。chmod 755 filename # 赋予文件所有者读写执行权限,组用户和其他用户读执行权限
chown
:更改文件所有者。chown user:group filename # 更改文件所有者和组
chgrp
:更改文件所属组。chgrp groupname filename # 更改文件所属组
进程是正在运行的程序实例,每个进程有一个唯一的 PID(进程 ID)。
ps
:显示当前进程信息。ps aux # 显示所有进程的详细信息
top
:实时显示系统中各进程的信息。top # 交互式进程管理工具
kill
:终止进程。kill -9 pid # 强制终止指定 PID 的进程
killall
:根据名称终止进程。killall processname # 终止所有指定名称的进程
bg
:将作业放入后台并继续执行。fg
:将后台作业调至前台并继续运行。jobs
:显示后台作业。ifconfig
:显示或配置网络接口。ifconfig # 显示网络接口信息
ip
:显示或配置网络设备、路由、隧道。ip addr show # 显示网络接口地址
ping
:检测网络连通性。ping www.example.com # 检查与目标主机的连接
netstat
:显示网络连接、路由表、接口统计信息。netstat -tuln # 显示监听的端口和服务
traceroute
:跟踪数据包到达目标主机的路径。traceroute www.example.com # 跟踪到目标主机的路由
nslookup
:查询 DNS 记录。nslookup www.example.com # 查询域名解析信息
使用 journalctl
(适用于 systemd
) 或 dmesg
命令查看系统日志:
journalctl
:journalctl # 查看所有系统日志 journalctl -u service_name # 查看特定服务日志
dmesg
:dmesg # 查看内核日志
使用 top
、htop
、free
等命令:
top
:实时显示系统资源使用情况。htop
:类似 top
,但提供更友好的界面。free
:显示内存使用情况。free -h # 以人类可读格式显示内存使用情况
编辑网络配置文件,如 /etc/network/interfaces
或 /etc/sysconfig/network-scripts/ifcfg-eth0
(基于发行版):
sudo nano /etc/network/interfaces # 添加以下内容 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 8.8.4.4
重新启动网络服务:sudo systemctl restart networking
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0 # 添加或修改以下内容 BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4 ONBOOT=yes
重新启动网络服务:sudo systemctl restart network
使用 useradd
、usermod
和 userdel
命令:
sudo useradd -m username # 创建带有主目录的新用户 sudo passwd username # 设置用户密码
sudo usermod -aG groupname username # 将用户添加到组
sudo userdel -r username # 删除用户和主目录
使用 systemctl
命令(适用于 systemd
):
sudo systemctl status service_name
sudo systemctl start service_name
sudo systemctl stop service_name
sudo systemctl restart service_name
sudo systemctl enable service_name
使用 crontab
设置定时任务:
crontab -e
# 每天凌晨 2 点运行备份脚本 0 2 * * * /path/to/backup.sh
crontab -l
使用 fsck
工具:
sudo fsck /dev/sdXN # 检查并尝试修复文件系统
通常需要在单用户模式或系统启动时以只读模式进行。使用 tar
、gzip
、bzip2
等工具:
tar -czvf archive.tar.gz /path/to/directory # 创建 gzip 压缩的 tar 包 tar -cjvf archive.tar.bz2 /path/to/directory # 创建 bzip2 压缩的 tar 包
tar -xzvf archive.tar.gz # 解压 gzip 压缩的 tar 包 tar -xjvf archive.tar.bz2 # 解压 bzip2 压缩的 tar 包
使用 echo
和 export
命令:
echo $PATH # 查看 PATH 环境变量
export VAR_NAME=value # 设置临时环境变量
永久设置环境变量,可以将其添加到 ~/.bashrc
或 ~/.profile
文件。使用 cat
、less
、more
、head
和 tail
等命令:
cat filename
less filename more filename
head -n 10 filename # 查看前 10 行
tail -n 10 filename # 查看后 10 行
使用 find
和 locate
命令:
find /path -name "filename"
locate filename
需定期更新数据库:sudo updatedb
使用 top
、htop
、vmstat
、iostat
和 sar
等工具:
vmstat 2 5 # 每 2 秒采样一次,连续采样 5 次
iostat 2 5 # 每 2 秒采样一次,连续采样 5 次
sar -u 2 5 # 每 2 秒采样一次,连续采样 5 次 CPU 使用率
通过掌握上述 Linux 常见面试题及解答,可以更好地理解和熟悉 Linux 系统的基本操作、进程管理、网络管理、权限管理等内容。这不仅有助于面试,还能在实际工作中提高效率,维护和优化系统性能。
希望这篇 Linux 面试题大全能为大家的学习和面试准备提供有价值的参考和帮助。祝愿大家在 Linux 面试中取得优异成绩,成功获取理想的工作机会!继续学习和实践,在 Linux 系统管理和开发中不断进步。
下一篇:python人工智能怎么学