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

news2024/12/26 11:05:37

目录

  • 前言
  • 一、基础概念
  • 二、常用命令
  • 后记


前言

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

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

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

一、基础概念

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的进程情况

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/506508.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

仿抖音开发需要注意的问题

一、版权问题 仿抖音开发需要注意版权问题,包括内容的版权和软件的版权。在开发的过程中,不要直接抄袭他人的作品,应该注重保护知识产权。 二、安全性问题 仿抖音开发需要重视应用的安全性问题,避免应用在使用过程中发生安全漏…

OpenCv 图像的算数运算

1. 图像加法 函数 cv.add(img1, img2) 参数中的img1 和 img2 应该是相同的深度和类型, 或者第二个图像可以是像素值 代码示例: >>> x np.uint8([250]) >>> y np.uint8([10])>>> print(cv.add(x,y)) #250 10 260 > 255 [[255]]&g…

Winform控件数据绑定 DataBindings

目录 引言 绑定的方式 双向绑定 验证时更改数据源 立即更改数据源 单向绑定 绑定方法 属性界面选择绑定 通过代码手动绑定 绑定自定义数据类型 引言 DataBindings 的出现显然是为了解决后台数据与前端界面的同步问题,通过绑定控件属性与对象属性,解决…

Spring Cloud整合XXL-Job

目录 第一步&#xff1a; 第二步&#xff1a; 第三步&#xff1a; 第四步&#xff1a; 重点&#xff1a; 第一步&#xff1a; 整合pom文件&#xff0c;在Spring Cloud中添加XXL-Job的依赖 <!-- xxl-job-core --> <dependency><groupId>com.xuxueli<…

工业设备安装可视化AR互动培训降低企业成本

随着污水处理厂构筑物、设备、管阀及电器、仪表、自控等工艺设施逐步大型化、复杂化、多样化,污水厂日常运行安全检查尤为重要。通过对不同污水处理工艺运行厂家实际调研分析&#xff0c;发现开发污水厂AR远程可视化巡检系统是很多厂家的实际需求。 AR远程可视化巡检系统也被称…

JAVA—— Steam流

一、 引言 初识Stream流的作用&#xff1a; 需求&#xff1a;按照下面的要求完成集合的创建和遍历&#xff0c;创建一个集合&#xff0c;存储多个字符串元素 通过下面代码&#xff0c;显然我们清晰的看到使用Stream流更为方便&#xff0c;而使用不同的集合遍历就有些复杂。 i…

【CMIP6月、日数据】【ERA5-LAND陆面再分析数据】【全球VIPPHEN物候数据】

国际耦合模式比较计划进入新的阶段——第六阶段&#xff08;CMIP6&#xff09;&#xff0c;这将为气候变化研究领域提供更丰富的全球气候模式数据。相比于 CMIP5&#xff0c;CMIP6 模式有两个主要的特点&#xff1a;一是 CMIP6 考虑的过程更为复杂&#xff0c;很多模式实现了大…

js - typeof与instanceof类型判断的区别

1&#xff0c;typeof 描述&#xff1a;运算符返回一个字符串&#xff0c;表示操作数的类型。 常用的类型判断 console.log(typeof 42); // numberconsole.log(typeof "blubber"); // stringconsole.log(typeof true); // booleanconsole.log(…

【Linux】Linux入门学习之常用命令一

介绍 这里是小编成长之路的历程&#xff0c;也是小编的学习之路。希望和各位大佬们一起成长&#xff01; 以下为小编最喜欢的两句话&#xff1a; 要有最朴素的生活和最遥远的梦想&#xff0c;即使明天天寒地冻&#xff0c;山高水远&#xff0c;路远马亡。 一个人为什么要努力&a…

stable diffusion 安装教程

stable diffusion安装教程 环境准备硬件要求安装软件Python 安装安装git安装cuda工具安装工具包模型下载 生成图片成果展示 环境准备 硬件要求 1.需要拥有NVIDIA显卡&#xff0c;GT1060起&#xff0c;显存4G以上。&#xff08;已经不需要3080起&#xff0c;亲民不少&#xff0…

中文润色ai-ai原创文章生成器

