linux 文本文件编辑命令,文本文件编辑命令

在Linux系统中一切都是文件,而对于服务程序的配置自然也就是在编辑程序的配置文件。

cat命令用于查看纯文本文件(较短的),格式为:“cat [选项] [文件]”。

Linux系统中有需要用于查看文本内容的命令,但其中每个命令又都有自己的特色特点,比如这个cat命令就是用于查看比较精简的文本内容的,这个其实是最好记的命令之一,因为cat在英语中是猫的意思,小猫咪是不是总给你一种娇小、可爱的感觉呢?如果您想看文本内容时还顺便显示行号的话,不妨再追加一个“-n”参数吧:[root@linuxprobe ~]# cat -n initial-setup-ks.cfg

1    #version=RHEL7

2    # X Window System configuration information

3    xconfig  --startxonboot

4

5    # License agreement

6    eula --agreed

7    # System authorization information

8    auth --enableshadow --passalgo=sha512

9    # Use CDROM installation media

10    cdrom

11    # Run the Setup Agent on first boot

12    firstboot --enable

13    # Keyboard layouts

14    keyboard --vckeymap=us --xlayouts='us'

15    # System language

16    lang en_US.UTF-8

17

18    ignoredisk --only-use=sda

19    # Network information

20    network  --bootproto=dhcp --device=eno16777728 --onboot=off --ipv6=auto

21    network  --bootproto=dhcp --hostname=localhost.localdomain

22    # Root password

23    rootpw --iscrypted $6$pDjJf42g8C6pL069$iI.PX/yFaqpo0ENw2pa7MomkjLyoae2zjMz2UZJ7bH3UO4oWtR1.Wk/hxZ3XIGmzGJPcs/MgpYssoi8hPCt8b/

24    # System timezone

25    timezone America/New_York --isUtc

26    user --name=linuxprobe --password=$6$a9v3InSTNbweIR7D$JegfYWbCdoOokj9sodEccdO.zLF4oSH2AZ2ss2R05B6Lz2A0v2K.RjwsBALL2FeKQVgf640oa/tok6J.7GUtO/ --iscrypted --gecos="linuxprobe"

27    # System bootloader configuration

28    bootloader --location=mbr --boot-drive=sda

29    autopart --type=lvm

30    # Partition clearing information

31    clearpart --none --initlabel

32

33    %packages

34    @base

35    @core

36    @desktop-debugging

37    @dial-up

38    @fonts

39    @gnome-desktop

40    @guest-agents

41    @guest-desktop-agents

42    @input-methods

43    @internet-browser

44    @multimedia

45    @print-client

46    @x11

47

48    %end

49

more命令用于查看纯文本文件(较长的),格式为:“more [选项] 文件”。

如果需要去阅读长篇小说、或者非常长的配置文件,那么“小猫咪”可就真的不适合了,因为一旦您用cat命令去阅读长篇的文本内容,信息就会在您的屏幕上快速翻滚,有点像***帝国电影那样酷酷的感觉,但其实自己还没来得及看到内容就已经消失过去了。因此对于长篇的文本内容,咱们推荐使用more命令来查看,它会给您起到翻页的效果呢:[root@linuxprobe ~]# more initial-setup-ks.cfg

#version=RHEL7

# X Window System configuration information

xconfig  --startxonboot

# License agreement

eula --agreed

# System authorization information

auth --enableshadow --passalgo=sha512

# Use CDROM installation media

cdrom

# Run the Setup Agent on first boot

firstboot --enable

# Keyboard layouts

keyboard --vckeymap=us --xlayouts='us'

# System language

lang en_US.UTF-8

ignoredisk --only-use=sda

# Network information

network  --bootproto=dhcp --device=eno16777728 --onboot=off --ipv6=auto

network  --bootproto=dhcp --hostname=localhost.localdomain--More--(43%)//此处会提示您已经阅读了百分之多少,可以使用空格和回车往下翻页。

head命令用于查看纯文本文档的前N行,格式为:“head [选项] [文件]”。

处理文本内容时,谁都不能保证永远“循规蹈矩”的顺序往下看完,如果咱们只想看文本中前20行的内容呢:[root@linuxprobe ~]# head -n 20  initial-setup-ks.cfg

#version=RHEL7

# X Window System configuration information

xconfig  --startxonboot

# License agreement

eula --agreed

# System authorization information

auth --enableshadow --passalgo=sha512

# Use CDROM installation media

cdrom

# Run the Setup Agent on first boot

firstboot --enable

# Keyboard layouts

keyboard --vckeymap=us --xlayouts='us'

