Linux常见面试题

Linux常见面试题

常见面试题

       在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是PID。

什么是Linux?

       Linux是一套免费使用和自由传播的类似Unix操作系统,一般的WEB项目都是部署都是放在Linux操作系统上面。 Linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

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

查看 ip 地址

1:ip命令,可以同时显示IPv4和IPv6地址
命令:ip addr show 或 ip addr 或 ip a
2:hostname命令,可以查看主机名的IP地址
命令:hostname -I
3:ifconfig命令,可以查询和配置网络接口卡
命令:ifconfig -a

查看网络接口信息

ifconfig:查看所有已开启的网络接口

       第一部分是以 ensxx 开头的,其中 ensxx 就是网络接口的名字。

       mtu:最大数据传送单元大小;

       inet:IPv4 地址(也就是我们常说的 IP 地址);

       netmask:子网掩码;

       broadcast :广播地址;

       inet6:IPv6 地址(目前正在普及和应用);

       RX:接收包的情况;

       TX:发送包的情况;

       collisions:数据传输发生冲突的次数。


       第二部分是以 lo 开头的。lo 不是一个真正的网络接口,是一个特殊的模拟出来的网络接口,每个系统都有它,叫回环接口(loop)。其各个字段属性是固定的:

       inet:127.0.0.1;

       netmask:255.0.0.0 …

       回环接口为系统提供了一个单机网络环境,一般用于程序调试。许多程序的运行也需要这个接口,一般不会修改该接口。

怎么对命令进行取别名?

# 在命令行使用alias命令临时设置命令别名
alias test1='cd /root/test'
# 打开主目录下的.bashrc
vi ~/.bashrc

# 在文件中写入alias命令,并保存
# 位置在# User specific aliases and functions下面
alias test='cd /root/test'

# 使其永久生效
source ~/.bashrc
# 查看已经设置的命令别名
alias

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

       默认设置为[root@localhost ~]#

# /etc/profile
# 当前用户的配置文件~/.bash_profile
# 以上两个文件都可以

vi /etc/profile
export PS1='[\u@\H \W]'
# 使其生效
source /etc/profile
\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#]$‘

查看文件内容有哪些命令

cat:由第一行开始显示内容,并将所有内容输出

tac:从最后一行倒序显示内容,并将所有内容输出

more:根据窗口大小,一页一页的显示文件内容

less:和more类似,但其优点可以往前翻页,而且进行可以搜索字符

head:只显示头几行

tail:只显示最后几行

nl:类似于cat -n,显示时输出行号

tailf:类似于tail -f

日志文件说明

       linux日志文件说明

位置说明
/var/log/message系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure与安全相关的日志信息
/var/log/maillog与邮件相关的日志信息
/var/log/cron与定时任务相关的日志信息
/var/log/spooler与UUCP和news设备相关的日志信息
/var/log/boot.log守护进程启动和停止相关的日志消息
/var/log/wtmp该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件

tail与head

tail -f test.log          会把日志文件里的最尾部的内容显示在屏幕上,并且不断刷新
tail -fn 100 test.log     循环实时查看最后100行记录(最常用)
tail -100f test.log       实时监控100行日志
# 可以进行条件筛选
tail -fn 100 test.log | grep 关键字

tail test.log             默认显示最后 10 行
tail -n 20 test.log       查询日志尾部最后20行的日志
tail -n +20 test.log      显示文件 test.log 的内容,从第 20 行至文件末尾

head test.log             默认显示前 10 行
head -n 5 test.log        显示 test.log 文件的开头 5 行
head -n -10 test.log      查询日志文件除了最后10行的其他所有日志
head -c 20 test.log       显示文件前 20 个字节

cat,more,less

# -i 忽略大小写
cat -n test.log |grep "debug" -i      查询关键字的日志

# 按行号过滤,查看关键字附近的日志
cat -n test.log |grep "debug" -i  得到关键日志的行号
cat -n test.log |tail -n +90 |head -n 20
#    		 tail -n +90    表示查询90行之后的日志
#            head -n 20     则表示在前面的查询结果里再查前20条记录

# 日志内容特别多,打印在屏幕上不方便查看
# 怎样一页一页地查看一个大文件的内容呢?
(1)使用more和less命令
cat -n test.log | more
cat -n test.log | grep "debug" -i | more   这样就分页打印了,通过点击空格键翻页
# ctrl+c 就可以退出more
# 按 q 退出less

(2)使用 >xxx.txt 将其保存到文件中
cat -n test.log | grep "debug" -i > debug.txt

查看文件或目录大小

 # du:显示目录或者文件所占空间
 # 以K,M,G为单位,方便阅读的格式显示所占用的空间情况
 du -h catalina.out

当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?

       获取F12的字符序列获取方法如下:先按下Ctrl+V,然后按下F12 ,我们就可以得到F12的字符序列 ^[[24~

       showkey -a 也可以查看按键对应的字符序列。

# 这样,在按F12时,是显示为datetest
bind '"^[[24~":"datetest"'

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

       写文件命令:vi

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

你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?

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

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

       mv,mv

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

        ?可替代单个字符。

        *  可替代任意多个字符。

        方括号 [charset] 可替代 charset 集中的任何单个字符,如[a-z],[abABC]。

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)
T停止或被追踪
R正在运行,或在队列中的进程
S处于休眠状态
Z僵尸进程
W进入内存交换(从内核 2.6 开始无效)
X死掉的进程

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

       使用命令 whatis 可以先出显示出这个命令的用法简要。

# 查看'zcat'的介绍以及使用简要
whatis zcat

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

       查看当前进程:ps

       执行退出:exit

       查看当前路径:pwd

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

       终端 /dev/tty

       黑洞文件 /dev/null

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

       后台运行的两个命令 & 和 ctr+z

       ①:一般都是使用 & 在命令结尾来让程序自动运行,具体命令 &

       ②:有时候忘记在命令之后加上 & ,又不想停下此命令重新改写。这时可以按 ctrl+z,把当前程序切入到后台。用 fg 来恢复后台。

nohup /root/run.sh &     在后台执行 root 目录下的 run.sh 脚本

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

       把后台任务调到前台执行: fg

       把停下的后台任务在后台执行起来: bg

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

       使用命令 repquota 能够显示出一个文件系统的配额信息。

       只有 root 用户才能够查看其它用户的配额。

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

       history

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

       查看所有 env

       查看某个,如 home: env $HOME

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

       du 显示目录或文件的大小

       df 显示每个所在的文件系统的信息,默认是显示所有文件系统。

       (文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i 节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为 Meta Data。) du 命令是用户级的程序,它不考虑 Meta Data,而 df 命令则查看文件系统的磁盘分配图并考虑 Meta Data。

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

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

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值