Linux学习笔记(2)

news2024/9/23 10:50:28

Linux学习笔记(2)

在这里插入图片描述

知识点:

1.打包、压缩——是什么、为什么、怎么做?

什么是打包、压缩?

打包:把文件合并。

压缩:通过一定算法减少体积。

为什么要进行打包、压缩?

打包:防止文件丢失。本质是把多个文件变成一个文件。

压缩:打包后的大文件体积很大,需要减少体积。可以节省本地存储空间;网络传送时可以有效减少传送的时间。

怎么打包、压缩?(打包和压缩不作明显区分,作为整体看。)

Linux有两套最常用的打包压缩的方式(打包压缩形成的压缩文件的种类非常多): zip/unzip tar

(详见指令部分)

2.体系结构指的是芯片结构。

(uname指令)

x86_64和x64等价。

新老内核的问题(常识)

企业里面不会用新内核。怕有bug。一般使用经过五六年检验的。维持系统稳定性。

3.Linux系统会记录历史命令

history可以看历史命令。(有一定条数)

4.云服务器永不关机,除非维护或不用了。

因为一直在工作。

关机的指令有:

shutdown

halt

reboot

如果要进行云服务器关机,shutdown可以跟选项:

-h :将系统的服务停掉后,立即关机。

-r :在系统的服务停掉后就重新启动。

-t sec :-t后面加秒数,也就是过几秒后关机。

在Windows中也可以用shutdown关机。

Linux没有开机指令。

5.shell命令及其运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。 而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。

[用户名@主机名 ~]# 这是命令行

~是当前所处的目录,#是提示符,分隔系统和自己的。普通用户的是$

ls -a -l这是命令

实际上命令行并不属于操作系统提供的功能,而是有一个外壳程序给我们打印的命令行。

我们输入的命令本质上是字符串,交给外壳程序,外壳程序把命令交给操作系统,让操作系统执行完把结果通过外壳程序返回给用户。

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)

主要包含:将使用者的命令翻译给核心(kernel)处理。

同时,将核心的处理结果翻译给使用者。

Linux中,命令行解释器统称为shell。

现在我们只是对shell进行感性的理解…

因为用户不擅长和操作系统内核直接打交道,所以必须存在外壳程序。

1.外壳程序方便用户操作;2.外壳程序可以保护内核。(指令明显不合法);3.外壳程序其实在系统层面是以进程形式呈现的。在新命令到来时往往是创建子进程然后让子进程去执行,如果挂了也不影响外壳程序。

bash

我们所采用的命令行解释器叫做bash,怎么理解shell和bash关系?shell是所有外壳程序的统称,Linux中具体的外壳程序的名字叫bash。

我们在Windows用的图形化界面其实也算是一种外壳程序;其实安卓系统内核也是Linux,而“安卓”是包裹在Linux外的shell,或者说图形化界面。

所以现在我们理解外壳程序,可以理解成,在Linux上是命令行、Windows上是命令行或图形化界面(centos、ubantu也有图形化界面,所有图形化界面都可以理解成外壳)。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符或者运行起来一个应用程序)。

shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

6.Linux权限的概念

1.Linux中的用户

Linux中用户分为两类。root用户(超级管理员)和普通用户。(Linux是多用户系统)

我们平时可能会遇到“以管理员身份运行”,Windows其实也是有管理员和普通用户的。

root用户的特点是权限很高,普通用户权限低,本质上受管控。比如有些东西删不掉。

俩用户可以身份切换。

怎么变成超级用户?

安装命令的本质就是把命令拷贝到/user/bin/

cp myprocess /usr/bin/

普通用户是不能拷贝的。

/user/bin/属于系统目录,不允许普通用户修改。

可以把自己变成超级用户:su

就会显式出Password:

这里要输入 root的密码

还有一种变成超级用户的办法:su -

也会显式出Password:

区别在于su不会让root重新登录,只是身份的切换。不影响当前所处目录。

su -其实是让root重新登录了。所以当前所处的路径会发生变化。

超级用户怎么变成普通用户?

(我们可以先新建一个普通用户)

adduser naruto

passwd naruto

然后设置密码

ls /home 我们就可以看到新建出来的普通用户

su 用户名

如su naruto

马上就可以变成这个普通用户,不需要输密码


