复制和移动文件
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:]'