Linux——基础指令2 + 权限

目录

1.zip/unzip

2.tar

3.bc

4.uname –r 

5.重要的几个热键 

6.扩展命令

7.shell命令以及运行原理 

8.Linux权限的理解

关于权限的三个问题:

1.目录权限

2.缺省权限

3.粘滞位


1.zip/unzip

打包、压缩:使用特定的算法,文件进行合并或者压缩,减少体积。

打包/压缩作为一个整体。

原因:1)文件体积减少,节省资源、磁盘空间,减少网络传输成本

           2)多个文件转一个文件,可以提高文件传输的容错性

语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式
常用选项:
-r 递 归处理,将指定目录下的所有文件和子目录一并处理


举例:

可以得到结果如下:

 

再进行解压操作如下:

 

unzip XX.zip -d 路径   //解压到指定路径中

 那么怎样实现Linux 和 Windows 之间文件的互相传递呢?

1)将Linux中的文件传到Windows中

此时在桌面上(或者你所选择的位置上)就可以看见test.zip文件 

 

其中打开之后就可以看见你在文件中所填的内容

2)将Windows中的文件传到Linux中

可以直接进行拖拽,也可以用 rz 的命令。

2.tar

打包/解包,不打开它,直接看内容

-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录 

这里我们举例压缩和解压的方法——

1)压缩

tar -czf dst.tgz src

 例如:

2)解压

tar -xzf XXX.tgz

例如:

 

若要展现压缩过程或者是解包压缩过程,只需要在选项中添加 v 即可,例如:

tar -cvzf test.tgz test
 tar -xvzf test.tgz

 若要解压缩到指定路径——

tar -xzvf XXX.tgz -C 指定路径

 在上述,我们知道了Linux和Windows之间文件的互传,那么Linux 和 Linux之间该怎样互传呢?

用 scp 指令(这里由于条件的限制,暂时省略)

3.bc

bc命令可以很方便的进行浮点运算

 例如:

4.uname –r 

语法:uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。 

常用选项:
-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

 

5.重要的几个热键 

tab键进行命令或者路径的补齐

ctrl + c 终止当前的程序

上/下键可以翻阅历史的命令

ctrl + r 搜索历史命令 

通过上述的内容,我们可以知道,Linux 系统会记录历史命令

 

6.扩展命令

◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。

7.shell命令以及运行原理 

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
将使用者的命令翻译给核心(kernel)处理。
同时,将核心的处理结果翻译给使用者。 

shell通常会进行创建子进程的方式进行命令行解析(进行命令行解析,同时保护内核) 

 

然而,在Linux中通常是bash ,那么bash 和Linux之间有什么联系呢?

bash是shell的一个称呼,所有的都可以成为shell(可以理解bash是shell中的一个) 

---这里是一个相对浅显的概念,在之后的学习中,我们将会进行深入的理解---

8.Linux权限的理解

权限:权限首先是限制特定身份角色的,目标事物的属性也会影响权限,所以,权限 = 角色 + 事物属性。

Linux下有两种用户:超级用户(root)、普通用户

超级用户:可以再linux系统下做任何事情,不受权限的约束
普通用户:在linux下做有限的事情,受到权限的约束
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

 当处于普通用户的时候,我们执行命令 ‘ su ’后,输入密码就可以转换到root中。再回退到普通账号,只需要输入 ctrl + d 或者 exit 就可以回到普通用户。

例如:

或者也可以使用“ su - ”命令,此时家目录也会发生变化。 

在普通用户时使用“ su ”也可以转换成其他的用户,不过要知道该用户下的登录密码,但是,在超级用户上时,不用输入密码。

在Linux安装软件时,一般是在root身份下安装的,所以,此时在普通用户的账号下时需要进行指令提权。

其中,文件类型如下:

d   目录

-    普通文件

c   字符设备文件

b   块设备文件

p   管道文件

l    链接文件 

其中,字符设备文件最常见的就是显示器和键盘。

块设备文件最常见的就是磁盘。

---管道文件和链接文件在后续的学习中会讲到--- 

Linux中角色可以分为三类:

1)文件拥有者

2)文件所属组

3)other 

 

其中,r 表示读,w 表示写,x 表示可执行。(当有时表示可以,否则不可以)

也可以改变拥有者/所属组/other的权限,例如:

chmod u-r test.txt   //拥有者
chmod g-r test.txt   //所属组
chmod o-r test.txt   //other
chmod u-r,g-rw,o-w test.txt
chmod u+rw,g+r,o+w test.txt
chmod a+r test.txt   //修改所有具有读的权限

