Linux目录和文件高级操作精讲

博文目录

一、Linux目录结构

二、Linux查看文件内容基础命令

三、压缩和解压缩文件

四、vi文本编辑器

一、Linux目录结构

Linux目录结构采用树形目录结构,包含根目录和子目录。

1、根目录

所有分区、目录、文件等的位置起点,整个树形目录结构中,使用独立的一个“/”表示。

2、子目录

常见的子目录如/root、/bin、/boot、/dev、/etc、/home、/var、/usr、/sbin。

3、子目录的作用

二、Linux查看文件内容基础命令

1、cat——查看文件内容

cat用于一次性显示文件全部内容。基本语法格式如下:

应用举例:

[[email protected] ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[[email protected] ~]# cat /etc/sysconfig/network
# Created by anaconda
[[email protected] ~]# cat /etc/sysconfig/network /etc/hosts
# Created by anaconda
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

2、more——查看文件内容

more用于全屏模式分页显示文件内容。基本语法格式如下:

交互操作方法:

  • 按Enter键向下逐行滚动;
  • 按空格键向下翻一屏;
  • 按q键退出;

应用举例:

[[email protected] ~]# more /etc/httpd/conf/httpd.conf
#
# This is the main Apache HTTP server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
--More--(2%)

3、less——查看文件内容

less命令的作用与more命令相同,但扩展功能更多。基本语法格式如下:

交互操作方法:

  • Page Up键:向上翻页;
  • Page Down键:向下翻页;
  • “/”键:查找关键内容;
  • “n”:查找下一个关键内容;
  • “N”:查找上一个关键内容;

其他功能与more命令基本类似;

4、head、tail——查看文件内容

head、tail命令的基本语法格式如下:

  • head:查看文件开头的一部分内容(默认为10行);
  • tail:查看文件结尾的一部分内容(默认为10行);

应用举例:

[[email protected] ~]# head -2 /var/log/messages <!--显示文件的开始2行内容-->
Jan 10 20:20:01 centos01 systemd: Started Session 9 of user root.
Jan 10 20:20:01 centos01 systemd: Starting Session 9 of user root.
[[email protected] ~]#
[[email protected] ~]# tail -3 /var/log/messages <!--显示文件的最后3行内容-->
Jan 10 23:10:01 centos01 systemd: Starting Session 30 of user root.
Jan 10 23:20:01 centos01 systemd: Started Session 31 of user root.
Jan 10 23:20:01 centos01 systemd: Starting Session 31 of user root.
[[email protected] ~]#
[[email protected] ~]# tail -f /var/log/messages
     <!--动态跟踪文件尾部内容,便于实时监控文件内容的变化
(按Ctrl+c组合键终止)-->
Jan 10 23:01:01 centos01 systemd: Starting Session 29 of user root.
Jan 10 23:03:19 centos01 yum[11583]: Installed: httpd-tools-2.4.6-67.el7.centos.x86_64
Jan 10 23:03:19 centos01 yum[11583]: Installed: mailcap-2.1.41-2.el7.noarch
Jan 10 23:03:20 centos01 systemd: Reloading.
Jan 10 23:03:20 centos01 yum[11583]: Installed: httpd-2.4.6-67.el7.centos.x86_64
Jan 10 23:03:20 centos01 journal: g_dbus_interface_skeleton_unexport: assertion ‘interface_->priv->connections != NULL‘ failed
Jan 10 23:10:01 centos01 systemd: Started Session 30 of user root.
Jan 10 23:10:01 centos01 systemd: Starting Session 30 of user root.
Jan 10 23:20:01 centos01 systemd: Started Session 31 of user root.
Jan 10 23:20:01 centos01 systemd: Starting Session 31 of user root.

5、wc——统计文件内容

wc用于统计文件中的单词数量、(Word Count)、行数、字节数等。基本语法格式如下:

wc常用选项如下:

  • -l:统计行数;
  • -w:统计单词个数;
  • -c:统计字节数;

应用举例:

[[email protected] ~]# wc -l /etc/passwd   <!--统计文件行数-->
41 /etc/passwd
[[email protected] ~]# wc -w /etc/passwd <!--统计文件中单词个数-->
81 /etc/passwd
[[email protected] ~]# wc -c /etc/passwd  <!--统计文件中字节数-->
2104 /etc/passwd
[[email protected] ~]# wc /etc/passwd
   <!--不加选项统计顺序依次是43行,85个单词,2223个字节-->
  43   85 2223 /etc/passwd
[[email protected] ~]# find /etc -name "*.conf" | wc -l
     <!--统计/etc下有多少个以*.conf为后缀的文件数量-->
437 

6、grep——检索和过滤文件内容

grep命令用于在文件中查找并显示包含指定字符串的行。基本语法格式如下:

grep命令常用选项如下:

  • -i:查找时忽略大小写;
  • -v:反转查找,输出与条件不相符的行;

grep查找条件设置:

  • 要查找的字符串以双引号括起来;
  • “^......”:表示查找以......开头的字符串;
  • “......$”:表示查找以......结尾的字符串;
  • “^$”:表示查找空行;

应用举例:

[[email protected] ~]# grep -i "SSHD" /etc/passwd
          <!--查询sshd用户忽略大小写显示出来-->
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
[[email protected] ~]# grep "ftp" /etc/passwd
                <!--查询ftp用户显示出来-->
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[[email protected] ~]# grep -v "^#" /etc/yum.conf | grep -v "^$"
                <!--过滤/etc/yum.conf中的注释行和空行-->
[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

三、压缩和解压缩文件

1、gzip、gunzip——压缩和解压缩

应用举例:

<!--压缩和解压缩方法一(“-9”选项代表高压缩)-->
[[email protected] ~]# ls
anaconda-ks.cfg  CentOS-7.4-x86_64-1708.iso  initial-setup-ks.cfg
[[email protected] ~]# gzip -9 initial-setup-ks.cfg
[[email protected] ~]# ls
anaconda-ks.cfg  CentOS-7.4-x86_64-1708.iso  initial-setup-ks.cfg.gz
[[email protected] ~]# gzip -d initial-setup-ks.cfg.gz
[[email protected] ~]# ls
anaconda-ks.cfg  CentOS-7.4-x86_64-1708.iso  initial-setup-ks.cfg

<!--压缩和解压缩方法二(不加选项进行压缩,解压缩使用gunzip命令)-->
[[email protected] ~]# ls
anaconda-ks.cfg  CentOS-7.4-x86_64-1708.iso  initial-setup-ks.cfg
[[email protected] ~]# gzip initial-setup-ks.cfg
[[email protected] ~]# ls
anaconda-ks.cfg  CentOS-7.4-x86_64-1708.iso  initial-setup-ks.cfg.gz
[[email protected] ~]# gunzip initial-setup-ks.cfg.gz
[[email protected] ~]# ls
anaconda-ks.cfg  CentOS-7.4-x86_64-1708.iso  initial-setup-ks.cfg

2、bzip2、bunzip2——压缩和解压缩

应用举例:

<!--方法一-->
[[email protected] ~]# ls
anaconda-ks.cfg  CentOS-7.4-x86_64-1708.iso  initial-setup-ks.cfg
[[email protected] ~]# bzip2 -9 initial-setup-ks.cfg    <!--高速压缩-->
[[email protected] ~]# ls
anaconda-ks.cfg  CentOS-7.4-x86_64-1708.iso  initial-setup-ks.cfg.bz2
[[email protected] ~]# bzip2 -d initial-setup-ks.cfg.bz2 <!--解压缩-->
[[email protected] ~]# ls
anaconda-ks.cfg  CentOS-7.4-x86_64-1708.iso  initial-setup-ks.cfg

<!--方法二-->
[[email protected] ~]# ls
anaconda-ks.cfg  CentOS-7.4-x86_64-1708.iso  initial-setup-ks.cfg
[[email protected] ~]# bzip2 initial-setup-ks.cfg  <!--压缩-->
[[email protected] ~]# ls
anaconda-ks.cfg  CentOS-7.4-x86_64-1708.iso  initial-setup-ks.cfg.bz2
[[email protected] ~]# bunzip2 initial-setup-ks.cfg.bz2  <!--解压缩-->
[[email protected] ~]# ls
anaconda-ks.cfg  CentOS-7.4-x86_64-1708.iso  initial-setup-ks.cfg

3、tar——归档命令

tar命令制作归档文件、释放归档文件。基本语法格式如下:

tar命令常用选项如下:

  • -c:创建.tar格式的包文件;
  • -x:解开.tar格式的包文件;
  • -v:输出详细信息;
  • -f:表示使用归档文件;
  • -p:打包时保留原始文件及目录的权限;
  • -t:列表查看包内的文件;
  • -C:解包时指定释放的目标文件夹;
  • -z:调用gzip程序进行压缩或解压;
  • -j:调用bzip2程序进行压缩或解压;

应用举例:

[[email protected] ~]# tar zcvf yun.gz yun/ <!--使用tar命令调用gzip将yun归档为yun.gz-->
yun/
[[email protected] ~]# ls
1.txt  anaconda-ks.cfg  initial-setup-ks.cfg  www  yun  yun.gz
[[email protected] ~]# tar zxvf yun.gz -C /usr/src/
         <!--将压缩文件yun.gz解压缩到/usr/src目录中-->
yun/
[[email protected] ~]# cd /usr/src/
[[email protected] src]# ls
debug  kernels  yun
[[email protected] ~]# tar jcvf yun.bz2 ./yun
      <!--使用tar命令调用bzip将yun目录数据进行压缩-->
[[email protected] ~]# tar jxvf yun.bz2 -C /usr/src/
    <!--将yun.bz2压缩文件解压缩到/usr/src/目录中-->
./yun/
[[email protected] ~]# cd /usr/src/
[[email protected] src]# ls
debug  kernels  yun

4、dd命令压缩与备份

选项和参数:

  • if:input file(原文件)也可以是设备;
  • of:output file(备份后的文件)也可以是设备;
  • bs:规划的一个block(块)的大小,若未指定则默认是512Bytes(字节);
  • count:多少块的意思。

应用举例:

[[email protected] ~]# dd if=/dev/zero of=/usr/src/1.iso bs=30M count=10
<!--将/dev/zero文件中的信息复制到/usr/src目录下创建一个1.iso的文件,一次30M,10次-->
记录了10+0 的读入
记录了10+0 的写出
314572800字节(315 MB)已复制,0.212995 秒,1.5 GB/秒
[[email protected] ~]# cd /usr/src/
[[email protected] src]# ls
1.iso  debug  kernels

四、vi文本编辑器

1、文本编辑器的作用

创建或者修改文本文件,维护Linux系统中的各种配置文件。

2、Linux中最常用的文本编辑器

  • vi:类Unix系统中默认的文本编辑器;
  • vim:vi编辑器的增强版本,习惯上也成为vi;

3、vi编辑器的工作模式

命令模式、输入模式、末行模式。不同模式之间的切换如下:

4、命令模式的常用操作

1)光标移动

2)复制、粘贴、删除

