Linux系统开发: 命令进阶学习(一)

简介: Linux系统开发: 命令进阶学习(一)

一、解压缩命令介绍

Linux下最常用的打包程序是tar命令,使用tar打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的,生成tar包后,就可以用其它的程序来进行压缩了。


1.1.1 tar命令介绍        

功能:tar是一个压缩解压工具。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU版本的。


语法:tar  [主选项+辅选项]  <目标文档>  <源文件或者目录>


使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。


参数:


c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。


r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。


t 列出档案文件的内容,查看已经备份了哪些文件。


u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。


x 从档案文件中释放文件。


注意:c/x/t 仅能存在一个!不可同时存在!


辅助选项:


b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。


f 使用档案文件或设备,这个选项通常是必选的。请留意,在 f 之后要立即接档名喔!不要再加参数!


k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。


m 在还原文件时,把所有文件的修改时间设定为现在。


M 创建多卷的档案文件,以便在几个磁盘中存放。


v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。


w 每一步都要求确认。


z 用gzip来压缩/解压缩文件,后缀名为.gz,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。


j 用bzip2来压缩/解压缩文件,后缀名为.bz2,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。


1.1.2 tar命令解压/压缩使用范例

将/test目录下的所有文件打包为test.tar文件。

image.png

注意:如果打包的文件或者目录是绝对路径,可能会出现提示:tar: 从成员名中删除开头的“/”

在参数中加上-P即可消除。

示例:

image.png

解压打包的.tar文件

image.png

更新文件

就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。

image.png

列出已经打包的文件,可以用于查看已经备份了哪些文件。

image.png

使用gzip来压缩/解压缩文件

image.png

使用bzip2来压缩/解压缩文件

image.png

1.1.3 ZIP格式压缩/解压

linux下提供了zip和unzip程序对ZIP格式压缩包进行处理,zip是压缩程序,unzip是解压程序。它们的参数选项很多,下面只做简单介绍。

将所有.jpg的文件压缩成一个zip包

image.png

将all.zip中的所有文件解压出来

image.png

常用参数:

-r 递 归处理,将指定目录下的所有文件和子目录一并处理。

压缩指定目录下的所有文件

image.png

二、磁盘操作相关命令介绍

1.2.1 fdisk命令:磁盘分区

Linux下的fdisk功能是极其强大的,用它可以划分出最复杂的分区。


查看设备的详细信息。# fdisk -l


在console上输入fdisk/dev/sda,可进入分割硬盘模式。


输入m显示所有命令列示。

输入p显示硬盘分割情形。

输入a设定硬盘启动区。

输入n设定新的硬盘分割区。

输入e硬盘为[延伸]分割区(extend)。

输入p硬盘为[主要]分割区(primary)。

输入t改变硬盘分割区属性。

输入d删除硬盘分割区属性。

输入q结束不存入硬盘分割区属性。

输入w结束并写入硬盘分割区属性。

1.2.2 dd命令:磁盘备份命令

dd是Linux/UNIX 下的一个非常有用的命令,作用是将一个指定文件拷贝到磁盘的指定块。可以用于磁盘备份、程序烧写等应用。


基本语法:  dd iflag=dsync oflag=dsync if=<输入文件> of=<输出的文件> seek=<跳过的块数量>


dd命令的主要选项:


image.png

数字:b=512 ,k=1024

运用实例

修复硬盘

image.png

当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生magnetic flux point(磁通点)。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。


清除磁盘数据

image.png

利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/sdb将无法挂载,创建和拷贝操作无法执行。 其中的/dev/urandom是产生随机数的文件。

也可以直接获取随机数据:

image.png

其中bs表示每一个块的大小是1024kb。count就表示块数量。 加起来就会拷贝(1024*2)kb的数据

磁盘备份

image.png

将磁盘数据备份到当前目录的disk.img文件。备份之后可以使用压缩软件打开。如果需要恢复直接将参数变换个位置。

image.png

从光盘拷贝iso镜像

image.png

拷贝光盘数据到root文件夹下,并保存为cd.iso文件。

程序烧写

image.png

将123.bin文件拷贝到/dev/sdb设备中,seek表示跳过1057个块之后再进行拷贝。


1.2.3 mount命令:挂载硬盘或镜像

mount命令用于挂载磁盘分区或者网络文件系统。


语法:mount -t [文件系统类型] [将要挂载的设备] [-o 选项] [挂载的目标目录]


注: 通过-t这个参数,我们来指定文件系统的类型,一般的情况下不指定也能自动识加。-t 后面跟 ext3 、ext2 、reiserfs、vfat 、ntfs、nfs 等;可以通过查看mount的帮助文档进行查看详细信息。