在现代社会&#xff0c;每天都有大量的中文文章被发布到互联网上&#xff0c;这些文章的质量和可读性直接影响着读者的阅读体验和文章的传播效果。为了让文章更加美好&#xff0c;越来越多的人开始尝试使用中文润色ai技术。 中文润色ai是一种先进的人工智能技术&#xff0c;它能…

OA办公系统能为企业带来什么好处?

在企业办公管理软件当中&#xff0c;OA系统一直都是最受欢迎也是很多大中型企业不可或缺的管理系统。企业OA办公系统是将计算机、通信等现代化技术运用到传统办公方式&#xff0c;进而形成的一种新型办公方式。办公自动化利用现代化设备和信息化技术&#xff0c;代替办公人员传…

10分钟拥有自己的Chatgpt网站(八)

文章目录 使用Vercel托管平台搭建免费Chatgpt网站前言Fork chatgpt-vercel 到自己的github把 chatgpt-vercel 托管到vercel平台注意vercel分配的域名被墙,需要我们自己去配置自己的域名:总结使用Vercel托管平台搭建免费Chatgpt网站 前言 需要有github账户,进行对开源项目进…

vue3学习六 hooks

vue3中的 hooks 它的作用&#xff0c; 有点像 vue2中的mixins 的作用 相当于是把一个功能性的一组方法&#xff0c; 封装的别的地方&#xff0c; 当每一个 component中需要用到相应的组件的时候&#xff0c; 可以很方便用引入其中来使用 举个栗子 我们有很多的页面&#xff0c…

虚拟面试系统安装使用说明

虚拟面试系统安装使用说明 虚拟面试系统是程序员参加面试的虚拟系统&#xff0c;该软件中的测试题只针对程序员设计&#xff0c;不针对其它人员。面试流程可适用于所有大众行业。 一&#xff0e;安装与卸载 1&#xff0e;安装 本软件只有安装之后&#xff0c;才能运行。 安装方…

【Golang】排查 Build constraints exclude all the go files 的几个思路

输出该问题时说明在 Go 语言的启动编译&#xff08;Build&#xff09;阶段&#xff0c;出现了编译问题&#xff0c;往往是编译配置的问题。可以通过以下思路去排查对应的错误。 一、查看 go env &#x1f636;‍&#x1f32b;️ &#xff08;1&#xff09;首先可以查看被排除的…

【iOS开发】理解OC的类,父类,元类的关系

文章目录 前言1.1 类和对象的关系2.1 类的结构体2.2对象的结构体2.2.1元类2.2.2 涉及消息转发机制2.2.3 元类也有类2.3.4 对象和Class的 isa指针 前言 在OC中&#xff0c;有对象objc&#xff0c;有类Class&#xff0c;有父类SuperClass&#xff0c;其实还有一种元类MetaClass。…

嚯——ChatGPT是很强,但也会胡说八道。。。

现在的ChatGPT确实强&#xff0c;但是也会一本正经的胡说八道&#xff0c;例如它回答“nineteen”中有12个字母、或是旗鱼是哺乳动物…… 尽管ChatGPT可以生成流畅甚至优雅的散文&#xff0c;轻松通过困扰了AI领域超过70年的图灵测试基准&#xff0c;但它也可能看起来非常愚蠢…

【设计模式】| 修炼内功 | 23种设计模式——单例模式

设计模式如同织锦之艺术&#xff0c;精心构筑&#xff0c;展示优美。 学习设计模式&#xff0c;犹如追逐清晨的曙光&#xff0c;扉页掀开了人生的新篇章。当你学会设计模式的奥秘&#xff0c;就如同走进了灯火通明的城市&#xff0c;丰富多彩的建筑&#xff0c;让你大开眼界&am…

Postman安装及入门接口测试使用步骤

前言 在软件测试行业中&#xff0c;作为一款比jemter更便捷更好用的软件测试工具&#xff0c;postman以其便捷灵活性首当其冲&#xff0c;成为当今测试行业领域使用较广泛的主流系统软件接口测试工具。今天Darren洋为大家讲解postman这款软件测试工具的下载安装及入门接口测试步…