Linux红帽(RHCE)认证学习笔记-(1)Linux 文件管理

Linux 文件管理

1. Linux下的目录结构

/ 是Linux里的根目录

Linux的一级目录

  • /boot :存放的是系统的启动配置⽂件和内核⽂件
  • /dev :存放的是Linux的设备⽂件
  • /etc:存放的是Linux下的配置文件
  • /home:存放普通用户的家目录
  • /media:挂载点⽬录
  • /mnt:挂载点⽬录
  • /run:挂载点⽬录
  • /opt:存放软件⽂件的⽬录
  • /proc:存放的是进程⽂件
  • /srv:存放⼀些资源⽂件
  • /sys:存放⼀些资源⽂件(系统资源)
  • /tmp:存放的是⼀些临时⽂件(⾮常重要)
  • /var⽬录:存放log⽇志⽂件的⽬录(⾮常重要)
  • /usr⽬录:Linux软件默认安装的⽬录
  • /bin->/usr/bin :存放的是普通⽤户能执⾏的命令
  • /lib->/usr/lib:存放的是32位的函数⽂件
  • /lib64->/usr/lib64:存放的是64位的函数⽂件
  • /sbin->/usr/sbin:存放的是超级⽤户能执⾏的命令
  • /root:是root⽤户的家⽬录

在商⽤环境或⽣产环境,⼀定要尽量的避免直接使⽤root权限操作Linux

su命令详解

su(switch user)切换⽤户

普通⽤户切换到任何⽤户都需要输⼊密码
root⽤户切换到任何⽤户都不需要输⼊密码
su - username
su命令切换⽤户如果不加"-",只是shell层⾯的切换,⽤户的环境变量实际上是没有变的
su -和su - root 是⼀样的,没区别

文件管理命令

⽂件的增删改查

⽂件的创建(⽂本⽂件的创建,⽬录⽂件的创建)

⽂件的删除(⽂本⽂件的删除,⽬录⽂件的删除)

⽂件的修改(⽂件内容的修改,⽂件属性的修改)

⽂件的查看(⽂件内容的查看,⽂件属性的查看)

理解绝对路径和相对路径

绝对路径:以顶级⽬录开头的路径就是绝对路径,在Linux⾥⾯"/"就是顶级⽬录,以/开头的路径就是绝对路径

相对路径:不以/开头的路径就是相对路径

  • cd(change directory)命令

cd path(相对路径或者绝对路径)

cd … 表示切换到上级⽬录

cd ~ 表示切换到当前shell⽤户的家⽬录,相当于直接敲cd命令

cd - 表示切换到上次所在的⽬录(反复的敲,会在两个⽬录下反复的切换)

ctrl+shift+t多⼀个命令⾏的shell,然后atl+1~9来回切换,ctrl+d关闭当前的shell

  • ls 命令
ls 是对【文件属性】的查看
ls 如果什么都不加,表示显示当前⽬录下的所有⽂件名称
$ ls
# ls后⾯加路径,就能显示路径下⾯的⽂件内容,如果ls后⾯跟的是⽬录,就把⽬录下⾯的⽂件名字列出来,如果ls后⾯跟的是普通⽂件,就把这个普通⽂件的名字列出来
$ ls /opt/testfile.txt #只列出文件的名字(文件名也算文件的属性)
# ls /opt #列出目录下的文件# ls 可以跟多个路径(相对路径和绝对路径都可以)
$ ls /opt /var /opt/testfile# ls 的参数详解
-l	参数表示显示⽂件的详细信息
-a  参数表示显示以"."开头的⽂件,在Linux中,以"."开头的⽂件是隐藏⽂件
-d  表示显示⽬录本身的属性,⽽不是⽬录下的内容的属性
-h  参数必须和-l参数⼀起使⽤,-h参数能让⽂件的⼤⼩显示的更⼈性化ls -l显示的内容,第⼀列表示⽂件的类别"-"表示普通⽂件“d”表示⽬录本身⽂件的属性ls -l /opt -d  # 显示一行/opt目录本身的属性# drwxr-xr-x. 7 root root 113 4月  18 22:49 /opt“b”表示块设备(存储设备)“l”表示快捷⽅式(软链接)

在这里插入图片描述

