阅读网 购物 网址 万年历 小说 | 三丰软件 天天财富 小游戏
TxT小说阅读器
↓小说语音阅读,小说下载↓
一键清除系统垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放,产品展示↓
佛经: 故事 佛经 佛经精华 心经 金刚经 楞伽经 南怀瑾 星云法师 弘一大师 名人学佛 佛教知识 标签
名著: 古典 现代 外国 儿童 武侠 传记 励志 诗词 故事 杂谈 道德经讲解 词句大全 词句标签 哲理句子
网络: 舞文弄墨 恐怖推理 感情生活 潇湘溪苑 瓶邪 原创 小说 故事 鬼故事 微小说 耽美 师生 内向 易经 后宫 鼠猫 美文
教育信息 历史人文 明星艺术 人物音乐 影视娱乐 游戏动漫 | 穿越 校园 武侠 言情 玄幻 经典语录 三国演义 西游记 红楼梦 水浒传
 
  阅读网 -> 教育信息 -> 校招中的“熟悉linux操作系统”一般是指达到什么程度? -> 正文阅读

[教育信息]校招中的“熟悉linux操作系统”一般是指达到什么程度?

[收藏本文] 【下载本文】
校招中的“熟悉linux操作系统”一般是指达到什么程度?
关注问题?写回答
[img_log]
操作系统
Linux
Linux 系统管理
校园招聘
校招中的“熟悉linux操作系统”一般是指达到什么程度?
这样,你先在网上找一套完整openssh升级方案(不是yum或apt的,要源码安装的),然后在虚拟机上反复安装测试,直到把他理解了、背下来。
面试的时候让你简单说说linux命令什么的,你就直接把这个方案从道到尾讲一下,基础命令一带而过就行,重点的命令解释下。这样你所谓的“熟悉linux操作系统”基本就差不多了。
几乎服务器都有ssh,但凡大企业或重点行业都会漏扫,就需要升级openssh。这个升级方案包含很多基础命令和源码安装过程,代表性比较强,尤其配合telnet登陆升级对安全性也有加分。
##################2023.5.24更新###########################
很多人评论说方案怎么怎么样,升级有没有必要,隐藏端口等等。但请看问题:校招中的“熟悉linux操作系统”一般是指达到什么程度?这个“程度”没有固定指标,那最简单办法就是让结果更直观。就是用知行合一,理论联系实际。方案是否合理、是否浪费服务器资源,与题主想应对校招关系不大。我面试的时候如果面试官让我说几个常用命令,那我就简单深入的讲下这个方案基本是可以过的。现在我把之前用的方案贴出来(centos7.6下openssh8.6p1),想应对面试的可以拿去试试。至于讨论方案是否可行的,可以去技术论坛。

一、升级背景:
漏洞扫描显示linux服务器openssh有高危漏洞,需要进行修复。openssh是远程登录到linux服务器
的重要工具,要修复此漏洞需升级到最高版本(2021年5月中旬最新版本为8.6p1)。

二、升级说明:
1、所有升级文件均从官网下载。
2、linux服务器系统为Centos7可适用此方案。
3、Centos7系统需要有yum源,方便解决依赖关系问题。如无法实现,则需上传同系统版本安装映
像文件,作为本地yum源。
4、安装过程受网络影响极大,一旦出现不可抗因素致网络断开,可能会导致升级中断,无法远程
连接,出现此情况需现场人员配合解决。
5、升级过程出现问题需现场人员根据回退方案进行恢复操作。

三、升级过程:
(0)安装并启用telnet
1、安装telnet
yum install telnet-server telnet xinet
2、修改配置文件
vi /etc/xinetd.d/telnet

disable= no       //将yes改为no
#让root可以登录
#mv /etc/securetty /etc/securetty.bak
重启服务
service xinetd restart
3、启动相应服务,然后使用telnet登录到服务器
systemctl start telnet.socket
systemctl start xinetd
chkconfig --list
(一)配置yum源
1、上传与生产环境相同的centos7版本的iso和openssh8.6p1的安装包到服务器。

2、挂载iso
创建iso存放目录和挂载目录,并上传iso镜像文件到iso存放目录/mnt/iso下
mkdir /mnt/iso 
mkdir /mnt/cdrom
mv CentOS-7.6-x86_64-DVD-1810.iso /mnt/iso/
挂载iso镜像到挂载目录/mnt/cdrom下
mount -o loop /mnt/iso/CentOS-7.6-x86_64-DVD-1810.iso /mnt/cdrom
使用df -h命令查询挂载是否成功
df -h

