linux系统基础介绍以及linux命令基本命令

177 阅读26分钟

linux系统

linux是一种操作系统,需记住linux是一个树状图,根目录 “ / ” ,是进入linux系统文件的总入口,也是唯一入口。

操作系统是一组程序,操作系统的最主要作用就是用于调度硬件,指挥硬件(而内核是操作系统中的一部分,是操作系统中最主要的一部分用于调度硬件,指挥硬件)

程序:

程序是静态的

  • 1.执行特定任务的
  • 2.一串代码

linux系统中命令的本质就是程序

1.linux系统路径

linux的系统路径分为两类,一类是绝对路径,一类是相对路径,快捷方式就是指向文件路径,它的大小就是指向文件路径的长度

绝对路径:从根开始且唯一 相对路径:从当前路径开始

路径:描述一个文件所在系统位置

每个文件夹都有 ... . 代表当前文件夹 .. 代表上一级目录

pwd :打印当前路径

/ 在开头是绝对路径 /前面有乱7八遭的是相对路径,路径用/分开,/不在第一位就是分隔符

“ / ”是根目录

2.linux系统文件目录和七类常用文件(六个常用文件夹(目录)

一级目录功能(作用)
/bin/存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行
/boot/系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
/dev/设备文件保存位置
/etc/配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等
/home/普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming
/lib/系统调用的函数库保存位置(c语言 写的一些固定格式的代码,方便调用)
/media/挂载目录。系统建议用来挂载媒体设备,如软盘和光盘
/mnt/挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区
/misc/挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。例如,笔者在接触 Linux 的时候,默认挂载目录只有 /mnt/,所以养成了在 /mnt/ 下建立不同目录挂载不同设备的习惯,如 /mnt/cdrom/ 挂载光盘、/mnt/usb/ 挂载 U 盘,都是可以的
/opt/第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件
/root/root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下
/sbin/保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看
/srv/服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据
/tmp/临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空
  • 六个常用文件夹(目录)【均为一级目录】

boot:系统启动文件 opt:空文件 第三方软件 dev:放硬件设备,类硬盘(黄色) tmp:临时文件 etc:系统默认文件 /var/log:日志文件

  • 七类常用文件
  1. d 目录文件directory

  2. b 块设备文件block 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。

  3. c 字符设备character 这些文件通常隐藏在 /dev/ 目录下,当进行设备读取或外设交互时才会被使用

  4. l 符号链接文件link

  5. p 管道文件pipe 主要用于进程间通信单向传输 一个发一个输管道文件

  6. s 套接字文件socket 套接字文件一般隐藏在 /var/run/ 目录下,用于进程间的网络通信

  7. **-**普通文件 普通文件,包括纯文本文件、二进制文件、各种压缩文件等

    第一个字符文件类型
    -普通文件,包括纯文本文件、二进制文件、各种压缩文件等。
    d目录,类似 Windows 系统中的文件夹。
    b块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
    c字符设备文件,例如键盘、鼠标等。
    s套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。
    p管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。
    l链接文件,类似 Windows 系统中的快捷方式。

补充三条查看硬件和系统信息的命令:

sblk : 查看当前分区情况

arch:查看机器架构

uname -r:查看内核版本

3.linux系统命令

3.1.命令提示符及命令提示符各字段含义

[root@localhost ~ ] :

root :用户名 localhost:主机名

~ 当前所在目录

”后面一般有 # 和 $ 分别代表的权限也有所不同

  1. # ”:超级管理员
  2. $ ”:普通用户

这里需要加入一个理解家目录

3.2.家目录

家目录: 存放用户个性化设置(cd ~切换到当前用户的家目录)

普通用户的家目录位于home下同名文件,超级管理员的家目录位于 根“ / ”

3.3.manual手册

  • man 1 用户指令
  • man 2 系统调用
  • man 3 程序库调用
  • man 4 设备
  • man 5 文件格式

当你不知道某一命令是做什么的时候,判断命令,

如果是内部命令:“ help ”+命令

如果是外部命令:命令+“ - - help ”

(PS:也可以直接 mac + 命令(可以不用判断是内部命令还是外部命令))

3.4.ln

  • 建立软连接 ln -s 建立软连接(软连接必须要绝对路径
  • 建立硬连接 ln 源文件的绝对路径 文件名

3.4.1.硬连接和软连接以及两者的区别

软连接:类似快捷方式,给源文件增加一个直接打开的路径链接

硬连接:给文件增加另外一个名字,本质仍是同一个文件使用同一inode号,硬连接不在硬盘中真实存在,硬连接的文件两者内容始终保持同步。(ps:需注意建立硬连接不能跨分区建立连接 无法对文件夹创建,这也是软硬连接的区别

对比项硬链接软链接
本质本质是同一个文件本质不是同一个文件
inode(身份证号)相同不同
连接数创建新的硬链接,链接数会增加,删除硬链接,链接数减少删除,新建都不会改变
文件夹不支持支持
删除源文件只是链接数减一,但链接文件的访问不受影响无法访问连接文件
文件类型和源文件相同链接文件,和源文件无关
文件大小和源文件相同(指向硬盘上的同一个文件)源文件的路径的长度

4、shell

chos7 默认 shell类型 /bin/bash

shell是一个壳,一类软件的总称,作为程序时主要把人类使用的语言翻译给机器,再把机器语言翻译成人类使用的语言,人机交流的翻译层。首先 判断 内部 还是 外部 如果是内部 直接执行 如果 是 外部 从/usr/local/ 外部命令执行完以后,一般会从hash 缓存中找 找不到直接报错,但除开刻意操作,文件路径改变了,基本不会报错,如果路径没错,可以清空hash

所以基本上linux系统执行命令的过程,以及命令不存在的四种原因:

linux系统命令的执行过程:

判断是否是内部命令 直接执行不是 内部命令,则去看hash缓存表 如果hash 表 直接执行,有 但是找不到 报错 如果是第一次执行的外部命令,会去规定的文件夹找命令,如果没有会报错

命令不存在的四种原因

1,命令打错 2,hash缓存中没有 3,不在 ¥path 4,没有安装

ctrl+u 清除 ctrl+a 第一个

5.文件类型

在linux系统中有7大文件类型,可以通过文件的第一个字符知道该文件是什么类型的文件,也可以通过颜色判断一些文件类型。

颜色表示的文件类型:

  • 黑色数据文件 普通文件 (“ - ”)
  • 绿色 可执行文件
  • 黄色 块设备文件硬件设备(硬盘)(“ b ”)
  • 红色 压缩包
  • 蓝色 文件夹
  • 天蓝色 连接文件(快捷方式)(“ l ”)
文件第一个字符文件类型
-普通文件,包括纯文本文件、二进制文件、各种压缩文件等。
d目录,类似 Windows 系统中的文件夹。
b块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
c字符设备文件
s套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。
p管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。
l链接文件,类似 Windows 系统中的快捷方式。

6.vim编辑器(vimtutor)

vim编辑器的三种模式

vim 打开文件后,即处在 命令模式

1.命令模式的作用:

1.行间条转 2.复制 粘贴文本 3.有限的文本编辑

命令模式下的一些快捷键(部分)

G:直接跳转到页尾,前面加数字则跳转到到对应行,比如5G跳转到第五行

gg(小写):会到开头,前后加数字则可以跳转到对应行,比如2gg或gg2,跳转到第2行

u(小写):撤销上一次的操作

U(大写):全部撤销(到最初状态)

x(小写):删一个字符

r(小写):替换光标字符

d (delete)删除命令(可结合光标跳转字符,实现范围删除):

  1. d$ =D :从当前光标位置删除到行尾
  2. d^ :从当前光标位置删除到非空行首
  3. d0 :从当前光标位置删除到行首
  4. dw :从当前光标位置下一个单词的词首
  5. de :从当前光标位置当前或下一个单词的词尾
  6. dd:删除光标所在的行
  7. 2dd或dd2或d2d:含光标位置往下删除共两行

y复制命令(yank):

  1. y$:从当前光标位置复制到行尾
  2. y0:从当前光标位置复制到非空行首
  3. y^:从当前光标位置复制到非空行首
  4. yy:复制一行
  5. 5yy: 复制5行(数字随意)
  6. Y(大写):复制整行

p粘贴命令(paste):

p:复制(向下复制)

P(大写):(大写锁定状态下按p)向上复制

2.编辑模式:按I(i)建 可以进入编辑模式 进行一些复杂的文本编辑

编辑模式下的一些快捷键

快捷键功能描述
i在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
I行首插入命令
o在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
a在当前光标所在位置之后插入随后输入的文本
A行尾插入命令

3.末行模式

esc 英文冒号【:】 q 退出不保存 wq 保存并退出 !强制 q! 强制退出

末行模式的一些命令:

set nu:显示行号

set ai:设置自动缩进,即每行的缩进同上一节相同(即上下对齐)

set noai:取消对齐

set cul:标尺

set nocul:取消标尺

set key=passwd(passwd代指密码,可以随意输入):给进入编辑器增加密码

set key=(=后什么都不输入):取消密码

set tabstop=4 (set ts=4):设置tab 一次为四个空格

ctrl+V:进入可视化模式(可视化模式作用较小,不常用,且不实用,仅做了解就好)

7.通配符

7.1通配符的概念

通配符的作用是去匹配系统中的文件名

与之相对的是正则表达式,正则表达式是去匹配文件中的内容(正则表达式常用命令:grep 过滤)

7.2通配符的应用场景

通配符一般配合显示命令 IS 使用,d? 可以查d开头 d* 查的开头所以 *d 查结尾是d

*:匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件

(PS:如果需要使用通配符查看隐藏文件,只有“ . * ”命令可以实现)

8.命令行格式,选项和常用命令

命令行格式

命令字 空格  [选项] 空格 [参数]

2.linux部分命令及其选项

如下:

1.pwd 显示当前文件路径

2.stat 查看文件详细属性

3.cd (change directory) 切换文件目录

命令效果
cd = cd~若不指定目标位置,切换到当前用户的宿主目录(家目录)
cd -到前一次的目录
cd ..返回上一级目录

4.alias 临时修改

  • alias是一个定义别名命令,常用于给很长的很长的命令取别名更方便使用,

列如:alias myvim= ' vim /etc/sysconfig/network-scripts/ifcfg-ens33 '

使 myvim 与 vim /etc/sysconfig/network-scripts/ifcfg-ens33 对应,需注意 ‘’ (引号),引号是一定要打的,单引号双引号都可以,但一定要有引号,否则电脑无法识别

  • 删除别名直接 unalias myvim就可以
  • \加别名命令 (显示原始命令)

PS:绝对路径>别名>内部>hash>外部命令(命令执行过程中的优先级大小,先查找别名在查找内部命令,缓存最后外部)

5.du(disk usage)查看文件夹占用了磁盘的大小

查看当前所在文件夹占用了磁盘的多少单元块。默认1单元块为4K, 不满4K 按4k算。

选项作用
-h将显示内容变成更容易理解的格式(人性化显示)
-a统计磁盘空间占用时包括所有的文件(PS:不仅仅只统计目录,而是统计总量,会列出每个文件和目录的详细使用情况)
-s(小写s(summarize))统计当前文件夹所占用空间总的(Summary)大小(ps:不是统计每个子目录、文件的大小)
-d = 1(即max-depth=n)最大显示到第n层
--exclude不计入统计
-df查看文件夹的磁盘空间(挂载的文件夹)
-c显示最后的总计磁盘使用量(指定目录中所有文件和子目录的磁盘占用情况,并提供一个总体摘要)

PS:-a 和 -s不能同时使用,-c与-a也有一定区别,-df只能查看挂载的文件夹

6.ls 显示命令

查看ls在系统中所在位置:which ls(很多命令都可以用which查看)

需注意ls在生产环境中需要慎用,很多服务器的文件数量是非常多的,一次查看可能会造成死机等故障。

选项作用
-h将显示内容变成更容易理解的格式(人性化显示)
-p递归创建 -p前面可以+v,-vp可以显示创建过程
-a显示全部文件包括隐藏文件以及 . 和 .. 文件夹
-A显示全部文件包括隐藏文件,但不显示 . 和 .. 文件夹
-i查看文件的inode号
-d显示当前文件夹
-R递归显示
-t以时间顺序显示
-r倒序显示
-tr/-rt按照时间倒叙排序
-S(大写S)以文件容量大小排序
--color显示颜色

7.cp 复制

  • cp [选项] 源文件 目标 相当于改名复制
  • cp [选项] 文件夹 文件相当于 改名另存为
选项作用
-f覆盖目标同名文件或目录时不进行提醒,直接强制复制
-i取消提示(覆盖目标同名文件或目录时不进行提醒)
-p复制时保持源文件的权限、属主及时间标记等属性不变
-r复制目录时必须使用此选项,表示递归复制所有文件及子目录
-a完整保留所有的信息
-v可视化
-u相当于增备,差异备份(只对文件夹起作用)

PS:cp [-r或-a(根据需要保留的权限选择-r或者-a,需要复制文件夹必须有-r或-a选项)]... 源文件... 文件夹

(多个源文件只能复制到文件夹,且需注意必须是已存在的文件夹,在复制多个文件的时候该命令并不会新建文件夹)

8.mv 移动/改名

选项作用
-f强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
-i交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
-n如果目标文件已经存在,则不会覆盖移动,而且不询问用户
-v显示文件或目录的移动过程

9.rename 批量改名

格式:rename 旧字符 新字符 目标文件((想要改名的文件,用法有用通配符*.xxx修改后缀等)rename命令中间空格隔开)

举例:rename log log.bak * //所有 log文件改成 log.bak(这里*就是代指所有文件)

10.rm -rf 删除文件

格式:rm [选项] 要删除的文件或目录(中间用空格隔开)

选项作用
-f强制删除
-i交互(提示)
-r递归(删除目录时一定要有-r)

11.locate 查找命令(索引数据库查询)

命令通过搜索已经建立的文件数据库来定位文件。这个数据库通常由操作系统定期更新,因此命令的搜索速度非常快。但是,由于数据库不是实时更新的,所以可能导致搜索结果不是最新的

选项作用
-i不区分带小写搜索
-n N只列举前N个匹配项目(只显示查找结果的多少个)

PS:索引的构建是在系统较为空闲时自动进行(周期性任务),执行updatedb可以更新数据库

但是索引构建过程需要遍历整个根文件系统,很消耗资源(所以要在系统较为空闲的时候)

locateupdatedb命令来自于mlocate包mlocate包含updatedblocate命令的软件包。它是GNU Locate Utilities项目提供的一个开源工具,用于在Linux系统中进行文件搜索。)

12.find 查找命令

命令特点

  • 精确
  • 实时
  • 支持查找的条件多

格式:find [查找路径] [选项] [查找条件] [处理动作]

  • 命令各段含义

    • 查找路径:指定具体目标路径;不指定为默认为当前目录
    • 查找条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件
    • 处理动作:对符合条件的文件做操作,默认输出至屏幕(print)

    部分处理动作

    -print:默认的处理动作,显示至屏幕 -ls:类似于对查找到的文件执行"ls -dils"命令格式输出

    -fls file:查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file -delete:删除查找到的文件,慎用!

    -ok COMMAND {} ;对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认 -exec COMMAND {} ;对查找到的每个文件执行由COMMAND指定的命令

    -ok-exec都是连接符的含义,作用是将前面的查询出来的结果传递给后面的命令做参数(一般不用ok,因为使用ok每一条都会询问,比较繁琐)

    {}: 用于引用查找到的文件名称自身

    ;:使用-ok-exec时候作为命令结尾的一个参数,表示该命令结束

    举例:

    #备份配置文件,添加.orig这个扩展名
    find  -name  ".conf"  -exec  cp {} {}.orig ;
    ​
    #提示删除存在时间超过3天以上的joe的临时文件
    find /tmp -ctime +3 -user joe -ok rm {} ;
    ​
    #在主目录中寻找可被其它用户写入的文件
    find ~ -perm -002  -exec chmod o-w {} ;
    ​
    #查找/data下的权限为644,后缀为sh的普通文件,增加执行权限
    find /data –type f -perm 644  -name "*.sh"exec chmod 755 {} ;
    ​
    #fls
    #将mnt  下  已bak结尾的文件     保存成abc
    find /mnt/ -name "*.bak" -fls abc
    

    find常用可选项

查找类型关键字说明
按名称查找-name根据目标文件的名称进行查找,允许使用*?通配符 (-iname 文件名称 加了i以后文件名称不区分大小写)
按文件大小查找-size根据目标文件的大小进行查找 一般使用-号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB
按文件属主查找-user根据文件是否属于目标用户进行查找
按文件类型查找-type根据文件的类型进行查找 文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等
按inode号-inum根据文件inode号查找
最大搜索目录深度-maxdepth level将你的文件已分级的形式查找
最小搜索目录深度-mindepth level同上 find /etc -maxdepth 2 -mindepth 2
按权限查找-perm按文件权限查找
时间单位(天)(#time)-atime/-mtime/-ctime天(#time):-atime(年)/-mtime(月)/-ctime(日)

13.xargs

单独使用xargs是将键盘上的输入输出在屏幕上,与echo命令单独使用一样。

由于很多命令不支持管道|来传递参数,xargs用于产生某个命令的参数,xargs 可以读入 stdin 的数据,并且以空格符或回车符将 stdin 的数据分隔成为参数

另外,许多命令不能接受过多参数,命令执行可能会失败,xargs 可以解决(比如cat一次查看太多)

注意:文件名或者是其他意义的名词内含有空格符的情况

14.mkdir 创建文件夹

格式:mkdir [选项] 目录位置及名称

文件须知

  • 文件名最长255个字节
  • 包括路径在内文件名称最长4095
  • 除了斜杠和NULL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用。
选项作用
-p递归创建(没有文件夹会自动递归创建)

15.touch 只能创建空文件(创建不了目录)

格式:touch 新文件(可为空) 文件名 (不存在就是新建空文件 )

PS:touch 不会破坏已有文件 只会刷新时间

每个文件有三个时间戳:

  1. access time 访问时间,atime,读取文件内容
  2. modify time 修改时间,mtime,改变文件内容(数据)
  3. change time改变时间,ctime,元数据发生改变(元数据 文件大小 权限 )

16.cat 查看文件

选项效果
-n显示行号包括空行
-b跳过空白行编号
-s将所有的连续的多个空行替换为一个空行(压缩成一个空行)
-A显示隐藏字符

17.head 可以显示文件或标准输入的前面行

格式:head [OPTION(可选项)]... [FILE(文件夹)]...

head -n 具体数字 文件名(不加具体的数字,默认开头十行)

选项作用
-c #指定获取前#(代指数字)字节
-n #指定获取前#(代指数字)行,列如3,就是从开头开始往下,只显示三行;如果是+3,也是只显示三行(3=+3);如果是负数,则从文件开头开始往下,列如-3,就是一直显示到倒数第四行,最后三行不显示

18.tail 查看文件或标准输入的倒数行与head相反

格式:tail [OPTION(可选项)]... [FILE(文件夹)]...

举例:tail -n +#(#代指数字) 文件名 从k行开始显示

选项作用
-c #指定获取前#(代指数字)字节
-n #指定获取前#(代指数字)行,列如3,就是从结尾开始往上,只显示三行;如果是负数,则从文件结尾开始往上,列如-3,也是只显示最后三行(3=-3);如果是+3,则是从文件开头往下第三行(包括第三行),除了第一和第二行全部显示
-f实时监控最后十行

19.tr 转换

格式:tr [选项]... [SET(字符串)] [SET(字符串)]

举例:

[root@localhost ~]tr 123 abc
#只要出现123 就转换成abc
如下:
123
abc
​
[root@localhost ~]tr 12345678 abc
#这里将12345678替换成abc,但是abc数只有三位,所以123三位后续的位数,45678都会被替换成c
如下:
123456789
abcccccc9
选项作用
-d删除
-s压缩(常用于将多个相同的字符(包括空格)压缩为一个显示)
-c补集

20.cut 提取文本文件数据的制定列

格式:cut [选项]... [文件]...

举例:

[root@localhost ~]#cut -d: -f1,3 /etc/passwd
##已冒号作为分隔的条件,取文件的第一列和第三列
root:0
bin:1
daemon:2
adm:3
lp:4
sync:5
shutdown:6
halt:7
mail:8
operator:11
选项作用
-d DELIMITER(界定符,等)指明分隔符,默认tab
-f选择文件内想要获取字段第#列,
-c取字符

组合举例:

[root@localhost ~]#df |tail -n +2|tr -s " " |cut -d " " -f5|tr -d %
​
# df |tail -n +2     不显示第一行字段# tr -s " "          将多个空格压缩成一个# cut -d " " -f5     已空格为分隔符,取第五列# tr -d %            删除百分号

21.wc 显示统计

格式:wc [选项]... 目标文件..

统计列数,wc本身就是参数word,不跟选项就是默认统计所有

选项作用
-l统计行数
-w统计单词个数
-c统计字节数

举例:

[root@localhost ~]# cat a.txt 
dasdasdads
[root@localhost ~]# wc a.txt 
 1  1 11 a.txt
 #11个单词 11个字节
 
[root@localhost ~]# cat a.txt 
das dasdads
[root@localhost ~]# wc a.txt 
 1  2 12 a.txt  
#12个单词 11个字节
​
########注意空行和换行符
tab  空格  算单词的分隔符,wc单词的计算是以用tab和空格分开的来看

22.grep 过滤

格式:grep [选项]表达式 [文件]

表达式格式:

  • 要查找的字符串以双引号括起来单引号也可以
  • “^……”表示以……开头,“……$”表示以……结尾
  • “^$”表示空行

举例:

[root@test1 opt]# grep "^b" 123.txt    
#过滤已b开头
[root@test1 opt]#grep '/$'  123.txt   
#过滤已/结尾
[root@test1 opt]# grep -v "^$" 123.txt 
#过滤非空行

常用选项

选项作用
-i查找时忽略大小写
-v反向查找,输出与查找条件不相符的行
-o只显示匹配项
-f对比两个文件的相同行
-c匹配的行数(列如:grep -c ‘root’ passwd在passwd文件中匹配有root的行数,输出结果

23.paste 横向合并文件

格式:paste [选项] [文件]

选项作用
-d制定分隔符

举例:

#一个文件放密码一个文件放用户名
[root@localhost ~]#cat user.txt pass.txt 
lisi
liwu
liliu
123
345
444
# 没用paste之前文件内容展示
​
[root@localhost ~]#paste user.txt pass.txt 
lisi    123
liwu    345
liliu   444
#使用paste合并文件内容显示
​
[root@localhost ~]#paste -d: user.txt pass.txt 
###分隔符 用冒号隔开
lisi:123
liwu:345
liliu:444

3.压缩与解压缩

linux中压缩常用的两个软件是gzip和bzip2(gzip的压缩率 要高于bzip2)但这两者只能压缩文件,无法对文件夹进行压缩,所以做个了解,后续与tar(归档)结合使用压缩文件夹

1.gzip与bzip2

压缩格式:gzip [-9] 文件名… / bzip2 [-9] 文件名

[9]:是压缩比例,是1到9(可写可不写) 解压格式:gzip -d .gz格式的压缩文件… / bzip2 -d .bz2格式的压缩文件-d就是解压

使用以上两种压缩,源文件就不存在了,所以需要在压缩的时候加入-k选项保留源文件

组合举例:

[root@test1 opt]# gzip *.txt    
#gzip 压缩
[root@localhost data]#bzip2 -9k 2.txt 
#bzip2 压缩
#centos7 可以使用-k  保留源文件 centos8 有保留源文件特性#上面压缩方式二选一)#选择gzip压缩,未加选项-k
#如下:
[root@test1 opt]# gzip *.txt    
[root@test1 opt]# ls
123456.txt.gz  123.txt.gz  1.txt.gz  2.txt.gz 
abc.txt.gz  rh  test.txt.gz
[root@test1 opt]# gzip -d *.txt.gz    解压
[root@test1 opt]# ls
123456.txt  123.txt  1.txt  2.txt  abc.txt  rh  test.txt

2.tar(归档)

作用:将多个目录和文件,打包成一个.tar归档文件

格式:tar [选项] ... 归档文件名 源文件或目录(归档和压缩一样,不做指定只能放在需要归档文件的当前目录下

指定解压位置:tar [选项] ... 归档文件名 [-C 目标目录]

选项(有先后顺序要求):

  • -c(小写):创建(Create).tar 格式的包文件
  • -x:解开.tar 格式的包文件
  • -C(大写):解压时指定释放的目标文件夹
  • -f:表示使用归档文件(一般都要带上表示使用tar)
  • -p(小写):打包时保留文件及目录的权限
  • -P(大写):打包时保留文件及目录的绝对径
  • -t:列表查看包内的文件(要和f一起使用)
  • -v:输出详细信息(Verbose)
  • -j:调用 bzip2 程序进行压缩或解压
  • -z:调用 gzip 程序进行压缩或解压
tar zcvf  自定义名字.tar.gz 要压缩的文件 #归档压缩
tar  xf   压缩文件名 #解压
tar  tf   压缩包名 #查看压缩包中的文件

总结

linux系统中

1.目录和文件管理需要掌握部分命令如下

mkdir:创建文件夹

touch:创建文件

cp:复制文件或文件夹

mv:移动/改名

rm-rf:删除

find:查找

which:查找内外部命令为止

tar:归档

2.Linux查看文件内容命令:

cat:查看并标准输出

head:显示标准输入前面行

tail:显示标准输入后面行

grep:过滤

wc:显示统计