复制和移动文件

cp:copy

cp SRC(源文件) DEST

-r 递归

-P 保持为连接

-i 覆盖前提示

-f 如果无法打开现有的目标文件,请将其删除,然后重试(强制执行)

-a:归档复制,常用于备份。

-p 保留指定的属性(默认值:mode,ownership,timestamps),如果可能的话,还可以保留 属性:上下文,链接,xattr,所有

-l 复制链接到的文件

一个文件到一个文件

多个文件到一个目录

cp /etc/{passwd,inittab,rc.d/rc.sysinit} /tmp/

mv:move

移动文件

mv SRC DEST

install 只能复制文件

-d DIRECOTYR … : 创建目录

SRC DEST 复制

【insatll】只能复制文件,不能复制目录

# install -d /tmp/{install.1,install.2} 在tmp目录下面创建两个目录分别为install.1和install.2

# install /etc/passwd /var/tmp/install.file1 将etc下面的passwd复制到tmp下面并重命名为install.file1且赋予该文件可执行权限

参数 -d DIRECOTRY…. 表示用于创建目录,还可以用于同时创建多个目录。 -m(mode) 指定复制后文件的权限 -o -t 先指定目标,后指定源,且源可以为多个

目录管理:

ls、cd、pwd、mkdir、rmdir、tree

文件管理:

touch、stat、file、rm、cp、mv、nano

日期时间:data、clock、hwclock、cal

查看文本:

cat、tac、more、less、head、tail

cat 命令用于连接文件并打印到标准输出设备上。

使用权限

所有使用者

语法格式

cat [-AbeEnstTuv] [--help] [--version] fileName

参数说明:

-n 或 –number:由 1 开始对所有输出的行数编号。

-E 或 –show-ends : 在每行结束处显示 $。

TAC

tac命令用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示。

语法

tac(选项)(参数)

选项

-a或——append:将内容追加到文件的末尾;
-i或——ignore-interrupts:忽略中断信号。

参数

文件列表:指定要保存内容的文件列表。

分屏显示:

more、less

more

Linux more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。

语法

more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

参数

  • -num 一次显示的行数
  • -d 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
  • -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
  • -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
  • -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
  • -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
  • -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
  • -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
  • +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
  • +num 从第 num 行开始显示
  • fileNames 欲显示内容的文档,可为复数个数

实例

逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。

more -s testfile

从第 20 行开始显示 testfile 之文档内容。

more +20 testfile

常用操作命令

  • Enter 向下n行,需要定义。默认为1行
  • Ctrl+F 向下滚动一屏
  • 空格键 向下滚动一屏
  • Ctrl+B 返回上一屏
  • = 输出当前行的行号
  • :f 输出文件名和当前行的行号
  • V 调用vi编辑器
  • !命令 调用Shell,并执行命令
  • q 退出more

less:

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

语法

less [参数] 文件 

参数说明

  • -b <缓冲区大小> 设置缓冲区的大小
  • -e 当文件显示结束后,自动离开
  • -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
  • -g 只标志最后搜索的关键词
  • -i 忽略搜索时的大小写
  • -m 显示类似more命令的百分比
  • -N 显示每行的行号
  • -o <文件名> 将less 输出的内容在指定文件中保存起来
  • -Q 不使用警告音
  • -s 显示连续空行为一行
  • -S 行过长时间将超出部分舍弃
  • -x <数字> 将”tab”键显示为规定的数字空格
  • /字符串:向下搜索”字符串”的功能
  • ?字符串:向上搜索”字符串”的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)
  • b 向上翻一页
  • d 向后翻半页
  • h 显示帮助界面
  • Q 退出less 命令
  • u 向前滚动半页
  • y 向前滚动一行
  • 空格键 滚动一页
  • 回车键 滚动一行
  • [pagedown]: 向下翻动一页
  • [pageup]: 向上翻动一页

常用翻屏:

向后翻一屏:SPACE

向前翻一屏:b

向后翻一行: ENTER

向前翻一行:K

实例

1、查看文件

less log2013.log

2、ps查看进程信息并通过less分页显示

ps -ef |less

3、查看命令历史使用记录并通过less分页显示

[root@localhost test]# history | less
22 scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft
23 cd ..
24 scp -r web root@192.168.120.203:/opt/
25 cd soft
26 ls
……省略……

4、浏览多个文件

less log2013.log log2014.log

说明: 输入 :n后,切换到 log2014.log 输入 :p 后,切换到log2013.log

附加备注

1.全屏导航

  • ctrl + F – 向前移动一屏
  • ctrl + B – 向后移动一屏
  • ctrl + D – 向前移动半屏
  • ctrl + U – 向后移动半屏

2.单行导航

  • j – 向前移动一行
  • k – 向后移动一行

3.其它导航

  • G – 移动到最后一行
  • g – 移动到第一行
  • q / ZZ – 退出 less 命令

