linux学习笔记-文件与目录)
文件种类
任何设备在linux下面都是文件,除了文件(-)和目录(d)之外还有
- 正规文件:由ls -al所显示出来的文件属性第一个字符为(-)的文件。按照文件的内容正规文件又可以分为
- 纯文本文件(ASCII):由数字和字母组成,可以直接读取的文件
- 二进制挡(Binary):可执行文件(script,文字体批处理文件不算),cat就算一个二进制文件
- 数据格式文件(data):具有特定格式的文件,例如Linux将用户使用者登录的数据记录在/var/log/wrmp文件中,这个文件就是一个data格式的文件,使用last命令读取,使用cat读时,乱码
- 目录(directory)
- 链接文件(link):例如window下面的桌面图片?本质上是一个link
- 设备与设备文件(device):与周围系统存储的一些文件,通常都集中在/dev这个目录下,设备文件又分为
- 区块(block)设备文件:例如硬盘与软盘等存储文件
- 字符(character)设备文件:例如键盘、鼠标等等
- 数据接口文件(sockets):数据接口文件 ,用户端可以通过sockets来进行数据沟通。第一个属性为[s],通常出现在/run或者/tmp这些目录中
- 数据传送档(FIFO,pipe):主要目的在于解决多个程序同时存取一个文件所造成的错误问题。[p]
linux文件名与目录长度限制
linux文件名的限制为:单一文件或者目录限制为255个英文字符,或者128个中文字符
常用目录,文件的含义
文件名 | 作用 |
---|---|
/etc/ | 系统配置文件,例如passwd, shadow |
/boot | 开机配置文件,也即是默认摆放核心vmlinuz的地方 |
/usr/sbin,/bin | 一般可执行文件摆放的地方 |
/user/sbin,/sbin | 系统管理员常用指令集 |
/dev | 摆放所有系统设备文件的目录 |
/var/log | 摆放系统登录文件的地方 |
/run | CenOS7 以后才有,将经常变动的项目移动到内存暂存,所以/run不占用实际磁盘容量 |
目录结构[^1]
[^1] 画导图特别卡,有空补充
文件分类
根据文件系统的频繁与否与是否允许使用者随意更动,FHS将文件可分为以下三种:
可分享的 | 不可分享的 | 可变的 | 不变的 |
---|---|---|---|
/usr(软件放置处) | /etc(配置文件) | /opt(第三方协力软件) | /var/spool/news(新闻群组) |
/boot(开机与核心档) | /var/run(程序相关) | ||
/var/mail(使用者邮件信箱) | |||
/var/lock(程序相关) |
- 可分享的(shareable):可以分享给其他系统挂载使用的目录,可以分享给网络上其它主机挂载用的目录
- 不可分享的(unshareable):自己机器是上面运行的设备文件或者是与程序有关的socket文件等,自己的东西不可分享
- 不变的(staic):不会随着distribution变动而变动,例如函数库、文件说明文档、系统管理员所管理的主机服务配置文件等。
- 可变动的(variable):经常癌变的数据,例如登录文件、一般用户可自行接受的新闻群组
除此之外FHS定义的三层主目录为:/, /var, /usr三层
目录相关操作
切换目录
当使用cd命令进行目录切换时,所使用的特殊字符
. 代表此层目录
. 代表返回上一层目录
- 代表前一个工作目录
~ 代表"目前使用者”所在的主文件夹
~account 代表account这个使用者的主文件夹
创建目录
mkdir test 创建一个test目录
mkdir -p lxq/test/test2 同时创建不存在的空目录lxq、test、test2
mkdir -m 711 test2 在创建空目录test2的同时,给它赋予权限
显示当前所在目录
pwd : print working directory
复制
cp rm mv(还可以用作重命名)
[cp] [源文件] [目标文件]
cp -a filename a表示将文件的权限也复制过来,注意当前用户无法进行的操作,即使加上-a也无法达成完整复制权限!
删除
rm -[rif]
-r :表示是否递归删除
-i :表示是否互动,删除时询问
-f:表示force表示强制删除
移动
mv [-fiu] souce destination
-f:表示force,强制,如果已存在目标文件,不询问强制覆盖
-i:询问,若文件已存在,则询问是否覆盖
-u:表示update, 若文件存在,且source比较新,才会更新
取得路径的文件名称与目录名称
basename /etc/test1/test 得到test,表示取得文件名
dirname /etc/test1/test 得到/etc/test1/, 表示取得目录名
文件内容查看
- cat由第一行开始查看(concatenate),加入-n可以显示行号
- tac从最后一行开始显示,可以看出tac是cat的倒写
- nl显示的时候,顺道输出行号!
- more一页一页的显示文件内容
- less 与more类似,但是比more更好的是,它可以往前翻页
space:向下翻动一页
pagedowm:向下翻动一页
pagedown:向下翻动一页
/字串:向下搜寻“字串”的功能
?字串:向上搜寻
n:重复前一个搜寻
N:反向的重复前一个搜寻
g:前进到这个数据的第一行去
G:前进到这个数据的最后一行去
q:离开less这个程序
- head 只看头几行
- tail只看尾巴几行
- od以二进制的方式读取文件内容
- head:取出前面几行
- tail:取出后面几行,-n指定行数,默认10行
非文本内容查看
当我们需要查看二进制文件、可以使用od命令,并且还可以指定输出形式
- od [-t TYPE] 文件,type根据以下形式替换
a 利用默认的字符来输出
c 使用ASCII字符输出
d 采用十进制输出数据,每个整数占用size Bytes
给某个命令配置环境变量
PATH = “${PATH}:/root” 将root目录加入可执行文件中搜索路径