指令:

grep

叫做行文本过滤工具

上一篇学习笔记中提到了日志的概念,有时我们只想看错误日志,我们可以这样过滤:cat /var/log/messages | grep “err”

再比如我们现在以"Removed"为关键词搜索:cat /var/log/messages | grep “Removed”

还可以cat /var/log/messages | grep “Removed” | tail 查看最近的

这个过程是先把信息打出来然后交给grep然后再交给tail(上一篇笔记提过的“管道”的作用)

所以我们可以用来定期查看日志中的错误信息等

其实,grep本身就可以读取日志文件。

也就是说可以写成:grep “Removed” /var/log/messages | tail

第二种应用场景

以后可能我们想在系统里筛选出指定的进程:

ps ajx 我们就可以查到系统中所有启动的进程。

ps ajx | grep "myprocess"就可以去查myprocess这个进程

第三种应用场景

在一个文本中查找我们想要的行。

(*是通配符,表示我们匹配当前目录下的所有文件)

grep “int main” *

grep -n “int main” *带上-n选项,可以找到它在第几行。

  1. 选项

脚本:cnt=0; while [ $cnt -le 100 ]; do echo "hello $cnt"; let cnt++; done > log.txt

我们将其重定向到log.txt中。

现在我们有了从0到100,101行的大文件log.txt

grep “9” log.txt

我们可以把包含9这个关键字的所有文本行全部找出来

-n选项

grep -n “9” log.txt我们可以把其在原始文件中的行数也显示出来:

-v选项

grep -v “9” log.txt

所以-v代表的是reverse,意思是匹配成功的不要,而保留没有与关键字匹配的。

-i选项

grep “hello” log.txt对于"Hello"这样的,匹配会不成功。

而grep -i “hello” log.txt,则会忽略大小写。i即ignore。

(可以组合)-vi则是忽略大小写,匹配到的全不要。

zip/unzip

zip --version 我们可以先看看zip命令有没有装

yum install -y zip unzip 就可以安装zip命令

现在假设我们刚才脚本重定向的log.txt在目录momo里,我们在momo里再创建一个目录:mkdir target

然后cp log.txt target/ 将log.txt拷贝到目录target里。

tree . 我们可以查看当前的结构:

假如我们现在想把momo整个打包压缩(打包单个文件和打包目录及其子目录子文件的做法一样)

zip momo.zip momo

然后看到:

ll之后看到:

确实形成了一个momo的压缩包,可以通过前缀-,看出是个普通文件

mkdir other

然后mv momo.zip other/ 我们把这个压缩包交给其他目录(模拟把压缩包给其他人)

然后我们可以把这个压缩包解压:

cd other

unzip momo.zip

ls进行查看:

然后我们tree一下momo看看是否解压成功:

可以发现我们打包了空目录。

这是因为我们没有携带选项-r

正确做法应该是这样:

zip -r momo.zip momo

mv momo.zip other/

cd other

unzip momo.zip

tree momo

可以看到,现在就成功打包压缩并解压了。

cat momo/log.txt

可以看到也成功得到了。

我们还可以不解压到当前目录下,而是解压到指定目录下:

unzip momo.zip -d /root

总结:zip -r dst.zip src和unzip XXX.zip(unzip XXX.zip -d 指定目录)

rz/sz

Linux和Windows压缩包互传
Linux传送压缩包到Windows

现在我们在other里,我们有momo.zip,我们现在想把它传到自己的Windows当中。

我们用到sz和rz,z代表zip,s代表send,r代表receive。

同样需要先安装这俩命令:yum install -y lrzsz(centos版本)

然后sz momo.zip

然后就会自动弹窗。(这里选择桌面)

然后我们的桌面上就多出了这个压缩包:

Windows传送压缩包到Linux

假设我们现在Windows上有一个nono.zip,我们想传到Linux上:

在Linux上输入rz然后回车就会弹出窗口,我们可以在窗口里选择要传到Linux的压缩包。

对于Xshell,还支持直接从Windows上拖拽到终端,直接传到Linux。

tar

tar 选项 XXX.tgz srcdir

tar的选项比较多

tar czf momo.tgz momo 是压缩

c代表创建一个打包文件,z是把这个打包文件压缩,f后面紧跟要创建的压缩包名称。