3)文件内容查找

4)撤销编辑及保存退出

5、末行模式的基本操作

1)保存文件及退出vi编辑器

2)打开新文件或读入其他文件内容

3)文件内容替换

———————— 本文至此结束,感谢阅读 ————————

原文地址:https://blog.51cto.com/14156658/2466532

时间: 2024-10-01 06:57:38

Linux目录和文件高级操作精讲的相关文章

Linux中在主机上实现对备机上目录及文件的操作的C代码实现

需求描述 编写程序,完成在主机上实现对备机上目录及文件的操作.例如,主机为A,备机为B,要求编写的程序运行在A机上,该程序实现在B机上创建文件目录及拷贝文件的操作. 需求分析 我们先不考虑用程序实现需求,如果是让我们用手工实现需求中描述的操作,我们会怎么做呢?大家也许都会想到使用telnet的方式.也就是说,在A机上使用telnet远程到B机上去,然后在B机上执行创建目录和拷贝文件的操作. 我们也可以在程序中使用telnet来完成上述需求. 程序编写 我们可以使用两种方式来执行telnet命令,

iOS开发——语法篇OC篇&amp;高级语法精讲

高级语法精讲 一.NSSet.NSMutableSet集合的介绍 1)NSSet.NSMutableSet集合,元素是无序的,不能有重复的值. 2)用实例方法创建一个不可变集合对象 例如: //宏定义 #define TOBJ(n) [NSNumber numberWithInt:n] NSSet *set1=[[NSSet alloc]initWithObjects:TOBJ(2),TOBJ(3),TOBJ(3),TOBJ(1),TOBJ(5), nil]; 2)用类方法创建一个不可变集合对象

iOS开发——语法篇OC篇&amp;高级语法精讲二

Objective高级语法精讲二 Objective-C是基于C语言加入了面向对象特性和消息转发机制的动态语言,这意味着它不仅需要一个编译器,还需要Runtime系统来动态创建类和对象,进行消息发送和转发.下面通过分析Apple开源的Runtime代码(我使用的版本是objc4-646.tar)来深入理解Objective-C的Runtime机制. Runtime数据结构 在Objective-C中,使用[receiver message]语法并不会马上执行receiver对象的message方

Linux学习记录--文件IO操作相关系统编程

文件IO操作相关系统编程 这里主要说两套IO操作接口,分别是: POSIX标准 read|write接口,函数定义在#include<unistd.h> ISO C标准 fread|fwrite接口,函数定义在#include<stdio.h> 有书上说POSIX标准与ISO C标准的区别在于文件读写是否带缓冲区,我则不是很认同,因此POSIX标准下的IO操作也是带缓冲区的,至于这两个标准下的IO性能谁更加好则不一定,因为这和缓冲区的大小,以及用户逻辑有很大关系. POSIX标准

linux目录或文件权限

linux目录或文件权限 字符 解析drwxr-xr-x 通过 ls -l 可以查看 目录 或 文件 的权限时间 大小 等信息, 权限 占据10 个字符,eg: "drwxrwxrwx" 格式: "目录标记" + “所有者操作权限” + “所有者所在组成员操作权限” + “其他人操作权限” 1.“目录标记”:  如果是目录 ‘d’ 否则 ‘-’ 2.“所有者操作权限” 和 “所有者所在组成员操作权限” 和 “其他人操作权限” 每段都站3位分别 可读(r)+可写(w)

