八股(4)——Linux

主要来自javaguide,加上自己的理解,放这里是方便自己时不时打开看看,后续每一次看的时候应该都会逐渐换成自己最新的理解。

3.3 Linux

初探 Linux

Linux 简介

通过以下三点可以概括 Linux 到底是什么:

  • 类 Unix 系统:Linux 是一种自由、开放源码的类似 Unix 的操作系统
  • Linux 本质是指 Linux 内核:严格来讲,Linux 这个词本身只表示 Linux 内核,单独的 Linux 内核并不能成为一个可以正常工作的操作系统。所以,就有了各种 Linux 发行版。
  • Linux 之父(林纳斯·本纳第克特·托瓦兹 Linus Benedict Torvalds):一个编程领域的传奇式人物,真大佬!我辈崇拜敬仰之楷模。他是 Linux 内核 的最早作者,随后发起了这个开源项目,担任 Linux 内核的首要架构师。他还发起了 Git 这个开源项目,并为主要的开发者。
常见的 Linux 发行版本

Linux 操作系统

Linus Torvalds 开源的只是 Linux 内核,我们上面也提到了操作系统内核的作用。一些组织或厂商将 Linux 内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了 Linux 的发行版本。

内核主要负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。

Linux 的发行版本可以大体分为两类:

  • 商业公司维护的发行版本:比如 Red Hat 公司维护支持的 Red Hat Enterprise Linux (RHEL)。
  • 社区组织维护的发行版本:比如基于 Red Hat Enterprise Linux(RHEL)的 CentOS、基于 Debian 的 Ubuntu。

对于初学者学习 Linux ,推荐选择 CentOS,原因如下:

  • CentOS 免费且开放源代码;
  • CentOS 基于 RHEL,功能与 RHEL 高度一致,安全稳定、性能优秀。
Linux 文件系统简介

在 Linux 操作系统中,一切被操作系统管理的资源,如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或目录等,都被视为文件。这是 Linux 系统中一个重要的概念,即"一切都是文件"。

这种概念源自 UNIX 哲学,即将所有资源都抽象为文件的方式来进行管理和访问。Linux 的文件系统也借鉴了 UNIX 文件系统的设计理念。这种设计使得 Linux 系统可以通过统一的文件接口来管理和操作不同类型的资源,从而实现了一种统一的文件操作方式。例如,可以使用类似于读写文件的方式来对待网络接口、磁盘驱动器、设备文件等,使得操作和管理这些资源更加统一和简便。

这种文件为中心的设计理念为 Linux 系统带来了灵活性和可扩展性,使得 Linux 成为一种强大的操作系统。同时,这也是 Linux 系统的一大特点,深受广大用户和开发者的喜欢和推崇。

Linux 目录树

Linux 使用一种称为目录树的层次结构来组织文件和目录。目录树由根目录(/)作为起始点,向下延伸,形成一系列的目录和子目录。每个目录可以包含文件和其他子目录。结构层次鲜明,就像一棵倒立的树。
在这里插入图片描述

常见目录说明:

  • /bin: 存放二进制可执行文件(ls、cat、mkdir 等),常用命令一般都在这里;
  • /etc: 存放系统管理和配置文件;
  • /home: 存放所有用户文件的根目录,是用户主目录的基点,比如用户 user 的主目录就是/home/user,可以用~user 表示;
  • /usr: 用于存放系统应用程序;
  • /opt: 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把 tomcat 等都安装到这里;
  • /proc: 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息;
  • /root: 超级用户(系统管理员)的主目录(特权阶级o);
  • /sbin: 存放二进制可执行文件,只有 root 才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如 ifconfig 等;
  • /dev: 用于存放设备文件;
  • /mnt: 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统;
  • /boot: 存放用于系统引导时使用的各种文件;
  • /lib 和/lib64: 存放着和系统运行相关的库文件 ;
  • /tmp: 用于存放各种临时文件,是公用的临时文件存储点;
  • /var: 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等;
  • /lost+found: 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows 下叫什么.chk)就在这里。

Linux 常用命令

下面只是给出了一些比较常用的命令。

推荐一个 Linux 命令快查网站,非常不错,大家如果遗忘某些命令或者对某些命令不理解都可以在这里得到解决。Linux 命令在线速查手册:https://wangchujiang.com/linux-command/

shell.how 这个网站可以用来解释常见命令的意思,学习 Linux 基本命令以及其他常用命令(如 Git、NPM)。

目录切换
  • cd usr:切换到该目录下 usr 目录
  • cd ..(或cd../):切换到上一层目录
  • cd /
### Linux 常见面试问题及答案 #### 1. Shell 的作用是什么? Shell 是一种命令解释器,能够提供对操作系统核心功能的交互式访问。它不仅是一个用于执行命令的工具,还可以作为一个编程环境来编写脚本自动化任务。当用户登录到系统时,会根据用户的配置自动启动相应的 Shell 程序[^1]。 #### 2. /etc/sysctl.conf 文件的作用是什么? `/etc/sysctl.conf` 文件是用来调整优化 Linux 内核参数的重要配置文件。通过修改该文件中的设置,可以实现对网络性能、内存管理等方面的精细控制。这对于需要高性能网络连接的服务(如 Web 或缓存服务器)尤为重要[^2]。 #### 3. 如何查看当前系统的内核版本? 可以通过以下命令查看当前运行的操作系统内核版本: ```bash uname -r ``` 此命令返回的结果将是类似于 `5.x.y-z-generic` 这样的字符串表示形式。 #### 4. 解释一下 Linux 中的软链接与硬链接的区别。 - **硬链接**:多个文件名指向同一个 inode 节点。删除原文件不会影响其他硬链接的存在状态;但是无法跨分区创建。 - **软链接(符号链接)**:相当于 Windows 下快捷方式的概念,如果源文件被移除,则软链失效。 创建方法分别为: ```bash ln source_file hardlink_name # 创建硬链接 ln -s source_file symlink_name # 创建软链接 ``` #### 5. 使用 top htop 工具监控进程资源消耗情况。 `top` 是一个实时动态显示 Linux 系统中各个进程资源占用状况的标准工具之一。而 `htop` 则是在此基础上进行了图形化增强版展示效果更佳的应用程序。两者都可以帮助管理员快速定位高负载原因所在位置并采取相应措施解决瓶颈问题。 #### 6. 查找某个特定端口是否正在监听以及其所属服务名称的方法有哪些? 可以利用 netstat 或 ss 命令完成这项工作: ```bash netstat -tulnp | grep :80 # 替换 ":80" 成目标端口号即可. ss -tulwnp | grep :80 # 同样替换为实际使用的端口号. ``` 上述两条指令均能显示出对应端口的状态及其背后驱动它的具体可执行二进制路径信息. --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值