【Java校招面试】基础知识(八)——Linux服务器


前言

本篇主要介绍Linux服务器的相关内容。

“基础知识”是本专栏的第一个部分,本篇博文是第八篇博文,如有需要,可:

  1. 点击这里,返回本专栏的索引文章
  2. 点击这里,返回上一篇《【Java校招面试】基础知识(七)——数据库》
  3. 点击这里,前往下一篇《【Java校招面试】基础知识(九)——Redis》

一、基础概念

01. GNU/Linux
Linux操作系统的全称是GNU/Linux。GNU/Linux是一种自由、开放源代码的操作系统,由GNU项目和Linux内核组成。

  • GNU: 是一个自由软件计划,它由理查德·斯托曼于1983年启动,并得到了全球范围内的自由软件社区的支持和贡献。GNU项目开发了很多自由软件,如GNU编译器(GCC)GNU调试器(GDB)GNU核心工具集(Coreutils)等。
  • Linux: 是一个开源的、基于Unix的操作系统内核。它最初由芬兰的林纳斯·托瓦兹在1991年开发,目前已成为世界上最流行的操作系统之一。Linux内核被许多不同的操作系统使用,包括Ubuntu、Debian、Fedora和Red Hat等。Linux开发者社区提供了大量的软件和工具,使得Linux成为了一个非常强大和灵活的操作系统。

GNULinux在GNU/Linux操作系统中承担的角色是分别提供操作系统中的大部分软件操作系统内核。它们的合作使得GNU/Linux成为了一个完全自由的、高效的和功能强大的操作系统。

02. 为什么大多数企业和个人选择Linux作为服务器的操作系统
Linux作为服务器的操作系统,主要是因为以下几个优势:

1) 开源免费: Linux是一个开源免费的操作系统,可以免费使用、修改和分发,这降低了成本。
2) 稳定性高: Linux系统的稳定性非常高,因为它有一个良好的内核和良好的系统架构。它可以持续运行数月甚至数年,不需要频繁地重启。
3) 安全性好: Linux系统的安全性非常好,因为它有一个强大的安全模型和许多安全工具,可以保护服务器免受黑客攻击。
4) 可定制性强: Linux系统非常灵活,可以根据需要进行定制和配置,以满足不同的需求。
5) 社区支持广泛: Linux有一个庞大的社区,可以提供广泛的支持和帮助,例如开发者、用户和技术专家等。

总之,Linux的这些优势使得它成为了一个非常受欢迎的选择。

03. Linux系统的体系结构
在这里插入图片描述
Linux的体系结构主要分为用户态(用户上层活动)内核态
1) 内核: 本质是一段管理计算机硬件设备的程序;
2) 系统调用: 内核的访问接口,是一种不能再简化的操作;
3) 公用函数库: 系统调用的组合拳;
4) Shell: 命令解释器,可编程。

04. 文件权限
首先查看两个文件的权限描述信息
在这里插入图片描述

每个文件的权限描述信息都是10位的字符串。以第一个文件drwxr-xr-x为准,我们按照1/3/3/3将其分为四个部分:
1) d——文件类型:

  • -: 普通文件
  • d: 目录文件
  • b: 块设备文件
  • c: 字符设备
  • l: 符号链接文件
  • p: 管道文件
  • s: 套接字文件

2) rwx——文件拥有者(Owner)的权限

  • r: read,读文件的权限
  • w: write,写文件的权限
  • x: execute,执行文件的权限
  • -: 在对应的位置上,表示无对应权限。如r--表示只读,rw-表示可读可写不可执行…

3) r-x——文件拥有着者所在的用户组其他人(Group)的权限
对应位置上r/w/x/-的意义同上,表示用户组其他人对该文件的权限

4) r-x——其他人(Other)的权限
对应位置上r/w/x/-的意义同上,表示其他人对该文件的权限


二、常用命令

01. pwd
pwd可以输出我们当前所在的路径
在这里插入图片描述

02. ls
ls用于输出当前目录下的所有文件(夹)
在这里插入图片描述

03. cat
cat用于将文件的内容直接打印出来,一般只用于查看内容比较少的文件,如果文件内容比较多,控制台会输出过多的内容。
在这里插入图片描述

04. vim
vim用于查看和编辑文件内容,不同于命令行,它是一个独立的编辑器界面。
语法:vim 文件名

1)i 键进入编辑模式,可在光标所在的位置输入内容。编辑模式的标志是左下方的 -- INSERT --
在这里插入图片描述

2)Esc 键可以退出编辑模式

3) 在非编辑模式下,输入 :q 可以退出vim编辑器,q是quit(退出)的缩写。有以下几种情况:
  a) 未修改文件内容,:q可以直接退出;
  b) 修改了文件内容,:q提示不可以退出,要使用:q!叹号表示强制,这样退出之后会丢失修改的内容,即文件内容不会发生更改;
  c) 修改了文件内容,想要保留修改的新内容,要使用:wqw是write(写)的缩写,这样退出之后会保留修改的内容,即文件内容被覆盖为最新的版本。