上⾯9列表示权限列,表示3类⼈的权限,前三列表示⽂件拥有者对该⽂件具备的权限,中三列表示⽂件所属组对该⽂件具备的权限,后三列表示其他⼈
对该⽂件的权限。
r表示read,读权限
w表示write,写权限
x表示execute,执⾏权限
-表示没有权限,3列⾥⾯,第⼀列总是-或者r,第⼆列总是-或w,第三列总是-或x权限9列后⾯的"."表示该⽂件具备SELinux的安全上下⽂,有些时候,权限9列后⾯可能是"+",如果是+,则表示该⽂件有ACL权限。
后⾯⼀列,数字那列,表示该⽂件有的链接数量。⽂件所属组后⾯那列表示⽂件的⼤⼩,单位是字节(Byte)
1024Byte=1KB,1024KB=1MB,1024MB=1GB,1024GB=1TB,1024TB=1PB,1024PB=1EB
再后⼀列就是⽉,⽇,时,分,表示时间。
最后⼀列表示的是⽂件名字# 参数在99%的命令⾥,参数的顺序是⽆所谓的

stat filename 查看文件的一些时间信息(修改时间、创建时间、最近访问时间等)

  • cat命令的使用
cat 文本文件的path
cat /opt/filename /etc/hosts #可以显示多个
  • head 命令的使用
head -n 10 filename.txt #显示前十行 -n number 
head -n 10 filename.txt -n 3 test.txt[root@localhost opt]# head -n 5 filename.txt  -n 2 test.txt 
==> filename.txt <==
sdwj
滴答==> test.txt <==
aaaaaaaaaaaaaaaaaaaaaaaaaaaa
  • tail命令的使用
tail 显示文件的后面的内容
tail -n 10 filename.txt #显示后十行
tail -f filename.txt #持续打印文件的后面的内容
  • more命令的使用
more命令显示文本内容非常多的时候使用,它是以一页一页显示的。
more filename.txt
回车查看下一行的内容
空格查看下一页的内容
q退出more 的状态
more命令不⽀持向前翻⻚
  • less命令的使用
less和more差不多,less的好处是可以向前翻⻚
more有的功能less都有,more没有的less也有
  • 创建文件方式
# 文本文件的创建
touch file.txt file1.txt  # 创建的⽂本⽂件默认都是空的
# 如果touch后⾯跟的⽂件已经存在,那么就更新这个⽂件的时间戳touch file{1..5} # 这样可以创建五个文件 分别是file1 file2 file3 file4 fil5 可以批量创建文件Linux里的后缀名是没有作用的,但是加上后缀,让人看着是有意义的。
为什么说windows⾥⾯要有后缀名呢? 菜鸡保护机制# 在Linux里如何查看文件的类型
file /opt/
[root@localhost opt]# file /opt/
/opt/: directory # 这是一个目录
file /opt/filename[root@localhost opt]# file /opt/filename.txt 
/opt/filename.txt: UTF-8 Unicode text # 这是一个文件
  • 创建目录的命令
mkdir 创建目录
mkdir demo
mkdir -p demo/demo1/demo2 # -p parents 父级目录 
# 	如果没有/tmp/demo1/demo2 ⽬录,-p参数会让demo1⽬录⾃动创建
  • 删除命令
#删除目录
rmdir demo #demo假设是一个目录
#删除除目录以外的文件
rm  filename # 会询问你是否删除
#强制删除,不询问
rm -f filename-i 参数能提示是否删除⼀个⽂件
-r 参数能赋予rm删除⽬录的能⼒
-r -f⼀起⽤,⽂件⽬录都能在不提示的情况下,直接⼲掉(删除),删对了,升职加薪,⾛向⼈⽣巅峰。
删错了,再⻅。
  • 文件的拷贝和剪贴
指定多⽂件拷⻉
cp 源⽂件1 源⽂件2 .... ⽬的⽬录path
cp 如果最后⼀个⽂件是⼀个存在的⽬录,就将cp指定的⽂件拷⻉到⽬标⽬录拷⻉且改名(备份) 常用
cp 源⽂件 ⽬的⽬录/awhduawdaw
cp如果最后⼀个⽂件并不是⼀个存在的⽬录,就将cp指定的⽂件拷⻉到⽬标名字的上层⽬录,并且将名字更改为⽬标
名字
cp /etc/hosts /root/Desktop/hosts.bakcp -r可以拷⻉⽬录cp -a 可以保留⽂件的原有属性 # 必须是以root权限创建的目录cp -i 也有-i提示参数# 文件的移动
# ⽤法和cp基本⼀致,唯⼀的不同就是移动之后,源⽂件没了,到了新的路径
# 如果移动的源⽂件和⽬的⽂件路径⼀致,就可以实现改名的操作
mv 源文件  目标文件
  • 通配符