# System language

lang en_US.UTF-8

ignoredisk --only-use=sda

# Network information

network  --bootproto=dhcp --device=eno16777728 --onboot=off --ipv6=auto

[root@localhost ~]#

tail命令用于查看纯文本文档的后N行或持续刷新内容,格式为:“tail [选项] [文件]”。

当然咱们还会遇到一种更奇葩的情况,比如需要去查看文本内容的最后20行,那么操作方法其实跟head命令是非常相似的,只需要执行“tail -n 20 文件名”命令就可以达到这样的目的。而tail命令最强悍的功能是用于持续刷新一个文件的内容,尤其是对于想要实时看到最新日志文件的时候特别有用:

[root@localhost ~]# tail -f /var/log/messagesMay  4 07:56:38 localhost gnome-session: Window manager warning: Log level 16: STACK_OP_ADD: window 0x1e00001 already in stackMay  4 07:56:38 localhost gnome-session: Window manager warning: Log level 16: STACK_OP_ADD: window 0x1e00001 already in stackMay  4 07:56:38 localhost vmusr[12982]: [ warning] [Gtk] gtk_disable_setlocale() must be called before gtk_init()May  4 07:56:50 localhost systemd-logind: Removed session c1.Aug  1 01:05:31 localhost systemd: Time has been changedAug  1 01:05:31 localhost systemd: Started LSB: Bring up/down networking.Aug  1 01:08:56 localhost dbus-daemon: dbus[1124]: [system] Activating service name='com.redhat.SubscriptionManager' (using servicehelper)Aug  1 01:08:56 localhost dbus[1124]: [system] Activating service name='com.redhat.SubscriptionManager' (using servicehelper)Aug  1 01:08:57 localhost dbus-daemon: dbus[1124]: [system] Successfully activated service 'com.redhat.SubscriptionManager'Aug  1 01:08:57 localhost dbus[1124]: [system] Successfully activated service 'com.redhat.SubscriptionManager'//该日志内容会实时刷新,同时按下“ctrl+c”健可结束命令。

tr命令用于替换文本文件中的字符,格式为:“tr [原始字符] [目标字符]”。

很多时候咱们想要快速的替换文本内容中的一些词汇,又或者将整个文本内容都进行替换,手工逐个替换真的太累了,而且对于处理大批量的内容非常不现实。此时咱们便可以先使用cat命令读取待处理的文本内容,然后通过管道符(第三章将为您细致讲解)将这些数据传递给tr命令做替换操作即可,例如咱们试试将文本内容完整替换成大写英文吧:[root@linuxprobe ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]

#VERSION=RHEL7

# SYSTEM AUTHORIZATION INFORMATION

AUTH --ENABLESHADOW --PASSALGO=SHA512

# USE CDROM INSTALLATION MEDIA

CDROM

# RUN THE SETUP AGENT ON FIRST BOOT

FIRSTBOOT --ENABLE

IGNOREDISK --ONLY-USE=SDA

# KEYBOARD LAYOUTS

KEYBOARD --VCKEYMAP=US --XLAYOUTS='US'

# SYSTEM LANGUAGE

LANG EN_US.UTF-8

# NETWORK INFORMATION

NETWORK --BOOTPROTO=DHCP --DEVICE=ENO16777728 --ONBOOT=OFF --IPV6=AUTO

NETWORK --HOSTNAME=LOCALHOST.LOCALDOMAIN

# ROOT PASSWORD

ROOTPW --ISCRYPTED $6$PDJJF42G8C6PL069$II.PX/YFAQPO0ENW2PA7MOMKJLYOAE2ZJMZ2UZJ7BH3UO4OWTR1.WK/HXZ3XIGMZGJPCS/MGPYSSOI8HPCT8B/

# SYSTEM TIMEZONE

TIMEZONE AMERICA/NEW_YORK --ISUTC

USER --NAME=LINUXPROBE --PASSWORD=$6$A9V3INSTNBWEIR7D$JEGFYWBCDOOOKJ9SODECCDO.ZLF4OSH2AZ2SS2R05B6LZ2A0V2K.RJWSBALL2FEKQVGF640OA/TOK6J.7GUTO/ --ISCRYPTED --GECOS="LINUXPROBE"

# X WINDOW SYSTEM CONFIGURATION INFORMATION

XCONFIG --STARTXONBOOT

# SYSTEM BOOTLOADER CONFIGURATION

BOOTLOADER --LOCATION=MBR --BOOT-DRIVE=SDA

AUTOPART --TYPE=LVM

# PARTITION CLEARING INFORMATION

