文件管理
文件系统:层级结构
/bin:所有用户可用的基本命令程序结构
/sbin:供系统管理使用的工具程序
/boot:引导加载器必须用到的各静态文件
/dev:存储特殊文件或设备文件
设备有两种类型:字符设备、块设备
/etc:系统程序的配置文件,只能为静态
/home:普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录
/1ib:为系统启动或根文件系统上的应用程序(/bin, /sbin)等提供共享库,以及为内核提供内核模
/media:便携式设备挂载点
/mnt:其它文件系统的临时挂载点
/opt:附加应用程序的安装位置:可选路径
/srv:当前主机为服务提供的数据
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录:可供所用户执行写入操作:有特殊权限
/usr:全局共享的只读数据路径
include: C程序头文件
share:命令手册页和自带文档等架构特有的文件的存储位置
src:程序源码文件的存储位置
local:让系统管理员安装本地应用程序;也通常用于安装第三方程序
/var:存储常发生变化的数据的目录
/proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息:它们多为内核参数
/sys: sysfs虚拟文件 系统提供了一种比proc更为理想的访问内核数据的途径,主要作用是为管理Linux提供一种统一模型的接口
Linux系统上的文件类型:
-:常规文件
d:directory,目录文件
b:block device,块设备文件,支持以""block"为单位进行随机访问
c:character device,字符设备文件,支持以"character"为单位的线性访问
major number:主设备号,用于标识设备类型,进而确定要加载的驱动程序
minor number: 次设备号,用于标识同一类型中的不同的设备
8位二进制: 0-255
1: symbolic link, 符号链接文件
p: pipe; 命名管道
s: socker, 套接字文件
基本命令:
命名类型:
外部命令
内部命令
type查看命令类型
内部:内嵌
外部:显示为命令文件格式
命令别名:
alias
定义别名:alias NAME='COMMAND'
注意:仅对当前设置有效
撤销别名:unalias NAME
which命令:
which [options]programname[...]
--skip-alias:忽略别名
who命令
who 查看系统的登陆信息
who [OPTION]...
-b: 系统此次启动的时间
-r: 运行级别
bash的基础特性:
命令补全:
shel1程序在接收到用户执行命令的请求,分析完成之后,最左侧的字符串会被当作命令
命令查找机制:
查找内部命令:
根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名:
给定的打头字符串如果能惟一标识某命令程序文件,则直接补全
不能惟一标识某命令程序文件,再由tab键 一次,会给出列表
路径补全:
在给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路径下的每个文件:
tab:
如果能惟一标识,则直接补全;
否则,再一次tab,给出列表;
命令历史: shell进程 会其会话中保存此前用户提交执行过的命令;
~]# history
-c:清空命令历史
-w:把历史列表中的命令追加至历史文件中
目录管理类的命令:
mkdir,rmdir
mkdir:make directory
mkdir [OPTION]... DIRECTORY
-p:自动按需创建父目录
-v: verbose, 显示详细过程
-m:直接给定权限
注意:路径基名方为命令的作用对象:基名之前的路径必须得存在
bash的基本性质之:命令行的展开
~自动展开为用户的家目录,或指定的用户的家目录:
{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径:
例如: /tmp/{a,b} 相当于/tmp/a /tmp/b
tree命令:
bash的基础特性:命令的执行状态结果
命令执行的状态结果:
bash通过状态返回值来输出此结果:
状态返回值:成功: 0
失败: 1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中:|
echo $?
引用命令的执行结果:
$(COMMAND)或`COMMAND`
bash的基本特性:引用
强引用:''
弱引用:""
命令引用:``
bash基本特性:快捷键
Ctrl+a:跳转至命令行行首
Ctrl+e:跳转至命令行行尾
Ctrl+u:删除行首至光标所在处之间的所有字符;
Ctrl+k:删除光标所在处至行尾的所有字符:
Ctrl+l:清屏,相当于clear
文本查看类命令:cat,tac,head,tail,more,less
分屏查看命令: more和less
more命令:
more FILE
特点:翻屏至文件尾部后自动退出;
less命令:
less FILE
head命令:
head [options] FILE
-n:查看文件的前n行,默认查看文件的前10行
tail命令:
查看文件的后n行
tail [options] FILE
-n
-f: 查看文件尾部内容结束后不退出,跟随显示新增的行
stat命令:
stat FILE
文件:两类数据
元数据:(metadate)描述数据的数据
数据:date
时间戳:
Access: 2020-03-22 12:32:37.064998694 +0800
Modify: 2020-03-22 16:25:14.084276197 +0800
Change: 2020-03-22 16:25:14.084276197 +0800
touch命令:
touch 修改时间戳
touch [OPTION] FILE
-c:指定的文件路径不存在时不予创建
-a:仅修改access time
-m:仅修改modify time
文件管理工具:cp,mv,rm
cp命令:copy
源文件 目标文件
单源复制:
如果目标DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中
如果DEST存在:
如果DEST是非目录文件:则覆盖目标文件
如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流
多源复制
如果DEST不存在:错误
如果DEST不是目录文件:错误
如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名
常用选项:
i:交互式复制,即覆盖之前提醒用户确认;
f: 强制覆盖目标文件:
-r, -R: 递归复制目录;
d: 复制符号链接文件本身,而非其指向的源文件:
-a: -dR -- preserve=all, archive, 用于实现归档
mv命令:
-i:提示是否写入
-t:覆盖前不提示
rm命令:remove
-i:删除不存在的文件和参数,不提示
-f:每次删除前提示
-r:删除目录及递归内容
删除目录:rm -rf
bash的基础特性:
globbing:文件名通配
匹配模式:元字符
*:匹配任意长度的任意字符
?:匹配任意单个字符
[]:匹配指定范围内的任意单个字符