Linux相关--笔试和面试高频

Linux

RedHat公司已经宣布停止维护CentOS服务器操作系统,可以选择华为开源的欧拉系统 、阿里开源的龙蜥系统 和腾讯开源的TencentOS系统

面试

几个基本的Linux命令

python 复制代码
pwd #查看当前绝对路径  结果/home/stu 
touch / vi编辑器 #创建文件
mkdir -p /home/stu/test #当前绝对路径创建test的文件夹
cd /home/stu #切换目录 回到当前绝对路径  
cd ~ 进入用户主目录 cd .. 返回上一级目录;cd ../..返回上两级目录
ls  #查看当前目录的文件名称,明确是否创建成功
ll #罗列出当前目录中所有文件和文件夹的详细信息
rm(-rf) #用来删除文件或文件夹
du #当前目录、所有子目录大小(以**KB**为计数单位)
du -h #查看当前目录、所有子目录大小(以**MB**为计数单位)
按照文件大小顺序列出文件 ls-laS -S选项。 默认情况下,它以降序显示输出(从大到小)。

ssh user1@192.168.10.1 用户名 IP地址或者域名 通过远程连接服务器
su  root切换到root用户 
du-sh 查看所有子目录的大小
cp-rf 强制递归复制
scp用于远程数据传输
uptime服务器运行了多长时间以及有多少个用户登录,快速获知服务器的负荷情况

cat   #一次性显示整个文件的内容,适用于文件内容少的情况;
tac   #一次性显示整个文件的内容 倒序显示
more和less  #用于显示文件内容超过一屏的内容,并且提供翻页的功能。
tail 和 head #分别显示文件的后几行和前几行内容。常用于大文件的截取

file word.txt  #辨识文件类型 结果 word.txt: ASCII text
file -b word.txt #辨识文件类型不显示文件名 结果ASCII text
file -z a.tar.gz  #解压文件

**grep** #指定文件中搜索特定的内容,并将含有这些内容的行标准输出 给定文件中查找与设定条件相符字符串
grep "牛客" 文件名 | wc -l 统计一个文件中"牛客"出现的行数
awk的基本功能是在文件或字符串中基于指定规则浏览和抽取信息,awk '{if($4~/Brown/) print $0}' tab2
cut: 从数据文件或者命令的输出中截取(也就是剪出)各种各样的数据域,cut --cchars file

nohup命令:在你退出帐户/关闭终端之后继续运行相应的进程

alias [别名]=[指令名称]  用于设置指令的别名:

find #按照文件名/类型 搜索文件

netstat  #用来本机的网络连接及端口占用情况的
netstat -ntlp /查看当前所有tcp端口 t-tcp相关,u-udp相关,n-拒绝显示别名,l-列出监听的服务状态,p-建立相关链接的程序名
netstat -ntulp | grep 80 /查看所有80端口使用情况
lsof -i:8080:查看8080端口占用 但是需要root权限

ifconfig # 查看ip地址和**网络接口**linux环境下 ipconfig是在cmd的dos下用的
**ps  用来列出系统中当前运行的那些进程
jobs 查看后台进程作业ID的指令**
pg提供了一次性的查看进程结果,但所提供的查看结果不是动态连续的
top 可以查看进程的CPU和内存占用情况
free是查看内存情况和交换空间
df指令:系统磁盘使用情况。  对磁盘的更改parted(对指定的硬盘进行分区)  resize2fs(放大或者缩小没有挂载的文件系统的大小) umount(卸除目前挂在Linux目录中的文件系统)

**tcpdump**  在Linux系统上抓取网卡上的网络数据包
lsblk | grep sdb  ;fdisk -l | grep sdb 查看当前挂载块设备sdb多大

/etc 存放系统主要配件
/etc/hosts:主机名到 IP 地址的映射关系 
/etc/resolv.conf:DNS 服务的配置文件
/etc/gateways:建立动态路由
/etc/services:定义了网络服务的端口 

dhcpd.conf 配置文件中
option routers 192.168.0.1;    配置默认网关
option subnet-mask 255.255.255.0;    配置子网掩码
option domain-name-servers 192.168.1.1;    指定DNS服务器
option domain-name-servers;    配置多个DNS服务器

lprm 将一个工作由打印机贮列中移除
lpq 命令用于查看一个打印队列的状态,
lpd 命令 是一个常驻的打印机管理程序,会根据 /etc/printcap 的内容来管理本地或远端的打印机。
lpr(line printer,按行打印)将一个或多个文件放入打印队列等待打印。

> 表示输出重定向  >> 输出重定向追加
cat file1 file2 > file3 将两个文件拼接在一起生成一个新的文件
cat file1 >> file2  是将文件1直接接在文件2的结尾就可以了
文件file1复制为file2
cp file1 file2 cp指令用于复制文件或目录
cat file1 >file2 , cat < file1 >file2
dd if=file1 of=file2 将文件file1拷贝到文件file2

