Linux 文件系统

文章目录

  • Linux 文件系统
    • 目录与路径
      • 文件目录查看 ls
      • 复制移动删除创建 cp mv rm touch
      • 文件内容查看
      • 文件与目录的默认权限与隐藏权限
        • 默认权限
        • 隐藏权限
        • 文件特殊权限 SUID SGID SBIT
          • file查看文件类型
      • 指令与文件搜寻
    • 文件系统
      • 创建连接文件
      • 磁盘挂载与分区
    • 压缩与解压缩

Linux 文件系统

前面已经介绍了一部分文件权限和目录的相关知识点,接下来我们来学一下整个的文件系统。

目录与路径

执行一下下面的命令吧:

cd /  # 切换如根目录
cd   # 切换会家目录
pwd  # 显示当前目录路径(全路径)
mkdir aa # 创建目录aa
rmdir aa # 删除目录aa

环境变量:

执行一下下面的命令吧:

echo $PATH

sudo mv /bin/ls /root  # 移动文件ls到root中
ls # 无法执行,没有该命令
sudo /root/ls # 可以执行
sudo mv /root/ls /bin # 在拷贝回来
ls  # 一切正常

这个里面展示了我们的环境变量,这个很重要,如果我们需要的命令不在环境变量中,则我们无法使用相关命令,但是使用全路径的话也是可以使用该命令的。

文件目录查看 ls

上面的ls命令是查看目录的,这个命令还有其他参数,这里不列出,可以使用man查询

常用的如下: 自己去试一下看看效果吧

ls
ls -l
ls -al
ls -Al
ls -d

复制移动删除创建 cp mv rm touch

这些命令我们上面也用了一些。

  • 现在我们来尝试cp使用如下命令吧!
touch main.txt # 创建main.txt
ls   # 查询文件是否创建成功
cp main.txt main2.txt # 拷贝文件
cat main2.txt # 查看一下内容
vim main.txt # 编辑一下文件
cp main.txt main2.txt # 拷贝文件
cat main2.txt # 查看一下内容  , 这个时候我们发现文件时直接覆盖的
cp -i main.txt main2.txt # 拷贝文件,如果被目标文件存在则会询问
mkdir aa
cd aa
touch main.txt
cd ..
cp aa bb # 会提示
ls
cp -a aa bb # 全拷贝
ls
rm -r bb # 删除bb
cp -r aa bb # 递归拷贝
  • 接下来是rm命令
rm aa  # 应该会报错
rm -r aa # 删除目录aa
mkdir aa
rm -i -r aa # 询问是否删除
rm -rf aa # 强制删除
touch ./-aaa- 
rm ./-aaa-
  • 接下来是mv命令
touch main
mv main mm
ls
mkdir mmm
cd mmm/
touch main
cd ..
mv mmm/ ccc
ls
  • touch创建文件或者修改文件
c
touch -t 202201010202 aa.txt
ls -l

这些还有一堆的属性,只能在使用的时候慢慢去发现啦

文件内容查看

  • cat 查看文件(第一行到最后一行)tac 反向查看文件(最后一行到第一行)
vim aa.txt
cat aa.txt
cat -n aa.txt
cat -A aa.txt
tac aa.txt
  • nl
nl aa.txt # 忽略空行
nl -b a aa.txt # 空行也补行号
  • more less
more aa.txt # 向后翻页查看
less aa.txt # 前后翻页查看
  • head tail
head -5 aa.txt # 查看前5行
tail -5 aa.txt # 查看后5行
  • od
od -t c aa.txt # ASCII打开文件

文件与目录的默认权限与隐藏权限

默认权限

umask # 输出的去掉的权限的数字 (只看后三个,分别对应的  u g o)
umask -S # 权限的显示

隐藏权限

lsattr aa.txt
chattr +a aa.txt
  • a: 当设定a 之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有 root才能设定这属性
  • c: 这个属性设定之后,将会自动的将此文件了压缩],在读取的时候将会自动解压缩,
    但是在储存的时候,将会先进行压缩后再储存(看来对于大文件似乎蛮有用的!)
  • d:当 dump 程序被执行的时候,设定 d 属性将可使该文件(或目录)不会被 dump 备份
  • i:这个 可就很厉害了!他可以让一个文件了不能被删除、改名、设定连结也无法写入或新增数据!]对于系统安全性有相当大的帮助! 只有 root 能设定此属性
  • s:当文件设定了 。属性时,如果这个文件被删除,他将会被完全的移除出这个硬盘空间,
    所以如果误删了,完全无法救回来了喔!
  • u:与 s 相反的,当使用 来配置文件案时,如果该文件被删除了,则数据内容其实还存在磁盘中,
    可以使用来救援该文件喔!

文件特殊权限 SUID SGID SBIT

  • SUID:

    suid权限仅对二进制程序有效

    执行者对于该程序具有x的可执行权限

    本权限仅在执行该程序的过程中有效

    执行者将具有该程序拥有者的权限

  • SGID:

    SGID对二进制程序有用

    程序执行者对于该程序来说,需要具备X的权限

    执行者在执行的过程中会或则程序群组的支持

  • SBIT:

    用户对于此目录具有wx权限,亦即具有写入的权限

    当用户在该目录下简历文件或者目录时,仅有自己和root才有权限删除该文件

chmod 4755 aa.txt
ls -l
chmod 6755 aa.txt

SUID不是用在目录上,而SBIT不是用在文件上的。

file查看文件类型

执行一下命令吧:

file aa.txt

指令与文件搜寻

执行一下命令吧

cd
which ifconfig
which which

which history # 搜查不到
history --help # 可以使用? 为什么 后续提

whereis history
whereis ifconfig
whereis -m passwd 

sudo apt install plocate

locate ifconfig   # locate 查询是基于数据库查询的
updatedb   # 更新locate的数据库

sudo find / -name ifconfig

文件系统

执行一下命令试试:

df
df -h
df -ih

du /etc

创建连接文件

回到我们之前的aa.txt 文件目录, 执行以下命令吧

先尝试创建硬连接,再尝试创建软连接,看看有什么不一样吧

touch mm.txt
ln -i mm.txt aa.txt
vim aa.txt # 随便写点东西
cat mm.txt

ll -i aa.txt mm.txt  # 查询文件inode号码 两个是一致的

ln -s aa.txt dd
ls -al
ll -i aa.txt dd
cat dd

rm aa.txt
cat dd

磁盘挂载与分区

尝试执行一下命令:

  • 查看磁盘和分区信息
lsblk
blkid
parted /dev/sda print
  • 磁盘分区: MBR请使用fdisk分区,GPT请使用gdisk分区, 我这里就不详细分区了,感觉可以单独整出来。
gdisk /dev/sda
p  # 查看磁盘状态
q  # 退出gdisk

压缩与解压缩

回到aa.txt目录,尝试执行一下命令吧!

vim aa.txt

ls -al

tar -zcf aaa.tar.gz mm.txt
rm -f mm.txt
tar -zxvf aaa.tar.gz 
vim mm.txt

rm -f aaa.tar.gz

gzip mm.txt
gunzip mm.txt.gz

其他命令暂时不介绍了,用到了再查询吧

你可能感兴趣的:(linux,linux)