简介
概述 Linux文件系统中的文件不仅包含文件系统的结构,还有数据。所有Linux 用户和程序看到的文件、目录等都存储在其中。
目录结构 linux文件系统的目录结构,如图所示:
-
/bin: bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。 -
/boot: 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。 -
/dev : dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。 -
/etc: etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。 -
/home: 用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的 -
/lib: lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。 -
/media: linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。 -
/mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。 -
/opt: opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 -
/proc: proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 -
/sbin: s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。 -
/selinux: 这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。 -
/srv: 该目录存放一些服务启动之后需要提取的数据。 -
/tmp: tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。 -
/usr: usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。 -
/usr/bin: 系统用户使用的应用程序。 -
/usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。 -
/usr/src: 内核源代码默认的放置目录。 -
/var: var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 -
/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
基本操作
cd 操作 cd命令是linux中最基本的命令语句,必须熟练掌握。
cd / 返回根目录
cd ~ 用户主目录 cd /root 与 cd 的效果一致.
cd . 当前目录
cd ..返回到上一级目录
cd /usr/ 进入到usr目录
cd – 返回上一个目录
cd 直接回家
ls目录显示
ls –l 详细格式,文件权限,时间
ll 和ls –l作用相同
ls *.txt 查看所有的txt类型文档
创建和删除目录
mkdir 创建目录
mkdir a 创建 a目录
mkdir -p a/b 创建 a目录,并在a目录里创建b目录
mkdir -m 777 c 创建一个权限为777的C目录
rmdir 删除目录(如果目录里有文件,则不能用此命令)
创建和删除文件
touch 创建文件
touch f1.txt
touch f2.txt f3.txt
touch -a aa.txt #-a 参数更改最后访问的时间
rm 删除文件
rm n.txt 提示y删除n放弃
rm –f n.txt 不提示
rm –rf dirname 不提示递归删除目录下所以内容
rm –rf * 删除所有文件
rm –rf /abc
浏览文件内容
cat 查看文件所有的内容(缺陷是文件比较长是也是直接到到文件尾),例如:
cat -n /etc/profile #-n 表示行号
more通常会结合cat使用输出文档所有的内容,分页输出,空格浏览下一屏,enter表示一行一行看,按q退出,ctrl+b 向上看一屏,ctrl+f表示向下看一屏。
more /etc/profile #这里表示将cat的内容交给more进行分页显示
less 用法和more类似,用来分屏查看文件内容,它的功能与more指令类似,但是比more更加强大,此指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于大型文件会有较高的性能。通过PgUp、PgOn,空格等键来控制文件内容的显示,按q则退出。
less /etc/profile
echo 用于输出文件环境信息,当然也可以输出文本信息,例如
echo $PATH
echo ‘hello’ #输出普通串
head指令一般用于显示文件的头几行,默认显示文件的前10行
head /etc/profile
head -n 5 /etc/profile
tail 用于显示文件后几行,默认显示后10行,例如:
tail -5 nginx.conf 查看nginx.conf的最后5行
tail –f nginx.conf 动态查看日志,方便查看日志新增的信息,使用频繁(例如在一个窗口增加内容,一个窗口查看内容,检测文件内容的变化。
ctrl+c 结束查看
打包和压缩命令
tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成name.tar.gz的文件。
-c 创建一个新的tar文件 -v 显示运行过程的信息 -f 指定文件名 -z 调用gzip压缩命令进行压缩 -t 查看压缩文件的内容 -x 解开tar文件
tar –cvf n.tar .
Find 查找文件 语法:
find [PATH] [option] [action]
与时间有关的参数:
-mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件; -mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名; -mtime -n : 列出在n天之内(含n天本身)被更改过的文件名; -newer file : 列出比file还要新的文件名
例如:
find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件
与用户或用户组名有关的参数:
-user name : 列出文件所有者为name的文件 -group name : 列出文件所属用户组为name的文件 -uid n : 列出文件所有者为用户ID为n的文件 -gid n : 列出文件所属用户组为用户组ID为n的文件 例如:
find /home/hadoop -user hadoop # 在目录/home/hadoop中找出所有者为hadoop的文件
与文件权限及名称有关的参数:
-name filename :找出文件名为filename的文件 -size [±]SIZE :找出比SIZE还要大(+)或小(-)的文件 -type TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p); -perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755; -perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示 -perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示
例如:
find / -name passwd # 查找文件名为passwd的文件
find . -perm 0755 # 查找当前目录中文件权限的0755的文件
find . -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte
总结(Summary)
Linux文件系统是linux系统的核心,所有linux数据和操作都是基于文件系统展开,要强化理解和实践
|