CLEARPART --NONE --INITLABEL

%PACKAGES

@BASE

@CORE

@DESKTOP-DEBUGGING

@DIAL-UP

@FONTS

@GNOME-DESKTOP

@GUEST-AGENTS

@GUEST-DESKTOP-AGENTS

@INPUT-METHODS

@INTERNET-BROWSER

@MULTIMEDIA

@PRINT-CLIENT

@X11

%END

wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。

每当我讲课提到这个命令的时候,总有同学联想到一些建筑,其实两者是毫无关系的。Linux系统中的wc用于统计文本的行数、字数、字节数等文本内容的命令,如果为了方便您去记忆,其实也可以联想到上厕所时真的好无聊,无聊到竟然数完了整张报纸上有多少行字。参数作用

-l只显示行数

-w只显示单词数

-c只显示字节数

咱们使用“-l”参数来统计行数,而passwd是用于保存系统帐户信息的文件,因此下面的命令就是用于统计当前系统中有多少个用户的作用啦,感觉是不是很神奇:[root@linuxprobe ~]# wc -l /etc/passwd

38 /etc/passwd

stat命令用于查看文件的具体存储信息和时间等信息,格式“stat 文件名称”。

使用stat命令可以看到文件的存储信息和时间等信息,下面会显示出文件的三种时间状态(已加粗):Access、Modify、Change,咱们将在下面的touch命令中单独为您讲解:[root@localhost ~]# stat anaconda-ks.cfg

File: ‘anaconda-ks.cfg’

Size: 1213 Blocks: 8 IO Block: 4096 regular file

Device: fd00h/64768d Inode: 68912908 Links: 1

Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)

Context: system_u:object_r:admin_home_t:s0Access: 2016-07-14 01:46:18.721255659 -0400Modify: 2016-05-04 15:44:36.916027026 -0400Change: 2016-05-04 15:44:36.916027026 -0400

Birth: -

cut命令用于按“列”来提取文本字符,格式为:“cut [参数] 文本”。

如何准确的提取出最想要的数据,这也是咱们在研究的技术方向,按基于“行”的方式来提取是比较简单的,只需要设置好匹配项目和行数即可,但是按列搜索的话不仅要使用“-f”参数来设置需要看的列数,还必须使用“-d”参数来设置间隔符号,因为passwd是用于保存用户信息数据的文件,而每一项值都是通过冒号来间隔(见下面head命令的输出演示),因此咱们来尝试下提取出passwd文件中的用户名信息吧:[root@linuxprobe ~]# head -n 2 /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologin

[root@linuxprobe ~]# cut -d: -f1 /etc/passwd

root

bin

daemon

adm

lp

sync

shutdown

halt

mail

operator

games

ftp

nobody

dbus

polkitd

unbound

colord

usbmuxd

avahi

avahi-autoipd

libstoragemgmt

saslauth

qemu

rpc

rpcuser

nfsnobody

rtkit

radvd

ntp

chrony

abrt

pulse

gdm

gnome-initial-setup

postfix

sshd

tcpdump

linuxprobe

diff命令用于比较多个文本文件的差异,格式为:"diff [参数] 文件"。

咱们不仅可以使用“--brief”参数来仅仅确认两个文件是否不同,还可以使用“-c”参数来详细比较出多个文件的差异之处,这绝对是判断文件是否被篡改的有力神器。例如先查看下两个文件的内容,然后进行比较:[root@linuxprobe ~]# cat diff_A.txt

Welcome to linuxprobe.com

Red Hat certified

Free Linux Lessons

Professional guidance

Linux Course

[root@linuxprobe ~]# cat diff_B.txt

Welcome tooo linuxprobe.com

Red Hat certified

Free Linux LeSSonS

.....

Professional guidance

Linux Course

仅仅显示比较后的结果,判断文件是否相同:[root@linuxprobe ~]# diff --brief diff_A.txt diff_B.txt

Files diff_A.txt and diff_B.txt differ

使用详细的上下文输出格式来描述文件内容具体的不同:[root@linuxprobe ~]# diff -c diff_A.txt diff_B.txt

*** diff_A.txt 2015-08-30 18:07:45.230864626 +0800

--- diff_B.txt 2015-08-30 18:08:52.203860389 +0800

***************

*** 1,5 ****

! Welcome to linuxprobe.com

Red Hat certified

! Free Linux Lessons

Professional guidance

Linux Course

--- 1,7 ----

! Welcome tooo linuxprobe.com

!

Red Hat certified

! Free Linux LeSSonS

! .....

Professional guidance

Linux Course

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值