4.Linux根文件系统和目录结构及bash特性
Posted 43945616b
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.Linux根文件系统和目录结构及bash特性相关的知识,希望对你有一定的参考价值。
4.1Linux目录结构和根文件系统全面讲解
Linux文件系统:
Linux:glibc
程序编译方式:
动态链接
静态编译
进程的类型:
终端:硬件设备, 关联一个用户接口
与终端相关:通过终端启动
与终端无关:操作引导启动过程当中自动启动
操作系统的组成:
静态:Kernel,application
文件系统:层级结构
FHS:
Filesystem Hierachry Stanard
/bin: 所有用户可用的基本命令程序文件 /sbin:供系统管理使用的工具程序 /boot:引导加载器必须用到的各静态文件:Kernel,initramfs(initrd),grub等 /dev:存储特殊文件或设备文件 设备有两种类型:字符设备(线性设备)、块设备(随机设备) /etc:系统程序的配置文件,只能为静态 /home:普通的家目录的集中位置:一般每隔普通的家目录默认为此/home/USERNAME /root:管理员的家目录,可选 /lib: 为系统启动或根文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块 libc.so.*:动态链接的C库 ld*:运行时链接器/加载器 modules: 用户存储内核模块的目录 /lib64: 64为系统特有的存放64位共享库的路径 /media:便携式设备挂载点,cdrom,floppy等 /mnt:其他文件系统的临时挂载点 /opt:附加应用程序的安装位置:可选路径 /srv:当前主机为服务提供的数据 /tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录:可供所用户执行写入操作:有特殊权限 /usr: usr Hierarchy 全局共享的只读数据路径 bin sbin lib lib64 include(C程序头文件) share(命令手册页和自带文档等架构特有的文件的存储路径) src 程序源码文件存储位置 /usr/local: 让系统管理员安装本地应用程序:也通常用于安装第三方程序 /var: 存储常发生变化的数据的路径
/proc:
基于内存的虚拟文件系统,用于为内核及进程存储器相关信息:它们多为内核参数,例如net.ipv4.ip_forward,虚拟为/net/ipv4/ip_forward,存储于/proc/sys下
/sys:
sysfs虚拟文件系统提供了一种比proc更为理想的访问内核书的途径:其主要作用在于为管理Linux设备提供了一个统一模型的接口
www.ibm.com/developerworks/cn/linux/
4.2Linux基础命令及命令历史
Linux系统上的文件类型
-:常规文件 d: directory,目录文件 b: block device,块设备文件,支持以"block"为单位进行随机访问 c: character device:字符设备文件,支持以"character"为单位进行线性访问 major number:主设备号,用标识设备类型,进而确定要加载的驱动程序 minor number:次设备号,用于标识同一类型中的不同的设备 l: symbolic link,符号链接文件 p: pipe,命令管道 s:socker,套接字文件
基本命令:
命令类型
外部命令
shell内嵌命令
type COMMAND
内部:builtin
外部:显示为命令文件路径
命令别名:
获取: ~]# alias
定义:~]# alias NAME=‘COMMAND‘
撤销别名:~]# unalias NAME
which命令:shows the full path of (shell) commands
which [options] [--] programname [...]
whereis命令
locate the binary, source, and manual page files for a command
whereis [option] name
-b:只查看二进制程序路径
-m:只查看手册
who命令
- show who is logged on
who [option]...
-b:系统此次启动的时间
-r: 运行级别
w命令
- Show who is logged on and what they are doing
bash的基础特性:
命令历史:shell进程会其绘画中保存次前用户提交执行过的命令
history
定制history的功能,可通过环境变量实现
HISTSIZE:shell进行可保留的命令历史的条数
HISTFILE:持久保存命令历史的文件
.bash_history
HISTFILESIZE: 命令历史文件的大小
命令用法:
history [-c][-d #]
或 history -anrw[文件名]
或 history -ps 参数 [参数...]
-c: 清空命令历史
-d offset:删除指定命令历史
-r:从文件读取命令历史至历史列表中
-w:把历史列表中的命令追加至历史文件中
history #: 显示最近#条记录
调用命令历史列表中的命令:
!#:再一次执行历史列表中的第#条命令
!!::再一次执行上一条命令
!STRING:再一次执行命令历史列表中最近一个以STRING开头的命令
注意:命令的重复执行有时候需要依赖幂等性
调用上一条命令的最后一个参数
ESC .
控制命令历史记录的方式
环境变量:HISCONTROL
ignoredups:忽略重复的命令
ignorespace:忽略以空白字符开头的命令
ignoreboth:以上两者同时生效
4.3 bash的常见特性及文本查看命令实战
命令补全:
shell程序在接收到用户执行命令的请求,分析完成之后,最左侧的字符会被当作命令:
命令处理机制:
查找内部命令
根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名
给定的打头字符串如果能唯一标识某命令程序文件,则直接补全
不能唯一标识某命令程序文件,再击tab健一次,会给出列表
路径补全:
在给定的起始路径下,以对应路径下的打头字符串来逐一匹配起始路径下的每个文件
tab:
如果能唯一标识,则直接补全
不能唯一标识,再击tab健一次,会给出列表
目录管理类的命令
mkdir,rmdir
mkdir: make directory
mkdir [OPTION] ... DIRECTORY ...
注意:路径基名为命令的作用对象:基名之前的路径必须存在
-p:自动按需创建父目录
-v:显示详细过程
-m: 直接给定权限
rmdir: remove empty directories
bash的基础特性之:命令行展开
~:自动展开为用户的家目录,或指定的用户的家目录
:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径
tree命令:
-L level:指定要显示的层级
bash的基础特性:命令的执行状态结果
命令执行的状态结果:
bash通过状态返回值来输出此结果:
成功:0
失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中
命令正常执行时,有的还回有命令返回值
根据命令及其功能不同,结果各不相同
引用命令的执行结果:
$(COMMAND)
或`COMMAND`
rmdir [OPTION]...DIRECTORY ...
-p:删除某目录后,如果其父目录为空,则一并删除
-v:显示过程:
bash基础特性:快捷键
Ctrl+a:跳转至命令行行首
Ctrl+e:跳转至命令行行尾
Ctrl+u:删除行首至光标所在处之间的所有字符
Ctrl+k:删除光标所在处到行尾的所有字符
Ctrl+l:清屏
文件查看类命令: cat,tac,head,tail,more,less
分屏查看命令:more和less
more命令:
more FILE
特点:翻屏至文件尾部后自动退出
less命令:
less FILE
head命令:
查看文件的前n行
head -n # FILE
tail命令:
查看文件的后n行:
tail [OPTION] FILE
-n #
- #
-f:查看文件尾部内容结束后不退出,跟随文件新增的行
stat命令:
stat FILE ...
文件:两类数据
元数据:metadata
数据:data
时间戳:
access
modify 数据
change 元数据
touch命令:
- change file timestamp
-c:指定的文件路径不存在,则不创建
-a:仅修改access time
-m:仅修改modify time
-t:STAMP
文件管理工具:cp,mv,rm
cp命令:copy
源文件:目标文件
4.4Linux运维常用文件管理命令及系统变量基础
文件管理工具:cp, mv, rm cp命令:copy 源文件:目标文件 单源复制:cp [OPTION]... [-T] SOURCE DEST 如果DEST不存在,则事先创建次文件,并复制源文件的数据流至DEST文件 如果DEST存在: 如果DEST是非目录文件,则覆盖目标文件 如果DEST是目录文件:创建一个同名文件,复制 多源复制:cp [OPTION]... SOURCE...DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... 如果DEST不存在,错误 如果DEST存在: 如果DEST是非目录文件,错误 如果DEST是目录文件:分别复制每个文件至目标目录,并保持原名 常有选项: -i:交互式复制,即覆盖之前提醒用户确认 -f:强制覆盖目标文件 -r:递归复制目录 -d:复制符号链接文件本身,而非其指向的源文件 -a: --preserve mode: ownership: timestamps: context: xattr: links: all: mv命令:move mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE...DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE... 常用选项: -i: interactive -f: force rm命令:remove rm [OPTION] ... FILE... 常用选项: -i: interactive -f: force -r: recursive
以上是关于4.Linux根文件系统和目录结构及bash特性的主要内容,如果未能解决你的问题,请参考以下文章