4) 在非编辑模式下,输入 :set number 或简写为 set nu,可以为编辑器添加上行号
在这里插入图片描述

5) 在非编辑模式下,输入 :行号 可以跳转到指定的行,如:21
在这里插入图片描述

6) 在非编辑模式下,输入 :/关键字 可以在文件中按关键字进行搜索,并跳转到对应的位置,如:/License
在这里插入图片描述
所有符合的关键字都会高亮,同时光标会处在第一个匹配的位置。

此时:

  • 按下大写字母 N 键,前往上一个匹配项
  • 按下小写字母 n 键,前往下一个匹配项

7) 在非编辑模式下,输入 dd 可以删除光标当前所在行的内容

8) 在非编辑模式下,输入 :%d 可以删除所有的内容

9) 为python代码添加语法高亮

  • 第一步: 安装vim-enhanced——sudo yum install vim-enhanced
  • 第二步: 获取vim插件——curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  • 第三步: 把启动插件的命令写入vim的配置文件中,10)
    在这里插入图片描述

10) 有的选项可以设置为vim的默认配置,不需要每次打开都手动设置一遍,比如默认显示行号等

  • vim ~/.vimrc
  • i进入编辑模式
  • 写入以下内容:
" 设置默认可以通过退格键删除内容
set backspace=indent,eol,start

" 设置默认显示行号
set number

" 设置默认搜索内容高亮
set hlsearch

" 设置默认启用python语法高亮
call plug#begin('~/.vim/plugged')
Plug 'vim-python/python-syntax'
call plug#end()

syntax on
  • wq 写入并退出vim编辑器

05. tail
tail用于从一个文件的最后监控文件的更新,它会将文件的更新内容即时输出在控制台中
语法: tail -f 文件名

06. grep
grep的全拼是Global Regular Expression Print,即全局正则表达式打印,用于向控制台打印从一段文本中通过正则表达式匹配到的行。
语法: grep "正则表达式" 文件名或文本内容
参数: -v "想要过滤的内容"——可以过滤掉包含指定内容的匹配结果

07. 管道操作符|
管道操作符可以把多个命令连接起来,把左侧命令的输出作为右侧命令的输入,依次执行。
比如我们把tailgrep连接起来举个例子: 监控debug.log文件的更新,输出其中包含System Error的行

tail -f debug.log | grep "System Error"

这时tail -f debug.log的输出就会被输入给grep "System Error",达到了我们仅监控自己想要的内容,过滤掉其他内容的目的。

08. chmod
chmod用于修改一个文件的权限。

严格来说,这不是一个“常用”的命令,因为很少有人会去修改一个文件或文件夹的权限。讲这个命令主要是因为它精妙的设计值得一讲。
前文中提到,对于一个文件,每个角色的权限由3位组成,---即什么权限也没有,rwx即可读可写可执行。

chmod命令将一个角色是否有对应位置的权限记为为01,如--- = 000rwx = 111r-x = 101,…
因为二进制数右边是低位,左边是高位,我们以bin表示二进制,ord表示十进制,将字符串转化为2进制数,再转化为10进制数则:

  • --- = 00 0 b i n 000_{bin} 000bin = 0 o r d 0_{ord} 0ord
  • r-x = 10 1 b i n 101_{bin} 101bin = 5 o r d 5_{ord} 5ord
  • rwx = 11 1 b i n 111_{bin} 111bin = 7 o r d 7_{ord} 7ord

假设我们要修改一个名为my.sh的文件权限为拥有者可读可写可执行,同用户组的其他人可读可执行,其他人仅执行。

  • 权限的字符串表示为: rwx r-x --x
  • 二进制表示为: 111 101 001
  • 十进制表示为: 751

因此,命令写作chmod 751 my.sh


后记

GNU / Linux系统有丰富的应用工具,所以知识点和实用命令不胜枚举。但也不需要一次性全部都记住,上述的这些面试常考的记忆一下,更多的还是要常用,自然就能记住了。

在你需要开展更多的服务器工作,并逐渐熟练起来时:

  • 可以通过nohup或者screen命令保证你需要长时间执行的命令不会因为断开服务器链接就被挂起
  • 可以通过tophtop命令查看服务器单核和多核的CPU占用率、内存占用率、进程监控等
  • 可以通过ll查看当前目录下的所有文件其名称、权限、大小、更新日期等
  • 可以通过du -h --max-depth=1查看当前目录下所有文件及文件夹的大小
  • 可以通过ps -ef | grep "debug"查看所有名称或启动命令包含debug的进程情况

这些都不在这里一一展开细讲了,如果你有兴趣或者真的需要用到的时候,再去查,然后多用,自然就记得住了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IMplementist

你的鼓励,是我继续写文章的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值