您的位置:首页 > 运维架构 > Linux

系统结构、文件寻址、文件管理、正则表达式

2017-09-27 19:55 197 查看

一、linux系统结构

1.linux是一个倒树结构

linux中所有的东西都是文件

这些文件都在系统顶级目录“/” /就是根目录

/目录以下为二级目录这些目录都是系统装机时系统自动建立的

2.二级目录的作用

/bin

存放系统文件,如cat、mkdir、mv、cp、tar、chmod等

/boot

存放开机所需的文件,开机时载入开机程序,并影像到内存中

/dev

存放设备的文件,如sidk、dvd、hdc等

/etc

存放绝大多数linux系统引导所需的配置文件,如yum、conf、hosts、gconf等

/home

存放用户账号,系统管理员添加时,在此目录下创建并默认有Desktop目录

/lib

存放系统程序文件,含c编译程序需要的数据库,是一组二进制文件,如iptable

/mnt

常用挂载点,专门外挂系统文件的,里面可能含有cdrom、hgfs、floopy

/opt

第三方程序安装目录,如QQ、Linux、Linux opera等

/proc

存记录系统状态的文件,meminfo、devices、cpuinfo、version、partitions等

/root

管理员目录,存放Desktop

/sbin

超级管理员专用的目录,包含一些重要的目录,如shutdown、dump

/tmp

临时文件,临时性存储,存在中间产生的文件

/usr

含其他一些重要内容,如bin、sbin、lib、include,且bin下含有gcc、Python。

/var

存放系统定义表,以便在系统运行改变时备份目录,如cache、ftp、mail、www

二、文件的寻址

1.绝对路径

文件在系统的真实位置,文件名字以“/”开头

下图创建的文件file1在多级目录下,/home/student/Desktop是绝对路径。



2.相对路径

文件相对与当前所在位置的一个名字的简写,这个名字不会以/开头,而且名字会自动添加pwd显示的值



三、文件的管理 

 1.touch               ## 建立文件或修改文件时间戳

touch file             ##创建文件

在下图中建立文件,通过stat file命令来体验touch建立文件或修改时间戳的作用。Access后面的时间表示file被访问的时间;Modify表示file被修改的时间(包括修改内容、文件权限等),Modify包含Change的作用;Change表i示file被改变的时间,如:修改权限。

##访问文件、修改文件内容、改文件权限并没有在该shell中操作,图中没有这些操作的命令。第二次输入state file,Access时间改变是因为,文件被访问;第三次输入state file,Modify时间改变是由于修改文件内容;Change时间变化了是由于改文件权限了。

 

    



2.mkdir           ## 建立目录  

mkdir directory  ##创建目录

 -p                     ##上级目录不存在自动建立

下图中的mkdir -p westos/linux/file表示在westos目录下的linux目录下创建file目录,westos和linux不存在,需要加上-p。



3.rm         ##删除目录或文件

rm   -f       ##强行删除不提示

        -r      ##删除目录

如下图所示删除目录需要加-r。目录Unitiled Folder被单引号(英文 )引起来是因为目录名中间含有空格。



当不加参数-f时,会有提示,输入y回车则删除,如下图所示。



4.查看文件内容 

cat                                     ##将文件所有内容输出到屏幕

  -b                                    ##不显示空行的行号

  -n                                    ##显示所有的行号

 less                                  ##将文件内容按页/分页显示;当文件后缀特殊无法查看

   head                              ##查看文件的前十行

   head  -n                        ##查看文件的前n行

   tail                                 ##查看文件的后十行

   tail -n                            ##查看文件的后n行

如下图所示,用cat查看文件的内容。



如下图less查看file内容(file内容已被修改,故查出来与cat查看结果不同)



head和tail查看文件的内容如下图所示



查看文件的第5行至8行的内容:

(1)head   -n  8    file   |   tail   -n  4



(2)sed   -n      '4,8p'  file



5.查看日历

cal                                  ##查当前日历

cal    -j      日月年          ##查看某年某月某日是该年的第多少天

使用如下图所示    


6.vim 文本方式编辑文件

vim filename 进入到命令模式

命令模式不能编辑文件,如果要编辑文件要进入插入模式