可以看到tar命令不用-r递归,默认就是全部打包

tar xzf momo.tgz 是解压

x代表解包

总结

tar czf XXX.tgz src

tar xzf XXX.tgz

-v

如果想看到解包的过程,可以带v选项:

tar xvzf XXX.tgz:

压缩的过程也可以带v选项进行详细查看:tar cvzf momo.tgz momo

-C

如果想解压到指定目录下,可以:tar xzf XXX.tgz -C /root

scp

Linux传送Linux

这个命令叫做远程拷贝

scp dst.tgz 用户名@你的公网IP(或者能访问的私有IP):目标机器指定的路径

比如scp momo.tgz root@123.45.678:/root/code (该IP为虚构)

bc

在我们输完bc并回车后就是这样:

可以去计算。

可以这样去使用:

echo “1+2+3+4+5+6+7” | bc

结果:28

这是一个低频指令。

uname

怎么在Linux环境查看你的体系结构和系统内核版本?

体系结构:CPU是什么架构的。

uname -a

可以查看系统中常见的所有东西,比如系统类别,主机名,内核版本,体系结构

uname -r

看的信息更少,如:

3.10.0-1160.119.1.el7.x86_64


Linux中重要的几个热键

1.ctrl+c——终止异常任务

有时候误写:ls \

不知道怎么退出(这其实是续行)

ctrl+c,终止前台的任务

2.上下键——查看历史命令

3.Tab键——命令补全

有时忘了指令怎么拼,可以输了wh然后快速按两下Tab键,就会把wh开头的指令都显示出来:

如果什么都没输,直接按两下Tab:

如果我们输入了whoam,再按一下Tab,就会补全为whoami

4.ctrl+r——搜索历史命令

输入ctrl+r会得到:

如果之前我们写过一个while循环的脚本,我们可以输个一个片段比如while,就可以找到历史命令。

5.ctrl+d——退出当前用户

身份切换可以用。

本文结束,敬请期待后文。

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

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

相关文章

花园管理系统

基于springbootvue实现的花园管理系统 (源码L文ppt)4-074 4功能结构 为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该“花开富贵”花园管理系统的功能结构图如下所示: 图4-1 系统总体结…

【LLM论文日更】| 俄罗斯套娃嵌入模型

论文:https://proceedings.neurips.cc/paper_files/paper/2022/file/c32319f4868da7613d78af9993100e42-Paper-Conference.pdf代码:GitHub - RAIVNLab/MRL: Code repository for the paper - "Matryoshka Representation Learning"机构&#x…

vue3ScrollSeamless滚动如何给子元素添加点击事件:事件委托

页面布局如上截图 下面是方法 function parentClick(e) {if (e.target.tagName A) {router.push({path: /noticeDetails,query: {id: e.target.dataset.eid}});} }使用的时候,可以打印一下方法里面的e,加深理解

Microsoft Edge 五个好用的插件

🐣个人主页 可惜已不在 🐤这篇在这个专栏 插件_可惜已不在的博客-CSDN博客 🐥有用的话就留下一个三连吧😼 目录 Microsoft Edge 一.安装游览器 ​编辑 二.找到插件商店 1.打开游览器后,点击右上角的设置&#…

【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(下)

