Linux 目录结构及文件基本操作

时间:2021-07-29 12:23:22

一、Linux 目录结构

FHS标准

FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。

FHS定义了两层规范,第一层是,/下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,
/bin与/sbin则应该要放置可执行文件等

第二层则是针对 /usr 及 /var这两个目录的子目录来定义.例如/var/log放置系统登录文件、/usr/share放置
共享数据等

目录结构 :

bin   : 一般用户可用,启动时会用到的命令,即在文件系统还没有被挂载时,也能够使用的命令
boot : grub : 开机设置相关文件
: 内核文件(vmlinuz)
dev : 设备文件放这里
etc (包含系统特有的可编辑配置文件,即控制程序运行的本地文件)
: rc.d : 用于存放不同运行等级的启动脚本的链接文件 :
: x11
home 用户家目录
: yuf
: root
lib : 用于存放程序的动态库和模块文件
media (用于挂载本地磁盘或其他存储设备)
: cdrom
: floppy
: U盘
mnt : 用于挂载其他临时文件系统
opt : 发行版附加的一些软件包(如ubuntu kylin附带的wpx)的安装目录
root : root用户的家
sbin : 这里面很多智能是root用户才能执行的命令,一些系统进行更新,备份,还原和开关机命令
tmp : 存放各种临时文件
usr : bin : 非必要可执行文件(在单用户模式中不需要);面向所有用户
: include : 标准包含头文件
: lib : /usr/bin和/usr/sbin/中二进制文件的库
: local (本地数据的第三层次,具体到本台主机)
: bin
: etc
: include
: lib
: share
: src
: share : 体系结构无关(共享)数据
: sbin : 非必要的系统二进制文件 例如 : 大量网络服务的守护进程
 : src : 源代码
var (变量文件--在正常运行的系统中其内容不断变化的文件,如日志)
: account
: cache
: lib
: lock
: log
: run
: tmp
: spool
: mail

目录四种交互作用的形态:
可分享的(shareable) 不可分享的(unshareable)
不可变的(static) /usr(软件放置处) /etc(配置文件)
/opt(第三方软件) /boot(开机及内核文件)
可变动的(variable) /var/mail(用户邮箱信箱) /var/run(程序相关)
/var/news(新闻组) /var/lock(文件锁相关)

目录路径

路径
进入上级目录 : $cd..
进入home目录 : $cd~ / cd /home/yuf
使用pwd获取当前路径 : $pwd

绝对路径

以"/"为起点

相对路径

也就是相当于你当前的目录的路径

绝对路径
$ cd /usr/local/bin
相对路径
$ cd ../../usr/local/bin

二、Linux文件的基本操作

新建

新建空白文件

$ touch test

新建目录

$mkdir mydir
$ mkdir -p father/son/grandson

复制

复制文件

$ cp test father/son/grandson

复制目录

$ cp -r father family (-r或者-R表示递归复制)

删除

删除文件

$ rm test
$ rm -f test 强制删除

删除目录

$ rm -r family

移动文件或文件重命名

移动文件

$ touch file
$ mv file father/son/grandson/

重命名文件

$ mv file myfile

批量重命名

# 使用通配符批量创建 5 个文件
$ touch file{1..5}.txt

# 批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件
$ rename 's/\.txt/\.c/' *.txt

# 批量将这 5 个文件,文件名改为大写
$ rename 'y/a-z/A-Z/' *.c

查看文件

使用cat,tac和nl命令查看文件

$ cat passwd
$ cat -n passwd (加上序号)

nl命令,添加行号并打印,这是个比cat -n更专业的行号打印命令。
-b : 指定添加行号的方式,主要有两种:
-b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
-b t:只列出非空行的编号并列出(默认为这种方式)
-n : 设置行号的样式,主要有三种:
-n ln:在行号字段最左端显示
-n rn:在行号字段最右边显示,且不加 0
-n rz:在行号字段最右边显示,且加 0
-w : 行号字段占用的位数(默认为 6 位)

$ nl -b a passwd

使用more和less命令分页查看文件

$ more passwd (可以使用Enter键向下滚动一行,使用Space键向下滚动一屏,按下h显示帮助,q退出)

使用head和tail命令查看文件

$ tail /etc/passwd (默认显示10行)
$ tail -n 1 /etc/passwd (显示一行)

查看文件类型

$ file /bin/ls

编辑文件

在 Linux 下面编辑文件通常我们会直接使用专门的命令行编辑器比如(emacs,vim,nano)
$ vimtutor Linux内部vim学习教程