概述:
一:linux目录结构
二:文件的寻址
三:文件的管理命令
四:简单的正则表达式
一:linux目录结构
linux是一个倒树结构
linux中所有的东西都是文件
这些文件都在系统顶级目录“/” /就是根目录/目录以下为二级目录这些目录都是系统装机时系统自动建立的
二级目录的作用
/bin ##二进制可执行文件也就是系统命令
/sbin ##系统管理命令存放位置
/boot ##启动分区,负责系统启动
/dev ##设备管理文件
/etc ##大多数系统管理文件
/home ##普通用户的家目录
/lib ##32位系统库文件存放位置
/lib64 ##64位系统库文件存放位置
/media ##系统临时设备挂载点
/mnt ##系统临时设备挂载点
/run ##系统临时设备挂载点
/opt ##第三方软件安装位置
/proc ##系统信息
/root ##超级用户家目录
/srv,/var ##系统数据
/sys ##系统管理,主要是关于内核的
/tmp ##系统临时文件存放位置
/usr ##系统用户相关信息数据及用户自定义软件存放位置
二:文件的寻址
绝对路径
文件在系统的真实位置,文件名字以“/”开头
相对路径
文件相对与当前所在位置的一个名字的简写,这个名字不会以/开头,而且名字会自动添加pwd显示的值
其实“/”代表的意思就是根目录,以这个开头就是跟在最开始的意思。
三:文件的管理
1)touch ###一般用来创建文件实际用来修改时间戳
touch filename(不存在) ###此时创建文件
touch filename(存在) ###将文件的时间戳全部更新到当前时间
touch -a | -m | ###用于修改文件的atime和mtime
touch -t [[CC]YY]MMDDhhmm,[ss] ####将所有时间设定为这个指定的时间
(tips:但是当你更改后会发现,atime与ctime都更改为你设定的时间了,但是ctime没有设置成功,不是系统出了问题,是因为ctime存储的就是inode中文件信息修改 的时间,而时间戳就在inode中,所以你修改时间戳的时间既是ctime的时间)
这是设定为修改时间之前
这是改为11月11日11点11分后的文件时间戳,ctime
确实没有改变
touch file_{1..2}_asa{1..6}这是建立了多少个文件?
2)mkdir ####用来建立目录
-p ###递归建立目录,当上级目录不存在时,自动创建。
3)rm ####用于删除文件
-r 用于递归删除,一般作为删除目录的选项
-f 强行删除不提示
4)cat|head|tail 查看文件
5)vim文本方式编辑文件
命令模式不能编辑文件,如果要编辑文件要进入插入模式,按"i"进入插入模式,如果完成编辑,按”esc“推出插入模式,输入”:wq“ 保存退出
vim filename 如果文件名字不存在,会自动创建
vim 没有操作对象直接打开,编辑文件后要 :wq filename
tips:vim还有非常非常多的操作,比如光进入编辑模式就有a ,A,o,s,O,i,I,S这八种方式:
i:在光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入
s:删除光标所在的字符并开始插入
I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
A:在光标所在你行的行尾开始插入
O:在光标所在行的上面另起一行开始插入
S:删除光标所在行并开始插入
如果你想锻炼自己的vim技巧,不妨先从系统自带的vimtutor开始练起。
6)切换工作目录
cd directory ##切换工作目录到指定目录
cd - ##切换工作目录到之前所在目录
cd ~ ##切换到自己的家目录
cd ~usernmae ##切换到指定用户家目录*****
cd .. ##进入到当前目录的上级目录
7)列出目录或文件信息
ls ##如果后面没有目标那么默认目标为当前目录
ls direcory|filename ##列出文件或目录内容
ls -d direcotry ##列出目录本身
ls -l filename|dorectory ##列出文件或目录里面内容的属性
ls -ld directory ##列出目录本身属性
ls -a ##显示目录中的所有内容,包括以"."开头的隐藏文件
ls -R ##第归显示目录中的内容
8)cp 文件复制
cp是新建文件的过程
cp file file1 file2 ...directory ###把file file1 file2 复制到direcotory下
cp file test ###把test模板为file
cp -r directory1 directory2 ###复制目录
9)mv 移动或者重命名
相同磁盘的mv是重命名,不同磁盘的mv是复制删除过程
四:简单正则表达式
1)
* ###匹配0到任意字符
? ###匹配单个字符
[[:alpha:]] ###匹配单个字母
[[:lower:]] ###匹配单个小写字母
[[:upper:]] ###匹配单个大写字母
[[:digit:]] ###匹配单个数字
[[:alnum:]] ###匹配单个数字或字母
[[:punct:]] ###匹配单个符号
[[:space:]] ###匹配单个空格
tips:*并不能匹配到“.”开头的文件,可以在虚拟机下测试rm -rf *,之后ls -a
代表当前目录的“.”和代表父目录的“..”并没有被删除。
{}表示不存在的或者存在的
{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
[]表示存在的
[a-C] ###aA bB cC
[a-c] ###aA或者bB或者c
[1-3] ###1或者2或者3
[145] ###1或者4或者5
[^abc]|[!abc] ###除了a并且除了b并且除了c
~ ###当前用户家目录
~username ###指定的用户家目录
~+ ###当前目录
~- ###当前目录之前所在目录
. ###当前目录
.. ###当前目录的上一级
tips:在用到 "~-"的时候发生了一件有意思的事情,使用rm -rf ~-竟然可以删掉自己的父目录
从图片中可以看出,我在/root/test/test1目录下,通过rm -rf ~-删除掉了自己的父目录,但是pwd显示的还是刚才所在的路径,cd ..竟然还可以使用,但是退到最后,发 现,test目录和test1目录均被删除了,也就是刚才自己处在了一个被删除的位置,经过思考,发现,其实"~-"代表的就是当前目录父目录的绝对路径,如果rm -rf 父目 录绝对路径,也可达到相同效果。
最后的最后还有一点需要注意:就是关于[]与{},[a-z]所制定的字符范围是什么?在有些系统中他是按照[aAbBcC.....zZ]这样排列的,而{}中就是按照ascii排列的了。
习题:
1.用命令和正则表达式按照要求建立文件
*)用一条命令建立12个文件WESTOS_classX_linuxY(X的数值范围为1-2,Y的数值范围为1-6)
*)这些文件都包含在root用户桌面的study目录中
*)用一条命令建立8个文件redhat_versionX(x的范围为1-8)
*)redhat_virsionX这些文件都包含在/mnt目录中的VERSION中
2.管理刚才信建立的文件要求如下
*)用一条命令把redhat_versionX中的带有奇数的文件复制到桌面的SINGLE中
*)用一条命令把redhat_versionX中的带偶数数的文件复制到/DOUBLE中
*)用一条命令把WESTOS_classX_linuxY中class1的文件一动到当前用户桌面的CLASS1中
*)用一条命令把WESTOS_classX_linuxY中class2的文件一动到当前用户桌面的CLASS2中
3.备份/etc目录中所有带有名字带有数字并且以.conf结尾的文件到桌面上的confdir中
5.删掉刚才建立或者备份的所有文件
cd /root/Desktop
rm -rf *