需要注意的是:

1)要修改权限,必须为拥有者,或者是超级用户。

2)并不是有权限就可以执行,Linux下能够执行的条件是:

     真的是一个可执行文件 + 可执行权限。

3)在user,group,other 和我自己之间进行身份对比的时候,是依次只对比一次。

其中,命令中的760,777 是用八进制来进行转换

 

 修改角色——>可以使用以下的命令:

chown (user name) test.txt
sudo chown (user name) test.txt//强制更改

改变时,需要有root 权限或者是提权。

修改所属组——>

sudo chgrp (user name) (文件名)

对于一个文件,没有 r 权限,那么用任何工具都不行。(权限限制的是用户/操作者)

关于权限的三个问题:

1.目录权限

r 对于目录的意义:是否有权查看指定目录下的文件信息

w对于目录的意义:是否有权在指定目录内部新建、删除、修改文件名等修改文件的操作。

x 对于目录的意义:是否具有进入目录的权限 

2.缺省权限

 

1)根据图片可以看出,文件的起始权限是固定的 

2)umask 权限掩码

     

     修改权限掩码,达到修改Linux文件缺省权限的问题!

3)最终权限(缺省权限)

      结论:最终权限(默认)= 起始权限 & (~umask)

      umask可以进行改变

      umask设置的目的是为了增加灵活性

这里有个图片来进行解释——

3.粘滞位

1)Linux多用户下,对于文件的访问,是隔离的。

2)需求:我们想让Linux下不同的账号共享文件,则该文件不能再任何一个普通账号的家目录里。

3)存在的问题:

      1. 在共享目录下,可以执行文件的删除操作。(因为存在 w 权限)

      2.粘滞位:任何用户,在设置了粘滞位的目录下,自己只能删除自己的文件,其他人无法删               除。

      3.粘滞位只用给目录设置,不需要给普通用户设置。 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pgsql和mysql的自增主键差异

