Linux目录的基本结构(RHEL8系统基本使用之文件操作)

1.Linux的目录树结构

2.各目录的功能介绍

3.理解文件路径表示方法

Who?——>当前登录的用户

Where?——>路径

我要在哪儿创建文件?

我要删除什么地方的什么文件?

我所要查看的文件在哪里?

What?——>操作命令

How?——>理清思路,找到方法,做就对了

绝对路径

1. 一定是以"/"(根)开头,它是唯一一个绝对能够描述文件所在路径的方式。

2. "/" 根目录是linux操作系统最顶级的目录,没有任何路径比它还要靠前。

相对路径

1. 路径是相对的,文件所在的路径是相对于当前所在路径而言的。

2. 当前路径使用 .或./ 表示;当前目录的上一级目录使用 ..或../ 表示

3. 当前用户家目录使用 ~ 表示;上次工作路径使用 - 表示

路径切换和查看的相关命令

举例说明

[root@heima ~]# pwd 打印当前工作路径
/root
[root@heima ~]# cd /home 切换到/home目录下
[root@heima home]# cd ../ 切换到当前路径的上一级目录
[root@heima /]# pwd
/
[root@heima /]# cd ~ 切换到当前用户家目录
[root@heima ~]# cd - 切换到上一次工作路径
/
[root@heima /]# cd 切换到当前用户家目录
[root@heima ~]# pwd
/root

4.RHEL8文件操作管理

重要:Linux下,一切皆文件!!!

说在前面:

1. 接下来所有的命令需要在一个载体上执行,这个载体就叫做终端。

2. 终端上所有命令都需要一个东西翻译解析一下,计算机才能理解并执行。

3. 这个翻译解析的东西叫SHELL解释器,RedHat和Centos默认shell解释器叫bash。

4. 既然需要bash帮忙翻译解释相关命令,那么你所敲的命令必须符合它的语法,否则报错给你看。

命令 [可选项] 参数
[root@localhost ~]# ls -l /root
命令:整条shell命令的主体
选项:会影响或微调命令的行为,通常以-, --
参数:命令作用的对象

1、判断文件类型(file)

常见文件类型

用 file 命令来判断文件类型

[root@localhost ~]# file /root
/root: directory 目录
[root@localhost ~]# file /root/install.log
/root/install.log: ASCII text 普通的文本文件
[root@localhost ~]# file /dev/sda
/dev/sda: block special 块设备文件,存放数据
[root@localhost ~]# file /dev/tty1
/dev/tty1: character special 字符设备
[root@localhost ~]# file /bin/sh
/bin/sh: symbolic link to bash 软连接文件

2、列出目录内容(ls)

常见选项
-a all,查看目录下的所有文件,包括隐藏文件
-l 长列表显示
-h human,以人性化方式显示出来
-d 只列出目录名,不列出其他内容
-t 按修改时间排序
-r 逆序排列
-S 按文件的大小排序
-i 显示文件的inode号(索引号)
3、创建目录(mkdir)
4、创建文件(touch)
注意:Linux下文件的命名规则
1. 文件名严格区分大小写 file FILE
2. 文件名不能包含特殊符号,如(/或*等)
3. 文件名最多可达255个字符
创建一个新的空文件(目标文件不存在)
修改文件的时间(目标文件存在)
查看文件的相关时间
-R 递归列出目录中的内容
-m 用逗号分隔显示内容
示例:以不同的选项列出/root目录里的内容
[root@localhost ~]# ls -a /root
[root@localhost ~]# ls -l /root
[root@localhost ~]# ls -lh /root
[root@localhost ~]# ls -lt /root
[root@localhost ~]# ls -S /root
[root@localhost ~]# ls -R /root
[root@localhost ~]# ls -d /root 查看/root目录本身的信息

3、创建目录(mkdir)

常见选项
-p 级联创建
[root@localhost ~]# mkdir /test/ 在根下创建test目录
[root@localhost ~]# mkdir ./test/ 在当前目录下创建test目录
[root@localhost ~]# mkdir -p /test/yunwei/redhat
说明:
1.如果创建的目录的上一级目录不存在,就需要加-p参数;-p在前面和后面都可以

4、创建文件(touch)

注意:Linux下文件的命名规则

1. 文件名严格区分大小写 file FILE

2. 文件名不能包含特殊符号,如(/或*等)

3. 文件名最多可达255个字符 创建一个新的空文件(目标文件不存在)

