Linux 文件系统
文件系统
rootfs:根文件系统
为了让各个厂商发行的Linux的文件系统有规律可循,特意制定了标准FHS(文件系统层级化标准)
一般文件系统都包含以下目录
/boot:系统启动相关到的文件;比如核心文件,initramfs,grub2(bootloader)
/dev:设备文件所在目录
设备文件作为访问设备的入口,比如访问硬盘之前必须先挂载之后才能读写此硬盘上分区的数据
块设备:硬盘;随机访问,以数据块为单位
字符设备:键盘、鼠标、显示屏;线性访问,以字符为单位
一般设备文件没有数据,只有元数据,包括文件类型、权限、属主、属组、主设备号(major)、次设备 号(minor);
/etc:配置文件所在目录
系统上大多数程序和服务程序的配置文件都在这个目录里,一般都是以某程序名为文件名的子目录或文件
配置文件一般为纯文本格式
/home:用户的家目录,默认为/home/USERNAME
/root:root用户的家目录
/lib:库文件
静态库,以.a结尾
动态库(shared object)→动态链接库,以.so结尾
二者区别:静态库是直接连接到程序里的,当多个程序运行时,每个程序都会调用自己的静态库,比较占内存;动态库可以实现多个程序之间共享相同的库文件,节约内存;但是如果把程序移到其他环境下,动态库如果没有跟着移动,程序可能运行不了,然而静态库因为已经写到一起,所以可以照常运行;注:库文件不能独立运行,没有程序的访问入口,只能被调用。就像c程序要有main主函数才能运行。
/lib/modules:内核模块文件
/lib64:64位操作系统
/media:挂载点目录,移动设备的挂载点
/mnt:挂载点目录,额外临时文件系统的挂载点
/opt:可选的,以前是安装第三方程序的
/proc:伪文件系统,存放内核映射文件(比如内核是否支持IPv4协议,网卡设备收发数据包多少,都可以在这个目录中的文件中找到,所以有时候要设置操作系统的根本属性可以通过这个目录里的文件设置)
开机之前目录里没有任何文件,里面的文件都是通过软件模拟出来的,关机之后也没有任何文件;
/sys:伪文件系统,跟硬件设备属性相关的映射文件
/tmp:临时文件,一般会定时自动清理,任何人都可以在里面创建文件,但只能删除自己的文件;
/var:可变化的文件(日志文件、邮件等)
在linux系统上,每一个进程运行起来之后都会有一个进程号码,它会以.pid结尾的文件名存储在/var/run/目录里;
/bin:可执行文件,用户命令;→/usr/bin
/sbin: 可执行文件,管理命令;→/usr/sbin
/usr:全局的、共享的、只读的文件;
现在第三方文件软件数据一般都放在/usr/locale里;
/bin、/sbin、/lib:一般是系统启动要用到的可执行文件,而/usr/bin、/usr/sbin、/usr/lib一般是系统启动之后为了提供一些基本功能而需要的可执行文件;
操作系统实现的功能
文件管理
touch:修改文件的时间戳,但是可以用来创建空文件;
创建文件还可以使用文本编辑器;
rm :删除文件
rm -rf:强制递归删除文件,不给出提示信息;
stat:显示文件的详细状态;atime,mtime,ctime;
目录管理
mkdir:创建空目录
mkdir -p:递归创建目录
mkdir -v :显示创建过程
rmdie:删除空目录
rmdir -p:删除递归的空目录
rm -rf :可递归删除非空目录
tree:查看目录树
命令行展开:{ }
{a,b}{c,d}→ab ad cb bd
cp:复制文件到指定位置
cp SRC DEST
SRC是文件:
如果目标文件不存在,新建DEST,并将SRC中的内容填充致DEST中;
如果目标文件存在:
如果DEST是文件,会覆盖DEST文件
此时建议使用"-i"选项,交互式→用于提示是否覆盖;
如果DEST是目录,会在目录中创建于SRC同名的文件,并将SRC中的内容填充致DEST中
cp SRC… DEST
SRC…是多个文件,DEST必须存在;
cp SRC DEST
SRC是目录:
此时需要使用选项"-r";
如果DEST不存在,则会创建目录,复制SRC中的所有文件至DEST中;
如果DEST存在,则DEST必须为目录;
cp -a:归档复制→保持文件原来的属性;
mv:移动文件;
alias:设置命令别名
alias name='command [options] [path/to/name]'
在命令方设置的别名只在当前shell进程有效,如果想设置永久有效,需设置其配置文件;
设置某用户有效:~/.bashrc;
设置所有用户有效:/etc/bashrc;
bash进程重新读取配置文件
source /path/to/config_file
. /path/to/config_file
/command:跳过别名,直接执行原命令;
unalias:撤销别名;
glob(globbing):bash中用于实现文件名通配
*:匹配任意长度的任意字符;
?:匹配任意单个字符;
[ ]:匹配指定范围的单个字符;
[^]:匹配指定范围之外的任意单个字符;
专用字符集合:
[:alnum:]:任意数字或字母;
[:alpha:] :任意大小写字母;
[:cntrl:]:控制符;
[:digit:]:任意数字;
[:lower:]:任意小写字母;
[:print:]:可打印字符;
[:space:]:任意空格;
[:upper:]:任意大写字母;
[:xdigit:]:十六进制字符;
可以man tr 查看解释;
具体其他命令:略,老子写累了;
软件管理
网络管理
进程管理
设备管理
注:根据马哥视频做的笔记,侵删