3、备份原本地源
进入repos配置目录
cd /etc/yum.repos.d/
创建备份文件夹
mkdir repobak
移动配置文件到repobak文件夹中
mv *.repo repobak/

4、新建光盘源配置文件
vi CentOS-Media.repo
输入下列内容
```
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom/

gpgcheck=0
enabled=1
```
5、测试安装源
yum clean all
yum makecache
(二)升级openssh版本到8.6p1
1、下载或上传安装包openssh-8.6p1.tar.gz到/root目录下
进入安装包所在文件夹
cd /root/linshi

2、关闭Selinux
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

3、安装依赖关系
yum install -y gcc pam-devel rpm-build wget zlib-devel openssl-devel net-tools
tar -xvf openssh-8.6p1.tar.gz
cd openssh-8.6p1

4、卸载旧版openssh
rpm -qa |grep openssh
ps:下一步骤为删除原有ssh,但不会影响现在进行的ssh会话,所以整个操作过程不要断开ssh会话,
否则无法再次连接,只能由现场人员进行回退后重新操作(推荐使用telnet进行升级)。
for i in $(rpm -qa |grep openssh);do rpm -e $i --nodeps;done

5、设置、编译、安装
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-tcp-wrappers  --with-ssl-dir=/usr/local/ssl/lib --without-hardening
mv /etc/ssh /etc/ssh.old
cp contrib/redhat/sshd.pam /etc/pam.d/sshd
#编译
make
#安装
make install

6、设置自启动
复制启动脚本到/etc/init.d
cp contrib/redhat/sshd.init /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
chkconfig --list|grep sshd
sed -i "32a PermitRootLogin yes" /etc/ssh/sshd_config
#重启ssh服务
service sshd restart

7、检查升级情况
ssh -V
输出版本号为“OpenSSH_8.6p1”,说明更新成功

(三)关闭telnet
关闭服务
systemctl stop telnet.socket
systemctl stop xinetd
#root可以登录
#mv /etc/securetty.bak /etc/securetty

卸载telnet
yum remove telnet-server  xinetd

ps:此时ssh是可以连接状态,不要断开连接防止修改出错无法连接服务器。测试新端口是否打开
telnet 127.0.0.1 22
#出现如下显示表示端口正常打开
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_8.6
使用远程工具新开窗口,连接新端口测试修改是否成功,如有问题马上使用之前的连接进行检查修改。

(四)回退方案
1、挂载iso文件作为yum源
mount -o loop /mnt/iso/CentOS-7.6-x86_64-DVD-1810.iso /mnt/cdrom
2、安装openssh
yum install openssh*
3、启动ssh
service sshd start
4、重新连接ssh,然后从(二)4开始做。

有门课的一个作业,是要每人自己实现一个linux shell,如果实现了语法高亮,PATH里面有的东西也高亮,历史命令自动建议按→补全,识别.git目录,实现管道,实现环境变量,alias,重定向,通配符支持,if等控制流,则都额外加分。
允许成品有一点bug没关系,可以借助AI,可以抄,但是答辩环节要能就自己写的东西对答如流。
只有一个星期时间做,如果只交付最最基本的 输入什么 eval什么 形成一个残破的eval封装 可以保证不挂
但如果你逼自己一把,附加题全干,实现if这种难题也迎难而上,简单解释器照写,只要一个星期,你会达到熟悉linux系统的要求!并且还能学到超广的知识!这个教授也多半会对你留下印象,日后写写推荐信应该问题不大!主打一个自己衡量
把这份作业分享给大家,希望大家能内卷有方,自己的真实水平对得起自己在简历里吹的牛。(md这些印度人...)
会登录系统会登出系统会用 cd会用 ls
最基本的就是这样。
会用 man知道自己正在使用的 Linux 发行版是哪一个
再高级一点,大概是这样。
启动了 vim 知道怎么退出会用 ESC、a 和 i听说过 shell 这种东西,知道自己正在使用的 shell 是哪一个
到这里为止,已经是 Linux 高级用户了。
上完了《操作系统》这门课会用 shutdown有过一次在物理机器 (bare metal) 上成功安装 Linux 操作系统的经验听说过“包管理工具”这种东西,知道自己正在使用的“包管理工具”是哪一个在不小心忘掉 root 账户密码的情形下,可以成功把机器救回来
有这种水准的话,大致可以胜任 Linux 系统管理员了。
上完了《计算机网络》这门课曾经在 Linux 操作系统安装完成之后,给机器配置过静态 IP 地址,并且修改过的新配置可以跨越机器的重启保留下来
这样的话,就可以担任 Linux 网络管理员了。
上完了《编译原理》这门课读完了 Advanced Programming in the UNIX Environment 这本书
这就可以做 Linux 系统程序员了。
想进阶高级 Linux 系统程序员的话,需要
读完 Computer Systems: A Programmer's Perspective 这本书,并且写完课后作业有过一次成功安装 Linux From Scratch 发行版的经验
这就可以做 Linux 系统工程师了。
想进阶高级 Linux 系统工程师的话,需要
有过一次在任意 non-x86 体系结构的机器上成功安装运行 Linux 操作系统的经验
校招还是比较基础的。
我面试的时候一般会先问一下常规的操作。比如SSH连到一个服务器上,然后查看CPU/内存/磁盘空间等。如果这些都不会就直接拜拜了。
接下来问一些操作系统的理论知识。比如虚拟内存的工作原理,页表,交换空间等等。还会考察候选人是否知道用什么样的命令或者系统API去查询这些东西的状态。还可以问进程调度、文件系统等等。有时间还可以问一下网络相关的知识,不过校招一般不重视这块。社招有单独的网络面试。
如果上述这些都能回答得很好,并且还有时间的话,就可以聊一些高级话题。比如eBPF, btrfs, selinux, 等。不过即便是社招,能走到这一步的人也屈指可数。
我理解就是你可以用Linux干活而没有任何不适。
去年面试了几十个校招
我一般问:
linux下改文件名用什么命令?
mount是干啥的?
man是干啥的?
能解释清楚,我就认为“熟悉linux”了
毕竟校招




