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

一、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       ###指定的用户家目录
~+                     ###当前目录
~-                      ###当前目录之前所在目录

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

使用情况见下图






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章