目录
十、命令提示符“[jerry@rhel3 /]$”每个部分都代表什么含义?
引言.Linux 文件系统是Linux 系统的核心模块,通过使用文件系统,用户可以很好地管理各项文件及目录资源。
一、常用文件系统类型
(1)Linux默认文件系统:ext2、ext3、ext4
(2)光盘的(标准CDROM文件系统):ISO9660
(3)Windows的:NTFS
二、Linux文件类型
(一)普通文件
1.文本文件
以文本的ASCⅡ码形式存储在计算机中,以“行”为基本结构。
2.二进制文件
以文本二进制形式存储在计算机中。二进制文件一般是可执行程序、图形、图像、声音等。一般,用户不能直接查看它们,只有通过相应的软件才能将其显示出来。
(二)目录文件
目录文件一般简称为目录,存储一组相关文件的位置、大小和与文件有关的信息,存放的内容是目录中的文件名和子目录名。
(三)设备文件
每一种I/0设备对应一个设备文件,存放在/dev目录中。常用的字符设备有键盘、鼠标;块设备有硬盘、光驱。设备文件对应分为块设备文件和字符设备文件。前者是以字符块为单位存取的,后者是以单个字符为单位存取。Linux系统把每一个I/0设备都看成一个文件,即Linux把对设备I/0作为普通文件的读取/写入操作,内核提供了对设备处理和对文件处理的统一接口。
(四)链接文件
(1)软链接文件。符号链接。相当于Windows下的快捷方式。
(2)硬链接文件。符号和内容的链接。相当于副本。
(五)管道文件
前一个命令的输出作为后一个命令的输入。
注:黑色是普通文件,红色是压缩文件,蓝色是目录文件。
注:普通文件(-)、目录文件(d)、设备文件(b、c)、链接文件(l)、管道文件(p)
三、Linux目录结构
/dev:设备文件;
/usr: 该目录最庞大,存放应用程序及相关文件
/bin:存放普通用户可执行文件;
/sbin:存放系统的管理命令
/lib:启动所需库文件;
/etc:存放系统配置和管理文件
/home: 普通用户的主目录,每个用户在该目录下都有一个与用户名同名的目录
/media: 自动挂载的设备文件; /mnt:手动挂载的设备文件
/root:超级管理员的用户主目录;
/boot: 启动Linux时的核心文件
/proc:虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息
/var:存放系统中经常变化的文件,如日志文件;
/tmp:临时文件
四、.与..与~
“.”表示当前目录自身,“..”表示当前目录的父目录,“~”表示当前用户的主目录/工作目录(对于根目录,“.”和“..”都代表其自身)
五、文件和目录的基本操作
(一)目录操作
(1)pwd:显示当前目录
(2)cd <路径>:改变当前路径到指定目录
(3)mkdir [参数] <目录名>:建立目录
-p //循环建立目录(确保目录名称存在,不存在的就建一个)
(4)rmdir <目录名>:删除目录为空
(二)文件操作
(1)ls -l:长格式显示文件详细信息(前十个属性字符串含义必须知道)
①第1位——文件类型:普通文件(-)、目录文件(d)、设备文件(块设备b、字符设备c)、链接文件(l)、管道文件(p)
②第2~10位——访问权限(记忆):
③ls -l下分页(用管道): ls -l |:
(2)cd <路径>:改变当前路径到指定目录
(3)touch <新文件名>:创建文件
(4)cp [参数] 源文件/源目录 目标路径的文件/目录
(5)rm [参数] 文件名(需详细掌握)
注:拷贝删除操作都需注意路径问题(使用绝对路径还是相对路径?区分源与目标!)
(6)mv sourse destination
#source可是一或多个文件或目录;destination可是单个文件或目录;
#将文件从一个位置 重命名/移动 到另一个位置
①文件/目录的改名(知道如何改名)
mv file1 file2 #在本目录内,将文件file1重命名为file2
②移动路径——把文件由一个位置移动到另一个位置
mv file /home/ycs
六、文件链接
1.文件的软链接即Windows下,文件的快捷方式(如果链接指向目录,用户就可以利用该链接直接进入被链接的目录而不是使用较长的路径名。而且即使删除这个链接,也不会破坏原目录)
2.什么是软、硬链接?各有什么特点?什么样的情况下使用软、硬链接?
(1)概念:硬链接是原始文件的一个镜像副本,具有相同inode节点号的多个文件互为硬链接文件;软链接文件是一种特殊的文件,它指向另一个文件或目录,类似Windows下的快捷方式,存储源文件的路径并指向源文件。
(2)软链接特点:
①以存放另一个文件的路径的形式存在,有自己的inode号;
②可用于目录;
③可跨文件系统;
④不增加被链接文件的链接次数;
(3)硬链接特点:
① 硬链接以文件副本的形式存在,但不占用实际空间;
②不允许给目录、不存在的文件创建硬链接;
③硬链接只有在同一个文件系统中才能创建;
④删除其中一个硬链接文件并不影响其他有相同inode号的文件。
(4)使用:
①通常使用软连接(硬链接有一定的局限性);
②使用软链接:需把一个复杂路径下的文件链接到一个简单路径下,以方便用户访问时;
③使用硬链接:需将同一个文件保存在不同位置且需持续保持同步更新时
(5)区别:
①软链接类似于 Windows 系统中的快捷方式,硬链接是原始文件的一个镜像副本;
②软链接可以跨文件系统进行创建,但硬链接不可;
③软链接可以指向文件或目录,硬链接只能指向文件;
④软链接文件和原始文件之间的 inode 和文件权限不完全一致,硬链接则完全一致;
⑤软链接文件只记录原始文件的路径,硬链接只记录文件的内容;
⑥如果原始文件被移除,软链接就会因为指向不存在的文件而失效,但硬链接文件不受影响。
七、文件内容相关命令
(一)cat命令:
(1)显示文件内容:cat [选项] 文件名
-n:从1开始,对所有输出行编号;-b:从1开始,对所有非空白行编号
(2)连接多个文件以形成新的文件:cat 文件名 重定位符(>或>>) 文件名
(3)重定位符“>”:覆盖。重定位符“>>”:追加。
(二)more/less/head/tail 命令
more/less/head/tail [选项] 文件名:显示文件内容
(1)more:分页显示,不可回翻;more +n 文件名:从第n行开始显示
(2)less:分页显示,可回翻
(3)head:head -n 文件名:从头显示n行
(4)tail:tail -n 文件名:从尾显示n行
八、关于选项
写命令时仅用的到一些常使用(选项组合居多,一般情况下没有单个用的)。如tar命令最常使用的,是-cvzf或-cvf选项。即只需记忆这几个组合及其是干什么的就可以了。
九、find命令——在指定路径下查找文件
1.格式:find [路径] [参数] [文件名]
2.参数:
-name “文件名”//表示查找指定名称文件
-lname“文件名”//查找指定文件名中的所有的链接文件
-user 用户名 //查找指定用户拥有的文件
-group 组名 //查找指定组拥有的文件
3. 实例:
# find / -name “named*” //在根目录下查找所有以named开头的文件
# find / -user root //在根目录下寻找所有root用户拥有的文件
find –name ‘tmp’–xtype c –user ‘in’//查找文件名为tmp文件类型为c用户名为in的文件
find –name ‘tmp’–o -name ‘mina*’ //查找文件名为tmp或文件名为mina*的所有文件
find ! –name ‘tmp’ //查询文件名不是tmp的所有文件
注:很多命令在不指明路径时,一般默认在当前目录操作
十、命令提示符“[jerry@rhel3 /]$”每个部分都代表什么含义?
[1]jerry:当前登录用户;
[2]@:分隔符号,无特殊含义;
[3]rhel3:机器名(当前系统的简写主机名)
[4]/:用户当前所在路径
[5]$:用户身份提示符($表示普通用户,#表示超级用户)
十一、通配符(在正则表达式中,通配符有特殊含义)
1.通配符——文件名的匹配;正则表达式的特殊字符——文件中字符串的匹配
2.在非正则表达式中,“*”可代替0个或多个字符、不定长字符串,“?”可代替一个字符。
例:查找以 “AEW”开头的一个文件,可输入 “AEW*”;
例:输入“ love?”, 查找以“ love”开头的文件名为5个字符的所有类型的文件,如lovey、lovei等。
例:文件名前的圆点(.)和路径名中的斜线(/)必须显示匹配。如“ * ” 不能匹配.file,而“.*”才可以匹配.file。
例:*:当前目录下所有文件的名称
例:*Text*:当前目录下所有文件名中包含 Text 的文件的名称
例:[abc]*:当前目录下所有以a、 b、c开头的文件的名称
例:[abc]?:当前目录下所有以a、 b、c开头且后面只跟1个字符的文件的名称
十二、文件内容的查找
grep [参数(目标字符串)] #选项不看,看正则表达式
1.grep "被查找的字符串" 文件名 #查找能包含指定字符串的行
例. grep "Lyle" test #在test文件中查找能包含"Lyle "的行并输出
2.在文件内容中匹配正则表达式:
‘|’: 析取;例‘a|b|c’表“显示a或b或c”
‘.’: 匹配任意一个字符;例‘^…$’表“选中从行的开始到行的结尾仅有三个任意字符的行”
‘^’: 锚定行首;例‘^a’表“显示所有以字符a开始的行”
‘$’: 锚定行尾;例‘t$’表“显示所有以字母t结尾的行”。“^$”用于匹配空白行
‘?’: 可选;例‘ab?’表“显示a、ab”
‘*’: 显示其前面一个字符出现至少0次的字符。 ".*" 表述任意字符任意次,即无论什么内容全部匹配。"xy*" 表“x,xy,xyy,xyyy,xyyyy,……”
‘+’: 显示其前面一个字符出现至少1次的字符。 "xy+" 表“xy,xyy,xyyy,xyyyy,……”
‘()’:组合。 "(xy)" 表“xy,xyxy,xyxyxy,xyxyxyxy,……”
‘[]’:匹配一个字符,但这个字符必须是[]集合中的;例‘[abc]’表示“匹配 [] 内集合中的任意一个字符,a或b或c”;
[^123] :匹配一个字符,这个字符是除了1、2、3以外的所有字符。
3.例.
[root@localhost~ ]#grep ‘text file' stdio.h #在 stdio.h 中搜索字符串 text file
[root@localhost~ ]#grep ‘^a’ test-g #选中所有以字母 a 开始的行。文件 test-g 中的以^a开头的行不会被选中
[root@localhost~ ]#grep ‘\^a’test-g #以^a开头的行被选中输出
[root@localhost~ ]#grep ‘t$’ test-g #以t 结尾的行被选中并输出
[root@localhost~ ]#grep ‘^...$’ test-g #输出从行的开始到行的结尾只有3个任意字符的行
[root@localhost~ ]#grep -n ‘^$’ #输出所有带行号的空行
[root@localhost~ ]#ls [abc]* #正则表达式[]的简单使用,*表示任意一个字符串,整体显示以a、b、c开头的文件
4.正则表达式中也有通配符,但与普通通配符的含义不同。(如普通通配符*表示任意一个字符串,正则表达式的通配符*表重复)
十三、hostname命令
1.查看本机的hostname:#hostname
2.修改本机的hostname:#hostname newname //运行后立即生效(重新启动shell),但是在系统重启后会丢失所做的修改,如果要永久更改系统的hostname,就要修改相关的配置文件。
十四、补充
1.文件处理命令sort,功能:对文件中的内容进行排序(sort不是查找用的,是排序用的)
2.文件帮助命令man,格式:man 命令名称
注:由H同志编写,欢迎批评指正、交流探讨!