Linux学习02之文件系统&简单的文件系统命令

1.linux基础目录结构

// 安装tree
yum install tree -y   // 安装tree
tree /          // 可以查看整个linux系统的目录结构
tree -L 1 /     // -L表示层数 1表示第一层 即查看第一层的目录结构
/
├── bin
├── boot
├── dev
├── etc
├── home
├── lib
├── lib64
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── sbin
├── selinux
├── srv
├── sys
├── tmp
├── usr
└── var

在这里插入图片描述
上述目录具体的作用:

  • /bin:
    • /bin目录是包含一些二进制文件的目录,即可以运行一些应用程序,其中包含常用的一些程序命令。
  • /boot:
    • /boot目录包含启动系统所需的文件,不要随意动他,一旦有文件损坏,可能会造成linux无法开机,修复系统是一件很麻烦的事情。
  • /dev:
    • /dev目录包含设备文件,其中许多是在启动或者运行过程中动态生成的。
  • /etc:
    • /etc目录意味着"要配置的所有内容",它包含大部分的配置文件,其中包含:系统名称、用户及其密码、防火墙端口等一系列配置。
  • /home:
    • /home目录是用户的个人目录
  • /lib:
    • /lib目录是库文件存放的地方,库是包含应用程序可以使用的代码。
  • /media:
    • /media目录存放一些设备媒介文件,当外部插入存储器试图访问它时,将自动挂载它。
  • /mnt:
    • /mnt目录是一些过去的残余,是手动挂载存储设备或分区的地方。
  • /opt:
    • /opt目录是安装软件所在的位置,通常是编译软件所在的位置,跟/usr的区别再去,/usr中安装的类似于windows中安装软件时的programmfiles文件中存储的文件,而/opt目录则是安装软件时指定的安装路径位置。
  • /proc:
    • /proc文件系统是一种内核和内核模块用来向进程(process)发送消息的机制,是类似于/dev一样是伪文件系统(它只存在内存当中,而不占用外存空间),以文件系统的方式为访问系统内核数据的操作提供接口,这些接口可以用于在运行时获取相关部件的信息或者修改部件的行为,因而它是非常方便的一个接口.
  • /root:
    • /root是超级用户的主目录,与其他所用的主目录是分开的,一般不要去动他。
  • /sbin:
    • /sbin目录与/bin目录类似,但是这个目录是超级用户才需要,所以前面带s标志,/sbin目录通常包含可以安装、删除和格式化各种东西的工具,系统管理命令
  • /usr:
    • /usr目录中Unix Sortware Resource,也就是unix操作系统软件资源所放置的位置,而不是用户的数据,所有安装的软件都会默认放到/usr目录之下,系统安装完成,此目录会占据最大的硬盘容量。
  • /srv:
    • /srv目录中放置服务器的数据,如果在linux上运行web服务器,html等一些资源会放在/srv/http中,如果使用的事ftp服务器,数据会存放在/srv/ftp
  • /sys:
    • /sys目录也是伪文件系统,包含连接到计算机的设备的信息。
  • /tmp:
    • /tmp包含临时文件,通常由正在运行的应用程序放置,文件和目录通常包含应用程序现在不需要但以后可能需要的数据。
  • /var:
    • /var的起名来自variable,意味着可变的,var中包含了日志文件

简单来说:

/bin   二进制可执行命令
/dev   设备特殊文件
/etc   系统管理和配置文件
/etc/rc.d   启动的配置文件和脚本
/home   用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/lib   标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/sbin   系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp   公用的临时文件存储点
/root   系统管理员的主目录
/mnt   系统提供这个目录是让用户临时挂载其他的文件系统。
/lost+found   这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
/proc   虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var   某些大文件的溢出区,比方说各种服务的日志文件
/usr   最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:
/usr/x11r6   存放xwindow的目录
/usr/bin   众多的应用程序
/usr/sbin   超级用户的一些管理程序
/usr/doclinux   文档
/usr/includelinux下  开发和编译应用程序所需要的头文件
/usr/lib   常用的动态链接库和软件包的配置文件
/usr/man   帮助文档
/usr/src源代码,linux   内核的源代码就放在/usr/src/linux里
/usr/local/bin  本地增加的命令
/usr/local/lib  本地增加的库根文件系统

在这里插入图片描述

// 相应的脚本命令
echo  // 标准的输出格式
yum install XXX -y  // 安装插件的命令
ps -ef // 查看进程
man // 查看外部命令
help // 查看内部命令
whereis  // 查看文件所在位置
file  // 文件类型
echo $$  // 查看当前进程号
echo $PATH // 完整路径
echo $LANG  // 所用的语言
df  // 查看文件系统
df -h // 查看当前内存占有量
umount /xxx  // 卸载xxx分区,由于linux是虚拟文件目录,卸载掉了只是不能用了,但是还在
mount /xxx  // 重新挂载分区