按"i"进入插入模式

如果完成编辑,按”esc“推出插入模式,输入”:wq“ 保存退出

vim filename 如果文件名字不存在,会自动创建

vim 没有操作对象直接打开,编辑文件后要 :wq filename

输入vim filename回车后,界面如下图所示:



输入i后才能开始输入文件内容,界面如下图所示:



当编辑结束,按键盘上的ESC,然后输入“:wq”保存,回车后即回到shell界面。若编辑结束不想保存文件,但是希望强制离开,则输入“:q!”。

注意:当因为计算机突然关机、误关闭窗口等致使vim编辑文件中断,重新用vim编辑该文件时会出现下图界面:



按E键可将之前编辑的内容恢复至该文件中,此时会回到shell界面。再次编辑该文件依旧会出现上图的界面,按Q按键,然i后便能正常编辑该文件。

7.cd 切换工作目录

cd directory         ##切换工作目录到指定目录

cd -                     ##切换工作目录到之前所在目录

cd ~                    ##切换到自己的家目录

cd ~usernmae    ##切换到指定用户家目录

cd ..                   ##进入到当前目录的上级目录



8.ls 列出目录或文件信息

ls                                                 ##如果后面没有目标那么默认目标为当前目录

ls direcory|filename                 ##列出文件或目录内容

ls -d direcotry                            ##列出目录本身

ls -l  filename|dorectory           ##列出文件或目录里面内容的属性

ls -ld directory                           ##列出目录本身属性
ls -a                                            ##显示目录中的所有内容,包括以"."开头的隐藏文件
ls -R                                           ##第归显示目录中的内容

在桌面创建有file1文件、file2目录,使用ls如下图所示



9.cp 文件复制

cp是新建文件的过程

cp file file1 file2 ... directory     ###把file  file1 file2 复制到 directory中

cp file test                                  ###建立test文件模板为file
cp -r directory direcotry1         ###复制目录

cp  -p                                         ##复制文件或者目录的时间,权限,所属用户、组的属性信息

cp命令使用如下图所示。



10.mv 移动或重命名

相同磁盘的mv是重命名,不同磁盘的mv是剪切过程

mv file file1 direcotry              ##移动file file1到directory中
mv 存在文件 不存在文件      ##重命名文件

mv westos/linux   .                  ##把westos中的linux移动到当前目录 .代表当前目录

mv使用如下图所示



##cp是一个新建的过程,mv 相当于windows中的剪切。

四、正则表达式

*                 ###匹配0到任意字符

?              ###匹配单个字符

*与?的作用如下图所示,?只能匹配一个字符,*可以匹配多规格字符



[[:alpha:]]           ###匹配单个字母

[[:lower:]]           ###匹配单个小写字母

[[:upper:]]          ###匹配单个大写字母

[[:digit:]]            ###匹配单个数字

[[:alnum:]]         ###匹配单个数字或字母

[[:punct:]]          ###匹配单个符号

[[:space:]]         ###匹配单个空格

{}表示不存在的或者存在的

{1..9}                 ###1-9

{a..f}                  ###a-f

{1,3,5}              ###135

{a,c,e}              ###a c e

{1..3}{a..c}       ###1a 2a 3a 2a 2b 2c 3a 3b 3c

如下图所示,touch file{1..5}新建了5个文件,rm -rf file[1-3]表示删除存在的文件1或文件2或文件3,最后留下了文件4和文件5。



[]表示存在的

[a-C]              ###aA bB cC

[a-c]              ###aA或者bB或者c

[1-3]             ###1或者2或者3

[145]           ###1或者4或者5

[^abc]|[!abc]         ###除了a并且除了b并且除了c

如下图,建立文件{a..f},通过角号与!删除了建立的文件



当我们新建了文件file{1..15},删除文件命令如下图所示。删除命令有两个目标,前面的目标可以删除file{1..9},file[1-9][0-9]则可以删除文件名后缀为两位数字的文件。



~                       ###当前用户家目录

~username       ###指定的用户家目录

~+                     ###当前目录

~-                      ###当前目录之前所在目录

.                         ###当前目录

..                        ###当前目录的上一级

使用情况见下图




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  2017.9.27 linux