-o  主要用来描述设备或档案的挂接方式。常用的参数有:


loop:用来把一个文件当成硬盘分区挂接上系统


ro:采用只读方式挂接设备


rw:采用读写方式挂接设备


iocharset:指定访问文件系统所用字符集


运用实例


挂载SD卡分区到指定目录

image.png

将sdb2设备挂载到/test目录下。

如果挂载之后需要取消,可以使用umount命令。

image.png

挂载光盘映像文件到指定目录

image.png

将123.iso文件当成硬盘挂载到/test目录下。

将一个目录挂载到另一个目录下

image.png

相当于使用ln建立链接一样效果。

使用mount命令挂载NFS网络文件系统

image.png

如果挂载提示设备资源上锁,可以使用下面方式进行挂载:

image.png

其中192.168.11.123表示服务器的IP地址,/work表示NFS服务器共享的目录。/test/表示本地挂载的目录。

搭建NFS服务器方法

首先设置将要共享的路径。

编辑/etc/exports文件,示例:

image.png

重启NFS服务器

image.png

1.3 文件搜索与修改

1.3.1 find命令:搜索文件

命令功能:用于在文件树种查找文件,并作出相应的处理。

语法:find [查找的路径] [选项] [表达式]

命令选项

image.png

根据文件名查找文件

image.png

在/work目录下查找名称为123.c的文件。

根据通配符进行查找文件

image.png

在/work目录下查找以.c为后缀的文件。注意:该查找方式区分大小写。

不区分大小写的方式:

image.png

同时查找多个文件

image.png

在/work目录下查找以.c、.txt、.h为后缀的文件。 主要参数是-o。

匹配路径或者文件

image.png

在/work目录下查找包含mplayer字符的文件和目录。

根据正则表达式查找

image.png

否定参数

image.png

在/work目录下查找不是以.c为后缀的文件。


根据文件类型搜索

image.png

在/work目录下查找类型为f的普通文件。

常用的类型:f 普通文件、 l 符号连接、 d 目录、 c 字符设备、 b 块设备、 s 套接字、 p  Fifo管道文件

根据文件大小进行匹配

image.png

在/work目录下查找类型为f的普通文件,并且文件的大小为200k。

文件大小单元:

b —— 块(512字节)

c —— 字节

w —— 字(2字节)

k —— K字节

M —— 兆字节

G —— G字节

常用大小搜索方式:

image.png

根据文件时间戳进行搜索


UNIX/Linux文件系统每个文件都有三种时间戳:


访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。


修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。


变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

image.png

查找并删除指定文件

image.png

在work目录下查找以.c为后缀的文件,并将其删除。

根据权限进行查找

image.png

在/work目录下搜索出权限为777的文件。

借助-exec选项与其他命令结合使用

查找并删除指定的文件

image.png

在work目录下查找以.txt为后缀的文件,将其全部删除。

其中-ok和-exec行为一样,不过-ok会给出提示,是否执行相应的操作,而-exec不会提示,直接执行。

{} 用于与-exec和-ok选项结合使用来匹配所有文件。

查找并拷贝文件

image.png

在work目录下查找以.txt为后缀的文件,将其全部拷贝到/opt目录下。

执行多条命令的方法

因为单行命令中-exec参数中无法使用多个命令,我们可以将命令写成脚本,然后使用-exec进行调用。

image.png

{}是匹配所有文件,传递给脚本之后,在脚本中使用$1获取传入的参数信息。


脚本文件中的代码示例: echo $1


1.3.2 grep命令:文本搜索工具

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

image.png

正则表达式主要参数:

image.png

使用实例

搜索文本并添加文本


语法:grep [选项] [文件]

image.png

在/work/test.txt文件中搜索12345这个字符串数据,如果有就不执行||后面的代码,如果没有,就执行||后面的代码。-q在这里是将grep变为类似于if的效果。

同时搜索多个文件


主要选项:

image.png

在work目录下以.c后缀的文件中搜索A这个数据,如果搜索成功,会将A出现的行打印到屏幕上。

搜索输出行与行号

image.png

在123.c文件中搜索data数据,搜索成功后将data所在的行与行号全部打印出来。

大小写敏感

image.png

输出所有含有data或DAT的字符串的行。


1.3.3 sed命令:在线编辑器

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。


Sed本质上是一个编辑器,但是它是非交互式的,这点与VIM不同;同时它又是面向字符流的,输入的字符流经过Sed的处理后输出。这两个特性使得Sed成为命令行下面非常有用的一个处理工具。


sed的处理流程,简化后是这样的:


读入新的一行内容到缓存空间;

从指定的操作指令中取出第一条指令,判断是否匹配pattern;

如果不匹配,则忽略后续的编辑命令,回到第2步继续取出下一条指令;

如果匹配,则针对缓存的行执行后续的编辑命令;完成后,回到第2步继续取出下一条指令;

当所有指令都应用之后,输出缓存行的内容;回到第1步继续读入下一行内容;

当所有行都处理完之后,结束;

语法:

sed [-hnV][-e<script>][-f<script文件>][文本文件]


参数说明:


-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。


-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。


-h或--help 显示帮助。


-n或--quiet或--silent 仅显示script处理后的结果。


-V或--version 显示版本信息。


动作说明:

image.png

字符集

image.png

运行实例

删除指定行

image.png

删除123.c文件的第2行。其中d表示删除命令,2表示行号。123.c是处理的文件。修改成功会将结果打印到终端。注意:以上代码修改是不会改变源文件的代码。

直接修改源文件示例:

image.png

替换指定的数据

image.png

将123.c文件中全部的std字符替换为inc字符。如果没有g标记,则只有每行第一个匹配的std被替换成inc。

查找并追加数据

image.png

将123.c文件中192.168.1.1数据的后面加上:8080。替换之后的效果为: 192.168.1.1:8080

&符号表示替换换字符串中被找到的部份。

#号分隔符

image.png

“#”在这里表示是分隔符,代替了默认的“/”分隔符。表示把所有1234替换成5678。

替换所有文件

image.png

将当前目录下所有以.c为后缀文件中的8080替换为88888。这样可以大大提高我们的工作效率。


1.3.4 awk命令:文本分析工具

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。


awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。


AWK 拥有自己的语言: AWK 程序设计语言。它允许创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。


语法:awk '{pattern + action}' {filenames}


其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。


awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。


通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。


1.4 网络相关命令介绍

1.4.1 ifconfig命令:设置网卡IP地址

功能


ifconfig用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。


语法:fconfig -interface [options] address


主要参数

image.png

应用说明

ifconfig是用来设置和配置网卡的命令行工具。为了手工配置网络,这是一个必须掌握的命令。使用该命令的好处是无须重新启动机器。要赋给eth0接口IP地址207.164.186.2,并且马上激活它,使用下面命令:

image.png

该命令的作用是设置网卡eth0的IP地址、网络掩码和网络的本地广播地址。若运行不带任何参数的ifconfig命令,这个命令将显示机器所有激活接口的信息。带有“-a”参数的命令则显示所有接口的信息,包括没有激活的接口。注意,用ifconfig命令配置的网络设备参数,机器重新启动以后将会丢失。


查看网卡的IP地址信息

image.png

关闭与启动网卡

image.png

修改网卡MAC地址

image.png

在一张网卡上绑定多个IP地址

在Linux下,可以使用ifconfig方便地绑定多个IP地址到一张网卡。

例如,eth0接口的原有IP地址为192.168.0 .254,可以执行下面命令:

image.png

1.4.2 ping命令

功能:ping检测主机网络接口状态,使用权限是所有用户。

语法:ping [-dfnqrRv][-c][-i][-I][-l][-p][-s][-t] IP地址

主要参数

image.png

ping命令是使用最多的网络指令,通常我们使用它检测网络是否连通,它使用ICMP协议。但是有时会有这样的情况,我们可以浏览器查看一个网页,但是却无法ping通,这是因为一些网站处于安全考虑安装了防火墙。

使用实例

image.png

1.4.3 网卡启动与关闭

除了使用ifconfig配置之外,也可以使用ifup、ifdown命令来实现。

image.png

1.4.4 关闭防火墙

在红帽系统中,可以直接使用setup命令关闭防火墙。

image.png

通过命令方式关闭防火墙:

image.png


