linux面试题必会题目整合了时下最热门的linux面试题,从进程到线程一步步讲解linux核心原理,让你理解操作系统的原理,更好的进行各项开发。
linux优势
持续稳定
极少出现系统崩溃,尤其适用于服务器和关键任务场景,内核经过长期优化,能够长时间稳定运行,
网络功能强大
适合搭建Web服务器、邮件服务器等,内置完善的网络协议栈,并提供灵活的网络配置。
可定制性
适配各种应用场景,允许根据需求裁剪内核或选择不同发行版(如服务器版、嵌入式版)。
开源免费
无需支付授权费用,大幅降低了使用成本,用户可以自由获取、修改和分发源代码。
跨平台兼容性
适用于PC、服务器、嵌入式设备等,支持x86、ARM、PowerPC等多种硬件架构。
安全性强
完善的权限管理机制和开源特性,使得漏洞能快速被发现和修复,有效抵御恶意攻击。
丰富的软件生态
涵盖开发、办公、科学计算等领域,提供大量开源工具和软件包(如Apache、MySQL)。
多用户多任务支持
允许多用户同时操作,高效分配资源,保证进程独立运行且互不干扰。
命令介绍
1、cd命令
(它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径)
cd/home进入‘/home’目录
cd../..返回上两级目录
cd..返回上一级目录
cd/返回跟目录
cd-返回上次所在的目录
mkdir<目录名>创建目录
mkdir-p/tmp/dir1/dir2递归创建目录树
mkdirdir1dir2同时创建两个目录
rm-rfdir1删除’dir1’⽬录和其内容
rm-ffile1删除’file1’⽂件
rmdirdir1删除’dir1’⽬录
-rm-rfdir1dir2同时删除两个⽬录及其内容
2、pwd命令
pwd显示工作路径
3、ls命令
ls查看目录中的文件
ls-l显示文件和目录的详细资料
ls-R连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
ls-lh查看⽂件和⽬录的详情列表(增强⽂件⼤⼩易读性)
ls-a列出全部文件,包含隐藏文件
ls-lSr查看⽂件和⽬录列表(以⽂件⼤⼩升序查看)
tree查看⽂件和⽬录的树形结构(如果没有需要先安装yuminstalltree)
ls-al/proc/pid/exe通过pid查询程序正在运行的路径
4、cp命令
(用于复制文件,copy之意,它还可以把多个文件一次性地复制到一个目录下)
-p连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-a将文件的特性一起复制
-i若目标文件已经存在时,在覆盖时会先询问操作的进行
-u目标文件与源文件有差异时才会复制
cp-a/temp/dir1.复制一个目录至当前目录
-r递归持续复制,用于目录的复制行为
-cpdir/*.复制某目录下的所有文件至当前目录
cp-adir1dir2复制目录
lnfile1lnk1创建指向⽂件/⽬录的物理链接
ln-sfile1link1创建指向⽂件/⽬录的软链接
touch-t0712250000file1修改一个文件或目录的时间戳-(YYMMDDhhmm)
5、mv命令
-fforce强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i若目标文件已经存在,就会询问是否覆盖
-u若目标文件已经存在,且比目标文件新,才会更新
mvold_dirnew_dir重命名/移动⽬录
6、rm命令
-f:就是force的意思,忽略不存在的文件,不会出现警告消息
-i:互动模式,在删除前会询问用户是否操作
-r:递归删除,最常用于目录删除,它是一个非常危险的参数
二、查看文件内容
7、cat命令
(用于查看文本文件的内容,后接要查看的文件名,通常可用管道与more和less一起使用)
cat-nfile1标示文件的行数
catxxx.txtawk‘NR%2==1’
catfile1从第一个字节开始正向查看文件的内容
tacfile1从最后一行开始反向查看一个文件的内容
morefile1查看一个长文件的内容
head-n2file1查看一个文件的前两行
tail-f/log/msg实时查看添加到⽂件中的内容
lessfile1类似more命令,但允许方向操作
tail-n+1000file1从1000行开始显示,显示1000行以后的
tail-n2file1查看一个文件的最后两行
catfilename|head-n3000|tail-n+1000显示1000行到3000行
catfilename|tail-n+3000|head-n1000从第3000行开始,显示1000(即显示3000~3999行)
grepsshello.txt在⽂件hello.txt中查找关键词ss
grep[0-9]hello.txt选择hello.txt⽂件中所有包含数字的⾏
grep^shello.txt在⽂件hello.txt中查找以s开头的内容
sed's/ss/mm/g'hello.txt将hello.txt⽂件中的ss替换成mm
sed'/^$/d'hello.txt从hello.txt⽂件中删除所有空⽩⾏
sed-n'/s1/p'hello.txt查看只包含关键词"s1"的⾏
sed'/*#/d;/^$/d'hello.txt从hello.txt⽂件中删除所有注释和空⽩⾏
sed-e'1d'hello.txt从⽂件hello.txt中排除第⼀⾏
sed-e's/*$//'hello.txt删除每⼀⾏最后的空⽩字符
sed-n'1,5p;5q'hello.txt查看从第⼀⾏到第5⾏内容
sed-e's/s1//g'hello.txt从⽂档中只删除词汇s1并保留剩余全部
sed-n'5p;5q'hello.txt查看第5⾏
pastefile1file2合并两个⽂件或两栏的内容
paste-d'+'file1file2合并两个⽂件或两栏的内容,中间⽤"+"区分
sortfile1file2排序两个⽂件的内容
sortfile1file2uniq
sortfile1file2uniq-u
sortfile1file2uniq-d
comm-1file1file2⽐较两个⽂件的内容(去除’file1’所含内容)
comm-2file1file2⽐较两个⽂件的内容(去除’file2’所含内容)
comm-3file1file2⽐较两个⽂件的内容(去除两⽂件共有部分)
三、文件搜索
8、find命令
ind/-namefile从根目录开始搜索文件/目录
find/-useruser1搜索用户user1的文件/目录
find/dir-name*.bin在目录/dir中搜索带有.bin后缀的文件
find/-namefile1从‘/’开始进入根文件系统搜索文件和目录(完整文件或文件名)
find/-useruser1搜索属于用户‘user1’的文件和目录
find/usr/bin-typef-atime+100搜索在过去100天内未被使用过的执行文件
find/usr/bin-typef-mtime-10搜索在10天内被创建或者修改过的文件
find.-regex'.*\(net\|comm\).*'‘-regex’选项匹配整个路径名,出当前目录树中所有文件名中任意位置包含字符串net或comm的文件
locate*.mp4寻找.mp4结尾的文件
whereis<关键词>显示某⼆进制⽂件/可执⾏⽂件的路径
whereishalt显示一个二进制文件、源码或man的位置
which<关键词>查找系统⽬录下某的⼆进制⽂件
whichhalt显示一个二进制文件或可执行文件的完整路径
四、文件的权限-使用“+”设置权限,使用“-”用于取消
9、chmod命令
ls-lh显示当前目录所有文件的权限
chmod777文件名修改文件权限(最高权限)
chmodugo+rwxdir设置目录的所有人(u)、群组(g)以及其他人(o)以读(r,4)、写(w,2)和执行(x,1)的权限
chmodgo-rwxdir1删除群组(g)与其他人(o)对目录的读写执行权限
chmodu+s/bin/file1设置一个二进制文件的SUID位-运行该文件的用户也被赋予和所有者同样的权限
chmodu-s/bin/file1`禁用一个二进制文件的SUID位
chmodg+s/home/public设置一个目录的SGID位-类似SUID,不过这是针对目录的
chmodg-s/home/public禁用一个目录的SGID位
chmodo+t/home/public设置一个文件的STIKY位-只允许合法所有人删除文件
chmodo-t/home/public禁用一个目录的STIKY位
chmod+x文件路径为所有者、所属组和其他用户添加执行的权限
chmod-x文件路径为所有者、所属组和其他用户删除执行的权限
chmodu+x文件路径为所有者添加执行的权限
chmodg+x文件路径为所属组添加执行的权限
chmodo+x文件路径为其他用户添加执行的权限
chmodug+x文件路径为所有者、所属组添加执行的权限
chmod=wx文件路径为所有者、所属组和其他用户添加写、执行的权限,取消读权限
chmodug=wx文件路径为所有者、所属组添加写、执行的权限,取消读权限
10、chown命令
(改变文件的所有者)
chownuser1file1改变一个文件的所有人属性
chown-Ruser1dir1改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chownuser1:group1file1改变一个文件的所有人和群组属性
11、chgrp命令
(改变文件所属用户组)
chgrpgroup1file1改变文件的群组
五、文本处理
12、grep命令
(分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等)
grepAug/var/log/messages在文件'/var/log/messages’中查找关键词"Aug"
grep^Aug/var/log/messages在文件'/var/log/messages’中查找以"Aug"开始的词汇
grep[0-9]/var/log/messages选择‘/var/log/messages’文件中所有包含数字的行
grepAug-R/var/log/*在目录‘/var/log’及随后的目录中搜索字符串"Aug"
sed's/stringa1/stringa2/g'example.txt将example.txt文件中的“string1”替换成“string2”
sed'/^$/d'example.txt从example.txt文件中删除所有空白行
13、paste命令
pastefile1file2合并两个文件或两栏的内容(查看两文件合并后的内容)
paste-d'+'file1file2合并两个文件或两栏的内容,中间用"+"区分
14、sort命令
sortfile1file2排序两个文件的内容
sortfile1file2|uniq取出两个文件的并集(重复的行只保留一份)
sortfile1file2|uniq-u删除交集,留下其他的行
sortfile1file2|uniq-d取出两个文件的交集(只留下同时存在于两个文件中的文件)
15、comm命令
comm-1file1file2比较两个文件的内容只删除‘file1’所包含的内容
comm-2file1file2比较两个文件的内容只删除‘file2’所包含的内容
comm-3file1file2比较两个文件的内容只删除两个文件共有的部
六、打包和压缩文件
16、tar命令
对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压)推荐
-c:新建打包文件
-t:查看打包文件的内容含有哪些文件名
-x:解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-j:通过bzip2的支持进行压缩/解压缩
-z:通过gzip的支持进行压缩/解压缩
-v:在压缩/解压缩过程中,将正在处理的文件名显示出来
-ffilename:filename为要处理的文件
-Cdir:指定压缩/解压缩的目录dir
解压:tar-jxv-ffilename.tar.bz2-C欲解压缩的目录
查询:tar-jtv-ffilename.tar.bz2
压缩:tar-jcv-ffilename.tar.bz2要被处理的文件或目录名称
bunzip2file1.bz2解压一个叫做'file1.bz2’的文件
bzip2file1压缩一个叫做‘file1’的文件
gunzipfile1.gz解压一个叫做'file1.gz’的文件
gzipfile1压缩一个叫做'file1’的文件
gzip-9file1最大程度压缩
rarafile1.rartest_file创建一个叫做‘file1.rar’的包
rarafile1.rarfile1file2dir1同时压缩‘file1’,‘file2’以及目录‘dir1’
rarxfile1.rar解压rar包
zipfile1.zipfile1创建一个zip格式的压缩包
unzipfile1.zip解压一个zip格式压缩包
zip-rfile1.zipfile1file2dir1将几个文件和目录同时压缩成一个zip格式的压缩包
七、进程相关的命令
17、ps命令
用于将某个时间点的进程运行情况选取下来并输出,process之意
-A:所有的进程均显示出来
-a:不与terminal有关的所有进程
-u:有效用户的相关进程
-x:一般与a参数一起使用,可列出较完整的信息
-l:较长,较详细地将PID的信息列出
psax#查看不与terminal有关的所有进程
ps-ef#显示所有进程的详细信息。
psaux#查看系统所有的进程数据
ps-lA#查看系统所有的进程数据
psaxjf#查看连同一部分进程树状态
netstat-lntp#查看各个节点及进程和使用的端口号
pstree-aup#查看正在运行的树桩结构显示
18、kill命令
kill-9程序的名字
kill-9pid(-9表示强制关闭)
pkill程序的名字
kill-
19、Vim下复制粘贴等操作
题目列表
1.说说你对操作系统的理解?核心概念有哪些?
2.说说什么是进程?什么是线程?区别?
3.说说你对shell的理解?常见的命令?
4.说说你对linux用户管理的理解?相关的命令有哪些?
5.说说linux系统下,文件操作常用的命令有哪些?
6.说说linux系统下,文本编辑常用的命令有哪些?
7.说说你对输入输出重定向和管道的理解,应用场景?