[root@localhost ~]# touch /tmp/file1 在/tmp目录下创建file1文件
[root@localhost ~]# touch file1 在当前目录下创建file1文件
思考:这2个file1文件是同一个文件吗?
答:不是同一个文件,因为路径不一样。

修改文件的时间(目标文件存在)

查看文件的相关时间

[root@localhost tmp]# stat file1 查看文件的状态信息
File: `file1'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 915714 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-04-01 17:36:00.353096343 +0800
Modify: 2019-04-01 17:36:00.353096343 +0800
Change: 2019-04-01 17:36:00.353096343 +0800
Access:文件的查看访问时间
Modify:文件的修改时间
Change:文件的属性时间,文件的大小、权限等信息发生改变时,该时间会变化

修改文件的时间

[root@localhost tmp]# touch file1
[root@localhost tmp]# stat file1 查看文件的状态信息
File: `file1'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 915714 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-04-01 17:41:00.353096343 +0800
Modify: 2019-04-01 17:41:00.353096343 +0800
Change: 2019-04-01 17:41:00.353096343 +0800
其他修改:
[root@localhost tmp]# touch -a file1 -t 201506161320 修改文件点访问时间
[root@localhost tmp]# touch -m file1 -t 201612121330 修改文件修改时间
-a:访问时间
-m:修改时间
-t:时间类型格式
[root@localhost tmp]# touch -d 20110808 file1 修改文件日期
[root@localhost tmp]# touch -d 1215 file1 修改文件时间
[root@localhost tmp]# touch -d "20101012 11:11:11" file1 修改文件的日期和时间
说明:大家只需要掌握touch -d的用法即可。
注:RHEL6开始relatime,atime延迟修改,必须满足其中一个条件:
1. 自上次atime修改后,已达到86400秒;
2. 发生写操作时;

5、查看文件内容

cat 命令:一般查看小文件,从第一行到最后一行列出来

常见选项:

-n:显示行号

-A:显示控制字符,如换行符,制表符等( linux $ 和 Windows ^M$ )

tac 命令:一般查看小文件,从最后一行到第一行列出来

more和less 命令:一般查看大文件,q退出查看,可以搜索,建议

less命令 head 命令:默认查看文件前10行, head -n 15或head -15 表示查看前15行

tail 命令:默认查看文件后10行, tail -n 15或tail -15 表示查看后15行; -f 表示动态查看

ldd 命令:一般用来查看二进制的命令文件

[root@localhost tmp]# cat /etc/passwd 查看/etc/passwd文件内容
[root@localhost tmp]# cat -n /etc/passwd 查看/etc/passwd文件内容,并打印行号
[root@localhost tmp]# tac /etc/passwd 查看/etc/passwd文件内容
[root@localhost tmp]# head -5 /etc/passwd 查看/etc/passwd文件的前5行内容
[root@localhost tmp]# tail -5 /etc/passwd 查看/etc/passwd文件的后5行内容
[root@localhost tmp]# more /var/log/messages
[root@localhost tmp]# less /var/log/messages
[root@localhost tmp]# ldd /bin/mkdir 查看mkdir命令文件(二进制)的内容

6、拷贝文件(cp)

注意:本地文件拷贝

常用选项:
-a 递归拷贝文件,包括目录及文件属性信息
-r 拷贝目录
-p 拷贝文件包含文件的属性信息
-v 显示拷贝过程信息
用法:
cp 选项 需要拷贝的文件 拷贝到哪里去
# cp /root/file1 /home 拷贝/root/下的file1文件到/home目录下
# cp -r /home/itcast /root 拷贝/home/itcast目录到/root目录下
# su - user01 切换到user01用户下
$ touch file1
# cp -p /home/user01/file1 /tmp/ 拷贝home/user01/file1文件(包含属性信息)到/tmp下
# cp /root/file1 /tmp/test1 拷贝文件并且重命名
问:-a和-p有什么区别?
答:相同点都是需要拷贝文件的属性信息,比如拥有者(谁创建的等);不同点在于,-p只能拷贝文件,-a既可以拷贝文件
也可以拷贝目录。

7、移动或重命名文件(mv)

移动文件用法(不同路径下):
# mv 需要移动的文件 移动到新的路径下
注意:文件的路径不一样
重命名用法(相同路径下):
# mv 原来文件的名字 新文件的名字
注意:老文件和新文件的路径一样
# mv /root/file1 /tmp 移动/root/file1文件到/tmp目录下
# mv /tmp/file1 /tmp/test1 将/tmp目录下的file1文件重命名成test1