目录
相关文章
|
1天前
|
存储 监控 安全
深入探索Linux的journalctl命令:系统日志的利器
**journalctl 深入解析:Linux 系统日志的强大工具** journalctl 是 Linux 中用于查询和管理 systemd 日志的命令行工具,与 systemd-journald 配合收集广泛的信息,包括内核消息和服务日志。它提供实时追踪、过滤、导出等功能,如 `-f` 实时监控,`-u` 过滤特定服务日志,`-k` 显示内核消息,`--since` 和 `--until` 选择时间范围。在实际应用中,结合权限管理、日志空间控制和有效过滤,journalctl 成为系统管理员诊断和优化系统的得力助手。
|
1天前
|
数据挖掘 Linux Perl
Linux命令join:高效处理文本数据的利器
`join`是Linux文本处理的强兵,用于基于共同字段合并两个已排序文件。它按字典序比较字段,支持自定义分隔符,且能处理未匹配行。`-a`显示未匹配行,`-e`指定空字段替换值,`-j`设置共同字段,`-o`定制输出格式,`-t`定义字段分隔符。在数据分析时,务必先排序文件,并根据需求调整参数。可与`sort`、`cut`等命令配合使用。
|
1天前
|
监控 数据挖掘 Linux
Linux命令jobs:后台任务管理利器
`jobs`是Linux终端的利器,用于管理和查看后台任务。它显示当前会话中的作业状态,如运行、停止,可通过`Ctrl+Z`暂停任务,`bg`放后台,`fg`回前台。参数`-l`显示PID,`-n`显示最近状态变化的作业。`jobs`帮助高效监控和管理长时间运行的命令,如在数据分析时。记得使用正确任务编号,谨慎使用`kill`,并定期检查任务状态。
|
1天前
|
消息中间件 运维 监控
Linux命令ipcs详解:IPC对象的全面洞察
`ipcs`命令详解:Linux下用于洞察IPC(消息队列、信号量、共享内存)对象的工具。它列出系统中的IPC资源,显示详细信息,如ID、所有者、权限等。参数如`-m`、`-q`、`-s`分别显示共享内存、消息队列和信号量信息。结合`-l`或`-c`可调整输出格式。定期检查IPC状态有助于系统管理和性能优化。需注意权限和谨慎操作。
|
1天前
|
消息中间件 Linux 数据处理
Linux命令ipcrm详解:轻松管理IPC对象
`ipcrm`是Linux下用于删除IPC(进程间通信)对象的命令,如消息队列、共享内存和信号量。它通过指定对象ID或键值进行操作,如`-m ID`删除共享内存,`-q ID`删除消息队列,`-s ID`删除信号量。使用时需注意确认对象未被使用,以免影响系统运行。结合`ipcs`命令检查对象详情,并可定期清理不再需要的IPC对象以优化系统资源。
|
1天前
|
消息中间件 监控 安全
深入解析Linux命令ipcmk:IPC对象管理新视角
`ipcmk`非标准Linux命令,假设的IPC对象创建工具,用于演示如何管理消息队列、信号量和共享内存。虽无此命令,但理解其概念有助于掌握IPC管理。例如,创建命名消息队列`my_mq`,最大1000消息,可模拟使用`ipcmk -t mq -n my_mq -q 1000`。实际操作中,应根据需求选择合适IPC机制,设置安全权限,监控使用并及时清理。
|
1天前
|
监控 Linux Shell
Linux命令ionice:优化磁盘I/O优先级
`ionice`是Linux工具,用于调整进程的磁盘I/O优先级,改善系统响应。它设置三种I/O调度类:Idle(低优先级),Best-effort(默认)和Real-time(高优先级)。通过 `-c` 和 `-n` 参数分别设定调度类和优先级。示例:`ionice -c3 -n7 command`(低优先级I/O)和`ionice -c2 -p 1234`(改变PID为1234的进程为Idle类)。使用时注意平衡系统资源,避免干扰其他任务,并结合`iostat`、`iotop`监控性能。
|
1天前
|
Linux 数据处理
Linux命令`install`详解:不仅仅是安装工具
`install`命令在Linux中并非仅用于安装软件,而是用于精确复制文件和目录,设置权限及所有权。它能创建目标目录、处理符号链接并保留时间戳。例如,`install -m 644 source.txt /dest`用于复制文件并设置权限,`install -d -m 755 /dest/dir`创建目录。使用时要注意权限设置,避免误操作,并记录命令以备恢复。
|
1天前
|
Linux
【Linux驱动学习(1)】USB与input子系统,linux统一设备模型,枚举,USB描述符深入剖析
【Linux驱动学习(1)】USB与input子系统,linux统一设备模型,枚举,USB描述符深入剖析
|
2天前
|
Linux 数据处理
Linux命令中的tic:深入了解与高效应用
`tic`是Linux中用于处理 Tektronix 4015 终端文本解释的命令,源于troff文本格式化系统。尽管现代系统不再常见该终端,`tic`仍用于特定数据处理,尤其是与troff配合,将troff输出转换为特定格式。使用时注意兼容性、输入格式和参数调整,如`-a`设定宽高比。通过`man tic`可获取更多详情。示例:`troff document.tr | tic`。了解这些能更好地处理特定文本格式任务。