随笔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个空格

猜你喜欢

转载自blog.51cto.com/14814545/2505839