Linux 学习总结(五)-linux 文件系统及相关命令
一 linux文件系统概要
linux系统结构有别用于windos,他是树状结构的文件系统,在linux下我们称一切皆文件,我们将一个目录,可以成称为目录文件。
linux只有一个单独的顶级目录结构。所有一切都从root开始,用'/'代表,并且延伸到子目录。
DOS/Windows有不同的分区同时目录都存于分区上。
linux则通过'加载'的方式把所有分区都放置在root下制定的目录里。
windows下最接近于root的是c:。
一句话总结:Windows下,目录结构属于分区;Linux下,分区属于目录结构。
在windows下,启动时检测不同的分区并被赋予一个分区字母。在linux下除非你加载一个分区或设备,否则系统不会知道那个分区的存在。
这看上去也许不是访问分区或设备的最方便的方式,但他提供了伟大的机动性。
来看一下linux的树状文件系统结构
二 linux目录文件详解
下面我们逐一了解下整个目录
/ 根目录,一切文件都在他之下
/bin 存放必要的命令 例如 ls cat cp
/boot 存放系统内核以及启动所需文件 我们看到grub就在他里面
/dev 存放设备文件 如我硬盘,/dev/hda 光驱 /dev/cdrom
串口 /dev/tty 刚说了一切皆文件,访问设备就是访问文件刚目录就是访问设备的入口
/etc 存放系统的配置文件 ,所有系统管理所需要的配置文件和子目录
比如/etc/profile /etc/bash.rc
/home 用户文件的主目录,相当于windos下C:\Users,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的 比如/root /lv-linux
前者是root 用户,后者是普通用户
/lib 存放的是系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
/proc 该目录是一个虚拟的目录,是系统内存的映射,我们可以通过直接访问来获取系统信息,存放存储进程和系统信息
/usr 包含了一般不需要修改的应用程序,命令程序文件、程序库、手册和其它文档,类似于Windows下的Program Files目录,用户的很多应用程序和文件都存放在该目录下
/media 系统自动识别外设的挂载点 如u盘
/mnt 为用户提供的临时挂载点, 存放临时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子目录下
/opt 额外安装软件所设置的目录,该目录默认为空.比如可以安装mysql数据库到这里
/sbin:s就是Super User的意思,该目录存放的是系统管理员使用的系统管理程序
/usr/bin:该目录存放的是系统用户使用的应用程序。
/usr/sbin: 该目录存放的是超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src :该目录是内核源代码默认的放置目录。
三:几种文件类型介绍
输入ls -l
第一列第一个字符就是文件类型
'd' 表示该文件为目录;
'-' 表示该文件为普通文件;
'l' 表示该文件为链接文件(linux file),上边提到的软链接即为该类型;
'b' 表示该文件为块设备,比如 /dev/sda 就是这样的文件。
'c' 表示该文件为串行端口设备,例如键盘、鼠标。
's' 表示该文件为套接字文件(socket),用于进程间通信。
四 cd 命令
相对路径和绝对路径:
举个例子,你要从家里到公司有两种办法:
1:你从家里 到地铁站,再到公司,这条路从家里出发完整走一遍就是绝对路径
2:你恰好在公司附近的公园散步,这时候去公司,就不需要回到家里,这样就是相对路径
vi /etc/sysconfig/network-scripts/ifcfg-ens33
该路径就是绝对路径,从根下找起
比如上面我可以找操作
先 cd /etc/syconfig/network-scripts
然后执行 vi ifcfg-ens33 这时vi 后面跟的就是相对路径
如果你这在/root 下查看cat ifcfg-ens33 肯定实现不了
因为当前目录下没有该文件你还是要老老实实cat /etc/sysconfig/network-scripts/ifcfg-ens33
怎么看我当前在哪个目录下, pwd 就可以
下面介绍几中cd 用法
1 cd - 返回上次所在目录 执行两次回到当前目
2 cd ~ 进入用户家目录,比如你当前是以root用户登录,并且进入到其他目录 你可以cd ~ 就到/root
3 cd ..回到上级目录,比如你现在处在/etc/sysconfig/network-scipts 目录下
你执行cd ..就到了/etc/sysconfig 下,再执行一次就到/etc 下
五 mkdir rmdir rm ls 命令
1 mkdir 创建目录
比如我在根目录下创建一个python目录
mkdir /python 就可以
如果我要创建一个复式目录,在根下创建一个/python/program
你可以cd 到python 下 mkdir program
你也可以 直接执行 mkdir -p /python/program
2 rmdir 删除目录
rmdir 只能删除非空目录,如果包含文件文件无法删除
rmdir -p 也只能删除非空复式目录,
举例: mkdir -p /123/456/789
这时 rmdir -p /123/456/789 可以全部删除
如果touch /123/456/789/a.txt
此时 rmdir -p 无法删除任何文件
如果 touch /123/a.txt
rmdir -p 可以删除掉/456/789 保留 /123/a.txt
3 rm 删除文件和目录
rm 不跟参数只能删除文件,不能删除目录
rm -rf 可以删除任意目录或文件
例如 touch /123/456/789/a.txt
rm /123/456/789/a.txt 可以删除a.txt 其他目录均保留
touch /123/1.txt /123/456/2.txt /123/456/789/3.txt
此时用rm -r /123/456/789可以删除3.txt 和789目录,要根据提示输入两次yes
rm -rf /123/456/789 全部删除
带v参数 rm -rfv 可以看到执行过程
4 ls 命令
ls 是list 的意思,罗列目录文件下的内容,下面我么介绍几种用法:
ls -a 显示所有文件和目录 (看查看到隐藏文件)
-l 以长格式显示,每行只显示一个
-i 显示文件索引节点号(inode)。一个索引节点代表一个文件
-t 按文件的修改时间由近及远排序显示
-d 仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表
-h 可以直观显示文件大小
-c ls不带参数的默认输出,多列显示
例子: ls -al | grep '^d' 显示所有目录