Linux文件管理与用户管理
一、查看文件内容
1、回顾之前的命令
cat命令、tac命令、head命令、tail命令、扩展:tail -f动态查看一个文件的内容
2、more分屏显示文件内容(了解)
基本语法:
# more 文件名称
特别注意:more命令在加载文件时并不是一点一点进行加载,而是打开文件时就已经把文件的全部内容加载到内存中了。如果打开文件较大,则可能会出现卡顿情况。
more命令拥有一些交互功能,可以通过快捷键进行操作这个more的阅读器。
回车键 | 向下移动一行。 |
---|---|
d | 向下移动半页。 |
空格键 | 向下移动一页。 |
b | 向上移动一页,后期引入功能,早期more只能前进不能后退 |
q | 退出 more。 |
早期more命令没有现在这么强大,其只能前进不能后退
3、less分屏显示文件内容(重点)
基本语法:
# less 文件名称
特别注意:less命令不是加载整个文件到内存,而是一点一点进行加载,相对而言,读取大文件时,效率比较高。
另外:less可以通过上下方向键显示上下内容,退出时不会在Shell中留下刚显示的内容
less 命令的执行也会打开一个交互界面,下面是一些常用交互命令(和more类似):
按键 | 功能 |
---|---|
回车键 | 向下移动一行。 |
d | 向下移动半页。 |
空格键 | 向下移动一页。 |
b | 向上移动一页。 |
上下方向键 | 向上与向下移动,less命令特有功能键 |
less -N 文件名称 | 显示行号 |
/ 字符串 | 搜索指定的字符串。 |
q | 退出less |
cat,more,less三者的对比:
cat | more | less | |
---|---|---|---|
作用 | 显示小文件(一屏以内) | 显示大文件(超过一屏) | 显示大文件(超过一屏) |
交互命令 | 无 | 有 | 有 |
上下键翻行 | 无 | 无 | 有 |
二、文件统计命令
1、wc命令
基本语法:
# wc [选项] 文件名称
选项说明:
-l:表示lines,行数(以回车/换行符为标准)
-w:表示words,单词数 依照空格来判断单词数量
-c:表示bytes,字节数(空格,回车,换行)
案例:统计linux.txt文件的总行数
# wc -l linux.txt
案例:统计linux.txt文件中的单词数
# wc -w linux.txt
案例:统计文件的字节数(数字、字母一般1个字符=1个字节,中文和编码格式有关,如utf-8编码格式,1个汉字占用3个字节)
# wc -c linux.txt
扩展:wc [选项] 文件的名称可以统计一个文件的信息,实际情况下,我们选项还可以一起使用
案例:统计一个文件的总行数、总单词数以及总字节数
# wc -wlc linux.txt
或
# wc -lwc linux.txt
或
# wc -clw linux.txt
2、du命令
基本语法:
# du [选项] 统计的文件或文件夹
选项说明:
-s :summaries,只显示汇总的大小,统计文件夹的大小
-h :以较高的可读性显示文件或文件夹的大小,(KB/MB/GB/TB)
主要功能:查看文件或目录(会递归显示子目录)占用磁盘空间大小
案例:显示readme.txt文件的大小(占用磁盘空间,不显示文件大小的单位)
# du readme.txt
案例:显示readme.txt文件的大小(占用磁盘空间,显示文件大小的单位)
# du -h readme.txt
案例:统计wechat文件夹的大小
# du -sh wechat
案例:统计/etc目录的大小
# du -sh /etc
三、文件处理命令
1、find命令
基本语法:
# find 搜索路径 [选项]
选项说明:
-name:指定要搜索文件的名称,支持*星号通配符(Shift + 8)
-type:代表搜索的文件类型,f代表普通文件,d代表文件夹=>加快检索速度
主要功能:当我们查找一个文件时,必须使用的一个命令。
案例:搜索/var目录中boot.log文件(普通文件)
# find /var -name "boot.log" -type f
案例:全盘搜索ssh目录
# find / -name "ssh" -type d
特别注意:实际工作时,尽量减少全盘检索,比较消耗资源
扩展功能:find实现模糊查询(必须结合通配符)
案例:搜索/var/log目录下的所有的以".log"结尾的文件信息
# find /var/log -name "*.log" -type f
* :通配符,代表任意个任意字符。如*.log代表以.log结尾的文件,apache*代表搜索以apache开头的文件信息
2、grep命令
基本语法:
# grep [选项] 要搜索的关键词 搜索的文件名称
选项说明:
-n :代表显示包含关键词的行号信息
单位:行,一行一行向下搜索
主要功能:在文件中直接找到包含指定关键词的那些行,并把这些信息高亮显示出来
案例:在initial-setup-ks.cfg文件中搜索包含关键词"network"的行
# grep network initial-setup-ks.cfg
案例:在initial-setup-ks.cfg文件中搜索包含关键词"network"的行,然后显示行号信息
# grep -n network initial-setup-ks.cfg
扩展语法:
# grep 要搜索的关键词 多个文件的名称
主要功能:在多个文件中查找包含指定关键词的那些行,并高亮显示出来
案例:搜索/var/log目录下所有文件,找到包含关键词"network"的所有行信息
# grep network /var/log/*
3、echo命令
基本语法:
# echo "文本内容"
主要功能:在终端中输入指定的文本内容
案例:在终端中,输出hello world字符串
# echo "hello world"
4、输出重定向
场景:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
> :标准输出重定向 : 覆盖输出,会覆盖掉原先的文件内容
>>:追加重定向 : 追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
案例:把echo输出的"hello world"写入到readme.txt文件中
# echo "hello world" > readme.txt
以上程序的主要功能代表把echo命令的执行结果,输出写入到readme.txt文件中,如果readme.txt文件中存在内容,则首先清空,然后在写入hello world
案例:把echo输出的"hello linux"写入到readme.txt,要求不能覆盖原来的内容
# echo "hello linux" >> readme.txt
四、Linux操作系统用户和组的概念
1、为什么需要了解用户和组
服务器要添加多账户的作用
针对不同用户分配==不同的权限==,不同权限可以限制用户==可以访问到的系统资源== 提高系统的安全性 帮助系统管理员对使用系统的用户进行跟踪
2、用户和组的关系
理论上Linux系统中的每个用户在创建时都应该有一个对应的用户组,这个组就称之为用户的主组。同时,有些情况下,某个用户需要临时使用某个组的权限,那这个组就称之为这个用户的附属组或附加组。
主组只能拥有一个,但是附属组或附加组可以同时拥有多个 => 亲爹,干爹(多个)
3、用户组操作
用户组的操作无疑三件事:用户组的添加、用户组的修改以及用户组的删除操作
组:group
添加:add
修改:mod
删除:del
☆ 用户组的添加
基本语法:
# groupadd [选项] 用户组的组名称
选项说明:
-g :代表用户组的组ID编号,自定义组必须从1000开始,不能重复
案例:在系统中添加一个hr的用户组
# groupadd hr
案例:在系统中添加一个test的用户组并指定定编号1100
# groupadd -g 1100 test
问题:我们刚才创建的hr以及test用户组到底添加到哪里了?
答:默认情况下,我们添加的用户组都会放在一个系统文件中,文件位置=>/etc/group
# tail -3 /etc/group
root:x:0:
itheima:x:1000:
☆ /etc/group文件解析
由以上命令的执行结果可知,在/etc/group文件中,其一共拥有三个冒号,共四列。每列含义:
第一列:用户组的组名称
第二列:用户组的组密码,使用一个x占位符
第三列:用户组的组ID编号,1-999代表系统用户组的组编号,1000以后的代表自定义组的组编号
CentOS6 => 1-499,500...
CentOS7 => 1-999,1000...
第四列:用户组内的用户信息(如果一个用户的附属组或附加组为这个组名,则显示在此位置)
☆ 用户组的修改
基本语法:
# groupmod [选项 选项的值] 原来组的组名称
选项说明:
-g :gid缩写,设置一个自定义的用户组ID数字,1000以后
-n :name缩写,设置新的用户组的名称
案例:把hr用户组更名为szhr
# groupmod -n szhr hr
案例:把test用户组的组编号由1100更改为1003
# groupmod -g 1003 test
案例:把itcast组的组名称更改为admin且用户组的组编号更改为1004
# groupmod -g 1004 -n admin itcast
☆ 用户组的删除
基本语法:
# groupdel 用户组名称
案例:使用groupdel删除test用户组
# groupdel test
4、用户操作
用户:user
添加:add
修改:mod
删除:del
☆ 用户的添加
基本语法:
# useradd [选项 选项的值] 用户名称
选项说明:
-g :代表添加用户时指定用户所属组的主组,唯一的组信息(重要)
-s :代表指定用户可以使用的Shell类型,默认为/bin/bash(拥有大部分权限)还可以是/sbin/nologin,代表账号创建成功,但是不能用于登录操作系统。
/bin/bash => 给人使用的(运维工程师)
/sbin/nologin => 给软件使用的
-G :代表添加用户时指定用户所属组的附属组或附加组,可以指定多个,用逗号隔开即可(了解)
-u :代表添加用户时指定的用户ID编号,CentOS6从500开始,CentOS7中从1000开始(了解)
-c :代表用户的备注信息,cqw:123456:(陈权伟的账号)
-d :代表用户的家目录,默认为/home/用户名称。可以使用-d进行更改
-n :取消建立以用户名称为名的群组(了解)
案例:在系统中创建一个linuxuser账号
# useradd linuxuser
问题:我们并没有为linuxuser账号指定所属的主组,可以成功创建账号么?
答:可以,因为在创建账号时,如果没有明确指定用户所属的主组,默认情况下,系统会自动在用户组中创建一个与用户linuxuser同名的用户组,这个组就是这个用户的主组。
问题:刚才创建的linuxuser账号能不能用于登录操作系统
答:不行,因为Linux的登录账号==必须要求有密码==,如果一个账号没有密码是无法登录操作系统的。
案例:在系统中创建一个账号zhangsan,指定用户所属的主组为itheima
第一步:查询一下itheima的组ID编号
# tail -5 /etc/group
itheima:x:1000:
第二步:根据组的编号添加用户
# useradd -g 1000 zhangsan
案例:在系统中创建一个账号lisi,指定主组为itheima,此用户只能被软件所使用,不能用于登录操作系统
# useradd -g 1000 -s /sbin/nologin lisi
案例:在系统中创建一个wangwu,指定主组为wangwu,附属组为itheima
# useradd -G 1000 wangwu
☆ 用户信息查询
基本语法:
# id 用户名称
主要功能:查询某个指定的用户信息
案例:查询linuxuser用户的信息
# id linuxuser
uid=1002(linuxuser) gid=1005(linuxuser) groups=1005(linuxuser)
uid:用户编号
gid:用户所属的主组的编号
groups:用户的主组以及附属组信息,第一个是主组,后面的都是附属组或附加组信息
相关文章:

