Shell基本操作(2)

文件显示与编辑

连接并显示文件内容 cat

cat[options] file...
options
-n加上行号
-s将连续两行以上的空白行替换为一行如果file不止一个文件,则会将它们连接起来

如果想一次只看一页,可以使用more或者less命令

过滤文件内容grep

grep命令可以查找拥有与给定正则表达式相匹配的内容的文件,如果发现匹配成功的文件,grep命令默认会把含有匹配字符串的那一行显示出来。如果没有指定文件,则grep命令会从标准输入设备(键盘)读取数据

grep[options][想要匹配的正则表达式][文件或目录...]
options
-A [n]除了显示匹配的那一行之外,还显示该行之后的n行(after)
-B [n]除了显示匹配的那一行之外,还显示该行之前的n行(before)
-C [n]除了显示匹配的那一行之外,还显示该行之前和之后的n行(contest)
-c 计算总匹配的行数
-r 查找目录而非文件时,必须加上这一参数,否则会报错
-e 使用正则表达式进行匹配,默认也是这样
-E 使用拓展的正则表达式进行匹配
-i 忽略字符大小写的差别
-l 列出含有匹配成功内容的文件名
-n 在显示匹配的行之前,标示出该行的行号
-v 显示不包含匹配表达式的所有行,相当于反向选择

为了避免shell的保留关键字对正则表达式的影响,建议将正则表达式用单引号括起来,但不要用双引号括起来。

tips: 正则表达式

表达式含义
^word搜索以word开头的行
word$搜索以word结尾的行
.匹配任意一个字符
\c转义\后面的特殊字符c,在正则表达式中有特殊含义的字符必须要先转义才能使用
c*表示*前面的字符c可以重复0次到多次
[list]匹配一系列字符中的一个
[n1-n2]匹配一个字符范围,如[0-9]、[a-z]中的一个字符
[^list]匹配一系列字符以外的字符
\<word匹配以word开头的单词
word\>匹配以word结尾的单词

vim

Linux系统中都有vim文本编辑器,其功能十分丰富,可以作为程序开发工具使用,虽然比较难以掌握。一般我们只要掌握其最基本的用法就够了。vim分为三种模式:

  • 命令模式(Commandmode)
  • 输入模式(Insertmode)
  • 底线命令模式(Lastlinemode)

