Linux 系统常用基本命令大全 学习笔记(三)——文本文件编辑命令 && 文件目录管理命令 && 打包压缩与搜索命令

一、 文本文件编辑命令

1. cat命令

cat命令用于查看纯文本文件(内容较少的),格式为“cat [选项] [文件]”。
cat命令就是用于查看内容较少的纯文本文件的.

	-n	显示行数(空行也编号)
	-s	显示行数(多个空行算一个编号)
	-b	显示行数(空行不编号)
	-E	每行结束处显示$符号
	-T	将TAB字符显示为 ^I符号
	-v	使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
	-e	等价于”-vE”组合
	-t  等价于”-vT”组合
	-A	等价于 -vET组合
	–help	显示帮助信息
	–version	显示版本信息
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  linux
[root@localhost ~]# cat -n anaconda-ks.cfg 
     1	#version=RHEL7
     2	# System authorization information
     3	auth --enableshadow --passalgo=sha512
     4	
     5	# Use CDROM installation media
     6	cdrom
     7	# Run the Setup Agent on first boot
     8	firstboot --enable

2. more命令

more命令用于查看纯文本文件(内容较多的),格式为“more [选项]文件”
空格键或回车键向下翻页, q键退出。

[root@localhost ~]# more initial-setup-ks.cfg 
#version=RHEL7
# X Window System configuration information
xconfig  --startxonboot
--More--(97%)

3. head命令

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

[root@localhost ~]# head -n 5 initial-setup-ks.cfg 
#version=RHEL7
# X Window System configuration information
xconfig  --startxonboot

# License agreement
--More--(97%)

4. tail命令

tail命令用于查看纯文本文档的后N行或持续刷新内容,格式为“tail [选项] [文件]”。
默认查看10行
tail命令最强悍的功能是可以持续刷新一个文件的内容,当想要实时查看最新日志文件时,这特别有用,此时的命令格式为“tail -f 文件名

[root@localhost ~]# tail -n 5 initial-setup-ks.cfg 
@print-client
@x11

%end

5. tr命令

tr命令用于替换文本文件中的字符,格式为“tr [原始字符] [目标字符]”。
快速地替换文本中的一些词汇,或者把整个文本内容都进行替换,如果进行手工替换,难免工作量太大,尤其是需要处理大批量的内容时,进行手工替换更是不现实。这时,就可以先使用cat命令读取待处理的文本,然后通过管道符 | 把这些文本内容传递给tr命令进行替换操作即可.

[root@localhost ~]# cat anaconda-ks.cfg
#version=RHEL7
# System authorization information
auth --enableshadow --passalgo=sha512

# Use CDROM installation media
cdrom
...
[root@localhost ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]
#VERSION=RHEL7
# SYSTEM AUTHORIZATION INFORMATION
AUTH --ENABLESHADOW --PASSALGO=SHA512

# USE CDROM INSTALLATION MEDIA
CDROM
...

6. wc命令

wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”
-wlc 分别表示单词书,行数,字节数。

[root@localhost ~]# wc /etc/passwd
38   66 1914 /etc/passwd
[root@localhost ~]# wc -l /etc/passwd
38 /etc/passwd

7. stat命令

stat命令用于查看文件的具体存储信息和时间等信息,格式为“stat 文件名称”。
查看文件的三种时间状态:Access、Modify、Change。这三种时间的区别将在后面的touch命令中详细详解。

[root@localhost ~]# stat /etc/passwd
  File:/etc/passwd’
  Size: 1914      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 35886694    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2019-05-21 16:37:30.690027000 +0800
Modify: 2019-05-06 19:26:48.934014548 +0800
Change: 2019-05-06 19:26:48.934014548 +0800
 Birth: -

8. cut命令

cut命令用于按“”提取文本字符,格式为“cut [参数] 文本”。
基于“行”的方式来提取数据是比较简单的,只需要设置好要搜索的关键词即可。但是如果按列搜索,不仅要使用-f参数来设置需要看的列数,还需要使用-d参数来设置间隔符号。
如: passwd在保存用户数据信息时,用户信息的每一项值之间是采用冒号来间隔的,接下来我们使用下述命令尝试提取出passwd文件中的用户名信息,即提取以冒号(:)为间隔符号的第一列内容:

