1	---第二天笔记---

 2	查看操作系统版本:cat /etc/redhat-release, /etc/os-release
 3	命令:lsb_release

 4	查看内存 和 swap分区:free

 5	查看cpu:	lscpu
 6	L1 L2 L3 CACHE

 7	查看硬盘:	lsblk        也能看到分区和挂载点

 8	man	分为9个章节
 9	1:用户命令
10	2:系统调用	如socket
11	3:C库调用
12	5:配置文件格式
13	8:管理类命令
14	9:Linux内核API

15	issue	预登陆提示文件提示  修改 man 8 agetty
16	-l	显示tty终端
17	-m	显示主机名
18	-t	当前时间
19	...

20	安装软件一般产生一个帮助文档:/usr/share/doc

21	历史命令:history

22	-c	清空历史,不会删除文件
23	-d	清楚某一条	history -d 10
24	-a	存到历史文件中 .bash_history
25	-r	文件-->history
26	-w	写入其他文件	history -w ./history.txt
27	-p	隐藏,不写入
28	-s	伪造

29	一些变量:
30	$HISTSIZE
31	$HISTIGNORE	+string		这些历史忽略,不显示
32	$HISTFILE	可以修改默认存放位置
33	$HISTTIMEFORMAT	"%F %T"
34	$HISTCONTROL	=both 忽略空白和重复的,默认是忽略重复的。
35	文件:/etc/profile.d/env.sh

36	快捷键:
37	^ + s	锁屏	^ + q	解锁	^ + z	挂起


38	文件管理部分:
39	/boot	引导启动
40	/dev	硬件设备文件	/dev/zero,null
41	/etc	配置文件
42	/home	用户
43	/run	运行时生成的文件
44	/bin	普通用户可执行程序
45	/sbin	管理员程序
46	/usr	
47	/var	变化的数据	缓存,数据库等
48	/media	媒体
49	/sys	硬件信息 	比如磁盘
/proc	保存内存和进程相关文件
50	...

51	FHS	Linux File Hierarchy Standard	文件分层系统
52	文件:metadata + data

53	文件颜色配置文件:/etc/DIR_COLORS

54	块设备与字符设备有什么区别?
块设备是随机存取(如硬盘),字符设备是顺序存储。

55	echo '- - -' > /sys/class/scsi_host/host*/scan	触发对磁盘的扫描
可以设置为别名:alias scandisk='echo - - -  >/sys/class/scsi_host/host0/scan;echo - - -  >/sys/class/scsi_host/host1/scan;echo - - -  >/sys/class/scsi_host/host2/scan'


56	pwd	当前目录	-P 显示软连接的真实路径
补充:描述文件位置根据实际使用绝对路径或者相对路径
57	cd	改变目录	cd ~wang	
58	cd -	回到上一次目录	echo $OLDPWD
59	dirname	取出路径	
60	basename	取出文件(夹)名

61	ls -R	目录递归列出所有
62	ls -l	长格式
63	ls -d	只看文件夹本身属性
64	-S	从大到小
ls -1	竖着显示
l.	显示隐藏文件	
65	atime	读时间	ll --time=atime /f1
66	mtime	修改时间	ll /f1
67	ctime	文件状态更改时间 ll --time=ctime /f1 

68	stat /f1	直接查看3个时间


69	通配符:匹配文件的路径
70	*	任意长度任意字符
71	?	任意一个字符
72	[0-9a-zA-Z]
73	[^abc]	排除了a,b,c

74	[:digit:]
75	[:lower:]
76	[:upper:]
77	[:alpha:]
[:alnum:]数字字母
查看说明:man 7 glob
78	...

79	touch -c	刷新文件时间,不存在不创建

80	cp	拷贝,会改变文件一些属性信息
81	-a	保持属性不变,常用于备份
82	-r	递归
83	-v	显示过程
84	-av	很常用
85	-u	可以用来更新数据(比较新旧,留下较新的)
-f	可以强制覆盖
-b	备份(如果文件已存在,被覆盖的文件将被备份一份)

man ascii		查看ASCII表

86	scp	远程拷贝 例子:scp /etc/issue 172.22.5.6:/data

87	lsof |grep delete	查看删除文件

rm	删除-h之类的文件 --> rm -- -h

tree	-d只显示目录的结构

88	> filename	可以安全的删除文件,擦除磁盘空间。

mkdir	创建目录
-p	递归创建
rmdir	删除目录
-p	同理~

df命令:查看分区,挂载点,大小,已使用,未使用,百分比

89	文件:
90	meta data	索引节点:inode
91			inode	节点编号,文件的唯一标识,在同一分区唯一
ll -i	查看节点编号*	inode table	节点表
目录文件:文件夹的内容就是里面文件的名字!元数据中的指针指向的数据块保存着文件的名字。
查看磁盘的节点编号使用:df -i
测试touch文件将节点编号占满:echo {1..600000}|xargs touch	新建600000个文件

92	面试题:磁盘有空间报错,No space left on device为什么?
93	原因:节点编号用光了
94	 
95	备注:在LINUX系统中,即使文件或者目录正在使用,也可以删除!

96	cp命令底层发生了什么?	创建文件,分配节点编号,在磁盘中分配一定空间,设置meta data
例子:cp /etc/fstab /data/1.txt底层发生了什么?
回答:建立新文件,系统会新建一个记录给文件分配一个节点编号,指定各种属性,另外在磁盘上分配一块空间并用指针指向它。
97	mv底层发生了什么?	cp	+ 	rm

98	同一分区mv文件,节点编号不变。本质上文件没动。

99	ln	硬连接
特点:同一文件的不同名字,磁盘占一个空间,不支持目录,不支持跨分区。
删除一个文件:只是删除了一个名字,没有任何影响,连接数会减一。
局限:不能跨设备(分区)
本质:是同一个文件,同一节点编号。