sed -i 's/xxxx/yyyy/g' ./*.txt 将xxxx 替换为yyyy;在当前目录下的所有txt文件 -i 表示的是替换并直接修改文件
查看file1文件的第300-500行的内容
sed -n '300,500p' file1 获取指定范围的内容,其中p :列印,亦即将某个选择的数据印出
cat file1 | tail -n +300 | head -n 200  输出从第K行开始的内容,然后输出前200行
cat file1| head -n 500 | tail -n +300 输出前500行,然后输出其中从第300行开始的内容
+K是输出从第K行开始的内容 K是输出共K行的内容

sed 's/AAA/BBB/g' xyz > xyz  将文件xyz中的单词AAA全部替换为BBB s表示替换命令 /g 表示一行上的替换所有的匹配

ctrl+C 终止一个前台进程常用到的命令和操作
kill 关闭后台进程

dd 命令用于读取、转换并输出数据
python 复制代码
rwx权限可读、写、执行,范围分别是:拥有者(user),和拥有者同组(group),其他(others)。若是文件夹一开始为d,否则为-。r=4,w=2,x=1,三个为一组,空的用-代表
765 的文件 -rwxrw-r-x
chmod 100 /www会清空原有权限,只给u一个x权限 =chmod u+x ,g-x,o-x /www  a代表所有用户
chomd 777 修改所有人读写执行的权限
chown将指定文件的拥有者改为指定的用户或组

时钟表的命令:*  *  *  *  *  command 分1~59 时1~23(0表示0点) 日1~31 月1~12 周0~6(0表示星期天) 命令
*/5 * * * * exam  每5分钟运行一任务exam

退出
esc,在vi的插入模式或者底行命令模式下进入命令模式
exit,一般用于退出会话式程序或者交互式命令行,如ssh远程连接,切换 shell(Linux中)
q,用来退出 man 手册查看命令或者配置文件的状态,或者more、less等命令查看文件的状态
quit,一般用于图形界面的退出

linux的虚拟内存模型,使得每个进程都以为自己拥有整个内存空间(每个进程看到的内存空间一致)

Vim

Linux Vim三种工作模式(命令模式、输入模式和编辑模式)详解 (biancheng.net)

是一个文本编辑器;没有菜单,只有命令;作用:建立、编辑、显示文本文件。

共有3种状态,退出编辑器的命令是:q 删除当前光标所在行开始计5行内容的命令是5dd

Vi:主要用来查看和修改文件内容;i - 插入文本 a - 追加文本 o-光标后插入新的一行

python 复制代码
G+dd //编辑模式下 G 其实是 Shift + g,该快捷键表示跳转到最后一行,dd 表示删除一行
cc 多数unix通过此调用它们的C编译程序
yy 复制光标所在的一整行
p 将已复制的数据在光标的下一行粘贴
P 将已复制的数据在光标的上一行粘贴



基础知识

Linux进程间基本的通信方式

管道 (pipe) (包括匿名管道和命名管道、系统管道)、信号 (signal)、消息队列 (queue)、共享内存、信号量和套接字。没有临界区

孤儿进程 僵尸进程

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。

clone fork

fork() 函数复制时将父进程的所有资源都通过复制数据结构进行了复制,然后传递给子进程,所以 fork() 函数不带参数;

clone() 函数则是将部分父进程的资源的数据结构进行复制,复制哪些资源是可选择的,这个可以通过参数设定,所以 clone() 函数带参数,没有复制的资源可以通过指针共享给子进程

clone是fork的升级版本,不仅可以创建进程或者线程,还可以指定创建新的命名空间(namespace)、有选择的继承父进程的内存、甚至可以将创建出来的进程变成父进程的兄弟进程等等

相关推荐
..过云雨24 分钟前
04.【Linux系统编程】基础开发工具2(makefile、进度条程序实现、版本控制器Git、调试器gdb/cgdb的使用)
linux·笔记·学习
zzzsde35 分钟前
【Linux】初识Linux
linux·运维·服务器
fouryears_2341740 分钟前
云服务器使用代理稳定与github通信方法
运维·服务器·github
渡我白衣44 分钟前
Linux网络:应用层协议http
linux·网络·http
pofenx1 小时前
使用nps创建隧道,进行内网穿透
linux·网络·内网穿透·nps
Ronin3051 小时前
【Linux系统】单例式线程池
linux·服务器·单例模式·线程池·线程安全·死锁
wanhengidc1 小时前
手机云服务是什么意思?
运维·网络·安全·游戏·智能手机
desssq1 小时前
ubuntu 18.04 泰山派编译报错
linux·运维·ubuntu
Lzc7741 小时前
Linux的多线程
linux·linux的多线程
清风笑烟语1 小时前
Ubuntu 24.04 搭建k8s 1.33.4
linux·ubuntu·kubernetes