1、linux文件系统

绝对路径:/

LSB: FHS(文件系统层级结构标准)wKioL1XhxXHCKCjwAA8kVG-pkkc459.jpg


FHS:

/boot: 引导文件存放目录,例如kernel(vmlinuz)、bootloader(grub, grub2);

            包含开机菜单以及开机所需要的配置文件等等

[root@mysql boot]# ls
config-2.6.32-504.el6.x86_64         lost+found
efi                                  symvers-2.6.32-504.el6.x86_64.gz
grub                                 System.map-2.6.32-504.el6.x86_64
initramfs-2.6.32-504.el6.x86_64.img  vmlinuz-2.6.32-504.el6.x86_64

/bin: binary,供用户使用的基本的命令;OS启动即会用到程序;

            /bin下的指令可以被root与一般账号使用,主要有:cat ,chmod,chown,date,mv,mkdir,cp,bash等

[root@mysql bin]# ls
arch                  egrep               mkdir          setfont
awk                   env                 mknod          sh
basename              ex                  mktemp         sleep
bash                  false               more           sort
cat                   fgrep               mount          stty
chgrp                 find                mountpoint     su
chmod                 findmnt             mv             sync
chown                 gawk                nano           tar
cp                    grep                netstat        taskset
cpio                  gtar                nice           touch
cut                   gunzip              nisdomainname  tracepath
dash                  gzip                ping           tracepath6
date                  hostname            ping6          true
dbus-cleanup-sockets  ipcalc              plymouth       umount
dbus-daemon           iptables-xml        ps             uname
dbus-monitor          iptables-xml-1.4.7  pwd            unicode_start
dbus-send             kbd_mode            raw            unicode_stop
dbus-uuidgen          kill                readlink       unlink
dd                    link                rm             usleep
df                    ln                  rmdir          vi
dmesg                 loadkeys            rnano          view
dnsdomainname         logger              rpm            ypdomainname
domainname            login               rvi            zcat
dumpkeys              ls                  rview
echo                  lsblk               sed

/sbin:管理类的基本命令;只有root才能执行的设定系统环境的命令,其他用户可以查询,包括了开机,修复,还原系统所需要的命令

/lib: 基本共享库;内核模块;存放开机时用到的库文件,以及/bin 或 /sbin下的指令会用到的库文件

/lib64:x86_64系统的共享库;

/etc:配置文件目录;存放系统主要配置文件,只有root可以修改,其他用户可以查阅

/home/USERNAME: 普通用主目录的默认位置;

[root@mysql home]# ll
总用量 28
drwx------. 3 51cto 51cto  4096 8月  28 09:33 51cto
drwx------. 3 cto   cto    4096 8月  11 00:26 cto
drwx------. 2 root  root  16384 8月   2 03:25 lost+found
drwx------. 3 mysql mysql  4096 8月  14 00:43 mysql

/root: 管理员的主目录;

/media:便携式移动设备;

/mnt:临时文件系统挂载点;

/opt: 可选目录,第三方应用程序的默认安装位置;

/dev:devices,设备文件    任何设备都是以档案的形态存于此目录

b:block devices,random access

c: character deivces,linear access

/proc

伪文件系统;用于输出内核与进程的相关信息;启动系统后存放于内存,不占用硬盘空间

/sys

伪文件系统;

/srv:services,系统上运行服务用到中间数据;

/tmp:临时文件目录;一般用户或者正在执行的程序暂时存放档案的地方,任何人都能够存取,需定时清理,不可存放重要数据

/usrunix system resources;

wKiom1XhwdHRlSloAATGk_282-Y139.jpg

wKioL1Xhw-2w21T6AAGI2kwpOhw135.jpg

bin:保证系统提供基本功能;

sbin

lib

lib64

include: C程序的头文件;header files

share:结构化的独立数据

doc, man

local:现在常用的第三方程序的安装位置;

bin

sbin

lib

lib64

etc

share

/var:variable data files   主要针对常态性变动的档案

wKioL1XhxGXy9WFcAAWMIuU4dBY875.jpg

cache:应用程序缓存数据

lib:应用程序的状态信息数据

local:专用于为/usr/local下的应用程序存储可变数据;

lock:锁文件

log:日志文件

opt:专用于/opt

spool:应用程序的数据池;

run:运行中的进程的相关数据;通常用守护进程 的pid文件;

