04目录和文件管理

目录和文件管理

一、Linux 目录结构

Linux 操作系统中的目录和文件数据被组织为一个树形目录结构,所有的分区、目录、文件等都具有一个相同的位置起点——根目录,如图下图所示。Linux 操作系统中只有一个根目录,而 Windows 操作系统中每个分区都有一个根目录,这点需要加以区别。

在这里插入图片描述

目录说明
/boot此目录是系统内核存放的目录,同时也是系统启动时所需文件的存放目录,如 vmlinuz 和 initrd.img。在安装 Linux 时,为 boot 目录创建一个分区,有利于对系统进行备份。
/binbin 是 binary 的缩写。这一目录存放了所有用户都可执行的且经常使用的命令,如 cp、ls 等。
/dev此目录保存了接口设备文件,如/dev/hda1、/dev/cdrom 等。
/etc此目录保存有关系统设置与管理的文件。
/home存放所有普通系统用户的默认工作文件夹(即宿主目录、家目录),如用户账号“woniu”对应的宿主目录位于“/home/woniu/”。如果服务器需要提供给大量的普通用户使用,建议将“/home”目录也划分为独立的分区,以方便用户数据的备份。
/root该目录是 Linux 操作系统管理员(超级用户)root 的宿主目录,
/sbin存放 Linux 操作系统中最基本的管理命令,一般管理员用户才有权限执行。
/usr存放其他的用户应用程序,通常还被划分成很多子目录,用于存放不同类型的应用程序。
/var存放系统中经常需要变化的一些文件,如系统日志文件、用户邮箱目录等,在实际应用系统中,“/var”目录通常也被划分为独立的分区。
二、查看及检索文件
1.查看文件内容
  • cat 命令(显示并连接(Concatenate)文件的内容)

    [root@CentOS7-4 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="static"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="ens33"
    UUID="c09e09d3-52a2-4cd7-9f6b-8d105de24231"
    DEVICE="ens33"
    ONBOOT="yes"
    IPADDR="192.168.88.131"
    NETMASK="255.255.255.0"
    GATEWAY="192.168.88.2"
    DNS1="192.168.88.2"
    #修改永久静态IP
    BOOTPROTO="static"		#默认是DHCP
    #往下添加
    IPADDR="192.168.88.131"			#IP地址
    NETMASK="255.255.255.0"			#子网掩码
    GATEWAY="192.168.88.2"			#网关
    DNS1="192.168.88.2"				#DNS
    
    [root@CentOS7-4 ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    [root@CentOS7-4 ~]# cat /etc/hosts /etc/resolv.conf
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    # Generated by NetworkManager
    nameserver 192.168.88.2
    
  • more命令(分页查看文件类容)

    #more会把类容回显给终端
    #按 “ b ”查看上一屏,按空格向下翻一屏,按回车向下翻一行,按 “ q ”返回到原来的命令环境
    [root@CentOS7-4 ~]# more /etc/ssh/sshd_config				
    [root@CentOS7-4 ~]# cat /etc/ssh/sshd_config |more
    
  • less 命令(分页查看文件内容)

    #在线查看,可以使用 “ /字符串 ”查找内容,按 “ n ” 查找下一字符串
    #可以进行上下翻屏,按 “ q ” 退出查看
    #less不会回显再终端
    [root@CentOS7-4 ~]# less /etc/ssh/sshd_config 
    [root@CentOS7-4 ~]# cat /etc/ssh/sshd_config | less
    
  • head 命令(查看文件开头部分内容,不带选项默认10行)

    #查看前五条
    [root@CentOS7-4 ~]# head -5 /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    
  • tail 命令(查看文件末尾部分内容,不带选项默认10行)

    #查看后五条
    [root@CentOS7-4 ~]# tail -5 /etc/passwd
    dbus:x:81:81:System message bus:/:/sbin/nologin
    polkitd:x:999:998:User for polkitd:/:/sbin/nologin
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    chrony:x:998:996::/var/lib/chrony:/sbin/nologin
    
  • tail 命令通常用于查看系统日志(因为较新的日志记录总是添加到文件最后),以便观察网络访问、服务调试等相关信息。配合“-f ”选项使用时,还可以跟踪文件尾部内容的动态更新,便于实时监控文件内容的变化

    #查看系统的日志文件
    [root@CentOS7-4 ~]# tail -f /var/log/messages
    Mar 29 11:09:39 CentOS7-4 systemd: Started Session 4 of user root.
    Mar 29 11:09:39 CentOS7-4 systemd-logind: New session 4 of user root.
    Mar 29 11:09:39 CentOS7-4 systemd: Started Cleanup of Temporary Directories.
    Mar 29 11:09:42 CentOS7-4 systemd-logind: Removed session 3.
    Mar 29 11:12:50 CentOS7-4 systemd: Started Session 5 of user root.
    Mar 29 11:12:50 CentOS7-4 systemd-logind: New session 5 of user root.
    Mar 29 11:12:53 CentOS7-4 systemd-logind: Removed session 4.
    Mar 29 11:12:54 CentOS7-4 systemd-logind: Removed session 5.
    Mar 29 11:14:03 CentOS7-4 systemd: Started Session 6 of user root.
    Mar 29 11:14:03 CentOS7-4 systemd-logind: New session 6 of user root.
    
    #常见的系统日志
    日志格式:文本日志/二进制日志/数据库日志
    默认的相关日志文件:
    /var/log/boot.log	系统引导日志,记录开机启动信息
    /var/log/dmesg		核心的启动日志
    /var/log/message	系统的日志文件
    /var/log/maillog	邮件服务的日志
    /var/log/xferlog	ftp服务的日志
    /var/log/secure		网络连接及系统登录的安全信息
    /var/log/cron		定时任务的日志
    /var/log/wtmp		记录所有的登入和登出	last -f 查看
    /var/log/btmp		记录失败的登入尝试
    
2、统计和检索文件内容
  • wc 命令(统计文件内容中的单词数量(Word Count)、行数等信息)

    -c:统计文件内容中的字节数
    -l:统计文件内容中的行数
    -w:统计文件内容中的单词个数(以空格或制表位作为分隔)
    
    [root@CentOS7-4 ~]# wc -l /etc/passwd
    19 /etc/passwd
    [root@CentOS7-4 ~]# wc -l /etc/hosts
    2 /etc/hosts
    [root@CentOS7-4 ~]# find /etc -name *.conf|wc -l
    92
    
  • grep 命令(检索、过滤文件内容)

    -i:查找内容时忽略大小写(Ignore Case)。
    -v:反转查找(Invert),即输出与查找条件不相符的行。
    
    [root@CentOS7-4 ~]# grep root /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    

    以正则表达式查找

    # "^#" 代表以 # 开头的内容
    # "^$" 代表空行
    # " $" 代表以什么什么结尾
    [root@CentOS7-4 ~]# grep -v "^#" /etc/yum.conf|grep -v "^$"
    [main]
    cachedir=/var/cache/yum/$basearch/$releasever
    keepcache=0
    debuglevel=2
    logfile=/var/log/yum.log
    exactarch=1
    obsoletes=1
    gpgcheck=1
    plugins=1
    installonly_limit=5
    bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
    distroverpkg=centos-release
    
  • 正则表达式的公式

    ^    # 锚定行的开始 如:'^grep'匹配所有以grep开头的行。    
    $    # 锚定行的结束 如:'grep$' 匹配所有以grep结尾的行。
    .    # 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。   
    *    # 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。    
    .*   # 一起用代表任意字符。   
    []   # 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。    
    [^]  # 匹配一个不在指定范围内的字符,如:'[^A-Z]rep' 匹配不包含 A-Z 中的字母开头,紧跟 rep 的行
    \(..\)  # 标记匹配字符,如'\(love\)',love被标记为1。    
    \<      # 锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。    
    \>      # 锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。    
    x\{m\}  # 重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。    
    x\{m,\}   # 重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。    
    x\{m,n\}  # 重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。   
    \w    # 匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。   
    \W    # \w的反置形式,匹配一个或多个非单词字符,如点号句号等。   
    \b    # 单词锁定符,如: '\bgrep\b'只匹配grep。
    
三、备份与恢复文档
1、使用压缩和解压缩工具
  • gzip 和 gunzip 命令(压缩和解压缩,压缩时使用 ” -9 “ 选项提高压缩比率)

    #对文件或目录进行压缩,原文件不保留,压缩后文件大小发生了变化
    [root@CentOS7-4 ~]# ls -lh
    总用量 12K
    -rw-r--r--  1 root root    0 328 21:25 1.txt
    -rw-------. 1 root root 1.3K 328 17:19 anaconda-ks.cfg
    -rw-r--r--  1 root root 7.4K 328 20:36 lsman.txt
    [root@CentOS7-4 ~]# gzip lsman.txt 
    [root@CentOS7-4 ~]# ls -lh
    总用量 8.0K
    -rw-r--r--  1 root root    0 328 21:25 1.txt
    -rw-------. 1 root root 1.3K 328 17:19 anaconda-ks.cfg
    -rw-r--r--  1 root root 3.1K 328 20:36 lsman.txt.gz
    
    #解压时一样,"gunzip"等同于"gzip -d"
    [root@CentOS7-4 ~]# gunzip lsman.txt.gz 
    [root@CentOS7-4 ~]# ls -lh
    总用量 12K
    -rw-r--r--  1 root root    0 328 21:25 1.txt
    -rw-------. 1 root root 1.3K 328 17:19 anaconda-ks.cfg
    -rw-r--r--  1 root root 7.4K 328 20:36 lsman.txt
    
  • bzip2和bunzip2 命令

  • 命令和gzip命令用法一样,系统默认没有此命令,需要安装程序包

#安装bzip2
[root@CentOS7-4 ~]# yum -y install bzip2
2.使用 tar 归档和释放工具
-c:创建(Create).tar 格式的包文件。
-C:解压时指定释放的目标文件夹。
-f:表示使用归档文件。
-j:调用 bzip2 程序进行压缩或解压。
-p:打包时保留文件及目录的权限。
-P:打包时保留文件及目录的绝对路径。
-t:列表查看包内的文件。
-v:输出详细信息(Verbose)。
-x:解开.tar 格式的包文件。
-z:调用 gzip 程序进行压缩或解压。
  • 制作归档文件(可以与压缩工具一起使用)
#压缩或者打包
[root@CentOS7-4 opt]# tar zcf lsman.tar.gz lsman.txt
[root@CentOS7-4 opt]# ls
lsman.txt  lsman.tar.gz
[root@CentOS7-4 opt]# tar jcf lsman.tar.bz2 lsman.txt
[root@CentOS7-4 opt]# ls
lsman.txt  lsman.tar.bz2
  • 释放归档文件(可以与压缩工具一起使用)
#解压
[root@CentOS7-4 opt]# tar zxf lsman.tar.gz
[root@CentOS7-4 opt]# tar jxf lsman.tar.bz2
#调用gzip进行解压并释放文件到指定目录
[root@CentOS7-4 opt]# tar zxf lsman.tar.gz -C /usr/local

.tar.bz2 lsman.txt
[root@CentOS7-4 opt]# ls
lsman.txt lsman.tar.bz2


- 释放归档文件(可以与压缩工具一起使用)

```shell
#解压
[root@CentOS7-4 opt]# tar zxf lsman.tar.gz
[root@CentOS7-4 opt]# tar jxf lsman.tar.bz2
#调用gzip进行解压并释放文件到指定目录
[root@CentOS7-4 opt]# tar zxf lsman.tar.gz -C /usr/local
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值