Linux学习(四):Linux文件系统及其shell命令
1、Linux文件的分类
在Linux系统中每一种文件的类型都用一个字符进行标识,主要有7种类型,可以简单的记忆为b、c、d、-、l、p、s每个字符所代表的的含义如下
2、Linux目录结构
在Linux学习(一)当中我们说过Linux有一个特点是,一切皆文件,所以目录也是一类特殊的文件。利用目录可以构成文件系统的分层属性结构。
Linux文件系统采用带链接的属性目录结构,即只有一个根目录,通常用“/”来表示,其中含有下级子目录或文件的信息;子目录中又可含有更下级的子目录或者文件的信息。这样一层一层延伸下去,构成一棵倒置的树,如下图
Linux系统的每个目录都有不同的功能
3、文件与目录相关命令
3.1 查看文件与目录
格式:ls[选项] [目录或文件]
范例:
1.ls /home
显示/home目录下的文件与目录(不包含隐藏文件)
2. ls –a /home
1.ls /home
显示/home目录下的文件与目录(不包含隐藏文件)
2. ls –a /home
显示/home目录下的所有文件与目录(含隐藏文件)
3. ls –l /home/linzhou/hello
显示/home/linzhou目录下的hello文件详细信息
3. ls –l /home/linzhou/hello
显示/home/linzhou目录下的hello文件详细信息
文件信息可以分为以下几个部分;
文件类型和访问权限:-rw-rw-r--,第一个字符为-,表示为普通文件,后面9个字符每3个为一组,依次代表所有者权限,同组用户权限,其它用户权限,r为可读,w为可写,x为可执行,-代表没有该权限。
文件链接数目:1,表示该文件没有被链接,每链接一次加1
文件所有者:linux
文件所属组:linux
大小:27个字节
修改时间
文件名称
3.2 改变工作目录
格式:cd目录名
范例:
1. cd /home/
范例:
1. cd /home/
进入/home目录
2. cd ..
退回到上一级目录
2. cd ..
退回到上一级目录
3.3 复制文件或目录
格式:cp[选项]源文件或目录
目标文件或目录
拷贝整个目录时加选项 -r
范例:1. cp /home/test /tmp/
将 /home目录下的test文件copy到/tmp目录下
2. cp –r /home/dir1 /tmp/
将 /home目录下的dir1目录copy到/tmp目录下
3.4 移动或更名
格式:mv[选项]源文件或目录
目标文件或目录
范例:
1.mv /home/test /home/test1
将 /home目录下的test文件更名为test1
1.mv /home/test /home/test1
将 /home目录下的test文件更名为test1
2.mv /home/dir1 /tmp/
将 /home目录下dir1目录移动(剪切)到/tmp目录下
将 /home目录下dir1目录移动(剪切)到/tmp目录下
3.5 删除文件或目录
格式:rm[选项]文件或目录
删除整个目录加选项 -r
范例:
1.rm /home/test
删除/home目录下的test文件
范例:
1.rm /home/test
删除/home目录下的test文件
2.rm –r /home/dir
删除/home目录下的dir目录
删除/home目录下的dir目录
3.6 修改文件权限
格式:chmod [who] [+ | - | =] [mode]文件名
参数:
who:
u表示文件的所有者。
g表示与文件所有者同组的用户。
o表示“其他用户”
参数:
who:
u表示文件的所有者。
g表示与文件所有者同组的用户。
o表示“其他用户”
a表示“所有用户”。它是系统默认值
mode:
+ 添加某个权限
- 取消某个权限
= 赋予给定权限
例:chmod g+w hello.c
+ 添加某个权限
- 取消某个权限
= 赋予给定权限
例:chmod g+w hello.c
也可以使用数字的方式直接赋值,一个文件的权限为rwx,以二进制数字来表示各个权限,如3个权限都有,可表示为0B111,也就是7,可以直接利用数字来修改权限
例:chmod 777 hello.c
3.7 创建目录
格式:mkdir[选项]目录名
范例:
1.mkdir /home/workdir
在/home目录下创建workdir目录
范例:
1.mkdir /home/workdir
在/home目录下创建workdir目录
2. mkdir–p/home/dir1/dri4/dir3/dir2
创建/home/dir1/dir2目录,如果dir1不存在,先创建dir1
创建/home/dir1/dir2目录,如果dir1不存在,先创建dir1
3.8 查看当前路径
格式:pwd
范例:
1. pwd
范例:
1. pwd
3.9 创建文件
格式:touch文件名
范例:
1.touch newfile
创建一个名字为“newfile”的空白文件
范例:
1.touch newfile
创建一个名字为“newfile”的空白文件
4、压缩与解压
在Linux环境中,压缩文件的扩展名通常为*.tar; *.tar.gz;*.tgz; *.gz; *.bz2。而不同后缀名的文件,则需要使用不同
的命令来处理。
*.gz<->gzip命令压缩的文件
*.bz2<->bzip2命令压缩的文件
*.tar<->tar命令打包的文件
*.tar.gz<-> tar归档后,再经过gzip压缩的文件
*.tar.bz2<-> tar命令归档后,再经过bzip2压缩的文件
的命令来处理。
*.gz<->gzip命令压缩的文件
*.bz2<->bzip2命令压缩的文件
*.tar<->tar命令打包的文件
*.tar.gz<-> tar归档后,再经过gzip压缩的文件
*.tar.bz2<-> tar命令归档后,再经过bzip2压缩的文件
这个要注意的一点是,tar只是对文件或目录进行归档成一个文件,并不并压缩,文件不会变小。
gzip是Linux中最流行的压缩工具,具有很好的移植性,可在很多不同架构的系统中使用。bzip2在性能上优于gzip,提供了最大限度的压缩比率。如果用户需要经常在Linux和微软Windows间交换文件,建议使用zip。
通常,用gzip压缩的文件的扩展名是.gz;用bzip2压缩的文件的扩展名是.bz2;用zip压缩的文件的扩展名是.zip。
用gzip压缩的文件可以使用gunzip解压;用bzip2压缩的文件可以使用bunzip2解压;用zip压缩的文件可以使用unzip解压。
目前,归档工具使用最广泛的tar命令,可以把很多文件(甚至磁带)合并到一个称为tarfile的文件中,通常文件扩展名为.tar。然后,再使用zip、gzip或bzip2等压缩工具进行压缩。通常,给由tar命令和gzip命令创建的文件添加.tar.gz或.tgz扩展名;给由tar命令和bzip2命令创建的文件添加.tar.bz2或.tbz2扩展名;给由tar命令和zip命令创建的文件添加.tar.z或.tbz扩展名
4.1 压缩解压gzip
格式:gzip[选项]文件名
范例:
1. gzip /root/anaconda-ks.cfg
压缩文件
2. gzip –d /root/anaconda-ks.cfg.gz
解压文件
范例:
1. gzip /root/anaconda-ks.cfg
压缩文件
2. gzip –d /root/anaconda-ks.cfg.gz
解压文件
注意:gzip只能将一个文件压缩,不能压缩多个文件,页不能压缩目录,并且不保留源文件。
4.2 压缩解压zip
格式; zip [选项] 压缩后的文件名 待压缩文件1 文件2 ..... 文件n
范例:
1、 zip 1.zip 1.c 2.c 3.c
将1,.c 2.c和3.c压缩为1.zip
2、zip -r all.zip dir1 -r是压缩文件夹
3、 unzip -Z all.zip 查看压缩包的内容
4、unzip all.zip 解压缩
3、 unzip -Z all.zip 查看压缩包的内容
4、unzip all.zip 解压缩
4.3 tar
tar命令主要用于将若干文件或目录合并为一个文件,以便备份和压缩。当然,之后出现tar程序的改进版本,可以实现在合并归档的同时进行压缩。tar命令符号模式的一般语法格式为:
tar [ -t | -x | -u | -c | -v | -f | -j | -z ] tarfile filelist范例:
1、打包压缩文件
将tar_test文件夹下的文件打包压缩为hello.tar.gz文件,并显示过程信息。
2、解压缩文件
5 查找
5.1 find命令
(1)作用 :在指定目录中搜索文件。
(2)格式:find [路径] [选项][描述]
选项含义
-name 搜索的文件名
-user 搜索属于user用户的文件 -print 输出搜索结果,并打印
5.2 grep命令
作用:在指定文件中搜索特定的内容,并将含有这些内容的行标准输出
格式:grep“字符串”路径
[选项]
范例:
1. grep “hello” ./ -rn
在当前路径下寻找包含字符串”hello”的文件。hello字符串在file文件中的第一行
范例:
1. grep “hello” ./ -rn
在当前路径下寻找包含字符串”hello”的文件。hello字符串在file文件中的第一行
2. grep “he*” ./ -rn
在当前路径下寻找包含以”he”开头的字符串的文件
6 输出重定向
>file 将file文件重定向为输出源,(也可用来新建文件)
>> 将file文件重定向为输出源,追加模式
<file 将file文件重定向为输入源
2>只能将出错信息重定向到文件中,正确执行结果打印在标准输出上(新建模式)
2>>只能将出错信息重定向到文件中,正确执行结果打印在标准输出上(追加模式)
&>将出错信息或或者正确执行结果重定向到文件中
>> 将file文件重定向为输出源,追加模式
<file 将file文件重定向为输入源
2>只能将出错信息重定向到文件中,正确执行结果打印在标准输出上(新建模式)
2>>只能将出错信息重定向到文件中,正确执行结果打印在标准输出上(追加模式)
&>将出错信息或或者正确执行结果重定向到文件中
范例
打开chong文件
我们看到ls的输出结果到了chong文件当中