?就是通配符的⼀个,"?"表示⼀个⾮空的任意字符
\表示转移字符,能让特殊字符失去原有的功能
[]表示匹配"[]"包含的其中的⼀个字符[a-z]表示所有的字⺟[A-Z]表示匹配所有⼤写的字⺟[1-9]表示匹配所有的数字[^] # ^ 表示非得意思 
*表示匹配任意数量的字符
  • vim编辑器
vim 有四大模式
命令行模式
编辑模式
末行模式
可视化模式
1. 命令行模式hjkl 表示命令模式里调整光标方向的命令 h 左j 下k 上l 右
gg 切换到行首
G 切换到最后一行
输入nG 就能切换到第n行 # 比如输入3G 就能到第三行  按完3松手,再按G
光标位置,按x 就能删除光标所在的字符 ,连续按x 向右边删
如果输入X 就能删除光标左边的字符,连续按X向左边删
按u 撤销 ,相当于Windows的Ctrl+z,	Linux里的撤销次数几乎无限,Windows由于缓冲区不一样,撤销次数有限制。#命令行模式的高级用法
dd 在命令模式下,按dd删除光标所在行 按5dd 删除包含光标所在行的下面的5行
yy 在命令模式下,按yy 复制光标所在行,按8yy,复制包含光标所在行的下面的8行
p 粘贴复制的文本内容 粘贴到光标所在行的下一行
P 粘贴复制的文本内容, 粘贴到光标所在行的上一行
p 和 P 都可以把在上次执行的yy 或者dd命令来粘贴出来。
2. 编辑模式在命令模式下,输入 i / I / a / A / o / O 都能进入编辑模式
在(任何)编辑模式下,按esc都能回到命令模式命令模式下按i ,从光标所在行左边插入文本
命令模式下按a , 从光标所在行右侧插入文本
命令行模式按I , 从光标所在行行首开始插入文本
命令行模式按A , 从光标所在行行尾开始插入文本
命令行模式按o , 从光标所在行的下一行另起一行插入文本
命令行模式按O , 从光标所在行的上一行另起一行插入文本
3. 末行模式
在命令模式下,输入正斜线"/" 或者 冒号":" 进入末行模式常见操作如下- 查看指定的字符串 # 输入 /  (/test)再输入要查找的字符,会以高亮显示。没找到就报错。# 找到多个相同的字符串,按n 切换到下一个找到的字符串,按N切换上一个找到的字符串- 文本内容的替换:5,10s/aaa/bbbbbbb/g# g :global # 代表全局替换的意思将包含第5行和第10行所有的aaa全部替换成bbbbbbbb:1,$s/RRR/fffff/g将第一行到最后一行的RRR全部替换成ffffff :1,$s/\/var\/log/\/opt\/filename/g # 记得转义如果在后面不加g ,就只替换每一行遇到的第一个匹配的字符串被替换。- 保存文本内容# 按 :  # w 保存, wq 保存并退出  wq! 保存并强制退出 - 退出vim编辑器# 输入q 退出,q! 强制退出 # 常见操作 输入 :set number 显示行号  简写 :set nu:set nonumber 取消行号  简写 :set nonu
4. 可视化模式
命令模式,按 v 或者 V进入可视化模式

Linux里的重定向

  • 输出重定向
我们可以使用 >  >> 来将命令的结果输入到一个文件中
cat /etc/hosts >> ./file.txt # 没有这个file.txt文件,会默认创建这个文件
cat /etc/hosts > ./file.txt # 一个 > 是会直接覆盖源文件的,两个 >> 是追加内容。不会覆盖原有的内容> 正确的覆盖
>> 正确的追加2> 错误的覆盖
2>> 错误的追加&> 正确的错误的都覆盖
&>> 正确却错误的都追加&>> /dev/null #它是一个黑洞文件,可以将一些敏感的或者无关紧要的东西重定向到这个文件中。
举例:cat /etc/hosts &>> /dev/null
  • 输入重定向(可以将交互式命令变为非交互式命令)
<<<
[root@localhost ~]# cat <<EOF
> you
> ni
> hao
> EOF
you
ni
haocat > hello.txt <<EOF
>nihao
>AAA
>EOF
  • 管道命令