[root@localhost ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
...
ome-initial-setup
postfix
sshd
tcpdump
weivid

9. diff命令

diff命令用于比较多个文本文件的差异,格式为“diff [参数] 文件”。
在使用diff命令时,不仅可以使用–brief参数来确认两个文件是否不同,还可以使用-c参数来详细比较出多个文件的差异之处,这绝对是判断文件是否被篡改的有力神器。
例如,先使用cat命令分别查看diff_A.txt和diff_B.txt文件的内容,然后进行比较:

[root@localhost ~]# 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@localhost ~]# diff --brief diff_A.txt diff_B.txt
Files diff_A.txt and diff_B.txt differ
*** diff_A.txt 2017-08-30 18:07:45.230864626 +0800
--- diff_B.txt 2017-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

二、文件目录管理命令

1. touch命令

touch命令用于创建空白文件或设置文件的时间,格式为“touch [选项] [文件]”。

在创建空白的文本文件方面,这个touch命令相当简捷,简捷到没有必要铺开去讲。比如,touch linuxprobe命令可以创建出一个名为linuxprobe的空白文本文件。对touch命令来讲,有难度的操作主要是体现在设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)上面。

	-a	仅修改“读取时间”(atime)
	-m	仅修改“修改时间”(mtime)
	-d	同时修改atime与mtime
[root@localhost ~]# ls -l anaconda-ks.cfg 
-rw-------. 1 root root 1210 May 21 19:07 anaconda-ks.cfg
[root@localhost ~]# echo "this file has been modified" > anaconda-ks.cfg
[root@localhost ~]# ls -l anaconda-ks.cfg 
-rw-------. 1 root root 28 May 21 19:21 anaconda-ks.cfg
[root@localhost ~]# touch -d "2017-05-04 15:44" anaconda-ks.cfg
[root@localhost ~]# ls -l anaconda-ks.cfg 
-rw-------. 1 root root 28 May  4  2017 anaconda-ks.cfg

2. mkdir命令

mkdir命令用于创建空白的目录,格式为“mkdir [选项] 目录”。
除了能创建单个空白目录外,mkdir命令还可以结合-p参数来递归创建出具有嵌套叠层关系的文件目录。

[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg
[root@localhost ~]# mkdir linux
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  linux
[root@localhost ~]# cd linux
[root@localhost ~/linux]# find -name d3
./d1/d2/d3

3. cp命令

cp命令用于复制文件或目录,格式为“cp [选项] 源文件 目标文件”。
在Linux系统中,复制操作具体分为3种情况

	1. 如果目标文件是目录,则会把源文件复制到该目录中;
	2. 如果目标文件也是普通文件,则会询问是否要覆盖它;
	3. 如果目标文件不存在,则执行正常的复制操作。
[root@localhost ~]# cp anaconda-ks.cfg ./linux/
[root@localhost ~]# cd linux/
[root@localhost ~/linux]# ls
anaconda-ks.cfg

4. mv命令

mv命令用于剪切文件或将文件重命名,格式为“mv [选项] 源文件 [目标路径|目标文件名]”。
剪切操作不同于复制操作,因为它会默认把源文件删除掉,只保留剪切后的文件。
如果在同一个目录中对一个文件进行剪切操作,其实也就是对其进行重命名:

[root@localhost ~/linux]# mv anaconda-ks.cfg ~
mv: overwrite ‘/root/anaconda-ks.cfg’? y
[root@localhost ~] ls
anaconda-ks.cfg  initial-setup-ks.cfg  linux

5. rm命令

rm命令用于删除文件或目录,格式为“rm [选项] 文件”。
在Linux系统中删除文件时,系统会默认向您询问是否要执行删除操作,如果不想总是看到这种反复的确认信息,可在rm命令后跟上-f参数来强制删除。
另外,想要删除一个目录,需要在rm命令后面加一个-r参数才可以,否则删除不掉。

[root@localhost ~/linux]# ls
anaconda-ks.cfg  initial-setup-ks.cfg linux
[root@localhost ~/linux]# rm -r linux/
remove directory ‘linux/? y
[root@localhost ~/linux]# ls
anaconda-ks.cfg  initial-setup-ks.cfg

6. dd命令

dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]”。
例如我们可以用dd命令从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件。在理解了这个命令后,以后就能随意创建任意大小的文件了:

