Linux Shell 脚本编程学习之【第2章 Linux文件系统和文本编辑器(第一部分)】

第2章 Linux文件系统和文本编辑器

  • 1 用户和用户组
    • 1.1 概念
    • 1.2 命令
      • 用户组 (groupadd+groupdel+groupmod)
      • 用户 (useradd+adduser+userdel+usermod)
  • 3 文件和文件夹
    • 3.1 概念
    • 3.2 文件操作命令
      • 文件清单命令(ls)
      • 文件复制命令(cp)
      • 文件移动命令(mv)
      • 文件删除目录(rm)
    • 3.3 目录操作命令
      • 创建目录命令(mkdir)
      • 删除目录命令(rmdir)
      • 目录切换命令(cd)

1 用户和用户组

1.1 概念

1、root用户

系统唯一,是真实的。该用户既可以登录系统,可 以操作系统任何文件和命令,拥有最高权限。

2、虚拟用户

这类用户也被称为伪用户或假用户,与真实用户区分开来,这类用户不 具有登录系统的能力,但却是系统运行不可缺少的用户,比如 bin、daemon、adm、 ftp、mail等;这类用户是系统自身拥有的,而非后来添加的,当然,我们也可以添 加虚拟用户。

3、普通真实用户

这类用户能登录系统,但只能操作其根目录的内容,权限受到限制, 这类用户都是系统管理员自行添加的。

1.2 命令

用户组 (groupadd+groupdel+groupmod)

// 创建用户组
[root@localhost ~]# groupadd -g 808 xjgroup
[root@localhost ~]# cat /etc/group | grep xjgroup
xjgroup:x:808:
// 修改用户组
[root@localhost ~]# cat /etc/group |grep xj
xjgroup:x:808:
[root@localhost ~]# groupmod -g 809 xjgroup 
[root@localhost ~]# cat /etc/group |grep xj
xjgroup:x:809:
[root@localhost ~]# // 删除用户组
[root@localhost ~]# groupdel xjgroup
[root@localhost ~]# cat /etc/group |grep xjgroup
[root@localhost ~]# 

用户 (useradd+adduser+userdel+usermod)

// 创建用户root。命令useradd等同于adduser
-- [-u] 指定用户ID
-- [-g] 指定用户所属组
-- [-d] 指定家目录
[root@localhost ~]# useradd -u 808 -g xjgroup -d /home/xj xj
[root@localhost ~]# adduser -u 809 -g xjgroup -d /home/xj1 xj1
[root@localhost ~]# cat /etc/passwd | grep xj
xj:x:808:808::/home/xj:/bin/bash
xj1:x:809:808::/home/xj1:/bin/bash
[root@localhost ~]# // 设置用户密码后适用用户
[root@localhost ~]# passwd xj1// 删除用户。root用户操作。
[root@localhost ~]# userdel xj xj1// 修改用户。usermod
-- 修改用户有效期为3[root@localhost ~]# usermod -e 3 xj
-- 修改用户登录的初始目录
[root@localhost ~]# usermod -d /home/xj1 xj
-- 修改用户密码
[root@localhost ~]# usermod -p Xj123@22 xj

3 文件和文件夹

3.1 概念

1、文件名
由字母、数字、下画线和圆点组成的字符串 构成。长度要求:小于255个字符。
2、扩展名
文件名与扩展名之间用圆点分开。如:test.txt,txt为扩展名。
3、文件目录
是将所有文件的说明信息采用树形结构组织起来,即我们常说的目录。

整个文件系统有一个“根” (root), 然后在根上分“权” (directory), 任何一个分权上都可以再分权,权上也可以长出“叶子”。 “根”和“杈”在Linux 中被称 为“目录”或“文件夹”,而“叶子”则代表一个个的文件。

4、路径path
路径的主要构成是目录名称,中间 用“/”符号分开。对文件进行访问时使用。

任一文件在文件系统中的位置都是由相应的路径决定的。用户在对文件进 行访问时,要给出文件所在的路径,这又分相对路径和绝对路径。相对路径是从用户工作目 录开始的路径;绝对路径是指从“根”开始的路径,也称为完全路径。

3.2 文件操作命令

文件清单命令(ls)

选 项意 义
-a显示指定目录下所有的子目录与文件,包括隐藏文件
-A显示指定目录下所有的子目录与文件,包括隐藏文件,且不列出“. ”和“. ”
-b对文件名中的不可显示字符用八进制逃逸字符显示
-c按文件的修改时间排序
-C分成多列显示各项
-d如果参数是目录,只显示其名称,而不显示其下的各文件。往往与1选项一起使用,以得到目录的详 细信息
-f不排序,该选项将使ts选项失效,使用aU选项有效
-i在输出的第一列显示文件的i节点号
-1以长格式来显示文件的详细信息,每行列出的信息依次是:文件类型与权限、链接数、文件属主、文 件属组、文件大小、最近修改的时间、名字
-L若指定的名称为一个符号链接文件,则显示链接所指向的文件
-m输出按字符流格式,文件跨页显示,以逗号分开
-n输出格式与1选项相同,只不过在输出文件属主和属组是用相应的UID号和GID号来表示,而不是 实际的名称
-0与1选项相同,只是不显示拥有者信息
-p在目录后面加一个“/”
-q将文件名中的不可显示字符用“?”代替
-r按字母逆序或最早优先的顺序显示输出结果
-R递归式地显示指定目录的各个子目录中的文件
-s给出每个目录项所用的块数,包括间接块
-t显示时按修改时间(最近优先)而不是按名字排序;若文件修改时间相同,则按字典顺序,修改时间 取决于是否使用了c或u选顶。默认的时间标记是最后一次修改时间
-u显示时按文件上次存取的时间(最近优先)而不是按名字排序。即将-t的时间标记修改为最后一次访 问的时间
-x按行显示出各排序项的信息

