一.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 demo ##创建demo目录
mkdir -p 目录/子目录 ##上级目录不存在自动建立
mkdir -p test/linux
递归创建分级目录: test目录下有linux目录
错误做法:
mkdir dd cc
dd cc ##创建两个目录
mkdir dd/cc ##报错
3.rm 删除
rm -f ##强行删除不提示
rm -r ##删除目录
rm file 删除文档file,会提示你是否确定删除:y是 n否
rm -r test 删除目录test,会提示你是否确定删除:y是 n否
每次都会提示,不想被提示加-r。
rm -fr * 删除当前目录下的所有文档和目录
4.cat|head|tail 查看文件内
先创建一个file文件
cat|head|tail ##文件内容查看命令
cat file ##查看file文件内容
head -n 5 file ##查看file文件前五行的内容
tail -n 3 file ##查看file文件后三行的内容
5.cd 切换工作目录
cd test/linux ##切换工作目录到指定目录
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之后原来文件不存在
四.正则表达式
{}表示不存在的或者存在的
{1…4} ###1-4
{a…c} ###a-c
{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} ##
[[:alpha:]] ###匹配单个字母
[[:lower:]] ###匹配单个小写字母
[[:upper:]] ###匹配单个大写字母
[[:digit:]] ###匹配单个数字
[[:alnum:]] ###匹配单个数字或字母
[[:punct:]] ###匹配单个符号
[[:space:]] ###匹配单个空格
[]表示存在的
[A-C] ###aA bB cC
[a-c] ###aA或者bB或者c
[1-3] ###1或者2或者3
[145] ###1或者4或者5
[!a] ###表示除了a以外的
rm -rf file[!a] 删除filea以外的文件
五.用户文件描述符号
在Linux系统中,一切设备都看作文件。而每打开一个文件,就有一个代表该打开文件的文件描述符。程序启动时默认打开三个I/O设备文件:标准输入文件stdin,标准输出文件stdout,标准错误输出文件stderr,分别得到文件描述符0,1,2。
文件描述符0:标准输入文件stdin
文件描述符1:标准输出文件stdout
文件描述符2:标准错误输出文件stderr