标签:linux 文件管理命令
cp (copy)
格式:
cp SRC DEST
cp命令只能把一个文件复制成另外一个文件,或者把多个文件复制到一个目录下。
所以当我们使用命令 cp file1 file2 file3 时,linux会先判断file3是一个目录还是文档,
如果是目录,则把file1、file2拷贝到file3目录中,如果是文档则会报错提示:cp: target `file3‘ is not a directory(文件不存在也会报这个错)。
当我们cp file1 file2 的时候,如果文件不存在,则会拷贝file1这个文件,并改名为file2,如果文件存在且为文档,则会提示‘是否覆盖这个文件’。如果文档存在且为目录,则会拷贝这个文件到这个目录下。
特殊情况:如果file1是软连接的话,那么cp file1 file2 会把file1所指向的文件拷贝到file2(同样地,要判断下file2是否为目录,规则同上)。如果我们想拷贝file1这个软连接的话,可以在cp前面加上-P参数。
注意:当我们cp file1 file2 的时候,file2的时间戳属性会跟当前系统时间一样,如果我们不想修改原来文件的时间戳,那么可以在前面加上-p参数。当我们想拷贝一个目录到另一个目录的时候可以用-r或者-R参数,当我们拷贝一个目录到另一个目录且不想修改文件的属性和软连接时可以使用-ap参数..以此类推。
举例:
[root@logstach ~]# cp /etc/passwd /tmp/123
[root@logstach ~]# cat /tmp/123
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@logstach ~]# cp /etc/{passwd,shadow} /tmp/123
cp: target `/tmp/123‘ is not a directory
[root@logstach ~]# cp /etc/{passwd,shadow} /tmp/
[root@logstach ~]# ls /tmp/
123 shadow passwd
2.mv (move)
格式:
mv SRC DEST
或 mv -t DEST SRC (DEST必须为目录)
mv命令的使用方法与cp差不多,也是一对一,或者多对一的关系(必须为目录)。不同的是,当我们使用mv file1 file2 的时候,如果文件不存在则会把file1改名为file2.
如果我们想把目的文件放前面,源文件放后面,那么可以使用-t参数指定文件的目的。但是这个文件必须为目录。
install
格式:
install [OPTION]... [-T] SOURCE DEST
install [OPTION]... SOURCE... DIRECTORY
install [OPTION]... -t DIRECTORY SOURCE...
install [OPTION]... -d DIRECTORY...
这个命令的作用是复制文件并修改属性,用得比较少。
linux发行版三大派系:
Redhat:红帽里面又有fedora(偏向桌面)和Centos(偏向服务器)
SUSE:商用版SUSE和开源openSUSE
debian:炫酷的桌面(Ubuntu和Mint)
这三个派系中的版本都有各自的特点,比如redhat加入了很多自己的东西(软件程序什么的),所以操作起来更简单而且更容易上手,而debian则相对轻量,所以性能更好,但是也更不易上手。
发行版的linux为了可以向下兼容(比如说酷睿cpu上可以跑的linux到奔腾系列也能跑),所以都是用通用格式编译的,所以发行版并不能完全发挥硬件特性,不过没有关系,我们还有另外两个更自由的linux版本,可以根据自己的需求进行编译,用以发挥硬件的最大性能。这两个就是 Gentoo和LFS(linux from scartch)
查看文本命令:
cat
这个命令的定义是连接文件并打印在标准屏幕上。
示例:
同时显示2个文件
[root@logstach ~]# cat /etc/issue /etc/redhat-release
CentOS release 6.7 (Final)
Kernel \r on an \m
CentOS release 6.7 (Final)
-n参数可以显示行号
[root@logstach ~]# cat -n /etc/issue
1CentOS release 6.7 (Final)
2Kernel \r on an \m
3
-E参数可以显示每行的行结束符$
[root@logstach ~]# cat -E /etc/issue
CentOS release 6.7 (Final)$
Kernel \r on an \m$
$
关于行结束符的来历和不同操作系统的区别可以参照此文: http://www.tuicool.com/articles/QbuEbe2
有时候我们想让文件逆序输出,这个时候可以使用cat的相反命令tac
[root@logstach ~]# tac /etc/issue
Kernel \r on an \m
CentOS release 6.7 (Final)
当cat后面不接任何参数的时候,它会从标准输入中读取信息并输出到标准输出,如果想退出的话可以摁ctrl+c键。
示例:
[root@logstach ~]# cat
456486
456486
ssd
ssd
^C
[root@logstach ~]#
cat的缺陷: 当一个文件里面的内容很多时,cat显示的话只能显示最后几屏的内容(这是因为我们要显示的内容都在内存的缓存中,而缓存的空间总是有限的。这个时候我们就需要用到其他命令:more和less
more:
more命令的作用是把一个文件过滤并分屏显示
more files
空格:向下翻屏
b键:向上翻屏
enter:向下翻一行
不支持向上翻一行
到最底部直接退出,中途退出可以使用q键
less:
less的作用和more差不多
区别在于less可以用 ↑和k键向上翻一行,并且到底部不会退出
head:
显示文件前面部分
-n参数:可以选择显示前几行
tail:
与head相对应显示文件的后面部分
-n参数:可以显示后几行
-f参数:一个比较有用的参数,不加数字默认显示后十行,但是显示完并没有直接结束进程,而是类似于一种“等待”,当有新的数据写入到当前显示的文件的时候,-f参数会使信息实时显示在屏幕上,这是个对我们linux排错特别有用的功能
cut:
把文件进行分割显示
-d:指定字段分隔符,默认是空格
-f:指定要显示的字段
-f 1,3 (显示第1和第3行)
-f 1-3 (显示第1到第3行)
sort
-n:数值排序
-r:降序
-t:字符分隔符
-k:以哪个字段为关键字进行排序
-u:排序后只显示一次
-f:排序时忽略字符大小写
sort 命令默认是按ascii字符编码顺序对文本进行排序,所以当我们对一串数字进行排序的时候,结果可能不是我们想要的:
[root@logstach ~]# sort test
123
342
45
58324
777
当我们想让文本按数字大小进行排序时,可以使用-n,参数
[root@logstach ~]# sort -n test
45
123
342
777
58324
利用-k、-n和-t的结合使用功能可以实现按字段并根据数字大小进行排序
[root@logstach ~]# sort -t: -k3 -n /etc/passwd
root:x:0:0:root:/root:/bin/bash
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
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
uniq:
-c:显示文件行中重复的次数
-d:只显示重复的行
注:uniq命令执行过程中,它只认为相邻两个行数据相同是重复行,如果不相邻,即使数据一样,它也认为是单行。
示例:
[root@logstach ~]# cat test
123
58324
123
342
45
45
777
[root@logstach ~]# uniq -d test
45
[root@logstach ~]# !sor
sort test |uniq -d
123
45
文本统计:wc(word count)
-l:计算一共有几行(line)
-w:几个词(word)
-c:几个字符或者字节(byte)
-L:最大行长度
字符处理命令:tr--转换或删除字符
[root@logstach ~]# tr ab AB
sdddaf
sdddAf
ssawdsad
ssAwdsAd
本文出自 “单季稻” 博客,谢绝转载!
标签:linux 文件管理命令
原文地址:http://linzb.blog.51cto.com/5192423/1727470