Linux学习笔记(三):常用文件管理命令

文件操作

关于文件操作,首先自然是文件的创建与删除,比较简单的是下面三个。

mkdir 创建目录
rmdir 删除目录
rm 删除文件

rm -r 可以用来删除非空目录,不过每删除一个文件都会询问是否删除,所以经常使用rm -rf来忽略提示,不过由于Linux下没有回收站,也不阻止用户删除重要文件,因此这个命令非常危险,需要慎用。

touch

touch命令的本意是改变文件的timestamp,但如果路径下没找到目标文件,就会创建一个新文件了。

nano/vi

这些两个都是文本编辑器命令,正常的用法是用该文本编辑器打开文件,如果没有目标文件,也会创建新文件。

cp 复制文件

copy的缩写。可以复制一个文件到一个文件,也可以复制一个文件到一个目录。通常只有最后一个参数是复制目的地,而前面都是源。如果有多个源的话,那么目标就必须为目录了。
常用参数:
-r 递归复制一个目录
-p 保留属主时间戳
-d 保留所有属性
-L 相当于–dereference,保持连接
-P 相当于–no-dereference,忽略连接
-a 归档存放 常用于备份

mv 移动文件

move的缩写。和cp的用法类似
mv -t 首先指定目标

install 带属性复制

nstall和cp类似,也可以复制文件。但install可以更加明确地控制目标文件的属性。与copy不同的是,默认情况下install复制后的文件是具有执行权限的。
常用参数:
-d 创建目录
-m 指定权限
-t 首先指定目标,和mv -t类似

cat 显示文件

cat是concatenate的缩写,用来链接并显示文件,在只传一个目标参数的情况下可以用来直接显示文件。
常用参数:
-n 显示行号
-E 显示行结束符
-v 显示其他的非打印字符
-A 全部显示

对于linux系统而言,行结束符是$,而对于windows,行结束符是$+换行符,所以很多Linux的文件在windows打开变成了一行。因此,用-E显示行结束符可以用来更加明确地区分这些文件。

more/less 分屏显示

用cat命令显示文件的话,会把文件的内容一次性的打印出来,如果文件很长的话,就需要再往回翻,因此就有了more和less。
使用more命令可以一次显示一屏的内容,按空格键翻页,不过痛苦的是不支持回翻,因此就有人在more的基础上开发了less,除了more这功能之外,又增加了上下键滚屏的功能。因此一般直接使用less就好啦。此外还有most,似乎比less更强大一些。这三个命令有些容易混淆,让很多人摸不清头脑,于是…

less is more, but more more than more is, so more is less less, so use more less if you want less more. (…) If less is more than more, most is more than less.
—Slackware Linux Essentials

head

查看文件的首部

查看文件的的前n行,默认n为10。
常用参数:
-n 指定n的值
在Linux中还支持-[number] 来直接指定n的值,例如head -15就可以查看文件的前15行。

tail 查看文件的尾部

和dead类似,查看文件的后n行。
常用参数:
-f 查看文件尾部并不退出,等待显示追加到文件的新内容,常用来检测日志。

cut 分隔文本

常用参数:
-d 指定分隔符,默认是空格
-f 指定显示字段
这两个命令配合使用可以起到很好的作用,比如:

cut -d : -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
...
www

在/etc/passwd储存着用户信息,字段之间用冒号隔开,而第一个字段就是用户名,因此上面的命令就能显示所有的用户名了。

join 合并文本

字面意思,好像用的不是很多

sort 排序

将文本排序,默认的情况下,每一行会按照ASC码降序排序,即首先比较每行第一个字符,从小到大排序,如果相同,再比较第二个字符,以此类推。
常用参数:
-n 数值排序
-r 降序
-t 字段分隔符
-k 选定字段
-u 去除重复

uniq 去重

去除重复的行,不过只有相邻的两行内容相同才会被判断为重复。
常用参数:
-d 只显示重复的行(一次)
-D 显示所有重复的行(多次)

wc 文本统计

wc, 当然不是Water Close的缩写,而是Word Count,也就是文本统计。
常用参数:
-l 统计行
-w 统计单词
-c 统计字符

tr 字符替换

替换字符,据说配合输出输出重定向非常实用。
常用参数:
-d 删除字符集中的字符