/selinux

     

Linux的文件类型:

-(f):普通文件  属性例如 -rwxrwxrwx

           纯文本 ASCII

           二进制文件 binary

           数据格式文件,用last读取

d: 目录文件

        第一个属性为 d

b: 块设备文件

      block:存储设备,工系统随机存取的接口设备,硬盘等  

[root@mysql proc]# ls -l /dev/sda
brw-rw----. 1 root disk 8, 0 8月  30 03:16 /dev/sda

c: 字符设备文件

 键盘鼠标等串行端口的接口设备

crw-rw-rw-. 1 root root      1,   7 8月  30 03:16 full
crw-rw-rw-. 1 root root     10, 229 8月  30 03:16 fuse
crw-rw----. 1 root root    249,   0 8月  30 03:16 hidraw0
crw-rw----. 1 root root     10, 228 8月  30 03:16 hpet

l: 符号链接文件

lrwxrwxrwx. 1 root root          15 8月  30 03:16 stderr -> /proc/self/fd/2
lrwxrwxrwx. 1 root root          15 8月  30 03:16 stdin -> /proc/self/fd/0
lrwxrwxrwx. 1 root root          15 8月  30 03:16 stdout -> /proc/self/fd/1
lrwxrwxrwx. 1 root root           4 8月  30 03:16 systty -> tty0

p: 命名管道文件  first-in-first-out  主要解决多个程序同时存取一个档案所造成的错误问题

   

s:套接字文件socket


2、bash基础特性

  bash的基础特性(1)
    (1) 命令历史
        bash会记录此前用户在shell会话中执行的命令于缓冲区中;正常退出时,会被记录于当前用户家目录下隐藏文件.bash_history中;
            环境变量:
                HISTSIZE:命令历史记录的条数;

[root@mysql saslauthd]# echo $HISTSIZE
1000

                HISTFILE:命令历史文件路径;

[root@mysql ~]# echo $HISTFILE
/root/.bash_history

                HISTFILESIZE:

            history命令:
                -c:清空命令历史;

[root@mysql ~]# history  -c
[root@mysql ~]# history
    1  history

                -d #: 删除历史中指定的命令;
                -a: 当缓冲区中的历史手动追加文件;

                history #: 显示最近的多少条命令;

            调用过去执行过的命令:
                !#:调用历史中的第#条命令;
                !!: 重复执行上一条命令
                !string:调用历史中最近一个以string开头的命令;

            调用过去执行过的命令的最后一个参数:
                !$:
                ESC, .
                Alt+.

    (2) 命令补全
        bash内建命令
        外部命令

        命令搜索机制:
            PATH环境变量:由冒号分隔的路径

            hash:把此前搜索到路径缓存到内存中;
                kv: key-value
                    ls --> /bin/ls

        命令补全:

    (3) 路径补全
        把用户给出的路径字符串当前路径起始,并在其指定的上级目录下搜索以指定的字符串开头的文件名;
            如果惟一:直接补全;
            否则:两次Tab,可列出;

    (4) 命令行展开的功能
        ~: 展开为当前用户的主目录;
        ~USERNAME:展开为指定用户的家目录;
        {}:可承载一个以逗号分隔的列表,并其展开为多个路径;
            /var/{log,cache,run} = /var/log /var/cache /var/run

    (5) 命令的执行结果状态,由bash追踪和保存
        成功:0
        失败:1-255

        bash使用特殊变量$?保存最近一条命令的状态结果;

        程序的执行结果有两种:
            程序的返回值;
            程序的状态结果;

    (6) 命令别名
        命令的另一个引用符号,由bash程序维护;

        alias/unalias

            alias: 查看所有已经定义别名;
            alias NAME=COMMAND:定义别名;

                如果别名同原命令名,想直接执行原命令,则需使用\COMMAND

            unalias NAME: 撤消别名;

目录管理类命令:
    mkdir, rmdir, tree, dirname, basename

    (1) mkdir
        mkdir [OPTION] /PATH/TO/SOMEWHERE
            -p:创建父目录
            -v: 显示创建过程


    (2) rmdir
        rmdir /PATH/TO/SOMEWHERE

        删除空目录;

    (3) tree
        tree [OPTION]... [DIR]
            -d:只层级目录类型的文件;
            -L level: 只显示几个层级;