能看懂Linux各种梗图,我这边就简单举两个例子
由于不会awk,至今都没敢在简历上写熟悉linux。
但我实实在在用linux干活,我也不知道八股面试官们究竟会问哪些linux问题。
比如刷新shell profile最好使用exec -l $shell而不是souce .zshrc这种不知道算不算冷知识的知识,如果面试官不懂的话,我可能会有点崩溃。
要是问我为啥近年来很多发行版都已经用systemd,但还是有不少人吐槽不如init.d,这二者有什么区别。这我也会很崩溃。


上个图吧,刚好回了一条issue,就截过来答题了
我说一个参考标准吧。给你一个新创建的VMware空白虚拟机,你能在上面从头安装一遍主流的Linux系统(比如Ubuntu 22.04LTS)。然后把软件包源替换为国内的(比如清华源),知道怎么用命令行进行软件包安装和更新。从头下载、安装、配置一套Nginx web服务器+MySQL数据库+PHP的网站环境,把一个CMS系统(比如Drupal 10)运行起来。以上工作自己能独立完成(可以上网查资料但不能问别人或找人帮忙),就可以算得上“熟悉Linux系统”了。
校招我还没碰到过下图中的工具用过五个以上的:


Linux降龙十八掌从第一重到第九重的功法全在上面了。
能够在sudo rm -rf /*之后,不重装系统的情况下救回来 (雾
告诉大家一个最直白有效的方法。很氪金但是很有效
去考个RHCA。课程选择云计算方向的几门课。过了,就有认证
面试的时候,你就直白地告诉面试官,我有RHCA 证书, 然后告诉他证书编号。这样面试至少第一关你过了。。过程简单直白,他再出问题就不礼貌了。
为什么这个认证直白简单有效呢。
RHCA认证前置,需要RHCSA初级认证和RHCE中级认证,这俩初级认证所需要的考试内容,已经涉及到大部分大佬回复的答案的。
这两科课程中包含的,是如何基于空白的linux环境初始化硬盘存储等基本操作,并安装一个简单的单实例BS结构系统环境。
代表你是入门linux操作员(RHCSA)和及格的linux系统管理工程师(RHCE)
但是这个没完,在RHCE的基础上,是RHCA,红帽子linux架构工程师认证。
考这个认证的学生。需要自己买一台符合考试环境硬件需求的电脑,把电脑格式化,从最基础安装linux 系统。然后通过kvm 虚拟环境,模拟出多种考试所需要的环境,例如clustfs虚拟化存储 ,kubernetes,zabbix和Prometheus自动化监控等等等等。
为什么这么麻烦,这个认证的考试,不是背题库抄抄就能过的。是纯上机测试。你需要在上机前把所有操作流程反反复复的练熟。实际上考试前每一个考生都知道大概考试内容的,都在书上写着。
考试就是给你一台你不知道密码的linux。你需要通过单用户模式强制获取root密码。
然后在纯指令环境下根据系统内置的考题完成一系列的配置,顺带一提,你得一直开着selinux和防火墙,每一步操作都必须配置对应的安全策略一步步放开调通。
以上是RHCSA和RHCE的考试过程。
而RHCA,就是在上面考试完成环境的基础上,在有限时间内搭建一套符合考试要求的,能够运行商业化系统的复杂环境。这个具体考试内容取决于,你在RHCA所涵盖的30多门课程中,选择了其中的哪六门,每门课通过上机测试。一本证书。拿到六本,你才能获得最终资格认证
最麻烦的是你得考试有限时间内实操出来,而且在安装过程中你得自行根据系统日志排查异常错误,并将环境调试到可以使用的等级。这难么?其实不难。这就是正常业务工作中的系统运维的情况,系统故障排查,系统环境部署
并且后台有日志记录你安装和故障排错的过程。所以别耍小花样。
能够通过这个上机考试的人,具备最基础的linux操作能力,基本的服务搭建能力,基本的系统排错能力。和扎实的linux系统知识基础。
如果是16年以前,这个考试是纯英文的。顺带一提,当你解开了电脑root密码,里面有外文版的资料给你参考。只要你英语达标。你也应该能过。如果你顺利按着文档没出异常错误的话
这也代表你具备了信息技术行业中操作系统维护工程师最重要的能力,信息获取和信息分析能力。
这也是技术面试官看你有证,不会过度刁难你的原因。这大概是最高难度linux人证,再问,不礼貌了。
红帽子认可的架构师,你不认可。这企业估计有点飘。
对于干linux系统运维的来说,基本一二线城市正规IT企业的操作系统维护工程师大佬,应该人手一份。
因为redhat公司的centos系统,是目前大部分IT公司服务器最常用的linux版本。所以行业内从业者基本都会主动去考。
就算国产替代也绕不过同类版本linux。含金量很高
在实际工作中,部分非常苛刻的国有企业项目,参与的维护人员有的明确要求,需要RHCA认证才能参与投标。而且,这个认证必须在有效期内。忘了说了,认证有时限,1-2年,到期要根据市面最新版本续期考试。
很多人都知道的鸟哥的私房菜,他的课程内容涉及的就是RHCE等级,和少部分RHCA的内容。
从行业内角度。考完这个认证的人,基本能达到,熟悉linux操作系统的等级。
这也是目前就业市场对于熟悉linux的具体标准。你有资格独立维护公司的商业化系统,并且有权获得root权限,操作生产环境。
没有认证的且没有工作经验的,勉强为入门级。大概率从事桌面运维的工作
而精通那个等级?在这个行业干10年左右。有能力进行内核开发,调整,优化,又或者是能够根据内核日志分析系统性能故障并给与优化方案的等级,才有资格。
至少我遇到的大佬里 ,哪怕是教RHCA的讲师,没几个人敢自称精通。
当然,对于真正的高手而言,这类证书没什么意义,但是对于学生而言,你想要确定自己对于linux被外界认可的技术等级,这是最好的参照物和水平证明
同时,请不要过度执迷于考证
认证只是对你技术水平的一种证明,而技术永远在更新和淘汰。不断的学习。永远的优化更新自己的技术储备。这才是合格的,将系统运维作为终身职业的工程师该做到的。
如果你只是想打个酱油,三十岁改行,我前面说过的,你可以划过。
这个认证对于已经从业的技术人员,没有难度,
对于计算机科班认真学习的学生,也没难度
就是要花钱和时间,全套认证需要一年半才能拿下。
以上
发现有研发在这里说:linux不用理解这么深
不是linux不用理解这么深,而是你不是这个岗位需要的人。
如果你不了解这么深入,那么说明你:linux技术水平为入门级,不是需要熟悉linux水平的岗位需要的人员
现在企业招聘,本着能少一个算一个的原则节省成本,如果正规企业的岗位要求,要熟悉linux的人,而且招聘的人不像是开玩笑,而是一本正经。
那么大概率要你碰生产环境。
说得直白点,他想要一来就能干活的人,说得损一点,研发得兼职系统运维工程师。
如果不熟悉linux,厚脸皮硬上岗位,大概率玩出生产故障,
这个时候,看这个大锅漂亮吧,背上吧。严重点影响你职业生命。
系统运维的工作出了bug,没时间加个断点给你慢慢修,损失按秒计算谢谢。
往小了说扣工资罚款道歉三件套,往大了说卷铺盖跑路换下一个。
这也是有些企业强调要熟悉linux的原因
你以为linux证书这么麻烦的上机考试开玩笑的?
学的时候,考试的时候,多踩点坑,生产环境就少闯祸。
我面应届基本问这些
查空余内存怎么查,有多个实现方式,任意列出其一
查端口占用怎么查,任意列出其一
查硬盘挂载情况怎么查
大概就这样,挺普通的吧,基本没有能完整答出来的
补充一下
我们是涉密项目,全程不联网的,工作用机只有linux,目前大部分应届毕业的学生尤其是硕士,其实计算机基础很差的,就这些日常使用linux最基本的命令,这么说吧,今年秋招整个一个面试季,没有一个硕士能完整回答出这些问题的。问这些问题不是为了考他会不会,其实就是想对学生的简历水分有个大概认知。现在的应届简历基本都会说,掌握什么什么,精通什么什么。就拿熟练使用linux这种话术来说,查个内存占用,不难吧,基础吧,常用吧。基本答不出来,能答出top的有一些,答出free的几乎没有
会用linux开发就行了,Linux操作系统常用的一些命令也需要熟悉,下面这些命令已经足以满足日常的使用需求。文件操作命令ls:列出当前目录下的文件和子目录;cd:切换目录;pwd:显示当前所在的目录;mkdir:创建一个新目录;rm:删除文件或目录;cp:复制文件或目录;mv:移动或重命名文件或目录;touch:创建一个新文件;cat:显示文件内容;more:逐页显示文件内容;less:更加高级的逐页显示文件内容的工具;head:显示文件的前几行;tail:显示文件的末尾几行;grep:在文件中搜索指定的字符串。系统管理命令ps:列出当前正在运行的进程;top:动态显示当前系统进程的状态;kill:终止指定的进程;df:显示磁盘使用情况;du:显示目录或文件的磁盘使用情况;free:显示系统内存使用情况;ifconfig:显示网络接口的配置信息;ping:测试网络连接是否正常;netstat:显示网络连接状态;who:显示当前登录系统的用户信息;date:显示系统日期和时间;uname:显示系统信息。权限管理命令chmod:修改文件或目录的访问权限;chown:修改文件或目录的所有者;chgrp:修改文件或目录的所属组。 Linux对程序员来说有很多优点,但也有一些缺点需要注意。
程序员在考虑使用Linux时,应该仔细权衡这些优缺点,针对Linux发行版不同的配置和文件系统结构可能会导致程序员在切换时遇到的困难,有以下几种解决方法:
选择一种主流的Linux发行版:
程序员可以选择一种主流的Linux发行版,如Ubuntu、Debian、RedHat等,它们在不同的Linux发行版之间具有较高的兼容性,可以减少程序员在切换时遇到的困难。
以下是一些主流的Linux发行版和它们的下载链接:
Ubuntu: https://ubuntu.com/downloadDebian: https://www.debian.org/distrib/CentOS: https://www.centos.org/download/Fedora: https://getfedora.org/Red Hat Enterprise Linux: https://www.redhat.com/en/technologies/linux-platforms/enterprise-linuxopenSUSE: https://software.opensuse.org/Arch Linux: https://www.archlinux.org/download/Manjaro: https://manjaro.org/download/注意:下载前请仔细确认自己需要的版本和系统架构(32位或64位),以免下载错误的文件。学习并熟悉不同Linux发行版的配置和文件系统结构
程序员可以花费时间研究不同Linux发行版的配置和文件系统结构,这样可以更容易地在不同的发行版之间切换,同时也可以提高对Linux操作系统的理解和掌握程度。
Linux基础】ubuntu 基本安装设置语言环境设置服务器镜像源在启动栏添加终端图标使用 apt 更新和升级系统软件deb 格式及谷歌浏览器的安装什么是操作系统不同领域的主流操作系统-01-桌面操作系统Linux 的内核版和发行版Linux 系统下的文件目录结构文件和目录命令-01-明确命令分类和学习目标拷贝和移动命令-01-目标确定和图形界面演示文件内容命令-01-cat 和 more 的基本使用和对比其他命令-01-echo 和重定向其他命令-02-管道的概念和基本使用SSH 高级-01-ssh使用跨平台的开发工具和软件:
程序员可以使用一些跨平台的开发工具和软件,如Java、Python等,这些工具和软件可以在不同的操作系统和发行版之间运行,减少程序员在切换时遇到的问题。
如何快速入门学习Python呢?0 赞同 · 0 评论回答


20 天学会 Java - 1. Java 课程简介?www.zhihu.com/education/video-course/1483149993460109313


使用虚拟机:
程序员可以使用虚拟机来模拟不同的Linux发行版,这样可以在同一台计算机上同时运行多个不同的发行版,方便程序员进行开发和测试。
问GPT如何安装某某某
GPT: 巴拉巴拉
shift+Insert : 然后报错是XXX
GPT: 巴拉巴拉
shift+Insert : 然后端口怎么开
GPT: 巴拉巴拉
shift+Insert : 还是访问不了
GPT: 巴拉巴拉
shift+Insert : 怎么修改配置文件
GPT: 巴拉巴拉
shift+Insert : VI是啥
GPT: 巴拉巴拉
shift+Insert : 怎么保存退出
GPT: 巴拉巴拉
shift+Insert : 怎么重启服务
GPT: 巴拉巴拉
弄好了, 关闭GPT, 并表示自己独立完成了linux操作系统下的部署配置, 对linux已经有了相当的熟悉和了解
然后重新打开GPT
linux怎么关机?
我来回答一下这个问题
我们12年校招的时候写了熟悉Linux操作系统,如果只是熟悉使用Linux操作系统,我建议直接看「鸟哥的私房菜」,这本书就是看安装,学习命令,权限等等的,反正我不觉得这个是一个嵌入式工程师应该看的数据,也许是应该看,但是核心不是这个,嵌入式Linux应该是反向操作的,我们要理解的是,为什么我输入了ls会看到里面的那些内容。
因为我们那个时候会Linux的人本身就不多,我的师傅那个时候面试我,他是做rtos的,所以我在面试时候说的一些Linux知识他就是不知道的。
我理解的熟悉 Linux 操作系统,应该是你能搞定 Linux 系统中遇到的一些问题,会用 Linux 系统来辅助你完成你的开发,说得更加简单一些,有一些问题,你百度出来了,你还要真的会解决掉,而不是百度出来了,你也是一愣一愣的,那就是不懂。
至于学习到很高深的程度,我觉得不见得需要,即使是很厉害的人,看了后面的内容后,基本也是会忘记前面的内容的,就 Linux 命令行的三剑客,你工作中要是用的不多,你就是会忘记的,特别是,我们是做嵌入式软件开发的,我们关注的是驱动和内核,这个 shell 的脚本都是用到的时候就会去查找,你要是死记硬背,那会挺废脑子的。
不看说明书装个arch?(doge
你自己熟不熟悉linux心里没个数么?
心里没个数就是不熟悉。
校招,包括对有3年以内开发经验的初级开发而言,熟悉Linux操作系统一般可以拆分成如下的要点,大家在准备面试时可以按照这些方面去准备。
1 通过看日志排查和解决实际问题。
比如Java,或者其他程序,一般是运行在linux上,运行后会生成日志,一旦出了问题就要看日志去解决,这块需要准备的点是,如何打开文件,比如用vi或tail等命令打开文件,打开文件后,用search模式搜索关键字的方式,这块一般靠口头说就行。
2 能把打包后的系统复制到linux上并启动。
这块可以说,在我们的项目里,我会用cp命令把jar包复制到linux指定目录,然后用chmod命令设置该包的权限是777,然后用sh命令启动,或者这里再准备些sh脚本命令的细节,比如如何指定环境变量和运行时参数。
这块还可以说,我们项目会用jenkins等自动化脚本来部署,在编写jenkins脚本时,我会登录到linux系统上去调试,如果jenkins参数不对,比如把文件复制到错误的路径,我会登到linux上排查和解决,同时,会在Linux上调好启动命令和参数后,再配置到jenkins脚本里。
3 能看cpu或内存用量,并排查实际问题。
比如出现了告警,我会登录到linux上,用命令看当下哪些线程占cpu(或内存),然后再用jstack等命令看细节,这方面最好是能结合一两个实际案例说。
4 能在linux上搭建组件,比如mysql或redis。
这块相对比较高级,但看些资料以后也能说。比如项目里用到的Java虚拟机,mysql,redis,甚至是spring cloud alibaba方面的nacos等,最好是集群,如果你看了一些命令后,可以在面试时说出来,这绝对是个加分项。
同时,系统在linux上运行时,一定需要些配置参数,比如gateway或nginx配置参数,nacos集群配置参数,或系统通用的全局参数,这些一般是写在配置文件里的,这块大家在看熟以后也可以说。这块能证明,你具有搭建系统和搭建组件的技能。
5 能搭建监控系统。
比如项目运行后,一旦遇到系统宕机,或者是日志里大量出现error或exception关键字,需要告警,让程序员介入处理。
这块属于架构和高级开发的工作,但初级开发看熟悉了也能做,一般是,在linux上搭建一个zabbix或cat监控组件,然后配置些参数去监控慢查询或监控日志,告警机制一般是zabbix等组件都具备的,程序员也可以说下大致怎么配。
这块本身能证明的点是,这位程序员有架构方面的能力,再进一步,能引出自己解决过哪些实际问题的话题,比如可以引出,通过监控发现了OOM,然后解决。
6 再进一步,可以和docker和k8s整合。
初级开发可以说一些比较基本的命令,比如在linux上创建docker image,并生成运行容器的命令,或者是讲些基本的k8s关于deployment和service的配置。
这块本来对初级开发是没要求的,校招生也不大会接触这个,但如果有1,2年开发经验,然后能结合项目说下自己操作过docker,再进一步是k8s,这块绝对是个加分项。
也就是说,校招生和初级开发在准备linux方面的面试话题时,应当围绕“发现问题”和“分析问题”这两个方面,再进一步可以再结合“搭建系统和组件”,比如通过哪些命令看linux日志,出现问题后通过哪些命令看cpu或内存用量,如何再定位到出问题的线程,在此基础上,可以再看些搭建组件和集群的命令。
当然事实上,一些有4,5年开发经验的资深开发,可以通过分析linux的内核参数或源码来解决问题,比如通过linux切换内存分页的参数来排查OOM问题,这块其实也是资深开发或架构证明能力的窍门,但这块对初级开发来说太难。
相反,初级开发如果就围绕linux内核细节来准备,比如去看些linux底层通讯和线程切换的源码,这块顶多只能证明自己理论方面的能力,这当然总比不说要看,但没法证明项目方面的亮点经验。
要知道,很多3年左右经验的初级开发,一般是不具备linux开发技能的,这块大家可以想象下,很多小公司的crud程序员是只在windows上开发的。所以大家只要按上述要点去准备linux方面的说辞,哪怕你平时开发项目时没机会用linux,在面试中一定能超越大多数的竞争者。
会自己搭建 LEMP ,
配置 postfix 和 dovecot 就差不多了吧。
顺便贴个图


https://www.brendangregg.com/Perf/linux_observability_tools.png

https://www.brendangregg.com/Perf/linux_observability_tools.png

https://www.brendangregg.com/blog/2014-08-23/linux-perf-tools-linuxcon-na-2014.html

互联网行业工作一年多了,总结一下我实际工作中使用频率最高的一些Linux命令,可能有遗漏:
1. cat & less & tail & vim
主要是用来处理日志,上班几乎每天都在跟日志打交道。服务出故障了来查日志,用户有问题要查日志,检查新代码要查日志……
一般来说,查日志要么就登录公司的elastic search等服务搜索,要么就直接对日志文件做查询,所以熟悉日志处理的各种命令,是很重要的。
常用命令1:less filename.log
cat命令会把整个文件内容全部输出。要知道,日志文件都是很大的,一次性打印只会狂刷控制它,除了闪瞎眼之外没有其他用处。需要使用less命令,逐行逐页地打印日志内容,再输入"/"使用搜索功能,才能方便我们查看日志。


less指令,逐行逐页打印日志常用命令2:tail -f filename.log 或者 tail -f filename.log | grep "xxx"
有时候我们需要一边运行程序,一边实时观察日志打印的内容。就需要tail -f命令,它会一直监听日志变化,并实施打印日志新增内容。还可以和grep命令结合起来只打印我们感兴趣的内容。


tail -f指令,一直打印实时日志常用命令3: vim filename.log
强大的vim编辑器无需多言,当需要更复杂的操作的时候,就需要借助vim编辑器来实现。
2. ping & telnet & traceroute & dig
排查网络故障也是工作中常见的场景。其中最高频的指令就是ping和telnet,它们一个用来检查主机是否连通和是否有丢包,一个用来检查端口是否连通。
常用命令1: ping http://www.xxx.com
两个作用,一个是用来检测目标网络是否连通,一个是用来检查是否存在丢包的情况。


连通且没有明显丢包常用命令2: telnet www.xxx.com port_num
用来检查目标某端口是否正常连通。


22端口连通


23端口不通3. netstat
用来显示当前主机网络状态的指令,一般用来检查主机的对外开放端口和对应的进程。
常用命令1: netstat -lntpn 参数表示数字,它可以让netstat以数字形式显示地址和端口号,而不是以名称的形式显示。l 参数表示监听,所以 netstat -l 会显示所有监听的socket。t 参数表示TCP协议,所以 netstat -t 只会显示TCP协议的socket。p 参数表示程序,所以 netstat -p 会显示每个socket对应的程序的信息。
该指令会列出所有在监听状态的socket,并以数字形式显示地址和端口号,同时还会显示与这些socket相关的程序的信息(关注PID号)。一般用来检查主机对外开放的端口。


查看本机开放端口和对应进程常用命令2: netstat -latpl 参数表示监听,所以 netstat -l 会显示所有监听的socket。a 参数表示所有,所以 netstat -a 会显示所有的socket(监听的与非监听的)。t 参数表示TCP协议,所以 netstat -t 只会显示TCP协议的socket。p 参数表示程序,所以 netstat -p 会显示每个socket对应的程序的信息。
因此,netstat -latp 会列出所有使用TCP协议的socket,无论是正在监听的还是非监听的,同时还会显示与这些socket相关的程序的信息。一般用来检查主机的所有连接。


查看本机所有连接4. ps
同样是使用频率极高的命令,用来打印主机上所有进程的命令。
常用命令1: ps -ef-e 参数的意思是select all processes,也就是选择所有进程。-f 参数的意思是full-format listing,也就是全格式列表。
该命令以全格式显示所有进程的状态信息,这将包括每个进程的id,父进程的id,CPU和内存的使用情况,开始时间,运行时间,所属用户,命令行等信息。再使用grep来筛选我们该兴趣的东西。


查看本机所有进程5. top & df
都是用来查看系统资源占用的指令,top指令主要用来查看系统CPU占用、内存占用和负载。df指令只要用来查看系统磁盘占用。
常用命令1: top
直接输入,就会实时刷新当前系统的CPU、内存、负载占用情况。


常用命令2: df -h
以人类可读的方式打印机器磁盘占用情况。


6. > & >>
两个重定向操作符,不同的是 > 会覆盖源文件,>> 会追加到源文件尾部。
常用命令1: bash xxx.sh > xxx.log
以覆盖的方式重定向程序的输出。
常用命令2:bash xx.sh >> xxx.log
以覆盖的方式重定向程序的输出。
暂时先想到这些,如果有人看再看看有没有遗漏的补充。
把gentoo装上,然后完美使用。
这个我还真问过一些HR
我们写教学目标时,“熟悉”一般指看到一个难度不大的问题,知道大概思路,细节可以靠翻书查资料,最终能解决这个问题;掌握就是靠自己就能解决一些基础或者常见的问题
而HR们给我的答案是,招聘信息中的“熟悉”是指你知道这么个东西,能摆弄两下表示自己入门了就行,大概和我们教案中的“了解”差不多。
熟悉Linux操作系统,知道有这么个系统,有RH、Ubuntu等几个知名的发行版,知道几个常用的命令,能查看系统资源占用、查查IP地址,会安装删除软件(自带软件包管理系统,不用编译安装那么麻烦),要是问怎么搭建web服务能说出安装apache或者nginx就行了。
可以认为,如果你能达到“熟悉Linux”这个层次,表明你入门了,有培养的价值,但指望你干点简单的活儿恐怕不行。
当年我第老板对此的解释是,给Linux kernel提交过patch……
手搓linux系统的程度。
[收藏本文] 【下载本文】
   教育信息 最新文章
为什么部分 985 博士的第一学历很普通?
同济土木已经没有未来了吗?
为什么大学里上课几乎没几个人听课?
00 后女干部拟任东莞茶山镇经济发展局副局长
为什么很多仕途开始一帆风顺的人,都会卡在
能干成大事的人都是什么样的人?
重男轻女家庭里姐姐下面的弟弟在想什么?
上海交大这个名牌值得舍弃专业吗?
谁能介绍一下北大的数学教授许晨阳?
教育部为什么不公布第五轮学科评估的结果?
上一篇文章      下一篇文章      查看所有文章
加:2024-02-16 14:28:17  更:2024-02-16 14:46:14 
 
古典名著 名著精选 外国名著 儿童童话 武侠小说 名人传记 学习励志 诗词散文 经典故事 其它杂谈
小说文学 恐怖推理 感情生活 瓶邪 原创小说 小说 故事 鬼故事 微小说 文学 耽美 师生 内向 成功 潇湘溪苑
旧巷笙歌 花千骨 剑来 万相之王 深空彼岸 浅浅寂寞 yy小说吧 穿越小说 校园小说 武侠小说 言情小说 玄幻小说 经典语录 三国演义 西游记 红楼梦 水浒传 古诗 易经 后宫 鼠猫 美文 坏蛋 对联 读后感 文字吧 武动乾坤 遮天 凡人修仙传 吞噬星空 盗墓笔记 斗破苍穹 绝世唐门 龙王传说 诛仙 庶女有毒 哈利波特 雪中悍刀行 知否知否应是绿肥红瘦 极品家丁 龙族 玄界之门 莽荒纪 全职高手 心理罪 校花的贴身高手 美人为馅 三体 我欲封天 少年王
旧巷笙歌 花千骨 剑来 万相之王 深空彼岸 天阿降临 重生唐三 最强狂兵 邻家天使大人把我变成废人这事 顶级弃少 大奉打更人 剑道第一仙 一剑独尊 剑仙在此 渡劫之王 第九特区 不败战神 星门 圣墟
  网站联系: qq:121756557 email:121756557@qq.com  阅读网