8、删除文件(rm)

常用选项
-r 递归删除,一般用于删除目录
-f 直接删除,不提示
[root@localhost tmp]# rm file1 删除当前目录下的file1文件,有提示
[root@localhost tmp]# rm -r dir1 删除当前目录下的dir1目录,有提示
[root@localhost tmp]# rm -f /root/file1 强制删除/root/file1文件,不提示,直接删

扩展补充

Linux下如何获取帮助

1、简约求帮助(help)

help命令:知道该命令的含义,相关参数不知道可以使用help
内部命令求帮助:help 命令
外部命令求帮助:命令 --help
cp --help
help cd

2、详细求帮助(man)

# man man
ANUAL SECTIONS
The standard sections of the manual include:
1 User Commands 所有用户使用命令
2 System Calls 系统调用
3 C Library Functions 函数库
4 Devices and Special Files 设备与特殊文件
5 File Formats and Conventions 文档格式说明
6 Games et. Al. 游戏
7 Miscellanea 杂项
8 System Administration tools and Deamons 系统管理员与程序用户相关
一般情况是不需要使用章节号,例如:
# man 1 ls
# man ls
# man useradd
# man setfacl (/EXAMPLES)
# man -f passwd 列出所有章节中的passwd手册
# man 1 passwd passwd命令的帮助
# man 5 passwd 用户配置文件的帮助
# man -a passwd 在所有章节中查找
# man -k passwd 以关键字导出man page
程序猿手册 man 23467
管理员手册 man 158

3、相关官方文档

http://httpd.apache.org/docs/2.4/
http://nginx.org/
http://tengine.taobao.org/nginx_docs/cn/docs/
https://www.zabbix.com/documentation/3.4/zh/manual
https://puppet.com/docs
其他社区
https://www.linuxidc.com/
等等

Bash的标准输入输出

1、名词解释

标准输入(stdin):键盘上的输入 文件描述符—>0

标准输出(stdout):屏幕上正确的输出 文件描述符—>1

标准错误(stderr):屏幕上错误的输出 文件描述符—>2

2、相关符号

> :标准输出重定向,覆盖重定向, 1>或> 标准输出重定向, 2> 标准错误重定向

>> :重定向追加, 1>> 标准输出追加, 2>> 标准错误追加

< :标准输入

&> :标准输出标准错误重定向

3、举例说明

① 环境准备

编写简单脚本(先直接复制用,后面说):
[root@localhost ~]# echo -e 'date\nuuu' > 1.sh 创建1.sh脚本文件
[root@localhost ~]# cat 1.sh
date
uuu
执行1.sh脚本,屏幕上有输出结果,如下:
[root@localhost ~]# bash 1.sh
Thu Feb 28 21:22:27 CST 2019 正确的结果叫标准输出
1.sh: line 2: uuu: command not found 错误的结果叫标准错误

② 需求1: 将标准输出(屏幕上的正确结果)重定向到/tmp/1.log文件中

[root@localhost ~]# bash 1.sh > /tmp/1.log
1.sh: line 2: uuu: command not found 标准错误(错误结果)依然在屏幕,正确结果到文件中了
[root@localhost ~]# cat /tmp/1.log 文件里是标准输出的结果
Thu Feb 28 21:24:12 CST 2019

③ 需求2: 将标准错误(屏幕上的错误结果)重定向到/tmp/2.log文件中

[root@localhost ~]# bash 1.sh 2> /tmp/2.log
Thu Feb 28 21:26:15 CST 2019 标准输出依然在屏幕,标准错误重定向到了文件中
[root@localhost ~]# cat /tmp/2.log
1.sh: line 2: uuu: command not found 文件里是标准错误的结果
注意:>或者2>都表示覆盖重定向
查看/etc/hosts文件内容,并将标准输出重定向到/tmp/1.log
[root@localhost ~]# cat /etc/hosts > /tmp/1.log
[root@localhost ~]# cat /tmp/1.log 查看该文件,发现原来内容被覆盖
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6总结:>或者1>表示标准输出重定向;2>表示标准错误重定向

④ 需求3: 将标准输出和标准错误一起重定向到/tmp/3.log里

[root@localhost ~]# bash 1.sh &>/tmp/3.log
[root@localhost ~]# cat /tmp/3.log
Thu Feb 28 21:33:36 CST 2019
1.sh: line 2: uuu: command not found
说明:
&>表示标准输出和标准错误一起重定向

