本博客将汇总 Linux 面试中常见的题目,并提供详细的解答。
文章目录
- 1、绝对路径用什么[符号表](https://so.csdn.net/so/search?q=符号表&spm=1001.2101.3001.7020)示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
- 2、怎么查看当前进程?怎么执行退出?怎么查看当前路径?
- 3、怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令??
- 4、Ls命令执行什么功能? 可以带哪些参数,有什么区别?
- 5、查看文件有哪些命令?
- 6、列举几个常用的Linux命令。
- 7、你平时是怎么查看日志的?
- 8、建立软链接(快捷方式),以及[硬链接](https://so.csdn.net/so/search?q=硬链接&spm=1001.2101.3001.7020)的命令
- 9、目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
- 10、查看文件内容有哪些命令可以使用?
- 11、随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?
- 12、终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
- 13、移动文件用哪个命令?改名用哪个命令?
- 14、复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?
- 15、删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
- 16、Linux下命令有哪几种可使用的通配符?分别代表什么含义?
- 17、用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
- 18、Grep命令有什么用? 如何忽略大小写? 如何查找不含该串的行?
- 19、Linux中进程有哪几种状态?在ps显示出来的信息中分别用什么符号表示的?
- 20、怎么使一个命令在后台运行?
- 21、利用ps怎么显示所有的进程? 怎么利用ps?
- 22、哪个命令专门用来查看后台任务?
- 23、把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?
- 24、终止进程用什么命令? 带什么参数?
- 25、怎么查看系统支持的所有信号?
- 26、搜索文件用什么命令? 格式是怎么样的?
- 27、查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?
- 28、使用什么命令查看用过的命令列表?
- 29、使用什么命令查看磁盘使用空间?空闲空间呢?
- 30、使用什么命令查看网络是否连通?
- 31、使用什么命令查看IP地址及接口信息?
- 32、查看各类环境变量用什么命令?
- 33、通过什么命令指定命令提示符?
- 34、查找命令的可执行文件是去哪查找的? 怎么对其进行设置及添加?
- 35、通过什么命令查找执行命令?
- 36、怎么对命令进行取别名?
- 37、du和df的定义,以及区别?
- 38、awk详解。
- 39、当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?
- 40、如果一个Linux新手想要知道当前系统支持的所有命令的列表,他需要怎么做?
- 41、如果你的助手想要打印出当前的目录栈,你会建议他怎么做?
- 42、你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?
- 43、bash shell中的hash命令有什么作用?
- 44、哪一个bash内置命令能够进行数学运算。
- 45、怎样一页一页地查看一个大文件的内容呢?
- 46、数据字典属于哪一个用户的?
- 47、怎样查看一个linux命令的概要与用法?假设你在/bin 目录中偶然看到一个你从没见过的的命令,怎样才能知道它的作用和用法呢?
- 48、使用哪一个命令可以查看自己文件系统的磁盘空间配额呢?
1、绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
答:
绝对路径: 如/etc/init.d
当前目录和上层目录:./ …/
主目录: ~/
切换目录:cd
2、怎么查看当前进程?怎么执行退出?怎么查看当前路径?
答:
查看当前进程:ps
执行退出:exit
查看当前路径:pwd
3、怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令??
答:
清屏:clear
退出当前命令:ctrl+c彻底退出
执行睡眠 :ctrl+z挂起当前进程fg恢复后台查看当前用户id:”id“:查看显示目前登陆账户的uid和gid及所属分组及用户名
查看指定帮助:如man adduser这个很全 而且有例子;adduser–help这个告诉你一些常用参数;info adduesr;
4、Ls命令执行什么功能? 可以带哪些参数,有什么区别?
答:
ls执行的功能: 列出指定目录中的目录,以及文件哪些参数以及区别:a所有文件l详细信息,包括大小字节数,可读可写可执行的权限等
5、查看文件有哪些命令?
答:
vi文件名#编辑方式查看,可修改
cat文件名#显示全部文件内容
more文件名#分页显示文件内容
less文件名#与more相似,更好的是可以往前翻页
tail文件名#仅查看尾部,还可以指定行数
head文件名#仅查看头部,还可以指定行数
6、列举几个常用的Linux命令。
答:
列出文件列表:ls【参数 -a -l】
创建目录和移除目录:mkdir rmdir
用于显示文件后几行内容:tail,例如: tail -n 1000:显示最后1000行
打包:tar -xvf
打包并压缩:tar -zcvf
查找字符串:grep
显示当前所在目录:pwd创建空文件:touch
编辑器:vim vi
7、你平时是怎么查看日志的?
答:
Linux查看日志的命令有多种:tail、cat、tac、head、echo等,本文只介绍几种常用的方法。
1、tail
最常用的一种查看方式
命令格式: tail[必要参数][选择参数][文件]
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
例如:
tail -n 10 test.log 查询日志尾部最后10行的日志; tail -n +10 test.log 查询10行之后的所有日志; tail -fn 10 test.log 循环实时查看最后1000行记录(最常用的)
一般还会配合着grep搜索用,例如;
tail -fn 1000 test.log | grep ‘关键字’
如果一次性查询的数据量太大,可以进行翻页查看,例如 :
tail -n 4700 aa.log |more -1000 可以进行多屏显示(ctrl + f 或者 空格键可以快捷键)
2、head
跟tail是相反的head是看前多少行日志
head -n 10 test.log 查询日志文件中的头10行日志; head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
head其他参数参考tail
3、cat
cat 是由第一行到最后一行连续显示在屏幕上
一次显示整个文件:
$ cat filename
从键盘创建一个文件:
$cat > filename
将几个文件合并为一个文件:
$cat file1 file2 > file 只能创建新文件,不能编辑已有文件
将一个日志文件的内容追加到另外一个:
$cat -n textfile1 > textfile2
清空一个日志文件;
$cat : >textfile2
注意:> 意思是创建,>>是追加。千万不要弄混了。
cat其他参数参考tail
4、more
more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。more命令从前向后读取文件,因此在启动时就加载整个文件。
该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:–More–(XX%)
more的语法:more文件名
Enter 向下n行,需要定义,默认为1行
Ctrl f 向下滚动一屏
空格键 向下滚动一屏
Ctrl b返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
v 调用vi编辑器
!命令调用Shell,并执行命令
q退出more
5、sed
这个命令可以查找日志文件特定的一段 , 根据时间的一个范围查询,可以按照行号和时间范围查询按照行号
sed -n ‘5,10p’ filename这样你就可以只查看文件的第5行到第10行。
按照时间段
sed -n ‘/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p’ test.log
6、less
less命令在查询日志时,一般流程是这样的
less log.log shift + G 命令到文件尾部 然后输入 ?加上你要搜索的关键字例如 ?1213 按 n 向上查找关键字 shift+n 反向查找关键字 less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查看 之前不会加载整个文件。 less log2013.log 查看文件 ps -ef | less ps查看进程信息并通过less分页显示 history | less 查看命令历史使用记录并通过less分页显示 less log2013.log log2014.log 浏览多个文件
常用命令参数:
less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查看 之前不会加载整个文件。 less log2013.log 查看文件 ps -ef | less ps查看进程信息并通过less分页显示 history | less 查看命令历史使用记录并通过less分页显示 less log2013.log log2014.log 浏览多个文件常用命令参数: -b <缓冲区大小> 设置缓冲区的大小 -g 只标志最后搜索的关键词 -i 忽略搜索时的大小写 -m 显示类似more命令的百分比 -N 显示每行的行号 -o <文件名> 将less 输出的内容在指定文件中保存起来 -Q 不使用警告音 -s 显示连续空行为一行 /字符串:向下搜索"字符串"的功能 ?字符串:向上搜索"字符串"的功能 n:重复前一个搜索(与 / 或 ? 有关) N:反向重复前一个搜索(与 / 或 ? 有关) b 向后翻一页 h 显示帮助界面 q 退出less命令
一般本人查日志配合应用的其他命令
history // 所有的历史记录 history | grep XXX // 历史记录中包含某些指令的记录 history | more // 分页查看记录 history -c // 清空所有的历史记录 !! 重复执行上一个命令 查询出来记录后选中 : !323
8、建立软链接(快捷方式),以及硬链接的命令
答:
软链接: ln -s slink source
硬链接: ln link source
9、目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
答:
创建目录: mkdir
创建文件:典型的如touch,vi也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件复制文件: cp7文件权限修改用什么命令?格式是怎么样的?
文件权限修改: chmod
格式如下:
chmodu+xfile 给 file 的属主增加执行权限 chmod 751 file 给 file 的属主分配读、写、执行(7)的权限,给 file 的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限chmodu=rwx,g=rx,o=xfile 上例的另一种形式 chmod =r file 为所有用户分配读权限chmod444file 同上例 chmod a-wx,a+r file 同上例$ chmod -R u+r directory 递归地给 directory 目录下所有文件和子目录的属主分配读的权限
10、查看文件内容有哪些命令可以使用?
答:
vi文件名 #编辑方式查看,可修改
cat文件名 #显示全部文件内容
more文件名 #分页显示文件内容
less文件名#与 more 相似,更好的是可以往前翻页
tail 文件名 #仅查看尾部,还可以指定行数
head 文件名 #仅查看头部,还可以指定行数
11、随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?
答:
写文件命令:vi
向屏幕输出带空格的字符串:echo hello world
12、终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
答:
终端 /dev/tty
黑洞文件 /dev/null
13、移动文件用哪个命令?改名用哪个命令?
答:
mv mv
14、复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?
答:
cp cp -r ?? ??
15、删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
答:
rm rm -r rmdir
16、Linux下命令有哪几种可使用的通配符?分别代表什么含义?
答:
? ”可替代单个字符。
“*” 可替代任意多个字符。
方括号“ [charset]” 可替代charset集中的任何单个字符, 如 [a-z], [abABC]
17、用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
答:
wc命令-c统计字节数- l统计行数-w统计字数。
18、Grep命令有什么用? 如何忽略大小写? 如何查找不含该串的行?
答:
是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。
grep [stringSTRING] filename grep [^string] filename
19、Linux中进程有哪几种状态?在ps显示出来的信息中分别用什么符号表示的?
答:
1、不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断,指进程不响应异步信号。
2、暂停状态/跟踪状态:向进程发送一个SIGSTOP信号,它就会因响应该信号 而进入TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。正被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。
3、就绪状态:在 run_queue 队列里的状态
4、运行状态:在 run_queue 队列里的状态
5、可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待socket 连接、等待信号量),而被挂起
6、zombie 状态(僵尸):父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体(task_struct)也释放掉
7、退出状态
D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核 2.6 开始无效)
X 死掉的进程
20、怎么使一个命令在后台运行?
答:
一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)
21、利用ps怎么显示所有的进程? 怎么利用ps?
答:
ps -ef (system v 输出)
ps -aux bsd 格式输出
ps -ef | grep pid
22、哪个命令专门用来查看后台任务?
答:
job -l
23、把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?
答:
把后台任务调到前台执行fg
把停下的后台任务在后台执行起来bg
24、终止进程用什么命令? 带什么参数?
答:
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
kill-9 pid
25、怎么查看系统支持的所有信号?
答:
kill -l
26、搜索文件用什么命令? 格式是怎么样的?
答:
find <指定目录> <指定条件> <指定动作>
whereis 加参数与文件名
locate 只加文件名
find 直接搜索磁盘,较慢。
find / -name “string*”
27、查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?
答:
查找自己所在的终端信息:who am i
查看当前谁在使用该主机:who
28、使用什么命令查看用过的命令列表?
答:
history
29、使用什么命令查看磁盘使用空间?空闲空间呢?
答:
df -hl
文件系统容量已用可用已用% 挂载点
Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G 44% / /dev/hda1 494M 19M 450M 4% /boot
30、使用什么命令查看网络是否连通?
答:
netstat
31、使用什么命令查看IP地址及接口信息?
答:
ifconfig
32、查看各类环境变量用什么命令?
答:
查看所有env
查看某个,如home:env $HOME
33、通过什么命令指定命令提示符?
答:
34、查找命令的可执行文件是去哪查找的? 怎么对其进行设置及添加?
答:
whereis [-bfmsu][-B <目 录 >…][-M <目 录 >…][-S <目 录 >…][文 件 …]
补充说明:whereis指令会在特定目录中查找符合条件的文件。这些文件的烈性应属于原始代码,二进制文件,或是帮助文件。
-b只查找二进制文件。
-B <目录> 只在设置的目录下查找二进制文件。 -f不显示文件名前的路径名称。
-m 只查找说明文件。
-M <目录> 只在设置的目录下查找说明文件。-s 只查找原始代码文件。
-S <目录> 只在设置的目录下查找原始代码文件。 -u 查找不包含指定类型的文件。
w -h ich 指令会在 PATH 变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p 与-n 参数相同,但此处的包括了文件的路径。 -w 指定输出时栏位的宽度。
-V 显示版本信息
35、通过什么命令查找执行命令?
答:
which只能查可执行文件
whereis只能查二进制文件、说明文档,源文件等
36、怎么对命令进行取别名?
答:
alias la='ls -a
37、du和df的定义,以及区别?
答:
du显示目录或文件的大小
df显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统。(文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为MetaData。) du命令是用户级的程序,它不考虑Meta Data,而df命令则查看文件系统的磁盘分配图并考虑Meta Data。
df命令获得真正的文件系统数据,而du命令只查看文件系统的部分情况。
38、awk详解。
awk '{pattern + action}' {filenames} #cat /etc/passwd |awk -F ':' '{print 1"\t"7}'
//-F 的意思是以’:'分隔 root /bin/bash daemon /bin/sh 搜索/etc/passwd 有 root 关键字的所有行 #awk -F: '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash
39、当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?
答:
可以使用bind 命令,bind可以很方便地在shell中实现宏或按键的绑定。
在进行按键绑定的时候,我们需要先获取到绑定按键对应的字符序列。
比如获取F12的字符序列获取方法如下:先按下Ctrl+V,然后按下F12我们就可以得到F12的字符序列 ^[[24~。
接着使用bind进行绑定
[root@localhost ~]# bind ‘”\e[24~":“date”’
注意:相同的按键在不同的终端或终端模拟器下可能会产生不同的字符序列。
【附】也可以使用showkey -a命令查看按键对应的字符序列。
40、如果一个Linux新手想要知道当前系统支持的所有命令的列表,他需要怎么做?
答:
使用命令compgen-c,可以打印出所有支持的命令列表。
[root@localhost ~]$ compgen -c l.lllswhich ifthen else elif fi
case esac for select while until dodone
41、如果你的助手想要打印出当前的目录栈,你会建议他怎么做?
答:
使用Linux命令dirs可以将当前的目录栈打印出来。
[root@localhost ~]# dirs /usr/share/X11
42、你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?
答:
使用linux 命令 ’disown -r ’可以将所有正在运行的进程移除。
43、bash shell中的hash命令有什么作用?
答:
linux命令’hash’管理着一个内置的哈希表,记录了已执行过的命令的完整路径,用该命令可以打印出你所使用过的命令以及执行的次数。
[root@localhost ~]# hash hits command 2 /bin/ls 2 /bin/su
44、哪一个bash内置命令能够进行数学运算。
答:
bash shell 的内置命令 let 可以进行整型数的数学运算
#! /bin/bash … … le t c=a+b … …
45、怎样一页一页地查看一个大文件的内容呢?
答:
通过管道将命令”cat file_name.txt” 和 ’more’ 连接在一起可以实现这个需要
[root@localhost ~]# cat file_name.txt | more
46、数据字典属于哪一个用户的?
答:
数据字典是属于’SYS’用户的,用户‘SYS’ 和 ’SYSEM’是由系统默认自动创建的
47、怎样查看一个linux命令的概要与用法?假设你在/bin 目录中偶然看到一个你从没见过的的命令,怎样才能知道它的作用和用法呢?
答:
使用命令whatis可以先出显示出这个命令的用法简要,比如,你可以使用whatis zcat去查看‘zcat’的介绍以及使用简要。
[root@localhost ~]# whatis zcat zcat [gzip] (1) – compress or expand files
48、使用哪一个命令可以查看自己文件系统的磁盘空间配额呢?
答:
使用命令repquota 能够显示出一个文件系统的配额信息
【附 】只有root用户才能够查看其它用户配额 。