Linux从安装到实战 常用命令 Bash常用功能 用户和组管理

 

1.0初识Linux

1.1虚拟机介绍

1.2VMware Workstation虚拟化软件

下载CentOS;

1.3远程链接Linux系统 &FinalShell

链接finalshell半天没连接进去

他说ip adress 看IP地址是在虚拟机上

win11主机是 终端输入: ifconfig

VMware虚拟机的设置 & ssh连接_sngee的博客-CSDN博客_vmware ssh连接

瑞吉外卖:P122 等开学学这个的时候再看吧//不爱看了 直接看老师PPT把

1.4拓展WSL(Ubuntu)环境

编辑Win11>可选功能>更多Windows tmd! Ubuntu一直各种报错

1.5虚拟机快照(关机之后制作快照 效率高)

Ctrl+l 清屏快捷键;

学校内容:Shell命令概述

shell作用及常见种类

2.1-Linux目录结构

2.2-Linux命令基础

2.3-ls命令入门

2.4-ls命令的参数和选项 [-a -l -h]

蓝色,第一列开头d 表示文件夹; 白色,第一列开头-表示单个文件

Linux 基础-文件属性与权限_linux查看文件属性_嵌入式视觉的博客-CSDN博客

ls -al查看文件属性与权限

2.5-cd(切换目录)-pwd(查看当前目录)命令

2.6-相对/绝对路径&特殊路径符

2.7-mkdir&du命令

2.8-touch(创)-file-cat&more(查)

cat命令本来用于连接多个文件的内容,但在实际使用中更多的用于查看文件内容

当文件内容较多时,使用cat命令往往只能看到文件的最后一部分内容,而无法分页逐屏显示,

more命令结合管道操作使用时(例如:ls -R /etc | more)无法向上翻页,但less命令可以

在分页阅读界面中,到文件末尾时more命令会自动退出,less命令不会

more和less都可以用于分页查看文本内容,具体使用哪一个看用户习惯

2.9-cp-mv-rm-通配符

2.10-grep-wc-管道符|

wc test.txt ; 默认就是全读相当于”-lwc“,会同时统计行数、单词数、字节数(含空格、回车符号)

2(行数l) 11(单词数,根据空格判断w) 59(当前文件字节数目c) test.txt(文件路径) ;

2.11-which-find搜索

“echo $PATH”可以查看PATH变量指定的内容

按名称查找:关键字为“-name”,根据目标文件的部分名称查找,允许使用“*”及“?”通配符。

按文件大小查找:关键字为“-size”,根据目标文件的大小进行查找,一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件。常用的容量单位包括k(注意是小写)、M、G。

文件属主查找:关键字为“-user”,根据文件是否属于目标用户进行查找。

文件类型查找:关键字为“-type”,根据文件的类型进行查找,这里的类型指的是普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等。块设备指的是成块读取数据的设备(如硬盘、内存等),而字符设备指的是按单个字符读取数据的设备(如键盘、鼠标等)

2.12-echo(输出)-反引号'-

-重定向符>-head(头)tail(尾)

tail命令结合“-f”选项使用时,可以用于跟踪日志文件末尾的内容变化,实时显示更新的日志内容

2.13-vi编辑器

1)命令模式:启动vi编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作

2)输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改、或者添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“-- INSERT --”的状态提示信息

3)末行模式:该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号“:”提示符

ln建立连接-命令帮助

符号链接文件的作用相当于Windows系统中的“快捷方式”

对比讲解获得命令帮助的四个方法,使学员能够有效的获得命令的用法信息,为提高自学能力打下基础

man命令不仅能够查看命令帮助,还能够查看配置文件帮助,例如“man resolv.conf”

本页重点演示help、man的用法

Bash-3.1 中l默认包括56条内部指令:

bash, :, ., [, alias, bg, bind, break, builtin, cd, command, compgen,

complete, continue, declare, dirs, disown, echo, enable, eval, exec,

exit, export, fc, fg, getopts, hash, help, history, jobs, kill, let,

local, logout, popd, printf, pushd, pwd, read, readonly, return, set,

shift, shopt, source, suspend, test, times, trap, type, typeset,

ulimit, umask, unalias, unset, wait

Help cd ----bash内部命令

Ls –help

Man ls man cd

Info ls

gzip&bzip2-tar

对比讲解gzip和bzip2命令的用法,注意说明生成文件的后缀名称

gzip和bzip2命令使用的压缩算法有一定区别,但命令使用格式基本类似,通常认为bzip2的压缩效率要更好一些

这两个命令工具通常并不单独使用,而是与tar命令结合起来使用

tar命令详解

制作归档文件的意思是将许多零散的文件做成一个包(可以压缩,也可以不压缩)

小写字母“-p”选项用于保持原始文件权限等信息,大写字母“-P”选项用于保持原始文件的绝对路径,参考“man tar”帮助

使用tar命令时,选项前的“-”号引导字符可以省略

在实际的备份工作中,通常在归档的同时也会将包文件进行压缩(见下页),以便节省磁盘空间,

less命令是对文件或其它输出进行分页显示的工具

Bash常用功能

命令历史

正确使用历史命令可以有效提高命令行输入的效率,例如:如果之前不久执行过“service network restart”命令,则重新修改了网卡的配置文件以后,通常只需要执行“!ser”操作即可调用该历史命令,以重启network服务

合理控制历史命令的条数可以提高安全性,root用户的命令历史一般建议设置为少于100条

命令别名

手动使用alias命令设置的别名只在当前Shell环境中有效

若需每次登录Shell环境时设置的别名都有效,需要修改宿主目录中的“.bashrc”文件,添加相应别名设置

正则表达式

创建grep命令

管道和重定向

Bash的标准输入输出

Linux系统是使用文件来描述系统的硬件、设备等资源的(例如已经学习过的硬盘、分区、光盘等)

充分了解输入输出设备可以更好的理解Shell的运行,为学习重定向操作、灵活编写系统管理脚本作好铺垫

/dev/stdin、/dev/stdout、/dev/stderr 这三个文件实际上也是一个符号链接,为了便于学员理解,这里无需讲解实际位置

Bash的重定向操作

在实际的Linux操作过程中,也可以变更输入输出内容的方向,而并不使用默认的标准输入输出设备(键盘和显示器),这种操作称为“重定向”

输出重定向实例

Bash的管道操作

awk命令用于以空格或制表位作为分隔,输出指定区域的字段数据,例如 ‘{print $2,$4}’ 表示只输出第2、4个字段的数据内容

关于awk命令的其他帮助信息,请自行参阅man手册页

阶段练习

1. 列出 /usr/share/doc 中以数字4结尾的文件.

2. 打印 /etc/hosts 中包含数字的所有行

3. 打印 /etc/hosts 中包含 127.0.0.1 的行

4. 打印 /etc/passwd 中冒号之间是三位数的行

ls /usr/share/doc I grep ‘4$’

grep ‘[0-9]’ /etc/hosts

grep ‘127\.0\.0\.1’ /etc/hosts

grep ‘:[0-9][0-9][0-9]:’ /etc/passwd

3.0第五章 用户和组管理

root用户的UID的固定值为0、root组帐号的GID号为固定值0

1~499的UID、GID默认保留给程序用户使用,普通用户/组使用的UID、GID号在500~60000之间

3.0.1用户账号文件-passwd-shadow

基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改

在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐患

后来经改进后,将密码转存入专门的shadow文件中(见下页)并严格控制权限,而passwd文件中仅保留密码占位符“x”

默认只有root用户能够读取文件中的内容,并且不允许root直接编辑该文件中的内容

上次修改密码的时间,表示从1970年01月01日(可理解为Unix系统的诞生日)算起到最近一次修改密码时间隔的天数

useradd-用户初始配置文件

设置/更改用户口令-passwd

“未设置密码”的用户帐号尚未完成初始化,处于不可登录状态,这与“空密码”的情况(已经为用户设置密码,但密码字串为空)是不同的

—— “未设置密码”的用户将被禁止登录系统,而拥有“空密码”的用户是可以在本地终端登录的

普通用户也可以使用passwd命令,但只能更改自己的密码,密码要求有一定的复杂性(如不要直接使用英文单词,长度保持在6位以上),否则系统可能拒绝进行设置

usermod修改-userdel删除用户账号

chage改变用户密码期限

Chage –d 0 用户账号名 ----过期密码(下次登陆前必须更改密码)----等同于命令:passwd –e

Chage -l 用户账号名 -----查看该用户的密码信息

Chage –E 0马上过去,-1 永不过期

3.0.2组帐号文件 -group、gshadow

组帐号相关的配置文件也有2个,分别是/etc/group、/etc/gshadow

/etc/gshadow文件的应用极少,仅作简单介绍即可

group文件内的最后一个字段中列出属于该组的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号“,”分隔

amp 群组是添加 lamp 用户时默认创建的群组,在 root 管理员使用 useradd 命令创建新用户时,若未明确指定该命令所属的初始组,useradd 命令会默认创建一个同用户名相同的群组,作为该用户的初始组。正因为 lamp 群组是 lamp 用户的初始组,该用户一登陆就会自动获取相应权限,因此不需要在 /etc/group 的第 4 个字段额外标注。但是,附加组就不一样了,从例子中可以看到,我们将 lamp 用户加入 users 群组中,由于 users 这个群组并不是 lamp 的初始组,因此必须要在 /etc/group 这个文件中找到 users 那一行,将 lamp 这个用户加入第 4 段中(群组包含的所有用户),这样 lamp 用户才算是真正加入到 users 这个群组中。在这个例子中,因为 lamp 用户同时属于 lamp 和users 两个群组,所在,在读取\写入\运行文件时,只要是 user 和 lamp 群组拥有的功能,lamp 用户都拥有。一个用户可以所属多个附加组,但只能有一个初始组。那么,如何知道某用户所属哪些群组呢?使用 groups 命令即可。例如,我们现在以 lamp 用户的身份登录系统,通过执行如下命令即可知晓当前用户所属的全部群组:[root@localhost ~]# groupslamp users

通过以上输出信息可以得知,lamp 用户同时属于 lamp 群组和 users 群组,而且,第一个出现的为用户的初始组,后面的都是附加组,所以 lamp 用户的初始组为 lamp 群组,附加组为 users 群组。

添加组帐号

添加、删除组成员

使用“-M”选项时可以为指定组帐号定义成员列表(注意:会覆盖原有组成员),需要添加多个用户到指定的组中时非常方便

3.1-root用户-su-sudo

切换root用户:

su - root

123456

退回普通用户: exit或Ctrl+d

sql链接Linux

sudo命令

可以让一条普通命令带有root权限,语法:

需要以root用户执行visudo命令,增加配置方可让普通用户有sudo命令的执行权限

3.2-用户和用户组

用户管理

getent-查看有哪些用户

3.3-查看权限控制信息

认知权限信息

rwx

案例

3.4-chmod命令

权限的数字序号

3.5-chown命令设置文件/目录的归属

需要设置文件或者目录的归属时,可以通过chown、chgrp命令进行

chown命令既可以修改属主,也可以修改属组,而chgrp命令只用于修改属组信息(因此并不常用

!粘滞位SBIT

粘滞位主要是为公共目录(例如权限为777的)设置,作用是用户不能删除该目录中其他用户的文件(root用户除外)。sticky只对目录有效

SUID-SGID

如果现在需要在一个部门内设置共享目录,让部门内的所有人员都能够读取目录中的内容,那么就可以创建部门共享目录后,在该目录上设置SGID特殊权限位。这样,部门内的任何人员在里面创建的任何文件都会归属于该目录的所属组,而不再是自己的基本用户组。

ACL

也就是说,如果你有一个目录,需要给一堆人使用,每个人或每个群组所需要的权限并不相同时,在过去,传统的Linux三种身份的三种权限是无法达到的,因为基本上,传统的Linux权限只能针对一个用户、一个群组及非此群组的其他人设定权限而己,无法针对单一用户或个人来设计权限。而ACL的出现就是为了解决这个问题,实现更加细化的账户文件权限控制。

SUID:当设置了SUID 位的文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。chmod u+s 文件

SGID:与上面的内容类似。用于设置目录. 一个目录被标上setgid位,此目录下创建的文件继承该目录的组属性.文件运行时运行者将具有所属组的特权chmod g+s 目录(针对目录,在目录中创建的文件都自动归属到目录所在组,针对二进制文件,文件内记录的程序在执行时和执行者的组身份没有关系,而是以二进制文件的所有组的身份执行的

)sticky-bit:该位可以理解为防删除位. 设置sticky bit位后,就算用户对目录具有写权限,但也只能添加文件而不能删除其他用户创建的文件。sticky 位要求操作系统既是在可执行程序退出后,仍要在内存中保留该程序的映象。这样做是为了节省大型程序的启动时间。但是会占用系统资源

粘滞位权限便是针对此种情况设置,当⽬录被设置了粘滞位权限以后,即便⽤户对该⽬录有写⼊权限,也不能删除该⽬录中其他⽤户的⽂件数据,⽽是只有该⽂件的所有者和root⽤户才有权将其删除。设置了粘滞位之后,正好可以保持⼀种动态的平衡:允许各⽤户在⽬录中任意写⼊、删除数据,但是禁⽌随意删除其他⽤户的数据

Chmod o+t /tmp

对于目录,默认权限=777-umask对于文件,默认权限=666-umask(文件默认无执行权限)

Umask 看权限

Umask –p 0022 (即目录是755,文件是644) 第一个0不用管

设定了ACL权限之后,我们查看该文件权限的时候会发现多了一个+号。

# 删除acltest1的所有acl权限设置

setfacl -b acltest1

tune2fs是linux下面重要的文件系统调整工具,其中的几个选项解释如下:

-c:表示文件系统在mount次数达到设定后,需要运行fsck检查文件系统。-i:文件系统的检查间隔时间。系统在达到时间间隔时,自动检查文件系统。-l:显示文件系统的很多参数。-j:转换为ext3文件系统。-m: Set the percentage of reserved filesystem blocks。 设置保留的空间百分比-o: Set or clear the indicated default mount options in the filesystem.设置默认加载参数

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Word中如何断开表格中线段

Word中如何断开表格中线段_word表格断线怎么弄_仰望星空_LiDAR的博客-CSDN博客有时候为了美观,需要实现如下的效果,即第2条线段被断开成3段步骤如下:选中需要断开的格网,如下,再选择段落、针对下框标即可。_word表格断…

组件(lvs,keeplive,orm,mysql,分布式事务)

lvs LVS 已经集成到Linux内核系统中,ipvsadm 是 LVS 的命令行管理工具。 目前有三种 IP 负载均衡技术( VS/NAT 网络地址转换 、VS/TUN IP 隧道技术实现虚拟服务器 和 VS/DR 直接路由); 八种调度算法:轮询 …

IntelliJ IDEA 如何优雅的添加文档注释(附详细图解)

IntelliJ IDEA 如何优雅的添加文档注释(附详细图解) 📌提要✍✍类注释✍✍方法注释 📌提要 在开发过程中,最常用的注释有两种:类注释和方法注释,分别是为类和方法添加作者、日期、版本号、描述等…

ensp-GVRP服务

ensp-GVRP服务 日期:6-26 📎GVRP实验.zip📎GVRP服务.docx

【云原生|Docker系列第3篇】Docker镜像的入门实践

欢迎来到Docker入门系列的第三篇博客!在前两篇博客中,我们已经了解了什么是Docker以及如何安装和配置它。本篇博客将重点介绍Docker镜像的概念,以及它们之间的关系。我们还将学习如何拉取、创建、管理和分享Docker镜像,这是使用Do…

从8个新 NFT AMM,聊聊能如何为 NFT 提供流动性

DeFi 的出现,开启了数字金融民主化的革命。其中,通过 AMM 自由创建流动性池极大地增加了 ERC-20 Token 的流动性,并为一些长尾 Token 解锁了价值的发现,因而今天在链上可以看到各种丰富的交易、借贷和杠杆等活动。 而另一方面&am…

angular-mat-select 多选 实现按选择顺序排序

mat-select 正常情况下,多选后,已选项是按列表顺序进行排序,如果我想实现按照点击项目的顺序进行排序,我该如何做呢? [参考网址](Angular order of selected option in multiple mat-select - Stack Overflow) sortComparator是Angular Material中mat-select组件的一个属…

无涯教程-Lua - 垃圾回收

Lua使用自动内存管理,该管理使用基于Lua内置的某些算法的垃圾回收。 垃圾收集器暂停 垃圾收集器暂停用于控制垃圾收集器之前需要等待多长时间; Lua的自动内存管理再次调用它。值小于100意味着Lua将不等待下一个周期。同样,此值的较高值将导…

Golang之路---04 并发编程——信道/通道

信道/通道 如果说 goroutine 是 Go语言程序的并发体的话,那么 channel(信道) 就是 它们之间的通信机制。channel,是一个可以让一个 goroutine 与另一个 goroutine 传输信息的通道,我把他叫做信道,也有人将…

.Net6 Web Core API --- Autofac -- AOP

目录 一、AOP 封装 二、类拦截 案例 三、接口拦截器 案例 AOP拦截器 可开启 类拦截器 和 接口拦截器 类拦截器 --- 只有方法标注 virtual 标识才会启动 接口拦截器 --- 所有实现接口的方法都会启动 一、AOP 封装 // 在 Program.cs 配置 builder.AddAOPExt();//自定义 A…

java使用openOffice将excel转换pdf时,将所有列显示在一页

1.接上文,格式转换的基础问题已解决,但还有些细节问题需要单独处理,如excel转换至pdf时,如何将所有列显示在一页的问题,此问题大家都有遇到,解决方案也比较多,我也尝试过重写某类,来…

从excel中提取嵌入式图片的解决方法

1 发现问题 我的excel中有浮动图片和嵌入式图片,但是openpyxl的_image对象只提取到了浮动图片,通过阅读其源码发现,这是因为openpyxl只解析了drawing文件导致的,所以确定需要自己解析 2 解决思路 1、解析出media资源 2、解析…

eclipse Java Editor Templates

​ Window - Preferences - Java - Editor - Templates ​ date ${currentDate:date(yyyy.MM.dd)}

W6100-EVB-PICO做DNS Client进行域名解析(四)

前言 在上一章节中我们用W6100-EVB-PICO通过dhcp获取ip地址(网关,子网掩码,dns服务器)等信息,给我们的开发板配置网络信息,成功的接入网络中,那么本章将教大家如何让我们的开发板进行DNS域名解…

使用 OpenCV 和 Python 卡通化图像-附源码

介绍 在本文中,我们将构建一个有趣的应用程序,它将卡通化提供给它的图像。为了构建这个卡通化器应用程序,我们将使用 python 和 OpenCV。这是机器学习令人兴奋的应用之一。在构建此应用程序时,我们还将了解如何使用 easygui、Tkinter 等库。在这里,您必须选择图像,然后应…

(亲测解决)PyCharm 从目录下导包提示 unresolved reference(完整图解)

最近在进行一个Flask项目的过程中遇到了unresolved reference 包名的问题,在网上找了好久解决方案,并没有一个能让我一步到位解决问题的。 后来,我对该问题和网上的解决方案进行了分析,发现网上大多数都是针对项目同一目录下的py…

变压器参数测定中空载实验和短路实验的理解

确定变压器的参数是在《电机学》和《电力系统分析》中非常重要的一个环节,这里用自己习惯的方式讲一下怎样理解 首先要讲下变压器的额定参数,这个也是个常考的知识点 额定功率,即视在功率,电压电流,单位是VA或者kVA额…

K8s工作原理

K8s title: Kubernetes之初探 subtitle: K8s的工作原理 date: 2018-09-18 18:26:37K8s概述 我清晰地记得曾经读到过的一篇博文,上面是这样写的, “云端教父AWS云端架构策略副总裁Adrian Cockcroft曾指出,两者虽然都是运用容器技术&#xff0…

Vue中,$forceUpdate()的使用

在Vue官方文档中指出,$forceUpdate具有强制刷新的作用。 那在vue框架中,如果data中有一个变量:age,修改他,页面会自动更新。 但如果data中的变量为数组或对象,我们直接去给某个对象或数组添加属性,页面是识…

剑指 Offer 53 - I. 在排序数组中查找数字 I

题目描述 统计一个数字在排序数组中出现的次数。示例 思路 1、暴力法 注意while循环中先判断数组是否越界再判断其值是否相等 class Solution {public int search(int[] nums, int target) {int count 0;for(int i 0; i < nums.length; i) {if(nums[i] target) {whil…