1.管道两边都总有命令
2.管道的左侧产生输出结果,经过管道后,变成输入ls | xargs cat #这个xargs 将输出的内容作为cat的参数来使用。
比如ls 的结果是 file.txt(这里面存的内容是ABCDEFG)
那么 ls | xargs cat就是 cat file.txt 这样的意思。
也就是说,最后输出的是ABCDEFGgrep # 中文的意思:抓
# grep 内容 文件名
过滤文件中的内容。
grep filename
参数解释
-i  不区分大小写
-v 反向抓取(比如,你要抓123 加了-v 就是除了123都过滤)
-n 显示行号
-A after 将抓取关键字后两行列出来
-B before 将抓取关键字前两行列出来在管道里使用grep的命令频率很高
ls | grep abc
  • 快捷键
ctrl + a 移动光标到最左侧
ctrl + e 移动光标到最右侧

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

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

相关文章

NDK 基础(一)—— C 语言知识汇总

本系列文章主要是介绍一些 NDK 开发所需的基础知识&#xff0c;目录如下&#xff1a; NDK 基础&#xff08;一&#xff09;—— C 语言知识汇总 NDK 基础&#xff08;二&#xff09;—— C 语言基础与特性1 NDK 基础&#xff08;三&#xff09;—— C 语言基础与特性2 NDK 基础…

MF(推荐系统的矩阵分解技术)论文笔记

论文概述 推荐系统的矩阵分解技术可以为用户提供更为准确的个性化推荐&#xff0c;对比传统的近邻技术&#xff0c;矩阵分解技术可以纳入更多信息&#xff0c;如隐式反馈、时间效应和置信度 近邻技术&#xff1a;基于用户或物品之间的相似性进行推荐&#xff0c;当用户之间已…

ChatGPT4.0知识问答、DALL-E生成AI图片、Code Copilot辅助编程,打开新世界的大门

目录 1、DALL-E 文字转图片 在线AI修改2、Write For Me3、Code Copilot 目前最强的AI编程大模型4、Diagrams: Show Me5、Instant Website [Multipage] 网站合成神器6、AskYourPDF Research Assistant 无限PDF7、Diagrams & Data: Research, Analyze, Visualize 精读Excel …

【注解和反射】获取类运行时结构

继上一篇博客【注解和反射】类加载器-CSDN博客 目录 七、获取类运行时结构 测试 getFields()和getDeclaredFields() getMethods()和getDeclaredMethods() 七、获取类运行时结构 获取类运行时结构通常指的是在Java等面向对象编程语言中&#xff0c;使用反射&#xff08;Ref…

迁移学习基础知识

简介 使用迁移学习的优势&#xff1a; 1、能够快速的训练出一个理想的结果 2、当数据集较小时也能训练出理想的效果。 注意&#xff1a;在使用别人预训练的参数模型时&#xff0c;要注意别人的预处理方式。 原理&#xff1a; 对于浅层的网络结构&#xff0c;他们学习到的…

[Swift]单元测试

编写单元测试是确保你的代码质量和功能正确性的重要步骤 一、编写单元测试的详细流程 1. 创建一个新的Xcode项目 如果你尚未创建一个项目&#xff0c;首先你需要在Xcode中创建一个新的iOS项目&#xff1a; 打开Xcode&#xff0c;选择“File” > “New” > “Project”…

重生之我是Nginx服务专家

nginx服务访问页面白色 问题描述 访问一个域名服务返回页面空白&#xff0c;非响应404。报错如下图。 排查问题 域名解析正常&#xff0c;网络通讯正常&#xff0c;绕过解析地址访问源站IP地址端口访问正常&#xff0c;nginx无异常报错。 在打开文件时&#xff0c;发现无法…

R可视化:ggplot2绘制双y轴图

介绍 ggplot2绘制双y轴图加载R包 knitr::opts_chunk$set(message = FALSE, warning = FALSE) library(tidyverse) library(readxl)# rm(list = ls()) options(stringsAsFactors = F) options(future.globals.maxSize = 10000 * 1024^2)Importing data 下载Underdetection of c…

IDEA实现Springboot项目自动热部署

每当我们在修改代码时&#xff0c;往往需要重新启动项目&#xff0c;这样不仅浪费时间而且很麻烦&#xff0c;我们可以通过IDEA的热部署来提高效率 1、首先点file >> settings >> Build Excution >> Compire&#xff0c;选择Build project auto matically 2.…