4.其它有用的命令

  • v – 使用配置的编辑器编辑当前文件
  • h – 显示 less 的帮助文档
  • &pattern – 仅显示匹配模式的行,而不是整个文件

5.标记导航

当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:

  • ma – 使用 a 标记文本的当前位置
  • ‘a – 导航到标记 a 处

head:查看前n行

tail:查看后n行

-n

n默认为10

tail -f 查看文件尾部,不退出,等待显示后续追加至此文件的新内容:

文本处理:

cut、join、sed、awk

database:数据库

关系型数据库:

表:二维表

cut:

-d: 指定字段分隔符 默认为空格

-f:指定要显示的字段

-f 1,3 显示第一和第三字段

-f 1-3 显示一至三字段

文本排序:sort

sort命令

Linux sort命令用于将文本文件内容加以排序。

sort可针对文本文件的内容,以行为单位来排序。

语法 sort(选项)(参数)

sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]

参数说明

  • -b 忽略每行前面开始出的空格字符。
  • -c 检查文件是否已经按照顺序排序。
  • -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
  • -f 排序时,将小写字母视为大写字母。(忽略字符大小写)
  • -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
  • -m 将几个排序好的文件进行合并。
  • -M 将前面3个字母依照月份的缩写进行排序。
  • -n 依照数值的大小排序。
  • -u 意味着是唯一的(unique),输出的结果是去完重了的。
  • -o<输出文件> 将排序后的结果存入指定的文件。
  • -r 以相反的顺序来排序。
  • -t<分隔字符> 指定排序时所用的栏位分隔字符。
  • -k+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
  • –help 显示帮助。
  • –version 显示版本信息。

实例

在使用sort命令以默认的式对文件的行进行排序,使用的命令如下:

sort testfile 

sort 命令将以默认的方式将文本文件的第一列以ASCII 码的次序排列,并将结果输出到标准输出。

使用 cat命令显示testfile文件可知其原有的排序如下:

$ cat testfile      #testfile文件原有排序  
test 30  
Hello 95  
Linux 85

使用sort命令重排后的结果如下:

$ sort testfile #重排结果  
Hello 95  
Linux 85  
test 30

Linux uniq 命令

Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

uniq 可检查文本文件中重复出现的行列。

语法

uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]

