Linux 面试题

1、绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?

  • 绝对路径: 如/etc/init.d
  • 当前目录和上层目录: ./ …/
  • 主目录: ~/
  • 切换目录: cd

2、怎么查看当前进程?怎么执行退出?怎么查看当前路径?

  • 查看当前进程: ps
  • 执行退出: exit
  • 查看当前路径: pwd

3、怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当

  • 清屏: clear
  • 退出当前命令: ctrl+c 彻底退出
  • 执行睡眠 : ctrl+z
  • 挂起当前进程 fg

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等,本文只介绍几种常用的方法。

7.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 或者 空格键可以快捷键)
7.2、head

跟tail是相反的head是看前多少行日志

head -n 10 test.log 查询日志文件中的头10行日志; 
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;

head其他参数参考tail

7.3、cat

cat 是由第一行到最后一行连续显示在屏幕上

一次显示整个文件 :

$ cat filename

从键盘创建一个文件 :

$cat > filename

将几个文件合并为一个文件:

$cat file1 file2 > file 只能创建新文件,不能编辑已有文件

将一个日志文件的内容追加到另外一个 :

$cat -n textfile1 > textfile2

清空一个日志文件:

$cat : >textfile2

注意:> 意思是创建,>>是追加。千万不要弄混了。

7.4、more

more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。

more命令从前向后读取文件,因此在启动时就加载整个文件。

该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:–More–(XX%)

more的语法:more 文件名

more名单中内置了若干快捷键,常用的有

  • H(获得帮助信息),
  • Enter(向下翻滚一行)
  • 空格(向下滚动一屏),
  • Q(退出命令)。
  • Ctrl f 向下滚动一屏
  • Ctrl b 返回上一屏
  • = 输出当前行的行号
  • :f 输出文件名和当前行的行号
  • v 调用vi编辑器
  • !命令 调用Shell,并执行命令
7.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
7.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 浏览多个文件

查日志配合应用的其他命令

history // 所有的历史记录 
history | grep XXX // 历史记录中包含某些指令的记录 
history | more // 分页查看记录 
history -c // 清空所有的历史记录 
!! 重复执行上一个命令 
查询出来记录后选中 : !323

8、建立软链接(快捷方式),以及硬链接的命令

软链接: ln -s slink source 
硬链接: ln link source

9、随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?

写文件命令:

vi

向屏幕输出带空格的字符串:

echo hello world

10、终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?

终端

 /dev/tty

黑洞文件

 /dev/null

11、移动文件用哪个命令?改名用哪个命令?

mv mv

12、复制文件用哪个命令?如果需要连同文件夹一块复制呢?

  • cp
  • cp -r

13、删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?

  • rm
  • rm -r
  • rmdir

14、Linux 下命令有哪几种可使用的通配符?分别代表什么含义?

  • ? ”可替 代单 个字 符。
  • “*” 可替 代任 意多 个字 符。
  • 方括 号“ [charset]” 可替 代 charset 集中 的任 何单 个字 符, 如 [a-z], [abABC]

15、用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)

wc 命令

  • -c 统计字节数
  • -l 统计行数
  • -w 统计字数。

16、Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行?

  • 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。
  • grep [stringSTRING] filename
  • grep [^string] filename

17、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 死掉的进程

18、怎么使一个命令在后台运行?

一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)

19、利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息?

  1. ps -ef
    ps -aux
  2. ps -ef | grep pid

20、哪个命令专门用来查看后台任务?

job -l

21、把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?

  • 把后台任务调到前台执行 fg
  • 把停下的后台任务在后台执行起来 bg

22、终止进程用什么命令? 带什么参数?

kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

kill-9 pid

23、怎么查看系统支持的所有信号?

kill -l

24、搜索文件用什么命令? 格式是怎么样的?

  • find <指定目录> <指定条件> <指定动作>
  • whereis 加参数与文件名
  • locate 只加文件名
  • find 直接搜索磁盘,较慢。
find / -name "string*"

25、查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?

  • 查找自己所在的终端信息:who am i
  • 查看当前谁在使用该主机:who

26、使用什么命令查看用过的命令列表?

history

27、使用什么命令查看磁盘使用空间? 空闲空间呢?

df -hl

文件系统 容量 已用 可用 已用% 挂载点

Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G 44% / 
/dev/hda1 494M 19M 450M 4% /boot

28、验证网络可链接命令是什么?什么原理?

ping。这个ping命令发送一个特殊的网络数据包(叫IMCPECHOREQUEST)到一台指定的主机。大多数接收这个包的网络设备将会回复它,来允许网络连接验证。

29、使用什么命令查看 ip 地址及接口信息?

ifconfig

30、查看各类环境变量用什么命令?