Linux文件管理与用户管理
一、查看文件内容 1、回顾之前的命令 cat命令、tac命令、head命令、tail命令、扩展:tail -f动态查看一个文件的内容 2、more分屏显示文件内容(了解) 基本语法: # more 文件名称 特别注意:more命令在加载文件时并不…...

java中什么是不可变类
什么是不可变类 不可变类是指一旦创建对象后,其状态(属性值)就不能被修改的类。 一个不可变类具有以下特征: 类的实例变量声明为私有的,并且没有提供修改这些变量值的公共方法。类是final的,防止被继承。类的实例变量声明为fin…...

使用Perl和WWW::Mechanize库编写
以下是一个使用Perl和WWW::Mechanize库编写的网络爬虫程序的内容。代码必须使用以下代码:jshk.com.cn/get_proxy 首先,确保已经安装了Perl和WWW::Mechanize库。如果没有,请使用以下命令安装: cpan WWW::Mechanize创建一个新的Pe…...

智荟雄安,创想未来 | 竹云董事长受邀出席雄安新区2023软件和信息技术服务业创新发展论坛并作主题演讲
10月18日,以“智荟雄安 创想未来”为主题的雄安新区2023软件和信息技术服务业创新发展论坛在雄安新区国际酒店会议中心召开。河北省委常委,雄安新区党工委书记、管委会主任张国华出席活动。 中国科学院院士朱鲁华现场致辞,中国工程院院士邬贺…...