linux 目录下文件批量植入和删除

linux目录下文件批量植入 [[email protected] http2]# find /usr/local/http2/htdocs/ -type f|xargs sed -i "1  i <script>alert(1)</script>" 其中上面的1 为文件的第一行 i为植入 批量删除: [[email protected] ~]# find /usr/local/http2/htdocs/ -type f|xargs sed -i '/<s

linux目录与文件关系之我见

Linux的文件系统存取之我见 学习linux中,受到此前用windows的习惯影响,经常会混淆linux文件的概念. 今天认真梳理了一下linux目录与文件的关系. Linux 文件系统不同于windows ,所有目录和文件都由 / 根目录而衍生. 文件的管理是由系统统一分发的一个唯一的inode号来进行管理的. Linux中,一切皆为文件,/ 目录也不例外,也是一个文件,文件的内容则是逻辑上在/ 目录下存着的目录以及文件的元信息[包括inode节点,文件名,大小,权限,所有者等等] 如下图所

Linux 目录和文件操作

Linux常用命令--目录和文件操作 [目录]删除.复制.移动 : 1.删除文件夹用:rmdir 文件夹名 但是rmdir不能删除非空的文件夹,那如何删除非空文件夹呢: 2.通常情况下,删除文件用:rm 文件名    -d或--directory 直接把欲删除的目录的硬连接数据删成0,删除该目录. -f或--force 强制删除文件或目录. -i或--interactive 删除既有文件或目录之前先询问用户. -r或-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理.

Linux目录与文件操作(总结)

一.Linux目录结构 二.查看文件内容对于一个文本格式的配置文件,可以有不同的查看方式来获知文件内容,如直接现显示整个文件内容(cat),分页显示查看文件内容(more,less),或者只查看文件开头(head)或者尾部(tail)的部分内容.下面详细介绍命令使用方法1.more命令2.less命令3.head命令4.tail命令三.检索文件内容1wc命令2.grep命令四.备份与恢复文档使用解压和压缩工具1.gzip和gunzip命令 五.使用tar归档和释放工具 tar命令2.tar命令进