查看所有

env

查看某个,如 home:

 env $HOME

31、通过什么命令指定命令提示符?

  • \u:显示当前用户账号
  • \h:显示当前主机名
  • \W:只显示当前路径最后一个目录
  • \w:显示当前绝对路径(当前用户目录会以~代替)
  • $PWD:显示当前全路径
  • $ :显示命令行’$'或者’#'符号
  • #:下达的第几个命令
  • \d:代表日期,格式为 week day month date,例如:“MonAug1”
  • \t:显示时间为 24 小时格式,如:HH:MM:SS
  • \T:显示时间为 12 小时格式
  • \A:显示时间为 24 小时格式:HH:MM
  • \v:BASH 的版本信息 如 export PS1=’[\u@\h\w#]$‘

32、怎么对命令进行取别名?

查看当前可用别名

alias -p

创建别名

alias la='ls -a

33、du 和 df 的定义,以及区别?

  • du 显示目录或文件的大小
  • df 显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统。(文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i 节点,磁盘分布图,间接块,超级块 等。这些数据对大多数用户级的程序来说是不可见的,通常称为 Meta Data。)

du命令是用户级的程序,它不考虑 Meta Data,而 df命令则查看文件系统的磁盘分配图并考虑 Meta Data。

df 命令获得真正的文件系统数据,而 du 命令只查看文件系统的部分情况。

34、想要知道当前系统支持的所有命令的列表

使用命令 compgen -c,可以打印出所有支持的命令列表。

compgen -c

35、打印出当前的目录栈

[root@localhost ~]# dirs 
/usr/share/X11

36、你的系统目前有许多正在运行的任务,在不重启机器的条件下把所有正在运行的进程移除

使用 linux 命令 ’disown -r ’可以将所有正在运行的进程移除。

disown -r 

37、哪一个 bash 内置命令能够进行数学运算。

bash shell 的内置命令 let 可以进行整型数的数学运算

let c=a+b

38、怎样一页一页地查看一个大文件的内容呢?

通过管道将命令”cat file_name.txt” 和 ’more’ 连接在一起可以实现这个需要

 cat file_name.txt | more

39、数据字典属于哪一个用户的?

数据字典是属于’SYS’用户的,用户‘SYS’ 和 ’SYSEM’是由系统默认自动创建的

40、怎样查看一个 linux 命令的概要与用法?假设你在/bin 目录中偶然看到一个你从没见过的的命令,怎样才能知道它的作用和用法呢?

使用命令 whatis 可以先出显示出这个命令的用法简要,比如,你可以使用 whatis zcat 去查看‘zcat’的介绍以及使用简要。

[root@localhost ~]# whatis zcat 
zcat [gzip] (1) – compress or expand files

41、使用哪一个命令可以查看自己文件系统的磁盘空间配额呢?

使用 命令 repquota 能够显示出一个文件系统的配额信息。
【注】只 有 root 用户 才能 够查 看其 它用 户的 配额 。

42、Linux内核主要负责哪些功能

  • 系统内存管理
  • 软件程序管理
  • 硬件设备管理
  • 文件系统管理

43、删除文件?强制删除?递归删除?

语法: rm destination

  • -i 询问是否删除,
  • -r 递归删除,
  • -f 强制删除。

rm 不能删除有文件的目录,需要递归删除。

rm -r jdk

rm -rf 会直接删除,没有警告信息,使用必须谨慎**。

44、什么是链接文件?

如过需要在系统上维护同一文件的两份或者多份副本,除了保存多分单独的物理文件副本之外。还可以采用保存一份物理文件副本和多个虚拟副本的方法,这种虚拟的副本就叫做链接。

45、查看文件类型?字符编码?

语法:file destination

46、如何压缩文件?如何解压文件?

压缩语法:gzip destination

gzip tomcat
ls
tomcat.gz

解压语法:gunzip destination

gunzip tomcat.gz
ls
tomcat

47、查看组信息?如何创建组?删除组?

cat /etc/group  查看组信息
groupadd java //创建组
groupdel java //删除组

48、实时监测进程

与ps相比,top可以实时监控进程信息。

49、查看某端口是否被占用?

netstat -ntulp | grep 8080

参数说明:

  • -t (tcp) 仅显示tcp相关选项
  • -u(udp) 仅显示udp相关选项
  • -n 拒绝显示别名,能显示数字的全部转化为数字
  • -| 仅列出在Listen(监听)的服务状态
  • -p 显示建立相关链接的程序名

结束!!


让自己忙一点,忙到没有时间去思考无关紧要的事,很多事就这样悄悄地淡忘了。时间不一定能证明很多东西,但是一定能看透很多东西。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值