[root@localhost ~/linux]# dd if=/dev/zero of=560_file count=1 bs=560M
1+0 records in
1+0 records out
587202560 bytes (587 MB) copied, 27.1755 s, 21.6 MB/s

7. file命令

file命令用于查看文件的类型,格式为“file 文件名”。
在Linux系统中,由于文本、目录、设备等所有这些一切都统称为文件,而我们又不能单凭后缀就知道具体的文件类型,这时就需要使用file命令来查看文件类型了。

[root@localhost ~]# file anaconda-ks.cfg 
anaconda-ks.cfg: ASCII text
[root@localhost ~]# file /dev/sda
/dev/sda: block special

三、 打包压缩与搜索命令

1. tar命令

tar命令用于对文件进行打包压缩或解压,格式为“tar [选项] [文件]”。
在Linux系统中,常见的文件格式比较多,其中主要使用的是.tar或.tar.gz或.tar.bz2格式,不用担心格式太多而记不住,其实这些格式大部分都是由tar命令来生成的。

	-c	创建压缩文件
	-x	解开压缩文件
	-t	查看压缩包内有哪些文件
	-z	用Gzip压缩或解压
	-j	用bzip2压缩或解压
	-v	显示压缩或解压的过程
	-f	目标文件名
	-p	保留原始的权限与属性
	-P	使用绝对路径来压缩
	-C	指定解压到的目录

-c参数用于创建压缩文件,-x参数用于解压文件,因此这两个参数不能同时使用。其次,-z参数指定使用Gzip格式来压缩或解压文件,-j参数指定使用bzip2格式来压缩或解压文件。非常推荐使用-v参数向用户不断显示压缩或解压的过程。-C参数用于指定要解压到哪个指定的目录。-f参数特别重要,它必须放到参数的最后一位,代表要压缩或解压的软件包名称。

一般使用“tar -czvf 压缩包名称.tar.gz 要打包的目录”命令把指定的文件进行打包压缩;相应的解压命令为“tar -xzvf 压缩包名称.tar.gz”。

[root@localhost ~]# tar czvf etc.tar.gz /etc
tar: Removing leading `/' from member names
/etc/
/etc/fstab
/etc/crypttab
/etc/mtab
/etc/fonts/
/etc/fonts/conf.d/
/etc/fonts/conf.d/65-0-madan.conf
/etc/fonts/conf.d/59-liberation-sans.conf
/etc/fonts/conf.d/90-ttf-arphic-uming-embolden.conf
/etc/fonts/conf.d/59-liberation-mono.conf
...
[root@localhost ~]# tar xzvf etc.tar.gz -C /root/etc
etc/
etc/fstab
etc/crypttab
etc/mtab
etc/fonts/
etc/fonts/conf.d/
etc/fonts/conf.d/65-0-madan.conf
etc/fonts/conf.d/59-liberation-sans.conf
etc/fonts/conf.d/90-ttf-arphic-uming-embolden.conf
etc/fonts/conf.d/59-liberation-mono.conf
etc/fonts/conf.d/66-sil-nuosu.conf
etc/fonts/conf.d/65-1-vlgothic-gothic.conf
etc/fonts/conf.d/65-0-lohit-bengali.conf
etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf
...

2. grep命令

grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项] [文件]”。grep命令的参数及其作用如表2-15所示。

-b	将可执行文件(binary)当作文本文件(text)来搜索
-c	仅显示找到的行数
-i	忽略大小写
-n	显示行号
-v	反向选择——仅列出没有“关键词”的行。
[root@localhost ~]# grep /sbin/nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

3. find命令

find命令用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件 操作”。

-name	匹配名称
-perm	匹配权限(mode为完全匹配,-mode为包含即可)
-user	匹配所有者
-group	匹配所有组
-mtime -n +n	匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n	匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n	匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser	匹配无所有者的文件
-nogroup	匹配无所有组的文件
-newer f1 !f2	匹配比文件f1新但比f2旧的文件
--type b/d/c/p/l/f	匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size	匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune	忽略某个目录
-exec …… {}\;	后面可跟用于进一步处理搜索结果的命令
[root@localhost ~]# find /etc -name "host*" -print
/etc/avahi/hosts
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/selinux/targeted/modules/active/modules/hostname.pp
/etc/hostname
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摆渡沧桑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值