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,一经查实,立即删除!

相关文章

Vue和小程序的区别

一.生命周期不一样&#xff1a; 1.1小程序生命周期&#xff1a;onLoad页面加载、onShow页面显示、onReady页面初次渲染完成、onHide页面隐藏、onUnload页面卸载 1..2 vue生命周期&#xff1a;data、mouted、beforeupdate、updated、beforedestory、destroyed二.数据请求时间不一…

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

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

【Vue常用控件详细介绍】

Vue常用控件详细介绍 1. 常用控件1.1 常用控件示例1.2 修饰符 2. 数据绑定3. 指令4. 组件5. 内置组件6. 表单控件绑定7. 插槽&#xff08;Slots&#xff09;8. 异步组件 1. 常用控件 Vue.js 是一个流行的前端 JavaScript 框架&#xff0c;常用于开发单页应用&#xff08;SPA&a…

java连接sql server 2008示例

本文将以jtds作为驱动包来连接&#xff0c;简单方便&#xff01; 使用官方的驱动包可能会遇到如下报错&#xff1a;jdbc SQLServer Error: “The server selected protocol version TLS10 详见&#xff1a;https://blog.csdn.net/lxyoucan/article/details/125681677 这让部署…

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

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

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

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

学习笔记:在华为昇腾NPU上进行深度学习项目【未完待续】

在NPU上做深度学习算法 场景和功能说明系统信息查询1、场景一&#xff1a;非NPU上训练的模型推理1.1 执行方案学习案例 1.2 CPU/GPU训练的模型转.ONNX模型1.3 onnx转om1.4 om推理 昇腾社区链接&#xff1a; 昇腾社区-官网丨昇腾万里 让智能无所不及 场景和功能说明 第一种&am…

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

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

openssl3.2 - 官方demo学习 - mac - cmac-aes256.c

文章目录 openssl3.2 - 官方demo学习 - mac - cmac-aes256.c概述笔记END openssl3.2 - 官方demo学习 - mac - cmac-aes256.c 概述 指定加密算法(e.g. AES-256-CBC), 对明文生成MAC数据 笔记 /*! \file cmac-aes256.c \note openssl3.2 - 官方demo学习 - mac - cmac-aes256.…

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;那么…

字符串与数组的异同

Java 中的字符串&#xff08;String&#xff09;和数组&#xff08;Array&#xff09;是两种不同类型的数据结构&#xff0c;它们有一些相似之处&#xff0c;同时也有一些显著的区别。 相同之处&#xff1a; 存储多个元素&#xff1a; 字符串和数组都用于存储多个元素。 使用…

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

注释很详细&#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;安徽皇氏绿能等企业的项目也迎来设备安装的重要节点。 证券时报记者采访多家企业的负责人后了解到&#…

AUTOSAR OS详细介绍及配置说明(更新版20240115)

前言 AUTOSAR OS扩展了OSEK/VDX标准中的操作系统,所以本文结合OSEK/VDX的标准来介绍AUTOSAR OS,并借助Vector Configurator讲解AUTOSAR OS的配置。 OSEK源于德语,英文意思是:“车载电子设备的开发系统和接口”,它是一个标准,用来产生嵌入式操作系统的规范,通讯协议栈,…

宝塔面板打不开,记录一下解决办法

由于在服务器宝塔内安装Apache&#xff0c;提示需要卸载nginx&#xff0c;卸载过后宝塔通过网址访问不了&#xff0c;特此记录一下问题。 1、检查宝塔端口会不会被占用 面板默许使用8888端口&#xff0c;使用命令查看8888端口会不会被占用&#xff1a; netstat -apn|grep 88…

tessreact训练字库

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

接口以及多态

什么是接口 接口是一种抽象的数据类型&#xff0c;它定义了一组方法的规范&#xff0c;但没有具体的实现。接口可以被类实现&#xff0c;一个类实现了接口后&#xff0c;必须实现接口中定义的所有方法。接口可以被多个类实现&#xff0c;用以实现多重继承。 接口的定义使用关键…