【设计模式-1】UML和设计原则
说明:设计模式(Design Pattern)对于软件开发,简单来说,就是软件开发的套路,固定模板。在学习设计模式之前,需要首先学习UML(Unified Modeling Language,统一建模语言&…...

【数据结构】——二叉树的基础知识
数概念及结构 数的分类 二叉树、多叉树 数的概念 树是一种非线性的数据结构,它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做树的原因是它看起来像一颗倒挂的树,也就是说它是跟朝上,而叶朝下的。 有一个特殊的节点&…...

日常bug汇总
1.constraintlayout NestedScrollView 可能会导致NestedScrollView 不滑动 2.截屏 open class SecureFragment : LogLifecycleFragment() {override fun onResume() {super.onResume()if (!BuildConfig.DEV) {requireActivity().window.setFlags(WindowManager.LayoutParam…...

C#使用PPT组件的CreateVideo方法生成视频
目录 需求 实现 CreateVideo方法 关键代码 CreateVideoStatus 其它 需求 我们在使用PowerPoint文档时,经常会使用其导出功能以创建视频,如下图: 手工操作下,在制作好PPT文件后,点击文件 -> 导出 -> 创建视…...

数字化体系如何帮助企业拓展裂变增长渠道?数字化营销体系构建?
在当前的商业环境中,数字不仅仅是数据,还代表着技术和资产。企业数字化正是将数据转化为资产的过程。从信息化时代到数字化时代,企业逐渐将业务和组织、管理和创收都朝着在线化和数据化的方向发展,特别是企业的业务板块。数字化营…...

关于vant 的tabbar功能
1、想要实现tabbar页面A,其他的页面B(非tabbar页面)。 从A页面进入B页面,底部的active选中效果应该被取消掉,但是还是选中A。 按照官网的说法有两个方法 一、根据path路径 二、自定义的model 但是!但是…...

:style动态绑定,但只要页面发生变化就会执行一次方法
1、问题 开发过程中有个需求是遍历列表绘制div,div的样式是后端接口传来的,一开始这种写法,:style“formatStyle(item)”,写在了模板中 这样写发现一个问题,只要页面发生重绘,比如页面输入框输入数字&…...

文件的逻辑结构(顺序文件,索引文件)
所谓的“逻辑结构”,就是指在用户看来,文件内部的数据应该是如何组织起来的。 而“物理结构”指的是在操作系统看来,文件的数据是如何存放在外存中的。 1.无结构文件 无结构文件:文件内部的数据就是一系列二进制流或字符流组成。无明显的逻…...

suricata匹配从入门到精通(五)----二次开发保护规则库
0x00 背景 开源的suricata资源包是没有做加密处理,如果想要保护资源包,需要二次开发修改suricata源码。 本文基于suricata6.0.1 版本https://github.com/OISF/suricata/archive/refs/tags/suricata-6.0.1.zip二开。 0x01 实践 通过debug,跟规则处理相关需要修改2个地方。…...

软件测试肖sir__python之ui自动化定位方法(2)
Selenium中元素定位方法 一、定位方法 要实现UI自动化,就必须学会定位web页面元素,Selenium核心 webdriver模块提供了9种定位元素方法: 定位方式 提供方法 id定位 find_element_by_id() name定位 find_element_by_name() class定位 find_elem…...

【JVM面试题】JVM分代年龄为何是15次?能设置为16吗?
系列文章目录 【JVM系列】第一章 运行时数据区 【JVM面试题】第二章 从JDK7 到 JDK8, JVM为啥用元空间替换永久代? 【JVM面试题】第三章 JVM分代年龄为何是15次?能设置为16吗? 大家好,我是青花。拥有多项发明专利(都是…...

java三层架构/表现层-业务层-持久层
三层架构 什么是 Java 三层架构 三层架构是指:视图层view(表现层),服务层service(业务逻辑层),持久层Dao(数据访问层), Java的三层架构是指将Java程序分为三…...

视频监控这样做,简单又高效!
随着技术的不断进步,视频监控系统已经变得更加高效和智能,可以提供更全面的监控和分析功能,有助于提高安全性、管理效率和决策支持。 客户案例 超市连锁店 福建某全国性超市连锁店面临高额商品损失、偷窃问题,以及对客户安全和员工…...

掌握 Go 的计时器
简介 定时器是任何编程语言的重要工具,它允许开发人员在特定时间间隔安排任务或执行代码。在 Go 中,定时器是通过 time 包实现的,该包提供了一系列功能来创建、启动、停止和有效处理定时器。我们将探索 Go 中定时器的强大功能,并…...

嵌入式软件开发笔试面试
C语言部分: 1.gcc的四步编译过程 1.预处理 展开头文件,删除注释、空行等无用内容,替换宏定义。 gcc -E hello.c -o hello.i 2.编译 检查语法错误,如果有错则报错,没有错误则生成汇编文件。 gcc -S hello.i -o h…...

【Qt高阶】Linux安装了多个版本的Qt 部署Qt程序,出包【2023.10.17】
简介 linux系统下可执行程序运行时会加载一些动态库so,有一些是Qt的库,Qt的库会加载其他更基础的库。最后出包的时候需要把依赖的包整理到一个文件夹,来制作安装包。近期遇到已经将依赖的so文件拷贝至程序目录下,但还是调系统路径…...

OpenGL简介
OpenGL 本身并不是一个 API,它仅仅是一个由 Khronos组织 制定并维护的规范(Specification)。规范严格规定了每个函数该如何执行,以及它们的输出值。至于内部具体每个函数是如何实现的,将由 OpenGL 库的开发者自行决定。…...

持续集成工具jenkins操作
安装Jenkins 下载jenkins安装包 linux上下载jenkins失败 开始在windows上安装jenkins 1、先安装JDK https://jingyan.baidu.com/article/fdbd4277dd90f0b89e3f489f.html 免安装版本JDK只需要解压配置环境变量即可 2、安装Jenkins 参考文档: https://www.cnb…...

使用BurpSuite抓取HTTPS接口
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 原因设置方式 原因 BurpSuite之所以不能抓取https数据包,是因为BurpSuite作为中间人代理,我们和https网站之间的数据通信都是由BurpSuite来…...

移动硬盘被格式化了如何恢复数据?四步教你如何恢复
在日常生活中,我们常常会使用各种存储设备来保存和备份我们的重要数据。移动硬盘作为一种便携式的存储设备,被广泛应用于数据的存储和传输。然而,有时候我们会不小心将移动硬盘格式化,从而丢失了里面的数据。本文将介绍移动硬盘格…...

基于变电站自动化系统中的安全措施分析及应用
摘要:阐述变电运行中的问题,电气自动化系统与安全运行措施,包括自动控制设备的投入,电气自动 化与计算机技术相、设备数据的采集与处理、自动化系统的升级、人工智能技术的应用。 关键词:自动控制;数据采…...

18、监测数据采集物联网应用开发步骤(12.3)
阶段性源码下载 监测数据采集物联网应用开发步骤(12.2) 前端web UI开发 demo 核心代码文件: web/index.html web/index.js web/js/common.js web/init.dlls Web/init.js 程序运行之后在浏览器敲入如下内容访问数据接口: http://localhost:9000…...

什么是Mybatis?Mybaits有哪些优点?
MyBatis是一个开源的Java持久层框架,它可以将Java对象映射到关系型数据库中,同时提供了灵活、高效、易用的数据访问解决方案。 下面是对MyBatis的详细介绍: 1、SQL映射文件 MyBatis使用简单的XML文件或注解配置文件将Java对象映射到数据库…...

点云从入门到精通技术详解100篇-基于3D点云的曲面文字检测(续)
目录 3.2.3 手动特征提取 3.2.4 基于图绘制的 2D 网格平面生成 3.2.5 特征融合的多通道伪图像生成...

用 Java 在 PDF 中创建和管理图层,实现交互式文档
PDF 图层(也称为可见图层或附加图层等)是组织和管理 PDF 文档中内容可见性的一种方法。PDF 图层可用于创建交互式文档、隐藏或显示特定信息、创建多语言版本文档等。通过添加和删除图层,用户可以根据需要定制 PDF 文档指定内容的可见性与显示…...

公司oa是什么?一般公司oa有什么样功能?
公司OA(Office Automation)是指通过计算机和信息技术来实现办公自动化的系统。 它提供了一系列的功能和工具,用于协调、管理和处理公司内部的日常事务和流程。OA系统旨在提高工作效率、加强信息交流与共享、简化业务流程,并提供便…...