您的位置:首页 > 运维架构 > Shell

0823第三课-2 Linux的文件系统 bash基础特性

2015-08-29 23:19 756 查看
1、linux文件系统
绝对路径:/
LSB: FHS(文件系统层级结构标准)



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:临时文件目录;一般用户或者正在执行的程序暂时存放档案的地方,任何人都能够存取,需定时清理,不可存放重要数据
/usr:unix system resources;






bin:保证系统提供基本功能;
sbin
lib
lib64
include: C程序的头文件;header files
share:结构化的独立数据
doc, man
local:现在常用的第三方程序的安装位置;
bin
sbin
lib
lib64
etc
share
/var:variable data files 主要针对常态性变动的档案



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: 只显示几个层级;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: