计算机复试 -- Linux
Linux面试笔记
常见的操作系统:
Windows:Microsoft开发的,风格统一、操纵灵活,使用简便的用户界面
Unix:最早的多用户、多任务操作系统,按照操作系统的分类,属于实时操作系统。Unix被用在服务器、工作站,现在也有用在个人电脑。它在创建互联网、计算机网络或客户端/服务器模型方面发挥着重要的作用。
Linux:是一套免费试用和自由传播的类Unix操作系统,Linux存在着许多不同的Linux版本,但他们都是试用着Linux内核的。Linux可以安装在各种计算机硬件设备中,比如手机、平板电脑、台式计算机等等。严格来讲,Linux这个词本身只表示Linux内核。
Linux文件系统
在Linux操作系统中,所有的被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件。
在Linux中,一切皆文件。把一切资源看作文件,包括硬件设备。UNIX系统把每个硬件都堪称文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。
普通文件:用来在辅助存储设备(如磁盘)上存储信息和数据
目录文件:用于表示管理系统中的文件,目录文件中包含一些文件名和子目录名
链接文件:用来访问目录下文件的共享
设备文件:用来访问硬件设备
命名管道(FIFO):是一种特殊类型的文件,Linux系统下,进程之间的通信通过该文件完成
对比Windows:
在windows是文件的,在Linux下同样也是文件;
在windows不是文件的(Windows中有盘的概念),在Linux下也是以文件的形式存储的;
Windows中的进程只是服务,在linux中也是文件
Linux常见目录文件
Bin:全称binary,含义是二进制。该目录中存储的都是一些二进制文件,文件都是可以被运行的,可执行文件
Mnt:当外接设备需要挂载的时候,就需要挂载到mnt目录下。运行的。
Dev:该目录中主要存放的是外接设备,例如U盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似windows下的分配盘符)。
Windows是自动分配盘符的(傻瓜式),但是linux中需要自动分配(挂载)
Etc:该目录主要存储一些配置文件。
Home:表示“家”,表示除了root用户以外其他用户的家目录,类似于windows下的User/用户目录。
Proc:process,表示进程,该目录中存储的是Linux运行时候的进程。(不要打开,东西太多,容易卡屏)
Root:该目录是root用户自己的家目录。(超级管理员)
Sbin:全称super binary,该目录也是存储一些可以被执行的二进制文件,但是必须得有super权限的用户才能执行。
Tmp:表示“临时”的,当系统运行时候产生的临时文件会在这个目录存着。Windows中的临时文件temp目录。
Usr:存放的是用户自己安装的软件。类似于windows下的program files。
Mut: 当外界设备需要挂载的时候
Var:存放的程序/系统的日志文件的目录。
什么是微内核什么是宏内核
宏内核也叫大内核。宏内核与微内核的区别其实就是大内核与小内核的区别。
微内核需要太多的切换,这直接导致性能底下;微内核一直努力遵循“内核应该极小化”的原则(minimality),这让很多微内核研究者和开发者收到了束缚,在时代允许的硬件环境下难以对性能进行有效优化。
- 易于维护和升级
- 系统更加稳定
- 系统更加安全
- 系统更加可定制
- 分布式计算。
什么是嵌入式:
嵌入的原文是“Embeded”,百度词典的翻译是“植入的,深入的,内含的”,这个词描述的是“硬件系统”和“软件系统”之间的关系,所以,“嵌入式”是指“软件系统”与“硬件系统”的关系非常紧密的一类“计算机系统”。
嵌入式特点
- 目标单一,只能做一两件事情,例如,汽车的点火器,只能打火和熄火;(不像PC这么有通用性,能上QQ、PS、玩各种各样的游戏)
- 编程针对特定的硬件平台,所以,必须要有相应的硬件编程知识;
- 硬件资源较少,一般内存也就100M左右,甚至更少,没有硬盘,一般使用flash闪存;
- 出厂后软件无法更改,用户无法选择额外的应用程序;
1、说一些你比较常用linux指令
1.1、ls/ll、cd、mkdir、rm-rf、cp、mv、ps -ef | grep xxx、kill、free-m、tar -xvf file.tar、
2、查看进程(例:如何查看所有xx进程)
2.1、ps -ef | grep xxx
2.2、ps -aux | grep xxx(-aux显示所有状态)
3、杀掉进程
3.1、kill -9[PID] ---(PID用查看进程的方式查找)
4、启动/停止服务
4.1、cd到bin目录cd/
4.2、./startup.sh --打开(先确保有足够的权限)
4.3、./shutdown.sh ---关闭
5、查看日志
5.1、cd到服务器的logs目录(里面有xx.out文件)
5.2、tail -f xx.out --此时屏幕上实时更新日志。ctr+c停止
5.3、查看最后100行日志 tail -100 xx.out
5.4、查看关键字附件的日志。如:cat filename | grep -C 5 '关键字'(关键字前后五行。B表示前,A表示后,C表示前后) ----使用不多
5.5、还有vi查询啥的。用的也不多。
6、查看端口:(如查看某个端口是否被占用)
6.1、netstat -anp | grep 端口号(状态为LISTEN表示被占用)
7、查找文件
7.1、查找大小超过xx的文件: find . -type f -size +xxk -----(find . -type f -mtime -1 -size +100k -size-400k)--查区间大小的文件
7.2、通过文件名:find / -name xxxx ---整个硬盘查找
其余的基本上不常用
8、vim(vi)编辑器
有命令模式、输入模式、末行模式三种模式。
命令模式:查找内容(/abc、跳转到指定行(20gg)、跳转到尾行(G)、跳转到首行(gg)、删除行(dd)、插入行(o)、复制粘贴(yy,p)
输入模式:编辑文件内容
末行模式:保存退出(wq)、强制退出(q!)、显示文件行号(set number)
在命令模式下,输入a或i即可切换到输入模式,输入冒号(:)即可切换到末行模式;在输入模式和末行模式下,按esc键切换到命令模式
内核裁剪
1、清理临时文件
2、分析系统硬件和软件的需求
3、生成配置文件
4、生成镜像
5、将需要安装的系统放在boot下
6、最后重启