linux 文件系统笔记

文件格式:

        windows:PE

        linux:  ELF

文件系统:

    rootfs

FHS:规定linux应该创建哪些目录

/下的目录结构:

/boot: 系统启动相关的文件,如内核,initrd,以及 grub(bootloader)

/dev :设备文件(例如:光盘,cdrom)

        类型:

            块设备:随机访问, 数据块

            字符设备:线性访问, 以字节为单位

        设备号:主设备号(major),次设备号(minor)

/etc:  配置文件(绝大多数为纯文本格式)

/home: 用户的家目录,默认为/home/username

/root: 管理员的家目录

/lib :库文件

        /lib/modules:内核模块文件

        静态文件,lib, a

        动态文件:dll, so

wKiom1O37BijY2tIAAAqcGAds84409.jpg

内存中多个进程共享一份

/lost_found: 丢失和找回,跟系统无关

/media: 挂载点目录,移动设备(光盘cdrom)

每个设备都在/dev目录下都对应的应该有一个设备文件,如果我们想访问这个设备,就必须将这个设备文件和/media 关联, 然后通过/media 下对应的文件来访问这个设备

/mnt: 挂载额外的临时文件系统

/misc:

/opt: 可选目录, 第三方程序安装目录 , 现在应经替换为/usr/local

/proc: 伪文件系统, 内核映射文件


/sys: 伪文件系统, 跟硬件设备相关的属性映射文件

/tmp: 临时文件

/var: 可变化的文件

重要的有:

    /var/cache

    /var/lock

    /var/log

    /var/mail

    /var/run


/bin: binary 可执行文件 用户命令

/sbin: 管理命令


/usr:

    /usr/bin

    /usr/sbin

    /usr/lib


/usr/local:

    /usr/local/bin

    /usr/local/sbin

    /usr/local/lib


几个命令:

tree 查看文件结构

    tee 目录名

mkdir 创建目录

    mkdir -p x/y/z (x,y 不存在是创建z)

          -v: verbose详细信息

    mkdir -pv x/y/z

需求:

    /mnt/test/x/m, y

mkdir -pv /mnt/test/x/m  /mnt/test/x/y

mkdir =pv /mnt/test/{x/m, y} 命令行展开



/mnt/test2/下有如下创建如下文件夹:

    a_b, a_c , d_b, d_c

mkdir -pv /mnt/test2/{a, d}_{b,c}


rmkir: 删除命令

        rmdir -p /x/y/z (一线单传时)


文件创建:

    touch 修改文件的时间戳(3个时间戳, 访问, 修改,)

    stat filename 查看文件信息

    指定时间, touch -t


rm -i : 交互式

\rm 使用命令自身, 不使用别名


文本处理命令:cat, more, less, head, tail, cut, sort, uniq, grep

管道和重定向,< , > , >>, <<

用户,组, 权限

正则表达式

bash及其特性


目录管理: ls, cd , pwd, mkdir, rmdir, tree

文件管理: touch, stat(文件属性信息), file, rm , cp, mv, nano(编辑器)

日期时间:date, clock, hwclock, cal


查看文本文件的内容:

    cat, tac, more , less, head, tail

cat : 连接并显示

    cat /etc/issue

    cat /etc/fstab

    cat /etc/issue, /etc/fstab


-n : 显示行号

-E: 显示行尾结束符(linux和windows不同)


tac:反向显示


分屏查看命令:

       more, less


space , b, enter


查看文件首尾几行:

    head:查看前几行

    tail:查看后几行

-n: 指定行数


tail -f: 

动态显示文件的变化

不退出,显示追加进来的内容(日志文件查看时)


文本处理: cut, join, sed, awk, grep

cut -d:

    -d 指定分割符,默认是空格

    -f 指定要显示的字段

        -f 1,3

        -f 1-3

文本排序:sort


        -n 数值大小排序,不再是ascii

        -r 逆序

        -t 指定字段分割符

        -k : sort -t: -k3 /etc/passwd, 以那个字段为关键字进行排序

        -u :相同的只显示一次

        -f :忽视大小写

uniq:

    -d:只显示重复的行

    -D:显示所有重复行

    -c:显示文件中行重复的次数


文本统计:wc

    -l:行数

    -w:word

    -c:字节数

    -L:最长一行包含多少个字符


tr:字符处理命令,转换或删除字符

    tr 'ab', "AB"

    tr 'ab' 'AB' < /etc/passwd

    tr -d 'ab', 删除


bash及其特性

    shell:外壳

    GUI:GNOME, KDE, xface

    CLI:sh, bash, csh,ksh

假设系统有root,和student 用户

程序一份,

进程二份,在每个进程看来,当前主机上只存在内核和当前进程


用户工作环境

bash:

shell, 子shell

使用: pstree命令查看

LANG=en处理乱码


1、命令历史

2、管道,重定向

3、命令别名

4、命令行编辑

5、命令行展开

6、文件名通配

7、变量

8、编程


光标跳转: ctrl+a:跳到命令行首

            ctrl + e:跳到命令行尾

            ctrl + u:删除光标至命令行首的内容

            ctrl + k:删除光标至命令行尾的内容

命令历史:

            history 查看历史命令

            -c :清空历史命令

            -d:删除指定位置的命令

                -d OFFSET  [n]

            note: 用户退出后 ,缓存的命令会追加用户家目录中的.bash_history文件中

            -w :将缓存中的历史命令保存到历史文件中

历史命令的使用技巧;

        !n:执行命令历史中的第n条命令

        !-n: 执行命令历史中倒数第n条命令

        !!执行上一条命令

        !str: 执行命令历史中最近一个以指定字符开头的命令

        !$:引用前一个命令的最后一个参数,等价于 ESC,松手,. 或 ALT + .



环境变量:

        PATH 命令搜索路径

        HISTSIZE: 命令历史缓存的大小, 默认是1000

命令补全: tab, tab tab


路径补全: cd ..

命令别名: alias

在shell定义的别名仅在当前shell生命周期中有效,别名的有效当前shell进程

unalias 取消别名

\cmd : 使用命令本身


       

























       
















    

你可能感兴趣的:(linux,文件,系统笔记)