一.linux系统结构
首先我们学习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 file ##创建文件 gedit 只有在root权限下才可以使用,普通用户不可以用。
2.mkdir 建立目录
mkdir directory ##创建目录 -p ##上级目录不存在自动建立 mkdir -p test/linux 递归创建分级目录: test目录下有linux目录 错误做法: mkdir test linux test linux ##创建两个目录 mkdir test/liunx ##报错
3.rm 删除
rm -f ##强行删除不提示 -r ##删除目录 rm file 删除文档file,会提示你是否确定删除:y是 n否 rm -r test 删除目录test,会提示你是否确定删除:y是 n否 每次都会提示,不想被提示加-r。 rm -fr * 删除当前目录下的所有文档和目录
4.cat|head|tail 查看文件内
cat|head|tail ##文件内容查看命令
cat file ##查看file文件内容
head -n 5 file ##查看file文件前五行的内容
tail -n 3 file ##查看file文件后三行的内容
5.cd 切换工作目录
cd directory ##切换工作目录到指定目录
cd - ##切换工作目录到之前所在目录
cd ~ ##切换到自己的家目录
cd ~usernmae ##切换到指定用户家目录
cd .. ##进入到当前目录的上级目录
6.ls 列出目录或文件信息
ls ##如果后面没有目标那么默认目标为当前目录 ls direcory|filename ##列出文件或目录内容 ls -d direcotry ##列出目录本身 ls -l filename|dorectory ##列出文件或目录里面内容的属性 ls -ld directory ##列出目录本身属性 ls -a ##显示目录中的所有内容,包括以"."开头的隐藏文件 ls -R ##第归显示目录中的内容
7.cp 文件复制
cp是新建文件的过程
cp file file1 file2 ... directory ###把file file1 file2 复制到 directory中
cp file test ###建立test文件模板为file
cp -r directory direcotry1 ###复制目录
cp之后原文件依旧存在
8.mv 移动或重命名
cp和mv的区别: cp是一个新建的过程,而mv是一个重命名或移动的过程
mv file file1 direcotry ##移动file file1到directory中 mv 存在文件 不存在文件 ##重命名文件
mov之后原来文件不存在
四.正则表达式
-
###匹配0到任意字符
? ###匹配单个字符 [[:alpha:]] ###匹配单个字母 [[:lower:]] ###匹配单个小写字母 [[:upper:]] ###匹配单个大写字母 [[:digit:]] ###匹配单个数字 [[:alnum:]] ###匹配单个数字或字母 [[:punct:]] ###匹配单个符号 [[:space:]] ###匹配单个空格 mv * test ##将当前目录下的所有文件或者目录移动到test目录下,警告test无法移动到test下 (mv:cannot move 'test' to a subdirectory of itself,'test/test') {}表示不存在的或者存在的 {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..4} ##file1 file2 file3 file4 touch file{a..c} ##filea fileb filec touch file{1..3}{a..c} ## []表示存在的 [A-C] ###aA bB cC [a-c] ###aA或者bB或者c [1-3] ###1或者2或者3 [145] ###1或者4或者5 [^abc]|[!abc] ###除了a并且除了b并且除了c rm -rf file[!a] 删除filea以外的文件 ~ ###当前用户家目录 ~username ###指定的用户家目录 ~+ ###当前目录 ~- ###当前目录之前所在目录
. ###当前目录 .. ###当前目录的上一级