4、echo命令

echo会将输入的字符串送往标准输出,并在最后加上换行符。 可以理解为打印字符串。

常见选项:
-n :不输出最后的换行符“\n”
-e:解释转义字符(字符串中出现\n、\t等特殊字符,则特别加以处理,而不会将它当成一般文字输出)

举例说明:

[root@localhost ~]# echo hello world 打印hello world
hello world
[root@localhost ~]# echo aaaa 打印aaaa
aaaa
[root@localhost ~]# echo hello > file1 将hello重定向到file1文件中
[root@localhost ~]# cat file1
hello
总结:
1. echo表示打印字符串,默认将字符串送往标准输出;默认会打印一个换行符
2. echo可以结合>或者>>符号来使用,进行文件的创建或内容追加。
常见控制字符:
\t 表示制表符
\n 表示换行符
[root@localhost ~]# echo -e 'date\nuuu' > 1.sh //-e表示将\n解释为换行符
[root@localhost ~]# cat 1.sh
date
uuu

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

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

相关文章

Ultralytics x SwanLab:可视化YOLO模型训练

Ultralytics是YOLO官方团队推出的CV训练与推理框架&#xff0c;不仅支持目标检测任务&#xff0c;还支持分割、姿态识别、分类等更多任务。 SwanLab是一个深度学习实验管理与训练可视化工具&#xff0c;由西安电子科技大学团队打造&#xff0c;融合了Weights & Biases与Ten…

java web爬虫