文件复制命令(cp)

选 项意 义
-a该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录
-d复制时保留链接
-f删除已经存在的目标文件而不提示
-i在覆盖目标文件之前将给出提示要求用户确认。回答y时,目标文件将被覆盖,是交互式复制
-p此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中
-r若给出的源文件是目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须 为一个目录名
-1不进行复制操作,只是链接文件

文件移动命令(mv)

选 项意 义
-i交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用 户回答y或n,这样可以避免误覆盖文件
-f禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不 再起作用
-p移动时保持权限

文件删除目录(rm)

选 项意 义
-f忽略不存在的文件,从不给出提示
-r指示rm将参数中列出的全部目录和子目录均递归地删除
-i进行交互式删除

3.3 目录操作命令

创建目录命令(mkdir)

选 项意 义
-m对新建目录设置存取权限
-p可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
-v每次创建新目录都显示信息
[rootalocalhost   shell]#mkdir -p testdir/test

删除目录命令(rmdir)

选 项意 义
-p递归删除。当子目录删除后,其父目录为空时,也将会一同被删除。如果整个路径被删除 或者由于某种原因保留部分路径,则系统会在标准输出上显示相应的信息
–ignore-fail-on-non-empty忽略非空目录的错误信息

rmdir 仅仅能删除父目录中只包含空子目录的情况,如果目录中存在文件,则使用 rmdir和 rmdir -p命令是无法删除该目录的,这时候使用:rm -rf [directoryName]

目录切换命令(cd)

选 项意 义
cd返回登录目录
cd~同样是返回登录目录
ed/返回系统根目录
cd /root返回到根用户或超级用户(在安装时创建的账号)的主目录,但必须是根用户才能访问该目录
ed /home返回到home目录,home目录通常为用户登录目录的上级目录
ed .向上移动一级目录
cd-返回上次访问的目录

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

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

相关文章

数据分析案例-数据分析师岗位招聘信息可视化

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

LLM - Hugging Face 工程 BERT base model (uncased) 配置

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/131400428 BERT是一个在大量英文数据上以自监督的方式预训练的变换器模型。这意味着它只是在原始文本上进行预训练,没有人以…

MySQL:聚合函数(全面详解)

聚合函数 前言一、聚合函数介绍1、AVG和SUM函数2、 MIN和MAX函数3、COUNT函数 二、GROUP BY1、基本使用2、使用多个列分组3、 GROUP BY中使用WITH ROLLUP 三、HAVING1、基本使用2、WHERE和HAVING的对比 四、 SELECT的执行过程1、查询的结构2、SELECT执行顺序3、SQL 的执行原理 …

积分图像、图像分割、Harris角点检测

目录 1、积分图像 2、图像分割--漫水填充 3、图像分割--分水岭法 4、Harris角点检测 1、积分图像 #include <iostream> #include <opencv2/opencv.hpp>using namespace cv; using namespace std;//积分图像 int test() {//创建一个1616全为1的矩阵,因为2561616M…

Matlab实现周期卷积

周期卷积是信号处理中常用的一种操作&#xff0c;可以用于信号的滤波、调制、卷积等方面。在Matlab中&#xff0c;我们可以使用fft函数实现周期卷积。本文将介绍如何使用Matlab实现周期卷积。 首先&#xff0c;我们需要准备两个周期信号。周期信号是一种在一定时间间隔内重复的…

分类预测 | MATLAB实现基于Attention-GRU的数据多特征分类预测(门控循环单元融合注意力机制分类预测,含混淆矩阵图、分类图)

