Linux的文件系统:
/bin: 存储基本的用户命令
/boot: boot loader相关的静态文件,内核以及ramdisk文件
/dev: 设备相关的文件
/etc: 主机特有的系统配置文件
/home: 用户的家目录(可选)
/lib: 基本的共享库文件,以及内核模块文件
.so, .ko
/lib64: 64bits系统的基本共享库文件
/media:可移除设备的挂载点
/mnt:可挂载文件系统的临时使用的挂载点
/opt:第三方应用程序的安装位置
/root: 管理员root用户的家目录
/sbin: 系统管理相关的二进制程序
注意:执行设定操作时,此目录下的命令仅具有管理权限的用户可执行
/srv: 当前系统的服务相关的数据
/tmp: 临时文件目录,具有特殊权限设定
/usr:可被共享的、只读数据的存放位置
bin: 二进制程序
include: C程序用到的头文件
lib: 库文件
lib64: 库文件
local: 本地程序目录结构
share: 独立于平台架构的数据
sbin: 管理程序
src: 源代码目录
/var:可变文件目录
cache: 应用程序的缓存数据
lib: 可变的状态信息数据
local: 为/usr/local下的程序准备的可变数据目录
lock: 锁文件目录
log: 日志文件
run: 运行进程时相关的数据,如守护进程的PID文件
tmp: 系统重启之后需要留存的临时文件目录
/proc: 内核及进程相关信息的虚拟文件系统接口
伪文件系统:本身不是文件系统,但输出为文件系统
/sys: 伪文件系统,硬件设备相关信息的虚拟文件系统接口
Linux下应用程序的组成部分:
二进制程序:bin, sbin
库文件:lib, lib64
配置文件:etc
帮助文件:/usr/share/man, /usr/local/share/man
Linux下的文件类型:
-:普通文件
d: 目录文件
b: block,块设备文件
随机访问设备
c:character, 字符设备文件
线性访问设备
l: 软链接文件
p: pipe, 命名管道
s: socket,套接字文件
环境变量:
PS1:定义命令提示符格式:
命令:
type:判断一个程序是内部命令还是外部命令
cd:切换工作路径
pwd:显示当前工作路径
ls:显示当前或指定目录的下的文件及目录
-a:显示所有文件,包括影藏文件
-A
-l: 长格式列表,显示文件属性信息
-rw-r--r-- 1 root root 1619 Nov 9 22:55 /etc/passwd
-: 文件类型
rw-r--r--:文件访问权限
1:文件被硬链接的次数
root root: 文件的属主(owner),文件属组(group)
1619:文件大小,默认单位为Bytes
Nov 9 22:55 文件最近一次被修改的时间;
/etc/passwd 文件名
-d:显示目录本身的信息
-h: human-readable,对文件大小做单位换算以实现易读
-R: 递归
-i:显示文件inode号
cat:显示文件内容
cat [FILE]...
-n: 给输出的内容加上行号;
-e: 显示非打印字符及行结束符$
文件内容类型查看命令:
file [FILE]...
判断文件内容的类型
回显命令:echo
echo [options] [argus]
-n: 不进行换行;
-e: 让控制符生效;
\n: 换行
echo ${VAR_NAME}:显示变量的值
8、bash基础特性之globbing:
文件名通配:元字符
*: 匹配任意长度的任意字符
pa*, *pa*, *pa, p*a, *p*a
?:匹配任意单个字符
p?
思考:
pad: p?d, p*d
pd: p?d, p*d
paad: p?d, p*d
[]:匹配指定集合内的任意单个字符
[0-9]:任意数字
[a-z]:任意小写字符
[A-Z]:
[0-9a-zA-Z]
p[mn]*
[^]:匹配指定集合外的任意单个字符
p[^m-z]*
字符集合:
[:space:] 所有的空白字符, [[:space:]]
[:punct:] 所有标点符号
[:lower:] 所有小写字母
[:upper:] 大
[:digit:] 所有数字
[:alpha:] 所有字母
[:alnum:] 所有字母和数字
练习1:显示/var目录下所有l开头,以一个小写字母结尾,且中间出现一位数字的文件或目录;
# ls -d /var/l*[0-9]*[a-z]
# ls -d /var/l*[[:digit:]]*[[:lower:]]
练习2:显示/etc/目录下,以任意一位数字开头,且以非数字结尾的文件或目录;
# ls -d /etc/[0-9]*[^0-9]
练习3: 显示/etc/目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录;
# ls -d /etc/[^[:alpha:]][[:alpha:]]*
练习4:复制/etc/下,所有以m开头,以非数字结尾的文件或目录至/tmp/mageedu目录中;
#cp -r /etc/m*[^0-9] /tmp/mageedu
练习5:复制/etc目录下,所有以.d结尾的文件或目录至/tmp/mageedu2目录中;
#cp -r /etc/*.d /tmp/mageedu2
练习6:复制/etc目录下,所有以.conf结尾,以m,n,r,p开头的文件或目录至/tmp/mageedu3目录中;
#cp -r /etc/[mnrp]*.conf /tmp/mageedu3
9、目录管理类命令:cd, pwd, ls
mkdir, rmdir
mkdir:
mkdir [options] DIRECTORY ...
-v: verbose,详细信息
-p: parent,级联创建目录,指定的目标目录的父目录如果不存在,则先创建之;
aa/bb
rmdir: 删除空目录
rmdir [options] DIRECTOTRY ...
-v
-p:
问题1:如何创建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b, /tmp/x/y2/a, /tmp/x/y2/b
mkdir -pv x/{y1,y2}/{a,b}
mkdir -pv x/y1/a
mkdir -pv x/y1/b
mkdir -pv x/y2/a
mkdir -pv x/y2/b
问题2:如何创建a_d, a_c, b_d, b_c四个目录?
# mkdir a_d a_c b_d b_c
10、 文件管理工具:cp, mv, rm
cp 选项 源文件 目标位置
cp 源文件 目标文件
cp file1 file2
存在
不存在
cp 源文件 目录
cp 源目录 目录
cp的常用选项:
-r: 复制目录时实现递归复制
-d: 不跟随符号链接文件指向的源文件,即复制链接文件本身而非其指向的文件
-a: 相当于-dr
-i: interactive, 目标文件存时,提醒用户是否执行覆盖(y/n);
-f: force,强行覆盖;
注意:如果源文件是符号链接文件,则复制时会拷贝链接指向的源文件的内容;
文件移动:mv
mv [OPTION] SRC DEST
mv [OPTION] SRC... DIRECTORY
mv 源文件 目标文件
源文件 目录
源目录 目标目录
-i:interactive
-f: force
文件删除:rm
rm [OPTION] FILE...
-r: 递归删除目录及其内部的所有文件;
-f: 强制删除
注意:建议先移动至某专用的目录下;过一段时间再清理;