1. 当有历史数据存在时, mysql的自增主键是默认从最大值自增。 pgsql的自增主键取初始值开始逐个尝试,所以存在可能与历史数据的主键重复的情况。 pgsql解决上述问题的方式:重设自增值。 SELECT SETVAL(t_db_filed_id_seq, (SELECT MAX(&q…

【Linux】基础IO及文件描述符相关内容详细梳理

0. C语言文件I/O 在C语言中,我们学习了相关函数来读写文件,例如:fopen,fwrite,fread,fprintf等, 在C语言中文件的打开方式: r Open text file for reading. …

大语言模型在序列推荐中的应用

一、简介 序列推荐技术通过分析用户的过往交互历史,能够有效挖掘出用户可能感兴趣的项目,对于提升各类应用的服务质量具有重要作用。近期,大语言模型(LLMs)的发展在应对复杂的推荐问题上展现出了显著的优势。不过&…

JavaScript——函数、事件与BOM对象

一、系统函数(JS中预置的函数) JS的预置函数在遇到非数字字符时会停止解析 parseInt 转整型 parseFloat 转浮点型 isNaN !isNaN("10") 检测是否纯数字 eval 把字符串转成算式并计算 1.parseInt(string, radix); 语法: string&#x…

Python酷库之旅-第三方库Pandas(208)

目录 一、用法精讲 971、pandas.MultiIndex.set_levels方法 971-1、语法 971-2、参数 971-3、功能 971-4、返回值 971-5、说明 971-6、用法 971-6-1、数据准备 971-6-2、代码示例 971-6-3、结果输出 972、pandas.MultiIndex.from_arrays类方法 972-1、语法 972-2…

相亲小程序(源码+文档+部署+讲解)

最近我在挖掘一些优秀的开源项目时,无意间发现了一个相当给力的系统——相亲小程序管理系统。这个系统不仅功能实用,而且代码结构清晰,易于二次开发。作为一名技术爱好者,我觉得有必要把这个好东西推荐给我的读者们。接下来&#…

spring cloud 入门笔记1(RestTemplate,Consul)

最大感受: spring cloud无非是将spring boot中的各个工作模块拆分成独立的小spring boot,各个模块之间,不再是通过导包什么的,调用而是通过网路进行各个模块之间的调用 工具一:RestTemplate 在Java代码中发送HTTP请…

高性能分布式缓存Redis-高可用部署

一、主从架构搭建 为什么要进行主从架构搭建,一台redis不行吗? ①、持久化后的数据只在一台机器上,因此当硬件发生故障时,比如主板或CPU坏了,这时候无法重启服务器,有什么办法可以保证服务器发生故障时数…

新的恶意软件活动通过游戏应用程序瞄准 Windows 用户

一种新的恶意软件 Winos4.0 被积极用于网络攻击活动。FortiGuard实验室发现,这种先进的恶意框架是从臭名昭著的 Gh0strat 演变而来的,配备了模块化组件,可在受感染的设备上进行一系列恶意活动。 这些攻击已在游戏相关应用程序中发现&#xf…

Python教程笔记(1)

Python教程笔记 3.1.1 数字3.1.2 文本3.1.3 列表4.2 for语句4.3 range()函数4.7 match语句4.8 定义函数4.9.1 默认值参数4.9.3 特殊参数4.9.5. 解包实参列表 对官方教程中自我感觉生疏的知识点做个记录,以便后面回顾。 3.1.1 数字 除法运算 (/) 总是返回浮点数。 如…

C++笔记---异常

1. 异常的概念 1.1 异常和错误 异常通常是指在程序运行中动态出现的非正常情况,这些情况往往是可以预见并可以在不停止程序的情况下动态地进行处理的。 错误通常是指那些会导致程序终止的,无法动态处理的非正常情况。例如,越界访问、栈溢出…

【RabbitMQ】08-延迟消息

1. 延迟消息 2. 死信交换机 正常队列不需要接受消息。 Configuration public class NormalQueueConfig {Beanpublic DirectExchange normalExchange() {return new DirectExchange("normal.direct");}Beanpublic Queue normalQueue() {return QueueBuilder.durable(…

软件测试——认识测试

在本篇文章中,我会给大家说明一下几个问题: 什么是测试软件测试和开发的区别优秀的测试人员需要具备的素质 通过这几个问题,带大家了解测试这个岗位。 1. 什么是测试? 在我们的日常生活中就有很多测试的例子,比如我…

LLMs之PDF:zeroX(一款PDF到Markdown 的视觉模型转换工具)的简介、安装和使用方法、案例应用之详细攻略

LLMs之PDF:zeroX(一款PDF到Markdown 的视觉模型转换工具)的简介、安装和使用方法、案例应用之详细攻略 目录 zeroX的简介 1、支持的文件类型 zeroX的安装和使用方法 T1、Node.js 版本: 安装 使用方法 使用文件 URL: 使用本地路径&…

5G 现网信令参数学习(3) - RrcSetup(1)

目录 1. rlc-BearerToAddModList 1.1 rlc-Config 1.1.1 ul-AM-RLC 1.1.2 dl-AM-RLC 1.2 mac-LogicalChannelConfig 2. mac-CellGroupConfig 2.1 schedulingRequestConfig 2.2 bsr-Config 2.3 tag-Config 2.4 phr-Config 2.5 skipUplinkTxDynamic 3. physicalCellG…

力扣 LeetCode 27. 移除元素(Day1:数组)

解题思路: 注意:数组只能覆盖,不能删除 erase方法的复杂度为O( n )而不是O( 1 ),因为需要把删除后后面的数组向前移动 方法一:双层for循环暴力 方法二:快慢指针 fast表示新数组的元素 slow表示新数组元…

Redis - String 字符串

一、基本认识 字符串类型是Redis最基础的数据类型,关于字符串需要特别注意: Redis中所有的键的 类型都是字符串类型,⽽且其他⼏种数据结构也都是在字符串类似基础上构建的,例如列表和集合的 元素类型是字符串类型,所…

树-好难-疑难_GPT

// // Created by 徐昌真 on 2024/11/10. // #include <iostream> using namespace std;template<typename T> struct ListNode{ //新建链表节点T data; //指向下一个子节点 ListNode< TreeNode<T>* > childHead; 这里的 T 是TreeNde类型的…

Mysql数据类型面试题15连问

整数类型的 UNSIGNED 属性有什么用&#xff1f; MySQL 中的整数类型可以使用可选的 UNSIGNED 属性来表示不允许负值的无符号整数。使用 UNSIGNED 属性可以将正整数的上限提高一倍&#xff0c;因为它不需要存储负数值。 例如&#xff0c; TINYINT UNSIGNED 类型的取值范围是 0 ~…

【go从零单排】Mutexes互斥锁

&#x1f308;Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 &#x1f4d7;概念 在 Go 语言中&#xff0c;互斥锁&#xff08;Mutex&#xff09;是一种用于保护共…