参数

  • -c或–count 在每列旁边显示该行重复出现的次数。
  • -d或–repeated 仅显示重复出现的行列。
  • -D显示所有重复的行
  • -f<栏位>或–skip-fields=<栏位> 忽略比较指定的栏位。
  • -s<字符位置>或–skip-chars=<字符位置> 忽略比较指定的字符。
  • -u或–unique 仅显示出一次的行列。
  • -w<字符位置>或–check-chars=<字符位置> 指定要比较的字符。
  • –help 显示帮助。
  • –version 显示版本信息。
  • [输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
  • [输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。

实例

文件testfile中第 2、3、5、6、7、9行为相同的行,使用 uniq 命令删除重复的行,可使用以下命令:

uniq testfile 

testfile中的原有内容为:

$ cat testfile      #原有内容  
test 30  
test 30  
test 30  
Hello 95  
Hello 95  
Hello 95  
Hello 95  
Linux 85  
Linux 85

使用uniq 命令删除重复的行后,有如下输出结果:

$ uniq testfile     #删除重复行后的内容  
test 30  
Hello 95  
Linux 85

检查文件并删除文件中重复出现的行,并在行首显示该行重复出现的次数。使用如下命令:

uniq -c testfile 

结果输出如下:

$ uniq -c testfile      #删除重复行后的内容  
3 test 30             #前面的数字的意义为该行共出现了3次  
4 Hello 95           #前面的数字的意义为该行共出现了4次  
2 Linux 85           #前面的数字的意义为该行共出现了2次

当重复的行并不相邻时,uniq 命令是不起作用的,即若文件内容为以下时,uniq 命令不起作用:

$ cat testfile1      # 原有内容 
test 30  
Hello 95  
Linux 85
test 30  
Hello 95  
Linux 85
test 30  
Hello 95  
Linux 85

这时我们就可以使用 sort:

$ sort  testfile1 | uniq
Hello 95  
Linux 85
test 30

统计各行在文件中出现的次数:

$ sort testfile1 | uniq -c
  3 Hello 95  
  3 Linux 85
  3 test 30

在文件中找出重复的行:

$ sort testfile1 | uniq -d
Hello 95  
Linux 85
test 30  

#

文本统计命令:wc(word count)

Linux wc命令

Linux wc命令用于计算字数。

利用wc指令我们可以计算文件的字节数,字数,或者列数,若不指定文件名,或所赋予的文件称为“-”,则wc指令会从标准输入设备读取数据。

语法

wc [-clw] [-help] [-version] [文件...][ -clw ] [- 帮助] [- 版本] [文件...]

参数

-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
--version 显示版本信息

实例

在某些情况下,wc将计算指定文件的行数,字数,以及字节数。使用的命令为:

wc测试文件 

先查看testfile文件的内容,可以看到:

$ cat测试文件  
Linux网络变得越来越普遍,但是安全性常常被忽视 Linux的网络变得越来越和更常见,但scurity 是经常被忽视  
问题。不幸的是,在当今环境下,所有网络都是潜在的黑客目标, 。不幸的是,在今天' s ^环境中的所有网络都是潜在的黑客的目标,    
将tp-secret军事研究网络从小型家庭LAN传输出去。 - 小型家庭局域网的秘密军事研究网络。  
Linux Network Securty致力于在网络环境中保护Linux的安全,其中 Linux的网络Securty 侧重于保护的Linux 在网络环境中,其中的      
需要考虑整个网络的安全性,而不仅仅是隔离的机器。 。  
它结合了理论和实践技巧,教管理员如何安装和安装 它结合了理论和实践技巧,教管理员如何安装和安装  
使用安全性应用程序,以及应用程序如何工作以及为什么必要。 使用的安全应用,如以及作为该applcations如何工作以及为什么它们是necesary 。  

使用wc统计,结果如下:

$ wc testfile#testfile文件的统计信息  #testfile文件的统计信息  
3 92 598 testfile#testfile文件的行数为3,单词数92,字节数598 3 92 598 testfile       #testfile文件的行数为3,单词数92,字节数598  

其中,3个数字分别表示测试文件文件的行数,单词数,以及该文件的字节数。

如果想同时统计多个文件的信息,例如同时统计testfile,testfile_1,testfile_2,可使用如下命令:

wc testfile testfile_1 testfile_2#统计三个文件的信息 
#统计三个文件的信息

输出结果如下:

$ wc testfile testfile_1 testfile_2#统计三个文件的信息  #统计三个文件的信息  
3 92 598测试文件#第一个文件行数为3,单词数92,字节数598 3 92 598 testfile的                     #第一个文件行数为3,单词数92,字节数598    
9 18 78 testfile_1#第二个文件的行数为9,单词数18,字节数78 9 18 78 testfile_1                   #第二个文件的行数为9,单词数18,字节数78    
3 6 32 testfile_2#第三个文件的行数为3,单词数6,字节数32 3 6 32 testfile_2                     #第三个文件的行数为3,单词数6,字节数32    
15 116 708总用量#三个文件总共的行数为15,单词数116,字节数708 15 116 708 总用量#三个文件总共的行数为15,单词数116,字节数708                      

字符处理命令:tr命令 转换或删除字符

tr命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。

语法

tr(选项)(参数)
tr [ -cdst ] [- 帮助] [- 版本] [第一字符集] [第二字符集]  
tr [ 选项]… SET1 [ SET2 ]

选项

-c或——complerment:取代所有不属于第一字符集的字符;
-d或——delete:删除所有属于第一字符集的字符;
-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;
-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。

参数

  • 字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;
  • 字符集2:指定要转换成的目标字符集。

实例

将输入字符由大写转换为小写:

echo "HELLO WORLD" | tr 'A-Z' 'a-z'
hello world

‘A-Z’ 和 ‘a-z’都是集合,集合是可以自己制定的,例如:’ABD-}’、’bB.,’、’a-de-h’、’a-c0-9’都属于集合,集合里可以使用’\n’、’\t’,可以可以使用其他ASCII字符。

使用tr删除字符:

echo "hello 123 world 456" | tr -d '0-9'
hello world

将制表符转换为空格:

cat text | tr '\t' ' '

字符集补集,从输入文本中将不在补集中的所有字符删除:

echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 | tr -d -c '0-9 \n'
1 2 3 4

此例中,补集中包含了数字0~9、空格和换行符\n,所以没有被删除,其他字符全部被删除了。

用tr压缩字符,可以压缩输入中重复的字符:

echo "thissss is      a text linnnnnnne." | tr -s ' sn'
this is a text line.

巧妙使用tr做数字相加操作:

echo 1 2 3 4 5 6 7 8 9 | xargs -n1 | echo $[ $(tr '\n' '+') 0 ]

删除Windows文件“造成”的’^M’字符:

cat file | tr -s "\r" "\n" > new_file

cat file | tr -d "\r" > new_file

tr可以使用的字符类:

[:alnum:]:字母和数字
[:alpha:]:字母
[:cntrl:]:控制(非打印)字符
[:digit:]:数字
[:graph:]:图形字符
[:lower:]:小写字母
[:print:]:可打印字符
[:punct:]:标点符号
[:space:]:空白字符
[:upper:]:大写字母
[:xdigit:]:十六进制字符

使用方式:

tr '[:lower:]' '[:upper:]'

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。

允许上传的最大文件为50 MB。 您可以上传:图像, 音频, 视频, 文档, 电子表格, 互动, 文本, 存档, 代码, 其他 评论文本中插入的YouTube、Facebook、Twitter和其他服务的链接将自动嵌入。 Drop files here