当我们用vim[file]打开一个文件时,就进入了命令模式,在这一模式下我们可以输入命令,比如摁下i(代表insert) 可以切换至输入模式,摁下命令)。可切换至底线命令模式(可以输入更多在输入模式当中,我们可以上下左右移动光标,用键盘在光标处进行输入等,基本上跟我们习惯的输入方式一样。如想退出,或者执行其他指令,要先摁键退出输入模式到命令模式,再摁键切换至底线命令模式。在底线命令模式中,最常用的命令是q(退出)和wq(保存并退出)。

用户账户的相关操作

新建用户

sudo user add[options] username 
options
-m创建用户的主目录
-d指定用户的主目录(如果不使用默认的话)
-g指定用户登录组的GID或组名
-p指定默认密码
-s指定用户登录的shell

这一命令需要超级用户权限执行。Linux中,命令前加sudo表明用超级用户权限执行该命令,但要保证当前用户拥有超级用户权限。如果没有的话,可以用su命令切换至root用户操作。

切换用户

su [username]

修改密码

passwd

passwd [options]     #修改自己的密码,需要知道自己的现有密码
sudo passwd [options] username  #修改别人的密码,需要超级用户权限

通过options可以锁定密码(-l)、解锁密码(-u)、使账号无密码(无法登录,-d)、强迫用户下次登录时修改密码(-f)等等,小型开发不常用。当我们为刚才新建的用户指定一个密码后,再切换用户就可以输入密码登录了。

修改用户属性

usermod

sudo usermod [options] username

查看该系统下所有用户

cat /etc/passwd

eesast:x:1001:1001::/home/eesast:/bin/bash

赋予用户超级权限

eesast用户此时还没有权限使用sudo命令,我们可以切换回root通过修改。/etc/sudoers文件来设置用户权限。注意,该文件如果修改错误会产生严重的影响,因此不要直接用文本编辑器修改,而是用visudo工具进行修改。
sudo visudo

删除用户 userdel

sudo userdel [options] username
options
-r同时删除用户主目录

查看用户组

cat /etc/group

每行用户组信息都以":"作为分隔符,划分为4个字段,每个字段所表示的含义如下:组名:用户组密码(一般没有密码):GID :组内用户列表(如果某用户的主组是该组,该用户不会在这里显示)

用户组操作

  • 新建用户组:groupadd
  • 修改用户组:groupmod
  • 删除用户组:groupdel
  • 切换用户组:newgrp
  • 查看用户所属的组:groups username

如果想将某个用户添加到某个组,可以使用usermod -aG groupname username ; 想将某个用户从指定的组中删除,可以使用gpasswd -d username groupname

用户权限

当输入lls -l是会看到类似这样的记录

drwxr-xr-x 3 root root 4096 May 18 2022../
image.png
读的权重为4,写的权重为2,执行的权重为1

  • 第一个是文件类型常见的有d(目录)、-(文件)、l(链接)
  • r、w、x分别代表读、写和执行的权限,如果没有此项权限则会出现减号。
  • 3表示有三个硬链接指向该文件对应的节点
  • 第一个root表示文件主人
  • 第二个root表示文件的组别
  • 4096是文件大小
  • 修改日期

修改文件权限

chmod

chmod [–R][u/g/o/a] [+/-/=] [r/w/x] [file]

其中u(user)代表改变属主的权限,g(group)代表改变属组的权限,o(owner)代表改变其他用户的权限,a(all)代表改变所有用户的权限。+代表增加权限,-代表删除已有权限,=代表设定权限。r/w/x代表读、写、执行。如果加上-R,则表明要递归修改权限,如果文件参数是一个目录,就会将该目录下的所有文件都修改。

赋予执行权限
chmod a+x 1.txt

为属主赋予读、写、执行权限,删除属组和其他用户的执行权限
chmod u=rwx,g-x,o-x 1.txt

修改文件属主和属组

chown

sudo chown [–R] [owner] [file]
sudo chown [-R] [owner]:[group] [file]

-R表示对目录递归地进行修改。这一命令只能用超级用户权限执行,哪怕你是该文件的所有者且拥有全部权限,也不能作为普通用户修改文件的属主和属组。

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

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

相关文章

【STM32CubeMX串口通信详解】USART1 -- DMA发送 + DMA空闲中断 接收不定长数据

文章目录&#xff1a; 前言 一、准备工作 1、接线 2、新建工程 二、CubeMX的配置 1、USART1 配置 异步通信 2、通信协议参数 3、打开DMA发送、接收 三、发送操作、代码解释 四、printf 重定向到USART1 五、接收代码的编写 1、定义一个结构体变量&a…

初识 Elasticsearch 应用知识,一文读懂 Elasticsearch 知识文集(4)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

金和OA jc6 Upload 任意文件上传漏洞复现

0x01 产品简介 金和OA协同办公管理系统软件(简称金和OA),本着简单、适用、高效的原则,贴合企事业单位的实际需求,实行通用化、标准化、智能化、人性化的产品设计,充分体现企事业单位规范管理、提高办公效率的核心思想,为用户提供一整套标准的办公自动化解决方案,以帮助…

༺༽༾ཊ—设计-七个原则-模式—ཏ༿༼༻

第一原则&#xff1a;单一职责 一个类只负责一个功能领域中的相应职责&#xff1b; 接下来我们举一个代码例子&#xff0c;主要的功能实现是&#xff1a; 在主函数中运行调用描边工具和填充工具画矩形与圆形 首先写一个圆形类&#xff0c;里面只有一个方法用来返回string类型…

SAP中采购文档价格条件可以删除吗?

首先要声名&#xff0c;基于采购价格条件的严谨性和历史追朔需求&#xff0c;删除属于危险操作。不建议普通用户去执行操作。如果有兴趣&#xff0c;在测试系统中自行测试一下即可。正式系统中&#xff0c;还请慎重处理。 笔者公司日常不会去删除采购价格&#xff0c;日常处理…

Word2Vec的CBOW模型

Word2Vec中的CBOW&#xff08;Continuous Bag of Words&#xff09;模型是一种用于学习词向量的神经网络模型。CBOW的核心思想是根据上下文中的周围单词来预测目标单词。 例如&#xff0c;对于句子“The cat climbed up the tree”&#xff0c;如果窗口大小为5&#xff0c;那么…

微信小程序(四)页面跳转

注释很详细&#xff0c;直接上代码 新增内容 1.相对路径页面跳转 2. 绝对路径页面跳转 index.wxml <!-- navigator是块级元素&#xff0c;占一整行 --> <!-- 页面跳转url&#xff0c;相对路径 --> <navigator url"../logs/logs"><button type&…

赋值运算符和关系运算符

赋值运算符和关系运算符 赋值运算符 分类 符号作用说明赋值int a 10&#xff0c; 将10赋值给变量a加后赋值a b&#xff0c;将a b的值赋值给a-减后赋值a - b&#xff0c;将a - b的值赋值给a*乘后赋值a * b&#xff0c;将a b的值赋值给a/除后赋值a / b&#xff0c;将a b的…

运维知识点-Sqlite

Sqlite 引入 依赖 引入 依赖 <dependency><groupId>org.xerial</groupId><artifactId>sqlite-jdbc</artifactId><version>3.36.0.3</version></dependency>import javafx.scene.control.Alert; import java.sql.*;public clas…

第二证券:抢占技术前沿 中国光伏企业结伴“走出去”

2024年新年前后&#xff0c;光伏职业分外忙碌。据证券时报记者不完全统计&#xff0c;晶澳科技、华晟新动力、高测股份、华民股份等多家企业宣告新建项目投产&#xff0c;安徽皇氏绿能等企业的项目也迎来设备安装的重要节点。 证券时报记者采访多家企业的负责人后了解到&#…

tessreact训练字库

tessreact主要用于字符识别&#xff0c;除了使用软件自带的中英文识别库&#xff0c;还可以使用Tesseract OCR训练属于自己的字库。 一、软件环境搭建 使用Tesseract OCR训练自己的字库&#xff0c;需要安装Tesseract OCR和jTessBoxEditor(配套训练工具)。jTessBoxEditor需要…

基于SSM的社区老年人关怀服务系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

【23种设计模式应用场景汇总】

23种设计模式应用场景汇总 设计模式是一种在软件开发中解决特定问题的通用解决方案。下面我将尝试将23种设计模式融入到一个场景中&#xff1a; 假设我们正在开发一个在线购物系统&#xff0c;我们可以使用以下设计模式&#xff1a; 1. 工厂方法模式&#xff1a;当用户在网站上…

力扣hot100 只出现一次的数字 位运算

Problem: 136. 只出现一次的数字 文章目录 思路复杂度Code 思路 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( n ) O(n) O(n) Code class Solution {public int singleNumber(int[] nums) {int res 0;for(int x : nums)res ^ x;return res;} }

UI自动化测试框架

文章目录 UI自动化基础什么是UI自动化测试框架UI自动化测试框架的模式数据驱动测试框架关键字驱动测试框架行为驱动测试框架 UI自动化测试框架的作用UI自动化测试框架的核心思想UI自动化测试框架的步骤UI自动化测试框架的构成UtilsLog.javaReadProperties.Java coreBaseTest.ja…

【分布式技术】监控技术zabbix实操

目录 一、脚本监控nginx的连接状态 步骤一&#xff1a;做好nginx的配置 步骤二&#xff1a;完成监控数据脚本编写&#xff0c;并使用zabbix_get测试 步骤三&#xff1a;在zabbix agent配置目录中&#xff0c;编写以conf结尾的用户参数文件 步骤四&#xff1a;在zabbix web…

Python 网络编程之TCP详细讲解

【一】传输层 【1】概念 传输层是OSI五层模型中的第四层&#xff0c;负责在网络中的两个端系统之间提供数据传输服务主要协议包括**TCP&#xff08;传输控制协议&#xff09;和UDP&#xff08;用户数据报协议&#xff09;** 【2】功能 **端到端通信&#xff1a;**传输层负责…

HackerGPTWhiteRabbitNeo的使用及体验对比

1. 简介 WhiteRabbitNeo&#xff08;https://www.whiterabbitneo.com/&#xff09;是基于Meta的LLaMA 2模型进行特化的网络安全AI模型。通过专门的数据训练&#xff0c;它在理解和生成网络安全相关内容方面具有深入的专业能力&#xff0c;可广泛应用于教育、专业培训和安全研究…

什么是非电离辐射与电离辐射?

摘要: 非电离辐射和电离辐射是两种不同类型的辐射&#xff0c;它们主要区别在于能量水平和与物质相互作用的方式。 非电离辐射 非电离辐射是指能量较低&#xff0c;不足以使原子或分子的电子脱离其原子核束缚而产生电离现象的电磁波。这类辐射不 ... 非电离辐射和电离辐射是两…

Centos 更换内核

文章目录 一、查看/更换系统内核1.1 查看当前运行环境的内核1.2 查看系统上所有可用内核1.3 切换内核方法一&#xff1a;通过启动菜单更换内核方法二&#xff1a;更换默认启动内核 二、安装内核2.1 使用ELRepo安装2.2 安装指定内核版本参考资料 一、查看/更换系统内核 1.1 查看…