文件系统、mkdir、touch、nano、cp笔记

时间:2021-11-17 12:36:28

文件系统:
rootfs: 根文件系统

FHS:Linux发行版目录层级遵循协议

/boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader)引导加载器
/dev: 设备文件
    设备文件:
        块设备:随机访问,数据块
        字符设备:线性访问,按字符为单位
        设备号:主设备号(major)和次设备号(minor)
/etc:配置文件
/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
/root:管理员的家目录;
/lib:库文件
    静态库,  .a
    动态库, .dll, .so (shared object)
    /lib/modules:内核模块文件
/media:挂载点目录,移动设备
/mnt:挂载点目录,额外的临时文件系统
/opt:可选目录,第三方程序的安装目录
/proc:伪文件系统,内核映射文件
/sys:伪文件系统,跟硬件设备相关的属性映射文件
/tmp:临时文件, /var/tmp
/var:可变化的文件
/bin: 可执行文件, 用户命令
/sbin:管理命令

/usr:shared, read-only
    /usr/bin
    /usr/sbin
    /usr/lib
    
/usr/local:
    /usr/local/bin
    /usr/local/sbin
    /usr/local/lib

命名规则:
1、长度不能超过255个字符;
2、不能使用/当文件名
3、严格区分大小写

相对路径:
绝对路径:



文件管理
    
目录管理
ls
cd
pwd

mkdir:创建空目录
    -p:
    -v: verbose
/root/x/y/z

/mnt/test/x/m,y
mkdir -pv /mnt/test/x/m /mnt/test/y
mkdir -pv /mnt/test/{x/m,y}

~USERNAME

命令行展开:
/mnt/test2/
a_b, a_c, d_b, d_c
(a+d)(b+c)=ab+ac+db+dc
{a,d}_{b,c}
mkdir -pv /mnt/test2/{a,d}_{b,c}


# tree:查看目录树

删除目录:rmdir (remove directory)
    删除空目录
    -p
    
文件创建和删除
# touch
    -a
    -m
    -t
    -c
# stat

创建文件,可以使用文件编辑器

ASCII:

128不同的字符:
    二进制:
        2^6=0,63
        2^7=0,127
        000 0000 - 111 1111

ASCII:        
0000 1001: t

2^16: 65536

标准:GB18030, GBK, GB2312,Unicode
0000 1001 0000 1110:上, 卫

nano

删除文件:rm
    -i
    -f
    -r
    
rm -rf /

练习:
1、创建目录
(1)在/mnt下创建boot和sysroot;
(2)在/mnt/boot下创建grub;
(3)在/mnt/sysroot下创建proc, sys, bin, sbin, lib, usr, var, etc, dev, home, root, tmp
    a)在/mnt/sysroot/usr下创建bin, sbin, lib
    b)在/mnt/sysroot/lib下创建modules
    c)在/mnt/sysroot/var下创建run, log, lock
    d)在/mnt/sysroot/etc下创建init.d
    

复制和移动文件
cp: copy
cp SRC DEST
    -r
    -i
    -f
    -p:保留文件属性
    -a:归档复制,常用于备份,保留所有属性
    -L:复制链接指定的文件
    -P:保持链接
    

cp file1 file2 file3
一个文件到一个文件
多个文件到一个目录
cp /etc/{passwd,inittab,rc.d/rc.sysinit} /tmp/

mv: move
移动文件

mv SRC DEST
mv -t DEST SRC


install
    -d DIRECOTRY ... :创建目录
    SRC DEST
install -t DIRECTORY SRC...

作业1:
1、创建目录/backup
# mkdir -v /backup
2、复制目录/etc至/backup目录中,并重命名为“etc-当前日期”,如etc-2013-02-26;要求保留文件原来的属性,保持链接文件;
cp
    -r
    -p
    -d
# cp -a /etc /backup/etc-2013-02-28

命令替换
    
3、复制文件/etc/inittab为/tmp/inittab.new,并删除inittab.new文件的后两行;
# cp /etc/inittab  /tmp/inittab.new
# nano /tmp/inittab.new

作业2:
1、思考:ls命令是否可以显示某目录的整体大小,即包括其内部的所有文件的整体大小?
2、通过帮助手册,学习使用du命令;
# du
    -s
    -h
3、通过帮助,学习read命令;
变量:内存空间,有名称
变量赋值:

变量替换

作业3:
描述GPL, BSD, Apache三个开源协定的大体联系及区别。

*软件
开源协定,版权描述


作业4:
1、如何获取Linux当前最新的内核版本号?
    www.kernel.org
2、列出你所了解的Linux发行版,并说明其跟Linux内核的关系。
    Linux, GNU: GNU/Linux, 源代码
    
    发行版:Fedora, RedHat(CentOS), SUSE, Debian(Ubuntu, Mint), Gentoo, LFS(Linux From Scratch)
    
C, Tom, AMD, Jerry,

RedHat: 通用格式

奔腾: