Linux文件操作与文本处理:命令详解与实战应用

   日期:2024-12-26    作者:ivsy9 移动:http://oml01z.riyuangf.com/mobile/quote/49990.html

1.cat命令

一般格式:       cat  [选项]  文件

有两项功能:在标准输出上显示文件的内容;连接两个或多个文件

b,--number-noblank  从1开始对所有非空输出行进行编号。

-n,--number  从1开始对所有输出行编号。

-s,--squeeze-blank  将多个相邻的空行合并成一个空行。

--help  打印该命令用法,并退出,其返回码表示成功

2.more命令

一般格式:   more   [选项]   文件

说明:该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今已显示的该文件的百分比

-num,这个选项指定一个整数,表示一屏显示多少行。

-d,在每屏的底部显示以下更友好的提示信息

-c或-p,不滚屏,在显示下一屏之前先清屏。

-s,将文件中连续的空白行压缩成一个空白行显示。

+/,该选项后的模式(Pattern)指定显示每个文件之前进行搜索的字符串。

+num,从行号num开始

3.less命令

less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。

 4.head命令

一般格式: head   [选项]   file

说明:head命令在屏幕上显示指定文件的开头若干行,行数由参数值来确定。显示行数的默认值是10。

-c,--bytes=SIZE  显示前面SIZE个字节。    

-n,--lines=NUMBER  NUMBER的值指定显示前面多少行。默认为10行。    

-q,-quiet,--silent  不显示给定文件的标题。    

-v,--verbose  始终显示给定文件的标题。

5.tail命令

一般格式: tail   [选项]  [file] …

说明:tail命令在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。

 -c,--bytes=N  输出最后N个字节。  

-f  当文件增长时输出附加的数据。

 -n,--lines=N  输出最后的N行,而不是默认的10行。  -

q,-quiet,--silent  不输出包含给定文件名的标题。

 -v,--verbose  始终输出包含给定文件名的标题。

6.touch命令

一般格式: touch   [选项]   文件名  …

说明:touch命令将会修改指定文件的时间标签,把已存在文件的时间标签更新为系统当前的时间(默认方式,它们的数据将原封不动地保留下来。如果该文件尚未存在,则建立一个空的新文件。

 -a  仅改变指定文件的存取时间。

-c  不创建任何文件。

-m  仅改变指定文件的修改时间。

-t  STAMP    使用STAMP指定的时间标签,而不是系统当前的时间 。

1.grep命令

一般格式:     grep  [选项] 查找模式 [文件名1,文件名2,…]     grep  [选项] [-e 查找模式| -f  文件] [文件名1,文件名2,…]

说明:该命令用来在文本文件中查找指定模式的词或短语,并在标准输出上显示包括给定字符串模式的所有行。 

-E  将查找模式解释成扩展的正则表达式。    

-F  将查找模式解释成单纯的字符串。

b,--byte-offset  在输出的每一行前面显示包含匹配字符串的行在文件中的位置,用字节偏移量来表示。    

-c,--count  只显示文件中包含匹配字符串的行的总数。    

-f FILE  从文件FILE中获取模式,每行一个。空文件不含模式,因此,不做匹配。    

-i  匹配比较时不区分字母的大小写。  

  -r  以递归方式查询目录下的所有子目录中的文件。  

  -n  在输出包含匹配模式的行之前,加上该行的行号(文件首行的行号为1)。    

-v  只显示不包含匹配字符串的文本行。     -x  只显示整个行都严格匹配的行。

2.sort命令

一般格式: sort   [选项]  文件列表

说明:用来对文本文件的各行进行排序 排序比较是依据从输入文件的每一行中提取的一个或多个排序关键字进行的。  

-m    对已经排好序的文件统一进行合并,但不做排序。    

-c     检查给定的文件是否已排好序,若没有,则显示出错消息,不做  排序。

-u     与-c选项一起用,严格地按顺序检查;否则,对排序后的重复行只输出第一行。  

-o  文件名      将排序输出放到该文件名所指定的文件中。如果该文件不存在,则创建一个新文件。

:把排序后的文件内容保存到名为result的文件         $ sort text>result

3.uniq命令

一般格式: uniq  [选项]  文件

说明:读取输入文件,比较相邻的行,去掉重复的行,只留下其中的一行。

选项:   -c  显示输出时,在每行的行首加上该行在文件中出现的次数。  

-d  只显示重复行。  

-f, --skip-fields=N   忽略比较前N个字段。  

-s, --skip-chars=N   忽略比较前N个字符。  

-u  只显示文件中不重复的行。

1.comm命令

一般格式:comm  [-123]  file1  file2

说明:comm命令对两个已经排好序的文件进行比较。

选项:    -123    选项1,2和3分别表示不显示comm输出中的第一列、第二列和第三列。

2.diff命令

一般格式: diff  [选项]  file1  file2

说明:比较两个文本文件,并找出它们的不同。

该命令输出的一般形式如下:  n1  a  n3,n4    (把文件1的n1行附加到文件2的n3~n4行后,则二者相同

 n1,n2  d  n3    (删除文件1的n1~n2行及文件2的n3行,则二者相同)  

n1,n2  c  n3,n4 (把文件1的n1~n2行改为文件2的n3~n4行,则二者相同

选项:

-b  忽略空格造成的差别。    

-c  输出格式是带上下文的三行格式。    

-C n  输出格式是有上下文的n行格式。    

-e  输出一个合法的ed脚本。    

-i  忽略字母大小写的区别。    

-r  当文件file1 和文件file2都是目录时,递归比较找到的各子目录。

1.cp命令

一般格式:cp  [选项]  源文件或目录  目标文件或目录

说明:将源文件或目录复制到目标文件或目录中

选项:    

-a    递归地将源目录下的所有子目录及其文件都复制到目标目录中,并且保留文件链接和文件属性不变。它等效于-dpR。    

-d  复制时保留文件链接。    

-f  覆盖已经存在的目标文件,并且不给出提示

 -i  与-f 选项不同,在覆盖目标文件之前先给出提示,要求用户予以确认。回答y,将覆盖目标文件。这是交互式复制。    

-p  除复制内容外,还将其修改时间和存取权限也复制到新文件源文件的中。    

-R,-r  递归复制目录,即将源目录下的所有文件及其各级子目录都复制到目标位置。    

-l  不复制,而是创建指向源文件的链接文件,链接文件名由目标文件给出。

2.rm命令

一般格式: rm  [选项]  文件列表

说明:删除文件和目录

选项:    

-d  删除目录,不管它是否为空。    

-f  忽略不存在的文件,并且不给出提示信息。  

 -r  递归地删除指定目录及其下属的各级子目录和相应的文件。  

 -i  交互式地删除文件。

3.mv命令

一般格式: mv  [选项]  source  target

说明:对文件或目录重新命名,或者将文件从一个目录移到另一个目录中

选项:    

-i    交互式操作。如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入“y”,表示将覆盖目标文件;输入“n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。  

 -f    与“-i”相反,它禁止交互式操作。在覆盖已有的目标文件时,不给任何提示。

4.wc命令

一般格式: wc  [选项]  [文件]…

说明:统计指定文件的字节数、字数、行数,并将统计结果显示出来

选项

-l  统计行数。

-w  统计字数。

-c  统计字节数。

目录及其操作命令

1.mkdir命令

一般格式: mkdir  [选项]  dirname

说明:该命令创建由dirname命名的目录。

选项:    

-m 数字    对新建目录设置存取权限,存取权限用给定的八进制数字表示。    

-p    可一次建立多个目录,即如果为新建目录所指定的路径中有些父目录尚不存在,此选项可以自动建立它们。 

2.rmdir 

一般格式:rmdir  [选项]  dirname

说明:该命令从一个目录中删除一个或多个子目录 选项:    

-p    递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果有非空的目录,则该目录保留下来。  

1.cd命令

一般格式:cd  [dirname]

说明:改变当前工作目录    

它带有唯一的一个参数,即表示目标目录的路径名(相对路径名或绝对路径名

2.pwd命令    

显示出当前工作目录的绝对路径

3.ls命令    

-i     输出的第一列显示文件的I节点号。    

-l    以长格式显示文件的详细信息。

输出的信息依次是: 文件类型与权限 链接数 文件主 文件组 文件大小 建立或最近修改的时间 文件名

链接——为一个文件起多个名字

1.硬链接:在另外的目录或本目录中增加目标文件的一个目录项。

有如下限制:不能对目录文件做硬链接;不能在不同的文件系统之间做硬链接。

2.符号链接 也称为软链接,是将一个路径名链接到一个文件(一种特别类型的文件)。

与硬链接的不同:        

符号链接确实是一个新文件,它有不同的I节点号

而硬链接并没有建立新文件。

符号链接没有硬链接的限制,可以对目录文件做符号链接,也可以在不同文件系统之间做符号链接。

Linux系统中规定了4种不同类型的用户

1、文件主(owner; (u)

2. 同组用户(group;  (g)

3.可以访问系统的其他用户(others; (o)

4.超级用户(root,具有管理系统的特权。  (a) 

存取权限规定3种访问文件或目录的方式

1.读(r

2. 写(w

3. 可执行或查找(x

1.chmod—用于改变或设置文件或目录的存取权限   

         1.以符号模式改变权限

一般格式: chmod  key  文件名

说明: key 由以下各项组成:[who]   [操作符号]  [mode] 操作对象who可以是下述字母中的任一个或者它们的组合:        

u       g      o       a    操作符号可以是+      -        =    mode所表示的权限可用下述字母的任意组合:    r     w    x

          2.以绝对方式改变权限

一般格式: chmod  mode  文件名 mode是以3位八进制数字出现的

第一位表示文件主权限,第二位表示组用户权限,第三位表示其他用户权限

2.umask命令

一般格式: umask   mode

说明:用来设置限制新建文件权限的掩码。

1.chgrp命令

一般格式: chgrp  [选项]  组名  文件名

说明:该命令用来改变指定文件所属的用户组

常用选项:    

-R  递归式地改变指定目录及其下面的所有子目录和文件的用户组。

2.chown命令

一般格式: chown  [选项]  用户或组  文件名

说明:改变某个文件或目录的所有者和所属的组

选项:    

-R    递归式地改变指定目录及其所有子目录、文件的文件主。    

-v    详细列出该命令所做的工作。

1.man命令

 

一般格式: man  [选项]  命令名

说明:格式化并显示某一命令的联机帮助手册页

选项:  

-M 路径  指定查找man手册页的路径。  

-P 命令  指定显示手册所使用的分页程序。默认使用“/usr/bin/less-is”。  

-S 章节  指定查找手册页的章节列表。

 -a  显示所有的手册页,而不是只显示第一处找到的。  

-d  主要在检查时使用。如果用户加入了新的手册页,就可以用这个选项检查手册页的安装情况。这个选项并不显示手册页的内容。

 -D  既显示手册页内容,也显示检查信息。  

-f  只显示出命令的功能而不显示其中详细的说明文件。

 -w  不显示手册页,只显示将被格式化和显示的文件所在的位置。

2.help命令

一般格式:help  命令

说明:用来查看所有shell内置命令的帮助信息。    

有些命令构造在shell内部,从而在shell环境内部执行。这种命令称为shell内置命令(也称为内部命令)。

1.ps命令

一般格式:ps  [选项]

说明:ps命令是查看进程状态的最常用的命令,它可以提供关于进程的许多信息。

常用选项:  

-a  显示系统中与tty相关的(除会话组长之外)所有进程的信息。

 -e  显示所有进程的信息。  

-f  显示进程的所有信息。

 -l  以长格式显示进程信息。  

-r  只显示正在运行的进程。  

-u  显示面向用户的格式(包括用户名、CPU及内存使用情况等信息)。  

-x  显示所有终端上的进程信息。

2.kill命令

一般格式:kill  [-s  信号|-p ] [-a] 进程号…                         

说明:通过向进程发送指定的信号来结束相应进程的运行

选项:  

-s  指定需要发送的信号,既可以是信号名(如kill,也  可以是对应信号的号码(如9)。  

-p  指定kill命令只是显示进程的PID(进程标志号,并不真正发出结束信号。  

-l  显示信号名称列表,这也可以在/usr/include/linux/signal.h文件中找到。

3.sleep命令

一般格式:sleep  时间值

说明:“时间值”参数以秒为单位,即让进程暂停由时间值所指定的秒数。

命令zip压缩文件

zip test.zip test

命令unzip加压缩文件

unzip test.zip

gzip压缩解压缩文件

gzip test

tar归档文件

tar –cvf test.tar test

tar –xvf test.tar

tar – cvzf test.tar.gz test

退出vi

选项

:w                        保存修改

:w  new_filename  另存为指定文件

:wq                      保存修改退出

ZZ                           快捷键,保存修改并退出

:q!                      不保存修改退出

:wq!                    保存修改退出(文件所有者可忽略文件的只读属性

vi的命令

插入命令( i )

附加命令( a )

打开命令( o )

替换命令( s )

修改命令( c )

取代命令( r )

修改文本时的规则

a    在光标后附加文本

A    在本行行末附加文本

i     在光标前插入文本

I     在本行开始插入文本

o    在光标下插入新行

O    在光标后插入新行

移至行首的命令(键):

^    将光标移到当前行的第一个非空白符(非制表符或非空格符)    

0    总是将光标移到当前行的第一个字符,不管它是否为空白符

移至行尾的命令(键:    

移至指定行的命令(键):    行号]G

移至指定列的命令(键:    [列号]|

移动光标

:set nu   设置行号

:set nonu 取消行号

gg     到第一行

G      到最后一行

nG     到第n行

:n      到第n行

文本删除

x      删除光标所在处字符

nx    删除光标所在处后n个字符

dd    删除光标所在行,ndd删除n行

dG    删除光标所在行到末尾的内容

D      删除从光标所在处到行尾

:n1,n2d   删除指定范围的行

复制和剪切命令

yy,Y  复制当前行

nyy,nY   复制当前行以下n行

dd            复制当前行以下n行

ndd             剪切当前行以下n行

p,P           粘贴在当前光标所在行下或行上

替换和取消命令

r    取代光标所在处字符

R    从光标所在处开始替换字符,按Esc结束

u     取消上一步操作

.   重复操作

4.shell程序设计

命令历史

语法格式是:history  [option] [arg…]

如果不带任何参数,则history命令会显示历史命令的清单 如果history 后给出一个正整数(如50),就只显示历史表中的最后50行命令  

常用的选项有:  

-a  在历史文件中添加“新”历史命令行。  

-n  从历史文件中读取尚未读入的历史命令行,添加到当前历史清单中。  

-r  读取历史文件的内容,并把它作为当前的历史命令。  

-w  把当前的历史写到历史文件中,覆盖原有内容。

  -c  删除历史清单中所有的项。

别名

一般语法格式为: alias [name[=value]]…

如果没有指定参数,将在标准输出(屏幕)上显示别名清单

定义别名时,往往用单引号将它代表的内容括起来,从而防止shell对其中的内容产生歧义,如对空格和特殊字符另作解释

如果想取消先前定义的别名,可使用如下命令:        

unalias name…

可以一次将所有的别名都从别名表中删除,使用如下命令:        

unalias -a

作业控制-bg和fg命令

bg命令可以把前台作业切换成后台作业

fg命令可以把后台作业切换成前台作业

 

 

文件名后缀

.c  C源文件

.i  预处理后的源文件

.s  汇编程序文件

.o  目标文件

四个步骤

1.预处理阶段

2.编译阶段

3.汇编过程

4.连接阶段

阶段一:预处理阶段

gcc –E test.c –o test.i

阶段二:编译阶段

gcc –S test.c –o test.s

阶段三:汇编过程

gcc –c test.c –o test.o

阶段四:连接阶段

gcc –o test test.c

执行完成后,生成默认的可执行文件a.out

断点(breakpoint

(1)设置断点:用break命令(缩写为b

break  linenum              

(2)显示断点

info  breakpoints  [num]

info  break  [num]

(3)删除断点 delete [num]

安装rpm软件包

格式:rpm  –i[选项] 软件包文件

-v显示安装过程

-h显示“#”符号来反映安装的进度

--replacepkgs 重复安装软件包

升级rpm软件包

格式:rpm  -U[选项]  软件包文件

-v显示安装过程

-h显示“#”符号来反映安装的进度

查询rpm软件包

格式1

rpm  -q[选项]  软件包文件

-l 查询已安装软件包所包含的所有文件

-i 查询已安装软件包的详细信息

格式2

rpm  -q[选项]

-a  查询已安装的所有软件包

-f 文件  查询指定文件所属的软件包

删除rpm软件包

格式:rpm  -e  软件包

yum常用命令

yum install 包名 安装软件包

-y 自动回答yes

yum update 包名 更新软件包

-y 自动回答yes

yum remove 包名 卸载软件包

-y 自动回答yes

 

挂载

挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录,访问此目录就等同于访问设备文件。

因此根目录以及系统原有目录都不要作为挂载点,会造成系统异常甚至崩溃,挂载点最好是新建的空目录。

这里需要注意的是,挂载点必须是一个已经存在的目录,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用,只有在umount卸载以后才会恢复正常,而且只有目录才能被挂载,文件不可以被挂载,而如果挂载在非空目录下可能会导致系统异常,所以建议挂载在空目录下。

mount+挂载源 +挂载点

mount /dev/sdb /app/testdisk

 

umount+挂载源 /挂载点

umount   /dev/sdb

 

 

 


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号