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三者的对比:

catmoreless
作用显示小文件(一屏以内)显示大文件(超过一屏)显示大文件(超过一屏)
交互命令
上下键翻行

二、文件统计命令

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:用户的主组以及附属组信息,第一个是主组,后面的都是附属组或附加组信息

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

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

相关文章

【三:Mock服务的使用】

目录 1、工具包2、mock的demo1、get请求2、post请求3、带cookies的请求4、带请求头的请求5、请求重定向 1、工具包 1、:服务包的下载 moco-runner-0.11.0-standalone.jar 下载 2、:运行命令java -jar ./moco-runner-0.11.0-standalone.jar http -p 888…

边写代码边学习之mlflow

1. 简介 MLflow 是一个多功能、可扩展的开源平台,用于管理整个机器学习生命周期的工作流程和工件。 它与许多流行的 ML 库内置集成,但可以与任何库、算法或部署工具一起使用。 它被设计为可扩展的,因此您可以编写插件来支持新的工作流程、库和…

【算法学习】归并算法Merge Sort总结

归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。 1. 基本思想 归并排序使用分治思想,分治模式下每一层递归有三个步骤: 分解(divide)&a…

Git命令在线练习网址--非常友好的提示及动画展示

Git命令在线练习 https://learngitbranching.js.org/ 举个栗子: 在练习时会给你相应提示,你可以按照相应步骤进行操作,并且每一步都有动画演示

直播带货前途渺茫了

我是卢松松,点点上面的头像,欢迎关注我哦! 种种迹象表明电商行业和直播带货将受到冲击。直播带货前途渺茫了,相信很快就有政策出来了,针对电商这块的,支持实体、支持取消直播带货。 (1)目前,…

协同创新、奔赴未来——“华为云杯”2023人工智能创新应用大赛华丽谢幕

9月27日,在苏州工业园区管理委员会、华为云计算技术有限公司的指导下,由SISPARK(苏州国际科技园)、华为(苏州)人工智能创新中心联合主办,东北大学工业智能与系统优化国家级前沿科学中心、浙江大…

驱动:驱动相关概念,内核模块编程,内核消息打印printk函数的使用

一、驱动相关概念 1.操作系统的功能 向下管理硬件,向上提供接口 操作系统向上提供的接口类型: 内存管理:内存申请(malloc) 内存释放(free)等 文件管理: 通过文件系统格式对文件ext2…

E054-web安全应用-Brute force暴力破解进阶

课程名称: E054-web安全应用-Brute force暴力破解进阶 课程分类: web安全应用 实验等级: 中级 任务场景: 【任务场景】 小王接到磐石公司的邀请,对该公司旗下的网站进行安全检测,经过一番检查发现该网站可能存在弱口令漏洞…

AAOS CarMediaService 服务框架

文章目录 前言MediaSessionCarMediaService作用是什么?提供了哪些接口?如何使用?CarMediaService的实现总结 前言 CarMediaService 是AAOS中统一管理媒体播放控制、信息显示和用户交互等功能的服务。这一服务依赖于android MediaSession框架…

搭建NGINX服务 如何统计网页访问量

一、搭建Nginx服务 搭建之前需要查看一下我们的内核数制 我们进行简单的内核优化 命令:ulimit -n 65535 安装Nginx服务 第一步 关闭防火墙和安全机制 systemctl stop firewalld #关闭防火墙 systemct disable firewalld #开机自动关闭防火墙 setenfor…

美创科技信创数据安全「利基者」!

近日,第一新声研究部正式发布《2023年中国信创网络安全产品竞争力象限》(下称“象限报告“)。 ◼︎ 象限报告综合考虑企业占有率、在技术/应用上的成熟度、在客户方面的交付完成度及口碑、产品在市场/营销/商业模式/行业拓展等战略上的领先性…

无人机新手防炸飞行技巧

不要在室内飞行,容易撞墙。起飞前设置好避障和返航模式。使用模拟器熟练掌握操控。选择开阔环境目视起飞。使用低速档平稳飞行。合理使用避障功能,不要盲目依赖。使用九宫格避障法。留意电量,及时返航。极低电量时放弃强行返航。飞行后及时为电池充电保养。

文件管理系统的基本认识

1.文件的属性 文件的定义:一组有意义的信息的集合。 1.文件名: 由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件。 2.标识符: 一个系统内的各文件标识符唯一,对用户来说毫无可读性, 因此…

NetCore/Net8下使用Redis的分布式锁实现秒杀功能

目的 本文主要是使用NetCore/Net8加上Redis来实现一个简单的秒杀功能,学习Redis的分布式锁功能。 准备工作 1.Visual Studio 2022开发工具 2.Redis集群(6个Redis实例,3主3从)或者单个Redis实例也可以。 实现思路 1.秒杀开始…

mysql按照日期分组统计数据(date_formatstr_to_date)

学习链接 mysql按照日期分组统计数据 博主-山茶花开时的 【Mysql专栏学习】 mysql按照日期分组统计数据 Mysql的date_format函数想必大家都使用过吧,一般用于日期时间转化,如下所示 # 可以得出 2023-01-01 08:30:50 select DATE_FORMAT(2023-01-01…

【合宙Air700E/780E短信转发】短信转发移动联通 不要钉钉不要微信,转发自建服务器-傻瓜式搭建

官方提供的教程介绍了通过钉钉、微信等工具接收短信验证码的方法,但最终实现的目的是获取验证码,而不是通过工具间接获得。 因此,我们可以直接调用API接口来获取验证码,从而达到更快、更便捷地获得验证码的目的。 所以做了一个服…

STM32内部flash闪存的总结

最近在做无人船和机巢远程在线升级的项目,牵扯到flash的操作,特此记录,便于以后查找。IMU也用到过,当时没记录 具体细节看 E:\Documets\AY\a-project\IMU\IMU16500\S0IMU v3.3 study\User\Driver\source eeprom.c E:\Documets\A…

【Java基础面试三十四】、接口中可以有构造函数吗?

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:接口中可以有构造函数吗…

mysql检验分区性能的操作

mysql检验分区性能的操作 创建两个结构相同但是一个有分区另外一个没有分区的表 如上图我们给part_tab5创建的分区为1024个,因为mysql中允许最多有1024个分区;之前我测试的是创建8个分区,然后插入500万条数据,然后按照id查询&…

【持续更新】tutorial-Linux-Markdown-etc(Linux、命令、Markdown、md、Tex、LaTex)

1. Linux命令 1.1 常用 查看文件夹下文件数量: ls -l | wc -l7zip: 解压:7z x compressed_file.7z -o/path/to/destination # 注意-o和目标路径是连起来的,没有空格压缩:7z a compressed_file.zip destination_path conda 查看 conda 拥有的…