CMakeLists.txt中如何添加编译选项?

1. 引子 编译器有多种可供选择&#xff0c;如g、c、clang等&#xff0c;如下以c作为示例。 2. 使用CMAKE_CXX_FLAGS添加编译选项 在Makefile中可能用类似如下的指令来添加编译选项&#xff1a; /usr/bin/c -Wall -Wextra -Wno-sign-compare -Wno-unused-variable -Wno-unuse…

flutter笔记-主要控件及布局

文章目录 1. 富文本实例2. Image2.1 本地图片2.2 网络图片 笔记3. 布局4. 滑动相关view4.1 GridView类似九宫格view4.2 ListView 关于widget的生命周期的相关知识这里就不做介绍&#xff0c;和很多语言类似&#xff1b; 1. 富文本实例 Dart中使用richtext&#xff0c;示例如下…

Vue3+Vite开发的项目进行加密打包

本文主要介绍Vue3+Vite开发的项目如何进行加密打包。 目录 一、vite简介二、混淆工具三、使用方法1. 安装插件:2. 配置插件:3. 运行构建:4. 自定义混淆选项:5. 排除文件:下面是Vue 3+Vite开发的项目进行加密打包的方法。 一、vite简介 Vite 是一个由 Evan You 创造的现代…

XBoot:基于Spring Boot 2.x的一站式前后端分离快速开发平台

XBoot&#xff1a;基于Spring Boot 2.x的一站式前后端分离快速开发平台 摘要 随着信息技术的迅速发展&#xff0c;快速构建高质量、高可靠性的企业级应用成为了迫切需求。XBoot&#xff0c;作为一个基于Spring Boot 2.x的一站式前后端分离快速开发平台&#xff0c;通过整合微信…

针对icon报错

针对上篇文章生成图标链接中图标报错 C# winfrom应用程序添加图标-CSDN博客 问题&#xff1a;参数“picture”必须是可用作Icon的参数 原因&#xff1a;生成的ico图标类型不匹配 解决方法&#xff1a; 更改导出的ico类型

iOS - 多线程-读写安全

文章目录 iOS - 多线程-读写安全1. 多读单写1.1 场景1.2 实现方案1.2.1 pthread_rwlock&#xff1a;读写锁1.2.1.1 示例 1.2.2 dispatch_barrier_async&#xff1a;异步栅栏调用1.2.2.1 示例 iOS - 多线程-读写安全 假设有一个文件&#xff0c;A线程进行读取操作&#xff0c;B…

数智时代的AI人才粮仓模型解读白皮书(2024版)

来源&#xff1a;极客邦科技 自 2023 年上半年起&#xff0c;ChatGPT 等大模型技术蓬勃发展&#xff0c;AI 技术不断突破边界&#xff0c;展现 出惊人的潜力和发展速度。从早期的逻辑推理、专家系统&#xff0c;到如今的深度学习、神经网络&#xff0c; AI 技术显著缩小了科学…

ASP.NET企业投资价值分析系统

摘 要 本文将影响股票投资价值的宏观因素、行业因素、企业内部等诸多因素予以量化分析&#xff0c;对钢铁板块和汽车板块各上市公司进行综合评估&#xff0c;为广大股民的投资方向和资金安全提供了有力的支持。本文还阐述了企业投资价值分析的必要性&#xff0c;说明了企业投…

分类算法——模型评估(八)

1混淆矩阵 在分类任务下&#xff0c;预测结果与正确标记之间存在四种不同的组合&#xff0c;构成混淆矩阵&#xff08;适用于多分类&#xff09; TP True Possitive FN False Negative 2精确率&#xff08;Precision&#xff09;与召回率&#xff08;Recall&#xff09; 精…

mysql-sql-练习题-2

日期topN 日期最值 topN 任意区间topN 每年温度top2建表排名函数万能公式&#xff08;条关&#xff09; 任意区间 各科第1,3,5名排名函数万能公式 日期 本周过生日 -- 本周表示 加减日期 格式化 拼接 select * from student where date_format(s_age,concat(year(curdate()),…

微信小程序开发六(自定义组件)

自定义组件的创建&#xff1a; 如何创建&#xff1a; 右键选择新建component 创建完成之后需要打开app.json&#xff0c;这是全局使用这个组件&#xff0c;想要单独的页面使用&#xff0c;就在当前页面的json文件中定义 "usingComponents": {"my-zj": &quo…