目录 读取本地文件 从网站读取文件 java爬虫 总结 读取本地文件 import java.io.File; import java.io.PrintWriter; import java.util.Scanner;public class ReplaceText {public static void main() throws Exception{File file new File("basic\\test.txt"…

vue3:插槽、具名插槽、条件插槽、作用域插槽、具名作用域插槽 一次性搞清楚 --- 通俗易懂

1、插槽的使用&#xff1a; ~父组件index.vue&#xff1a; <h3>我是父组件testSlot</h3> <!-- 调用子组件alertBox测试插槽 --> <alertBox></alertBox> <alertBox>Something good will be happened. /alertBox> <br> ~alertBo…

钓虾馆计时计费怎么用,佳易王钓虾馆钓鱼场计时器工具软件操作教程

钓虾馆计时计费怎么用&#xff0c;佳易王钓虾馆钓鱼场计时器工具软件操作教程 一、前言 以下软件操作教程以&#xff0c;佳易王钓虾馆钓鱼场计时计费软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 可以多种单价计费方式&#xff0c;在系统…

Elasticsearch 认证模拟题 - 4

一、题目 生成快照&#xff0c;或快照生命周期 1.1 考点 快照生命周期&#xff08;最好通过界面化配置&#xff09;创建仓库创建快照 &#xff08;因为这个需要部署共享文件&#xff0c;所以这个我就在虚拟机上简单操作一下&#xff09; 注&#xff1a; 部署共享文件系统可…

【开发利器】使用OpenCV算子工作流高效开发

学习《人工智能应用软件开发》&#xff0c;学会所有OpenCV技能就这么简单&#xff01; 做真正的OpenCV开发者&#xff0c;从入门到入职&#xff0c;一步到位&#xff01; OpenCV实验大师Python SDK 基于OpenCV实验大师v1.02版本提供的Python SDK 实现工作流导出与第三方应用集…

MySql全文索引+Ngram

一、关于Ngram 1.1 什么是ngram MySQL 内置的全文解析器使用单词之间的空格作为分隔符&#xff0c;这对于不使用空格做分隔符的语言是一种限制。为了解决这一限制&#xff0c;MySQL提供了一个支持中文、日文和韩文&#xff08;CJK&#xff09;的ngram全文解析器。ngram 全文解…

图像加雾算法的研究与应用

目录 前言 一、图像加雾 1、基于传统方法的雾图合成 2、基于深度学习的雾图合成 3、基于Lightroom Classic实现软件加雾 4、基于深度图的方法实现加雾 二、开源的数据集 三、参考文章 前言 在去雾任务当中&#xff0c;训练和评估去雾算法需要大量的带有雾霾和无雾霾的…

聊聊几种常见的分布式Session解决方案

highlight: xcode theme: vuepress 问题引入&#xff1a;什么是分布式Session&#xff1f; 分布式 Session 是指在多台服务器之间共享和管理用户的会话数据&#xff0c;使得用户的会话状态能够在不同的服务器上保持一致。这样&#xff0c;无论用户的请求被路由到哪台服务器&…

【Go语言精进之路】构建高效Go程序:掌握变量、常量声明法则与iota在枚举中的奥秘

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 引言一、变量1.1 基础知识1.2 包级变量的声明形式深入解析&#x1f4cc; 声明并同时显式初始化&#x1f4cc; 声明但延迟初始化&#x1f4cc; 声明聚类与就近原则 1.3 局部变量的声明形式深入探讨&#x1f4cc; 延迟初始化的…

你认识nginx吗,nginx是做什么的,nginx可以做什么 --1)nginx介绍

一.Nginx 介绍 Nginx&#xff08;发音同engine x&#xff09;是一个异步框架的 Web 服务器&#xff0c;也可以用作反向代理&#xff0c;负载平衡器 和 HTTP 缓存。该软件由 Igor Sysoev 创建&#xff0c;并于2004年首次公开发布。同名公司成立于2011年&#xff0c;以提供支持。…

PHP:集成Xunsearch生成前端搜索骨架

如果是安装宝塔&#xff0c;我们在集成xunsearch的时候就会比较简单&#xff0c;后面我们在介绍其他的接入方式&#xff1b; 首先我们进入到宝塔管理后台&#xff1a;【软件商店】-【输入xun】-【点击xunsearch】直接安装即可 安装成功之后&#xff0c;会自动在www/server中创…

大模型高级 RAG 检索策略:自动合并检索

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…

比较3维空间中4个点的不同结构

在4*4*4的3维空间中&#xff0c;取4个点共有635376种可能&#xff0c;有209个结构&#xff0c;继续按旋转对称分类则只有55个不同的结构。如其中的4t12 4个点在同一个平面&#xff0c;有1个点与其中的3个点不在同一行也不在同一列&#xff0c;这样的位置不止一个 这两个结构都是…

ubuntu系统下安装mysql的步骤详解

一、下载安装包 下载地址&#xff1a; https://dev.mysql.com/downloads/repo/apt 跳转到这个页面&#xff1a; 直接点击Download。 直接点击最下面的开始下载安装包即可。 二、将安装包下载到ubuntu系统中 先将用户切换成root用户&#xff0c;把下载好的安装包复制到桌面上&…

丛林生存法则其实就两个字:输出

不管你是在上班&#xff0c;还是在灵活就业&#xff0c;现在的大环境下&#xff0c;你要想活下来&#xff0c;生存下去&#xff0c;一定要记住这两个字&#xff1a;输出。如果你能记住更多的字&#xff0c;那便是持续高水平的输出。 你如果是大厂程序员&#xff0c;你肯定发现…

Linux DHCP server 配置

参考&#xff1a;linux dhcp配置多vlan ip_linux 接口vlan-CSDN博客 配置静态IP地址&#xff1a; 给固定的MAC地址分配指定的IP地址&#xff0c;固定的IP地址不必包含在指定的IP池中&#xff0c;如果包含在IP地址池中&#xff0c;固定的IP地址会从IP地址池中移除 配置方法&…

清洁力强的洗地机前十名排行榜:2024十大洗地机热销款式好用不踩雷

如今&#xff0c;洗地机行业竞争激烈&#xff0c;各品牌紧紧抓住用户对智能化和深度清洁的需求&#xff0c;深入研究创新。经过几轮行业内部的激烈竞争后&#xff0c;许多厂商在宣传中各说各的&#xff0c;对洗地机的重要参数描述不一&#xff0c;给消费者的选择带来了不少困惑…

【CVPR_2024】:逐元素乘积为什么会产生如此令人满意的结果?

写在前面&#xff1a;本博客仅作记录学习之用&#xff0c;部分图片来自网络&#xff0c;如需引用请注明出处&#xff0c;同时如有侵犯您的权益&#xff0c;请联系删除&#xff01; 文章目录 前言论文重写星形运算一层网络推广多层网络特殊情况 W 1 W_1 W1​和/或 W 2 W_2 W2​…

JDK版本特性(JDK8\11\17\21版本)

JDK版本特性 Oracle官网https://www.oracle.com/java/technologies/java-se-support-roadmap.html Oracle官网中JDK版本的说明&#xff0c;Java SE 8、11、17和21是LTS版本。也就是长期支持版本。 我们针对这几个版本了解学习下对应版本的新特性。 JDK8版本 正式发布于2014…