分类预测 | MATLAB实现基于Attention-GRU的数据多特征分类预测(门控循环单元融合注意力机制分类预测&#xff0c;含混淆矩阵图、分类图) 目录 分类预测 | MATLAB实现基于Attention-GRU的数据多特征分类预测(门控循环单元融合注意力机制分类预测&#xff0c;含混淆矩阵图、分类图…

Antd List组件增加gutter属性后出现横向滚动,如何解决

第一次使用ant design的List列表组件&#xff0c;设置gutter间隔属性后&#xff0c;页面出现了横向滚动条&#xff0c;查阅文档发现是由于加间隔后导致容器宽度被撑开&#xff0c;ant design官方默认给外层容器加了margin-left和margin-right 解决方法是在外层容器预留一定的pa…

用宏定义完成整数的二进制位的奇偶位互换

代码如下&#xff1a; #include <stdio.h> #define SWAP(num) (((num & 0xAAAAAAAA) >> 1) | ((num & 0x55555555) << 1))int main() {int num 1010;printf("%d\n", num);printf("%d\n", SWAP(num));return 0; }思路如下&…

MySQL数据备份与还原、索引、视图

一.备份与还原 /***************************样例表***************************/ CREATE DATABASE booksDB; use booksDB; CREATE TABLE books ( bk_id INT NOT NULL PRIMARY KEY, bk_title VARCHAR(50) NOT NULL, copyright YEAR NOT NULL …

解决 Ruoyi 框架中提示认证失败,无法访问系统资源的问题

系列文章目录 文章目录 系列文章目录前言一、检查登录状态&#xff1a;二、检查权限配置&#xff1a;三、检查访问规则和权限组&#xff1a;四、检查系统配置&#xff1a;五、联系管理员授权&#xff1a;总结 前言 在使用 Ruoyi 框架时&#xff0c;有时会遇到提示认证失败&…

统计页面左右+上下自适应布局

1:如果需要调整分栏数量,那么只需要删除对应数据,修改百分比即可. <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style type"text/css" lang"less" >body{margin: 0px ;}.box…

微信小程序用户登录及头像昵称设置教程(前后端)

目录 1.背景分析 2.具体需求分析 3.前端设计 3.1 用户登录 3.2 头像昵称填写&#xff08;个人信息界面&#xff09; 4.后端设计 4.1项目架构分析 4.2 代码分析 实体类 dao层 service层 controller层 工具类 5.nginx部署 6.效果演示 1.背景分析 众所周知&#x…

论文解读|VoxelNet:基于点云的3D物体检测的端到端学习

原创 | 文 BFT机器人 01 摘要 论文提出了表述了一个新的基于点云的3D检测方法&#xff0c;名为VoxelNet&#xff0c;该方法是一个端到端可训练的深度学习架构&#xff0c;利用了稀疏点云的结构特性&#xff0c;直接在稀疏的3D点上进行操作&#xff0c;并通过高效的并行处理体素…

01 - 如何制定性能调优标准?

1、为什么要做性能调优&#xff1f; 一款线上产品如果没有经过性能测试&#xff0c;那它就好比是一颗定时炸弹&#xff0c;你不知道它什么时候会出现问题&#xff0c;你也不清楚它能承受的极限在哪儿。 有些性能问题是时间累积慢慢产生的&#xff0c;到了一定时间自然就爆炸了…

linux之Ubuntu系列(三)远程管理指令☞FileZilla

scp 这个终端命令 只能 在LInux或UNIX 系统下使用&#xff08;mac 是基于UNIX&#xff0c; Ubuntu是基于Linux&#xff0c; Centos是基于Red cap&#xff09; 如果在 window 系统中&#xff0c;可以安装 Putty&#xff0c;使用 pscp 指令来操作 或者安装 FileZilla 使用 FTP 进…

Linux —— 进程状态

目录 一&#xff0c;进程状态分类 二&#xff0c;僵尸进程 三&#xff0c;孤儿进程 一&#xff0c;进程状态分类 进程状态反应进程执行过程中的变化&#xff0c;状态会随外界条件的变化而转换&#xff1b; 三态模型&#xff0c;运行态、就绪态、阻塞态&#xff1b;五态模型…

SpringCloud微服务(三)RabbitMQ、SpringAMQP、elasticsearch、DSL、MQ、ES详细介绍

目录 一、初始MQ 同步调用 异步调用 什么是MQ 执行下面的命令来运行MQ容器&#xff1a; 如果冲突了&#xff0c;可以先查询 RabbitMQ概述 常见消息模型 HelloWorld案例 二、SpringAMQP 引入依赖 Work Queue 消费预取限制 ​编辑 发布、订阅 发布订阅Fanout Ex…

PCL 基于三个点计算圆心坐标(二维)

文章目录 一、简介二、实现代码三、实现效果一、简介 思路很简单,假设给定三角形三个点 P , Q , R P,Q,R P,Q,

每日一道面试题之ArrayList 和 LinkedList 的区别是什么?

ArrayList和LinkedList是Java中常用的两种集合类&#xff0c;它们在实现和使用上有一些区别&#xff0c;如下所示&#xff1a; 内部实现&#xff1a;ArrayList是基于数组实现的动态数组&#xff0c;而LinkedList是基于双向链表实现的。 插入和删除操作&#xff1a;ArrayList在…

进阶C语言——字符串和内存函数

今天我们学点库函数 字符函数和字符串函数 求字符串长度函数->strlen strlen需要的头文件是string.h ,那它的作用是什么呢&#xff1f;&#xff1f; 他是来求字符串长度的&#xff0c;统计的是’\0’前的字符串长度 #include<stdio.h> #include<string.h> int …