文件管理,文本处理,nano编辑器
文件管理,文本处理,nano编辑器
1,文件管理
cp, mv, rm
cp: 复制命令
cp [option] ... [-T] source dest
cp [option] ... source... directory
cp [option] ... -t directory source...
cp SRC(源) DEST(目标)
SRC是文件。
(1)如果目标文件不存在,则新建DEST(目标),并将SRC(源文件)中的内容填充到DEST(目标文件)中;
(2)如果目录存在:
如果DEST是文件,将SRC中的内容覆盖至DEST中;
此时建议为cp命令使用 -i 选项,提示当存在时,是否要进行覆盖。
如果DEST是目录,在目标目录下新建与原文件同名的文件,并将原文件中的内容填充到新文件中;
cp SRC... DEST
SRC...: 多个文件
DEST必须存在,且为目录,其他情形均为出错;
cp SRC DEST
SRC是目录:
此时使用递归选项:-r
如果目标文件不存在,则创建指定目录,复制源目录中所有文件到目标中
如果目标存在
如果目标是文件,则报错
如果目标是目录,复制源目录到目标目录中;
注意: 如果SRC是多个,就不区分是文件还是目录了,如果SRC都是文件,复制不需要 -r ;
如果SRC是多个,其中里面有目录,就要使用 -r ;
常用选项:
-i:交互式;询问用户命令是否继续进行;(比如提示用户目标存在是否覆盖)
-r,-R:递归复制目录及内部的所有内容
-a: 归档复制 相当于-dR --preserver=all 保留文件原属性
-d: --no-dereference --preserv=links 不追踪符号链接
--preserver[=ATTR_LIST] 保留文件属性,默认保留mode ownership timestamp三个属性
mode:权限
ownership:属主属组
timestamp:时间戳
links:链接属性
xattr:扩展属性
context:安全上下文
all:以上所有
-p: 保留权限 属主,属组,时间戳三个属性 --preserver=mode,ownership,timestamp。就直接相当于 --preserver
-v: --verbos 显示详细信息
-f: --force 强制进行
mv: move, 移动文件
mv [option]... [-T] source dest
mv [option]... source ... directory
mv [option]... -t directory source...
如果源文件是单个文件;
如果目标不存在,将文件移动到目标目录,并将文件名重命名为目标文件,相当于剪切
如果目标是文件,将源文件内容覆盖到目标文件中,然后删除源文件;
如果目标是目录,则将源文件移动到目标目录中,相当于剪切
如果源是多个文件,
如果目标是目录,则将源文件移动到目标目录中;
如果目标是文件,则报错;
如果目标不存在,则报错;
常用选项:
-i: 交互式,覆盖现有文件之间先询问用户
-f: 强制移动,强行覆盖现有文件
rm: remove 删除文件
rm [option]... file...
常用选项:
-i 交互式,删除文件先询问用户是否确认删除
-f 强制删除
-r 递归删除,用于删除目录内的文件及目录本身
-rf 强制递归删除,用于删除目录内的文件及目录本身
2, nano: 文本编辑器, 全屏编辑器
nano的快捷键
ctrl+g 获取帮助;
ctrl+x 退出编辑器;
ctrl+o 保存;
ctrl+r 从其他文件读入数据;
ctrl+w 搜索字符串;
ctrl+y 上一页;
ctrl+v 下一页;
ctrl+k 剪切文本;
ctrl+u 粘贴文本;
ctrl+c 定位光标所在位置
3,文本处理工具:
wc 命令
输出文件中的行数,单词数,字节数
wc [option]... [file]... 默认显示行数,单词数和字节数,如想单独显示,可加如下选项。
-l:lines行数
-w:words单词数
-c:characters字节数
cut 分割命令
在文件的每一行中提取片断
cut [option]... [file]...
-d DELIMITER: 指明字段分隔符,在-d后面不加空格填充一个字符指明字段分隔符
DELIMITER:指明的字段分割符
-f FILEDS: 字段,FILEDS=如下选项
#:第#个字段
#,#[,#] 离散的多个字段,例如 1,3,6表示第1,3,6字段
#-# : 连续的多个字段,例如1-6表示1到6个字段
混合使用:1-3,7
--output-delimiter=STRING 指定输出时的分隔符
例如:[root@localhost ~]# head -3 /etc/passwd | cut -d: -f1,3,7 --output-delimiter=" " root 0 /bin/bash bin 1 /sbin/nologin daemon 2 /sbin/nologin
[root@iZwz ~]# ifconfig | head -2 | cut -d: -f2 | tail -1 | cut -d' ' -f1
***.**.***.** *查找本机的IP地址*
sort 排序命令
对文本文件的行默认进行字符大小排序
sort [option]... [file]...
默认比较每一行的第一个字符进行升序排序,后第二个。。
-f:忽略字符大小写
-r: 逆序排序
-t DELIMITER: 字段分隔符(和cut类似)
-k #: 以指定的字段为标准排序
-n: 以数值大小进行排序
-u: uniq 排序后去重,连续且完全相同方为重复,
例如:以: 为字段分隔符,第二个字段为标准,并且以数值大小为排序
[root@localhost ~]# cat /tmp/x/a/a.txt a:2 b:4 c:1 d:3 [root@localhost ~]# sort -t: -k2 -n /tmp/x/a/a.txt c:1 a:2 d:3 b:4
uniq命令
uniq [option]... [file]...
注意:连续且完全相同方为重复
-c: 显示每行重复出现的次数
-d: 仅显示重复过的行
-u: 仅显示不曾重复的行
练习:
1、以冒号分隔,取出/etc/passwd文件的第6行至第10行,并将这些信息按第三个字段的数值大小进行排序,最后仅显示的各自的第一个字段
head -10 /etc/passwd | tail -5 | sort -t: -k3 -n | cut -d: -f1 [root@localhost ~]# head -10 /etc/passwd | tail -5 | sort -t: -k3 -n | cut -d: -f1 sync shutdown halt mail uucp