系列文章目录 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(上) 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(下) 文章目录 系列文章目录前言一、装饰器语法6.Builder语法:(1&…

室内北斗定位系统常用的几种定位方式

随着科技的不断进步,室内定位技术日益成熟,为人们的日常生活和工作带来了极大的便利。特别是在室内环境中,北斗卫星定位系统通过一系列创新技术,实现了高精度、高可靠的定位服务。接下来就由深圳沧穹科技给大家具体介绍室内北斗定…

OpenCL 学习(2)---- OpenCL Platform 和 Device

目录 OpenCL PlatformOpenCL Device参考代码 OpenCL Platform opencl 支持的 Platform 可以使用 clGetPlatformIDs 函数查询,函数原型如下: clGetPlatformIDs(cl_uint /* num_entries */,cl_platform_id * /* platforms */,cl_uint * …

解锁亚马逊测评自养号防关联新技术

解锁亚马逊测评自养号防关联的新技术主要包括以下几个方面,这些技术旨在提高测评过程的安全性,降低账号被关联的风险: 1. 独立纯净IP技术 独立纯净IP:采用独立、纯净且未受污染的国外IP地址,确保这些IP未被标记或列入…

CSS clip-path 属性的使用

今天记录一个css属性clip-path,首先介绍下这个属性。 clip-path 是CSS中的一个神奇属性,它能够让你像魔术师一样,对网页元素施展“裁剪魔法”——只展示元素的一部分,隐藏其余部分。想象一下,不用依赖图片编辑软件&am…

JavaWeb--纯小白笔记04:Tomcat整合IDEA

IDEA整合Tomcat 1.点击Idea的导航栏里的Run,选择Edit Configurations 2.点击左上角的"",向下翻找到Tomcat Server 选择里面的Local 3.创建一个web工程,点击IDEA的File-->new-->project 然后选择Java Enterprise,…

【网络安全】网络基础第一阶段——第一节:网络协议基础---- OSI与TCP/IP协议

从今天起,我们正式进入第二部分——网络基础。继续学习网络基础、网络协议等相关内容🌟🌟🌟 目录 一、OSI模型 1.1 分层思想 1.2 OSI参考模型 1.3 数据封装与解封装 1.3.1 数据的封装过程 1.3.2 数据的解封装过程 二、TCP/…

实现信创Linux桌面录制成MP4(源码,银河麒麟、统信UOS)

信创国产化已是大势所趋,在国产操作系统上的应用开发的需求越来越多,比如,有客户需要在银河麒麟和统信UOS上实现录制桌面生成一个mp4文件。那么这个要如何实现了? 一. 技术方案 要完成这些功能,具体来说,…

初写MySQL四张表:(4/4)

进度条很喜人,你是否已经修炼到这一步了呢? 初写MySQL四张表:(1/4)-CSDN博客 初写MySQL四张表:(2/4)_数据库表样例-CSDN博客 初写MySQL四张表:(3/4)-CSDN博客 若现在你已经有了前面的基础,那就正式开始吧。 四张表: 这次在实现…

JavaScript 基础 - 第20天_Node.js入门

文章目录 Day01_Node.js入门提前安装软件目录学习目标01.什么是 Node.js目标讲解小结 02.fs模块-读写文件目标讲解小结 03.path模块-路径处理目标讲解小结 04.案例-压缩前端html目标讲解小结 05.案例-压缩前端JS目标讲解小结 06.认识URL中的端口号目标讲解小结 07.http模块-创建…

花生壳、神卓互联等主流内网穿透技术分享

目录 贝锐花生壳 PHTunnel技术 神卓互联WanGooe Tunnel 技术 贝锐花生壳 PHTunnel技术 贝锐花生壳内网穿透服务商,(使用技术:底层采用自研 PHTunnel技术)除了具备无需公网IP,无需搭建专线、3步创建映射等优势,还拥有可靠、稳定的…

JAVA开源项目 图书馆管理系统 计算机毕业设计

本文项目编号 T 044 ,文末自助获取源码 \color{red}{T044,文末自助获取源码} T044,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计 六、核…

Go 语言框架接入阿里云的报警通知与日志实时追踪与监控

在现代应用开发中,实时监控和报警是确保系统稳定性和高可用性的重要组成部分。 本文将介绍如何使用 Go 语言框架接入阿里云的报警通知与日志追踪。 ## 1. 环境准备 ### 1.1 安装 Go 确保你的开发环境中已经安装了 Go 语言。可以从 [Go 官网](https://golang.org/d…

使用 Docker 部署 RStudio 的终极教程

一.介绍 在现代数据科学和统计分析领域,RStudio 是一个广受欢迎的集成开发环境(IDE),为用户提供了强大的工具来编写、调试和可视化 R 代码。然而,传统的 RStudio 安装可能面临环境配置复杂、版本兼容性等问题。Docker…

SpringCloud Alibaba之Seata处理分布式事务

(学习笔记,必用必考) 问题:Transactional 的9种失效场景? 1、介绍 1.1、简介 官网地址:Apache Seata 源码地址:Releases apache/incubator-seata GitHub Seata是一款开源的分布式事务解决…

Redis面试真题总结(四)

文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ AOF 持久化? AOF(Append Only File&#x…