1.RedHat认证-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.bak

cp -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
hao



cat > hello.txt <<EOF
>nihao
>AAA
>EOF
  • 管道命令
1.管道两边都总有命令
2.管道的左侧产生输出结果,经过管道后,变成输入

ls | xargs cat #这个xargs 将输出的内容作为cat的参数来使用。
比如ls 的结果是 file.txt(这里面存的内容是ABCDEFG)
那么 ls | xargs cat就是 cat file.txt 这样的意思。
也就是说,最后输出的是ABCDEFG


grep # 中文的意思:抓
# grep 内容 文件名
过滤文件中的内容。
grep filename
参数解释
-i  不区分大小写
-v 反向抓取(比如,你要抓123 加了-v 就是除了123都过滤)
-n 显示行号
-A after 将抓取关键字后两行列出来
-B before 将抓取关键字前两行列出来


在管道里使用grep的命令频率很高
ls | grep abc
  • 快捷键
ctrl + a 移动光标到最左侧
ctrl + e 移动光标到最右侧
  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值