随笔2_tww
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随笔2_tww相关的知识,希望对你有一定的参考价值。
1.描述linux发行版的系统目录名称命名规则以及用途
1.1)Linux系统基础目录的命名规则:
1.遵循FHS(Filesystem Hierarchy Standard)标准
2.严格区分大小写
3.目录也是文件,在同一路径下,两个文件不能同名
4.支持使用除"/"以外的任意字符
5.最长字符不能超过255个字符
1.2)目录架构及用途:
/ 根目录
bin 所有用户可用的基本命令程序文件
sbin 供系统管理使用的工具程序
boot 引导加载器必须用到的各种静态文件:kernel initramfs(initrd) grub等
dev 存储特殊文件或设备文件;设备有两种类型:字符设备(线性设备) 、块设备(随机设备)
etc 系统程序的配置文件,只能为静态
/etc/rc.d 系统启动的配置文件和脚本
/etc/fstab 指定启动时需要自动安装的文件系统列表
/etc/passwd 用户数据库,记录了用户名,用户ID,组ID,家目录和shell等信息
/etc/shadow 用户的真实账号密码的存放文件,通常以加密的形式存在
/etc/group 记录了用户组的各种信息
/etc/inittab init的配置文件
/etc/issue 用户再登录提示符前的输出信息。通常包括系统的一段短说明或欢迎信息,具体内容由系统管理员确定
home 普通用户的家目录的集中位置:一般每个普通用户的家目录默认为此目录下与用户名同名的子目录 /home/USERNAME
root 超级管理员的家目录
lib 为系统启动或根文件系统上的应用程序(/bin, /sbin)提供共享库,以及为内核提供内核模块
libc.so.* 动态链接的C库
ld* 运行时链接器/加载器
modules 用于存储内核模块的目录
lib64 64位系统特有的存放64位共享库的路径
media 便携式设备挂载点 cdrom,floppy等
mnt 其他文件系统的临时挂载点
opt 附加应用程序的安装位置,可选路径
srv 当前主机为服务提供的数据
tmp 为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所有用户执行写入操作:有特殊权限
usr 全局共享的只读数据路径
/usr/bin 存放应用程序
/usr/sbin 超级用户的一些管理程序
/usr/lib 常用的动态链接库和软件包的配置文件
/usr/include c程序头文件
/usr/share 命令手册页和自带文档等架构特有的文件的存储位置
/usr/local 另一个层级目录,让系统管理员安装本地应用程序,也通常用于安装第三方程序
/usr/X11R6 X-windows程序的安装位置
/usr/src 程序源码文件的存储位置
var 存储常发生变化的数据的目录
/var/cache 引用程序缓存数据目录
/var/lib 应用程序状态信息数据
/var/local 专用于为/usr/local下的应用程序存储可变数据
/var/lock 锁文件
/var/log 日志目录及文件
/var/opt 专用于/opt下的应用程序存储可变数据
/var/run 运行中的进程相关的数据,通常用于存储进程的pid文件
/var/spool 应用程序的数据池
/var/tmp 保存系统两次重启之间产生的临时数据
proc 基于内核的虚拟文件系统,用于为内核及进程存储相关信息:它们多为内核参数;
例如:net.ipv4.ip_forward, 虚拟为net/ipv4/ip_forward 存储于/proc/sys/ 因此其完整路径为:/proc/sys/net/ipv4/ip_forward
sys sysfs虚拟文件系统了一种比proc更为理想的访问内核数据的途径,其主要作用在于管理linux设备提供一种统一模型的接口
2.描述文件的元数据信息有哪些,分别表示什么含义,如何查看,如何修改文件的时间戳信息
文件的数据分为两种:
一种:元数据,既属性数据
一种:就是数据本身
通过stat命令可以查看元数据
[08:17:53 root@CentOS7 ~]#stat /etc/passwd
File: ‘/etc/passwd’
Size: 2381 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 135236881 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2020-06-17 23:20:01.706147776 +0800
Modify: 2020-06-06 08:32:02.435455179 +0800
Change: 2020-06-06 08:32:02.435455179 +0800
Birth: -
参数说明:
File:文件名
Size:文件大小 Blocks:文件占了多少个数据块 IO Block:文件所占数据块的大小
Device:硬件 Inode:节点号 Links:链接
第一个Access:指权限 Uid:属主 Gid:属组
Context:指安全上下文
第二个Access:文件上一次访问时间
Modify:文件上一次修改的时间
Change:文件上一次属性更改的时间
修改文件的时间戳信息使用:touch
touch [option]...file...
选项:
-c 指定的文件路径不存在时不予创建
-a 仅修改atime和ctime
-m 仅修改mtime和ctiem
-t 指定atime和mtime的时间戳,而非现在的时间;[[CC]YY]MMDDhhmm[.ss]
3.总结软链接和硬链接区别,并用实例操作说明
Linux中链接分两种:
1.硬链接(Hard Link)
ln -s source target
2.软连接(符号链接 Symbolic Link)
ln source target
1.1)硬链接
硬链接指通过索引节点(inode)来进行链接。
inode:
磁盘分区并格式化时,分区被划分为两个部分; 即:inode和data block(实际数据存放的位置)
inode是(目录,档案)文件在文件系统中的唯一标识;需要访问文件,必须先找到并读取文件的inode
inode存储了文件的很多参数,其中唯一标识称为:Inumber 其他信息还有:ctime mtime 文件大小 属主 归属的用户组 读写权限 数据所在block号等信息
1.2)硬链接访问文件:
[1]找到目录的inode ;当用户具有访问目录block的权限时,读取block中的内容
[2]在目录的block中存放的是:子目录或文件名及其inode号
当为子目录:继续进行递归循环,直到在block中找到寻找的文件名为止
当为文件名:依据inode号找到文件,从block中读取实际的数据
1.3)硬链接的特点:
1.3.1)不论修改源文件还是硬链接文件,另一个文件中数据都会发生改变
1.3.2)不论删除源文件还是硬链接文件,只要还有一个文件,这个文件都可以被访问
1.3.3)硬链接不会建立新的inode信息,也不会更改inode的总数
1.3.4)硬链接不能跨文件系统(分区)建立,因为在不同的文件系统中,inode号是重新计算的 1.3.5)硬链接不能链接目录,因为如果给目录建立硬链接,那么不仅目录本身需要重新建立,目录下所有子文件,包括子目录中的所有文件都需要建立硬链接,这对当前的linux来讲过于复杂
2.1)软链接
软链接类似于Windows的快捷方式,可以快速链接到目标档案或目录
2.2)软链接的特点
2.2.1)可以链接目录
2.2.2)可以跨分区建立软链接
2.2.3)不论修改源文件,还是修改软链接,另一个文件中的数据都会发生改变
2.2.4)删除软链接文件,源文件不受影响,而删除原文件,链接文件将找不到实际的数据从而显示文件不存在
2.2.5)软链接会新建自己的inode信息和block,只是block中不存储实际文件数据,而存储的是源文件的文件名及inode号
3.1).硬链接与软链接的区别:
最主要的不同在于:硬链接不会建立自己的 inode 索引和 block(数据块),而是直接指向源文件的 inode 信息和 block,所以硬链接和源文件的 inode 号是一致的;而软链接会真正建立自己的 inode 索引和 block,所以软链接和源文件的 inode 号是不一致的,而且在软链接的 block 中,写的不是真正的数据,而仅仅是源文件的文件名及 inode 号
范例1
创建一个硬链接
[22:29:48 root@CentOS7 /data/cs]#touch text.txt
[22:30:04 root@CentOS7 /data/cs]#ln text.txt text1.txt
[22:33:47 root@CentOS7 /data/cs]#ls -li
total 0
69 -rw-r--r--. 2 root root 0 Jun 17 22:30 text1.txt
69 -rw-r--r--. 2 root root 0 Jun 17 22:30 text.txt
查看上述两个文件的详细信息,可以发现这两个文件的 inode 号是一样的(都是69)
分别为源文件和链接文件添加数据后查看结果
[23:32:51 root@CentOS7 /data/cs]#echo 11 >> text.txt
[23:33:08 root@CentOS7 /data/cs]#echo 22 >> text1.txt
[23:34:47 root@CentOS7 /data/cs]#cat text1.txt
11
22
[23:35:28 root@CentOS7 /data/cs]#cat text.txt
11
22
删除源文件后,查看链接文件
[23:35:34 root@CentOS7 /data/cs]#rm -f text.txt
[23:36:25 root@CentOS7 /data/cs]#cat text1.txt
11
22
范例2
创建一个软链接
[23:41:21 root@CentOS7 /data/cs]#touch check.txt
[23:57:52 root@CentOS7 /data/cs]#ln -s /data/cs/check.txt /data/qt/check1.txt
[23:58:34 root@CentOS7 /data/cs]#ll -id /data/cs/check.txt /data/qt/check1.txt
68 -rw-r--r--. 1 root root 0 Jun 17 23:41 /data/cs/check.txt
69 lrwxrwxrwx. 1 root root 18 Jun 17 23:58 /data/qt/check1.txt -> /data/cs/check.txt
软链接和源文件的inode号不一致,软链接通过->明显地标识源文件的位置
上述的显示结果"lrwxrwxrwx."中 "l"就代表软链接文件
注意!注意!注意! 软链接的源文件必须写绝对路径,否则建立的软链接文件就会报错,无法正常使用
[00:16:07 root@CentOS7 /data/cs]#echo 11 >> check.txt
[00:16:58 root@CentOS7 /data/qt]#echo 22 >>check1.txt
[00:16:52 root@CentOS7 /data/cs]#cat check.txt
11
22
[00:17:08 root@CentOS7 /data/qt]#cat check1.txt
11
22
4.linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示
1) apmd 进阶电源管理服务程序
2) apropos 在whatis数据库中查找字符串
3) apt-key 管理APT软件包的密钥
4) apt-sortpkgs 排序软件包索引文件
5) as GUN汇编器
6) auditctl 控制内核的审计系统
7) audit-viewer 查看和总结审计事件的图形工具
8) aureport 生成审计信息报表
9) ausearch 搜索审计记录
10) autoupdate 更新configure.in到较新的Autoconf
11) autrace 跟踪指定进程
12) awk 文本和数据进行处理的编程语言
13) basename 显示文件路径名的基本文件名
14) batch 指定时间执行任务
15) blkid 显示关于可用块设备的信息
16) bunzip2 bz2文件的解压缩程序
17) bzgrep 搜索.bz2压缩包中文件内容
18) bzless 查看bzip2压缩过的文本文件的内容
19) bzmore 查看bzip2压缩过的文本文件的内容
20) chown 改变文件或目录用户和用户组
21) chroot 改变根目录
22) cp 复制文件或目录
23) cpio 复制文件到归档包
24) cupsaccept 接受作业发送到目的地
25) cupsreject 拒绝作业发送到目的地
26) dd 拷贝文件及转换
27) diff 比较文件的差异
28) diff3 比较3个文件的不同之处
29) diffstat 显示统计数字
30) dirname 去除文件名中的非目录部分
31) docker 应用容器引擎
32) dos2unix 将DOS格式的文本文件转换成UNIX格式
33) dpkg-deb Debian包管理器
34) dpkg-divert 将文件安装到转移目录
35) dpkg-preconfigure 软件包安装之前询问问题
36) dpkg-query 在dpkg数据库中查询软件包
37) dpkg-reconfigure 重新配置已安装的软件包
38) dpkg-split 分割软件包
39) dpkg-statoverride 改写所有权和模式
40) dpkg-trigger 软件包触发器
41) dris 显示和清空目录堆栈中的内容
42) e2image 保存ext2/ext3文件元数据
43) e2label 设置文件系统的卷标
44) egrep 在文件内查找指定的字符串
45) emacs 功能强大的文本编辑器
46) ethtool 查询与设置网卡参数
47) expand 转换为空白字符
48) fgrep 为文件搜索文字字符串
49) find2perl 转换找到的命令行为perl代码
50) gcc GUN C/C++编译器
51) gcov 测试代码覆盖率
52) gdb GUN调试器
53) get_module 获取模块信息
54) getopt 解析命令行选项
55) git 版本控制系统
56) gitps 报告程序状况
57) groupmems 管理用户主要组群的成员
58) gzexe 压缩执行文件
59) hexdump 显示文件十六进制格式
60) hping3 测试网络及主机的安全
61) indent 调整代码文件格式
62) inotifywait 异步文件系统监控
63) inotifywatch 收集关于被监视的文件系统的统计数据
64) ipcs 多进程间通信常用的工具
65) iperf 网络性能测试
66) joe 纯文本编辑器
67) kbdconfig 设置键盘类型
68) la 显示当前目录下的所有文件
69) ld GUN连接器
70) ldd 打印程序依赖的共享库
71) lpstat 显示cpus状态信息
72) ls 显示指定工作目录下的内容及属性信息
73) ltrace 跟踪进程调用库函数的情况
74) lynx 终端上的纯文本浏览器
75) man 查看命令帮助信息
76) mc 菜单式文件管理程序
77) mcopy 复制 MSDOS 格式文件到Linux中
78) mdel 删除 MSDOS 格式的档案
79) mdir 显示MS-DOS目录
80) minfo 显示MS-DOS文件系统的各项参数
81) mkdir 创建目录
82) mmove 移动文件或目录
83) mtoolstest 测试并显示mtools的相关设置
84) mysql MySQL服务器的客户端工具
85) mysqladmin MySQL服务器客户端管理工具
86) mysqldump MySQL数据库备份
87) mysqlimport MySQL服务器数据导入
88) newusers 更新和批量创建新用户
89) ngrep 数据包匹配和显示工具
90) nl 添加行号
91) nm 显示二进制目标文件的符号表
92) nmcli 网络管理命令行工具
93) objdump 查看目标文件构成的gcc工具
94) od 输出文件内容
95) patch 修补文件
96) perl 实用报表提取语言
97) pfctl 防火墙配置
98) pr 将文本文件转换成适合打印的格式
99) pwd 显示当前路径
100) readelf 显示elf格式文件的信息
101) readonly 标记shell变量或函数为只读
102) rename 批量改变文件名
103) restore 还原备份
104) rlogin 远端登入
105) rpm2cpio 文件格式转换
106) rpmbuild 创建软件包
107) rpmdb 初始化和重建数据库
108) rpmquery 查询信息
109) rpmsign 签名管理工具
110) rpmverify 验证已安装的RPM软件包的正确性
111) semanage 安全上下文查询与修改
112) setenv 查询或显示环境变量
113) smbclient 存取SMB/CIFS服务器的用户端程序
114) smbd Samba服务器程序
115) source 在当前Shell环境中从指定文件读取和执行命令
116) split 文件分割
117) stat 显示文件状态信息
118) statserial 显示串口状态
119) strings 在对象文件或二进制文件中查找可打印的字符串
120) su 切换用户
121) sudoedit 以另外一个用户文件编辑文件
122) sudoreplay 重播sudo会话日志
123) systool 显示系统中设备的信息
124) tailf 跟踪文件输出
125) tgz 将文件压缩为.tgz格式文件
126) udevadm info 查询udev数据库中的设备信息
127) umask 设定权限掩码
128) uncompress 压缩或解压缩compress文件
129) unlink 删除指定文件
130) unprotoize 删除函数原型
131) unrar 解压提取文件
132) userinfo 更改自己的finger信息
133) userpasswd 允许用户更改密码的图形化工具
134) uucico 文件传输服务程序
135) uucp unix系统之间传输文件
136) uuname 显示全部的UUCP远端主机
137) vimdiff 同时编辑多个文件
138) vipw 编辑某些配置文件
139) visudo 编辑/etc/sudoers文件
140) xlsfonts 显示X服务器字体列表
141) xzcmp 比较xz压缩文件
142) xzdec 解压缩xz文件
143) xzdiff 比较xz压缩文件
144) xzgrep 在xz压缩文件上搜索正则表达式
145) xzless 查看xz压缩文本文件
146) xzmore 查看xz压缩文本文件
147) ytalk 与其他用户交谈
148) zmore 查看压缩文件
149) apk 下载包管理工具
150) arj 创建和管理.arj压缩包
151) autoconf 自动生成配置脚本
152) autoheader 创建C定义的模板文件
153) autoreconf 更新已经生成的配置文件
154) autoscan 生成一个初步的configure.in
155) bzcmp 比较.bz2压缩包中的文件
156) bzdiff 比较两个.bz2压缩包中文件的不同
157) dnsdomainname 打印DNS的域名
158) dumpe2fs 打印快组信息
159) fsview 文件系统浏览器
160) gdbserver 调试远程服务器
161) htdigest 管理用户摘要认证文件
162) info 阅读info格式的文件
163) install 复制文件和设置属性
164) lftpget 下载指定的文件
165) lnewusers 创建用户账号
166) manpath 查看man手册页的查询路径
167) mke2fs 创建文件系统
168) mkfifo 创建FIFO文件
169) mread mtools工具
170) mren 更改文件或目录
171) mshowfat 显示在FAT中的记录
172) nologin 限制用户登录
173) pinfo 基于lynx类型info浏览
174) pssh 批量管理执行
175) pushd 添加目录到目录堆栈顶部
176) readlink 找出符号链接所指向的位置
177) rev 颠倒过来显示文件内容
178) sulogin 单用户登录
179) telinit 更改系统的运行级别
180) xclip 跨窗口复制文字
181) xzcat 查看xz压缩文件的内容
182) zdump 时区输出器
183) zgrep 在压缩文件中按正则表达式来搜索
184) zless 查看zip压缩文件
5.复制etc/profile 至tmp/目录 用查找替换命令删除/tmp/profile 文件中行首的空白字符
当前目录:
[14:31:14 root@CentOS7 /etc]#pwd
/etc
执行复制命令:
[14:30:27 root@CentOS7 /etc]#cp profile ../tmp/
查看tmp目录:
[14:31:21 root@CentOS7 /tmp]#ll
total 452
-rw-r--r--. 1 root root 1819 Jun 18 14:31 profile
#删除/tmp/profile 文件中行首的空白字符
1)[18:43:19 root@CentOS7 /tmp]#cat profile |tr -d ‘ ‘
或者
2)[23:13:57 root@CentOS7 /tmp]#vim profile
:%s/^[[:space:]]+//
或:%s@^[[:space:]]+@@
6.在vim中设置tab缩进为4个字符
vim .vimrc 输入 set tabstop=4
vim配置文件分为:系统文件和用户配置文件
系统配置文件位于:vim的安装目录(默认路径为/etc/.vimrc)
用户配置文件位于主目录:~/.vimrc 即通过执行vim ~/.vimrc 命令即可对此配置文件进行合理修改。通常情况下,vim用户配置文件需要自己手动创建
注意!注意!注意! vim用户配置文件比系统配置文件的优先级高
vim提供的环境配置参数很多,可以在vim中输入":set all" 来查询
常用参数:
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8 设置编码格式,encoding 用于缓存的文本,寄存器,vim脚本文件等;
fileencoding 是vim写入文件时采用的编码类型;
termencoding 表示输出到终端时采用的编码类型
set nu
set number nu是number缩写 取消行号:set nonu
set cursorline 突出显示当前行
set mouse=a
set selection=exclusive
set selectmode=mouse,key vim编辑器里默认是不启用鼠标的,通过此设置即可启动鼠标
set autoindent 设置自动缩进,即每行的缩进同上一节相同
set tabstop=4 设置tab键宽度为4个空格
以上是关于随笔2_tww的主要内容,如果未能解决你的问题,请参考以下文章