2.基础的文件系统命令

在这里插入图片描述
在这里插入图片描述

// 含义解释:前面表示文件权限rwx,读写执行,总共9位,每3位一组,
// 后面表示other的权限,1表示硬连接的次数,
// 第一个root表示文件的属主,
// 第二个root表示文件的属组,
// 接着表示文件的大小,时间,以及文件名
-rw-------. 1 root root  900 Aug 20 05:26 anaconda-ks.cfg
-rw-r--r--. 1 root root 8901 Aug 20 05:26 install.log
-rw-r--r--. 1 root root 3384 Aug 20 05:25 install.log.syslog

在这里插入图片描述

// linux相关命令学习
------------------------------------------------------
df -h            // 查看磁盘挂载情况
du -h            // 查看当前文件的文件系统使用状态
[root@node01 a]# du -h
4.0K	./ccdir
4.0K	./bbdir
4.0K	./dddir
28K	.
前面表示文件大小
du -h /etc     // 指定查看指定目录下的文件系统使用情况
-------------------------------------------------------
cd ~             // 可以回到当前目录的家目录,称为波浪线扩展
mkdir a          // 创建a文件夹
mkdir /a/b/c -p  // 表示创建/a/b/c多级目录 -p表示父目录
mkdir {aa,bb,cc}dir  // 可以同时创建多个尾缀相同的文件夹
-------------------------------------------------------
rm -f profile    // 删除文件名为profile的文件
rm -r -f a       // 删除目录名为a的目录
rm -rf a         // 同上 -r -f 可以写在一起,-r表示递归删除
-------------------------------------------------------
./               // 表示当前目录
-------------------------------------------------------
cp copyFile copyFile1  // 拷贝文件到当前目录
cp copyFile /etc/xxx   // 拷贝文件到指定目录
cp -r aadir dddir      // 拷贝目录档当前目录
-------------------------------------------------------
mv copyFile copyFile.bak  // 更改当前文件名称
mv copyFile ./../      // 移动当前文件到上一级目录
mv aadir abdir         // 更改当前目录名称
mv abdir ./../         // 移动当前目录到上一级目录
-------------------------------------------------------
stat file              // 元数据,可以看点访问、修改、改变此文件/目录的时间
touch file             // 可以刷新元数据的三个时间
-------------------------------------------------------
前面一串字母表示inode节点编号,有这个编号系统读取文件时才可以得到索引获取到内容
3670024 -rw-r--r--. 2 root root   38 Aug 22 06:08 file
3670020 -rw-r--r--. 1 root root   10 Aug 22 06:02 filr
3670024 -rw-r--r--. 2 root root   38 Aug 22 06:08 profile
ll -i                // 可以查看到整个目录下所有的详细信息
ln file profile      // 建立硬连接,数据更改两者均变化!!,两者inode编号相同
--------------------------------------------------------
ln -s test profile222   // 建立软连接,有指向,数据更改两者均改变
3670019 lrwxrwxrwx. 1 root root    4 Aug 22 06:14 profile222 -> test
3670027 -rw-r--r--. 1 root root   47 Aug 22 06:14 test

注意:上述硬连接与软连接的区别在于,硬连接删除建立连接的对象,与其关联的对象仍然存在;软连接的话,删除之后,连接的对象报红,表明有错误。如下图所示
在这里插入图片描述

2.1 文本操作命令

more file   // 慢慢加载内容,可以按enter键,往下查看文件内容
less file   // 支持翻页,会将内容格式化成一页一页的格式,支持pageUp&pageDown翻页查看
head -2 file // 查看文件前两行内容
tail -2 file // 查看文件后两行内容
----------------------------------------------------------------
tail -f file // 可以实现对file文件的监控

上述tail -f file实现监控如下:(一般用于调试错误,实现错误日志的实时查看)
在这里插入图片描述
内容输出,我们可以新开一个窗口,保证信息的传递~
在这里插入图片描述
管道的概念
通过管道可以获取到想要的信息,并操作,在Linux中管道使用|表示,具体使用如下:

cat practice | head -2    // 获取practice的前两行内容
cat practice | tail -1    // 获取practice得最后一行内容

上述例子只是操作此目录下的文件,也可以指定不同目录下的文件,都可以实现管道传输!

3.小结

Linux的文件系统基本结构以及相应的目录下存储的文件格式介绍与基本的文件系统命令在学习过程中运用的很多,需要重点掌握,加油!!

发布了74 篇原创文章 · 获赞 12 · 访问量 8225

猜你喜欢

转载自blog.csdn.net/cao1315020626/article/details/100003531