常用 linux 命令

linx 面试题

参考:https://segmentfault.com/a/1190000040007585
https://www.edureka.co/blog/interview-questions/linux-interview-questions-for-beginners/

文件操作

1
vat vi vim ls mkdir touch cp mv

查找是否存在文件名:

1
find / -name mysql

日志操作

1
tail -f /var/www/data.log.out

抓取关键字

1
2
cat  data.log.out | grep "error"
grep -i "返回 resp " data.log

解压

1
tar -zxvf filename.tar.gz

压缩

1
tar –cvf jpg.tar *.jpg

查找进程

1
ps -aux | grep java

系统、内存、磁盘、网络相关

top 查看内存、cpu 情况
du、df 查看磁盘、文件大小

1
du -s -h /data

ping、curl 查看网络是否正常

权限相关

chmod: 修改文件或者目录的权限
chown: 即 change owner, 修改文件和目录的所有者权限
chattr: chmod 的底层操作,锁定文件
例如,你想设置权限,使用户可以读取、写入和执行它,并且你的组的成员可以读取和执行它,而其他人只能读取它
chmod u=rwx,g=rx,o=r a ilename
chmod 751 filename
绝对模式

0 没有权限 – – –
1 执行权限 - - X
2 写权限 – w –
3 执行和写入权限:1(执行)+2(写入)=3 – wx
4 读取权限 r – –
5 读取和执行权限:4(读取)+1(执行)=5 r - x
6 读写权限:4(读)+2(写)=6 rw—— _
7 所有权限:4(读取)+ 2(写入)+ 1(执行)= 7 rwx
img.png

内存命令

1
2
3
4
5
top 
free -h
vmstat
htop
free -h -s 3 3 秒一次的间隔秒数

buff/cache

缓冲/缓存是两种类型的内存。
先总结一下:
缓冲主要目的是进行流量整形,把突发的大数量较小规模的 I/O 整理成平稳的
小数量较大规模的 I/O ,以减少响应次数。(比如从网上下电影,你不能下一点点数据就写一下硬盘,而是积攒一定量的数据以后一整块一起写,不然硬盘都要被你玩坏了)
缓存 是为了弥补高速设备和低速设备的鸿沟而引入的中间层,最终起到加快访问速度
的作用。

CPU 负载很高怎么办

1
ps -axjf 查看 STAT 这一列是否存在 D 状态进程

D 状态是指不可中断的睡眠状态。该状态的进程无法被 kill, 也无法自行退出
只能通过恢复其依赖的资源或者重启系统来解决。

如何查看 CPU 和 CPU 核心?

查看 cpu 和 cpu 核心?

1
cat /proc/cpuinfo | grep "model name"

查看 cpu 核心

1
cat /proc/cpuinfo | grep "cpu cores"

查看硬盘的使用情况

1
2
df -hl
du -s -h /root

怎么杀死进程?

1
2
3
4
查看进程
ps -aux | grep python
找到需要杀死的进程
kill -9 3827

linux vm 内核参数优化设置

CPU

使用 uptime 查看 CPU 使用情况

1
uptime

vmstat 查看 CPU 使用情况

1
vmstat 2 10

如何合理的查找(find)

在 /software 目录下找出大小超过 10 MB的文件

1
find /software -type f -size +10240k

在 目录下找出 365 天未被访问过的文件

1
find /software \! -atime -365

目录下找出 365 天之前被修改过的文件

1
find /home -mtime +365

什么是 inode 和 process id ?

inode 是操作系统赋予每个文件的唯一名称。同样,进程 ID 是赋予每个进程的唯一 ID

什么是守护进程(daemon)

守护进程是作为后台进程运行以提供基本操作系统中可能不可用的功能的计算机程序。守护进程通常用于在后台运行服务,
而不直接控制交互式用户。守护进程的目的是处理周期性请求,然后将请求转发给适当程序执行。

Linux 中的进程状态有哪些?

  • Ready: 进程已创建并准备运行
  • Running: 进程正在执行
  • Blocked or wait: 进程正在等待用户输入
  • Terminated or Completed: 进程已完成或者被操作系统终止
  • Zombie:进程终止,但进程表仍然存在信息

解释 Linux 中的进程管理系统调用

管理进程的系统调用:

  • fork(): 用户创建新进程
  • exec(): 执行一个新进程
  • wait(): 等待进程完成执行
  • exit(): 退出进程

为什么要使用 tar 命令?

tar 命令用于提取或创建归档文件

1
tar -xvzf sample.tar.gz
1
tar -cvzf filename.tar.gz

其中 c: 创建存档;x: 提取;v: 详细;f: 文件

如何查看 Linux 上挂载的设备列表?

1
mount -l

如何查找两个配置文件的不同之处

1
diff abc.conf xyz.conf

img_1.png

你会如何在 linux 中安排任务?

linux 中有两个用于调度任务的命令:cron 和 at。
cron 命令用于在特定时间重复调度任务。任务存储在 cron 文件中,然后使用 cron 命令执行。
cron 命令从该文件中读取字符串并安排任务。
cron 文件语法:

1
<minute> <hour> <day> <month> <weekday> <command>

假设您想在每周日下午 4 点运行一个命令,那么字符串将是:

1
0 16 * * 0 <command>

假设您想在今天下午 6 点关闭系统,那么执行操作的命令将是:

1
echo "shutdown now" | at -m 18:00

如何识别你使用的是哪个 shell?

1
echo $SHELL

如何从您的系统登陆到您网络中的另一个系统?

1
ssh <username>@<ip address>

如何使用 vim 编辑器以只读模式打开文件?

1
vim -R <filename>

如何使用 vim 编辑器在文件中搜索特定的员工 ID ?

1
vim +/<employee id to be searched> <filename>

如何使用 vim 编辑器跳转到文件中的特定行?

1
vim +/<line number> <filename>

如何按照升序对文本文件中的条目进行排序?

1
sort sample.txt

如何检查特定服务是否在运行?

1
service <service-name> status

如何查看所有服务的状态?

1
service --status-all
-------------THANKS FOR READING-------------