> Linux命令 >

linux命令复习总结(文件增删改查、搜索过滤、输入输出重定向、管道)

ls选项:
-a :显示目录下的所有子文件,包括隐藏文件(.开头的文件)
(隐藏文件一般是保存安装过的软件的配置的,不需理会)
-l :以列表的形式显示文件的详细信息
-h:需要配合-l选项配合使用 ls -lh, 包括会给文件大小带个单位,更具体

ls和通配符搭配:
通配符:
* 代表任意个数 个字符,如果*在最后,则包括了所有类型的文件,如果在最前面,则需要我们手动的添加文件类型,示例如下
?只能代表一个字符,0个都不行
[abc] :匹配abc中的任意一个字符
[a-f] :匹配a-f范围内的任意一个字符

示例:
1.将以数字1开头的文件列出来 :ls 1*
2.将以数字1结尾的文件列出来: ls *1.txt
(星号在前面的一定要给文件类型,因为前面的星号无法代表后面的文件类型)
3.把文件名中含有3的文件列出来: ls * 3 *
4.已知文件开头是1234某个数字,结尾为23的文件:[1234]23.txt
5.如果不知道文件类型是什么可以直接[1234]23 *

touch扩展:
如果文件不存在,就创建该文件
如果文件存在,修改文件的最后一次操作的时间

mkdir 扩展:
-p 递归的创建目录:
mkdir a/b/c/d :a下面是b,b下面是c,一次类推
注:目录和文件不能重名

rm扩展:
是将文件从磁盘删除,这个文件不能恢复,当然也不会放到垃圾桶中
-f :强制删除,不给出删除的提示信息
-r:递归的删除目录下的所有内容 删除文件夹时必须加此参数
rm也可以使用上面说到的通配符
示例:
删除以1开头的文件: rm 1*
删除当前路径所有文件:rm *

tree:以树状图的形式展示出目录的结构 tree 目录名
tree -d 只显示目录,不显示文件

cp 路径+源文件 路径+目标文件 将源文件拷贝为目标文件
-i:覆盖文件前的提示,不用担心覆盖同名文件夹
-r:由于cp不能直接复制目录,如果要复制,则需要加此参数
cp -r 路径+源目录 路径+目标目录

mv:扩展
移动文件或者目录都可以,也可以用来修改文件/目录名称
mv path +a.c path +b.c:path表示相同的路径,也就是将a.c名字修改为b.c
-i 覆盖前提醒要不要覆盖,同cp的-i

查看文件内容:
cat:(concatenate) cat 文件名
查看文件内容、创建文件、文件合并、追加文件内容等功能
-n :对输出的所有行编号
-b :对非空的输出行进行编号

more:
分屏显示文件内容
more 文件名
区别:
cat : 一次性显示全部的文件内容
more:分屏显示
如果文件内容比较少,我们使用cat即可
如果文件内容较多,more分屏显示会更好,回车一行一行的滚动,空格一页一页滚动
,b(back)回滚一屏,f(forward)前滚一屏,q退出阅读 /word 搜索word字符串

grep: 是一种强大的文本搜索工具 。 搜索 文本文件中是否包含某些内容
-n:显示匹配行以及行号
-v:显示不包含匹配文本的所有行(相当于求反)
-i:忽略大小写
常用的两种模式查找:
^a:行首,搜索以a开头的行
ke$:行尾,搜索以ke结尾的行

示例:
确认123.txt中是否有test这个字符串 :grep test 123.txt
显示123.txt种有字符test的行以及行号:grep -n test 234.txt
显示含有hello world的行以及行号:grep -n "hello world " 123.txt

echo + 文字内容: 将文字内容输出到终端
重定向:> 和 >>
>:表示输出到指定文件中,覆盖掉文件原来的所有内容
>>:表示追加内容,会将内容追加到文件的末尾,不覆盖之前的内容
(包括我们自己程序输出或系统ls ps等命令输出的内容都可以输出到文件中)

管道: | ( 竖线)
将一个命令的输出,可以通过管道做为另一个命令的输入
( | 相当于是管道,左端的命令产生的内容通过管道输送给右边的命令做为输入)
(使用管道,至少需要两个命令,一个命令输出,一个输入前一个命令的输出)
通常与grep来搭配:
在命令执行的结果的基础上,查询指定的文本

示例:
ls | more :将ls输出的内容传给more
ls -a | grep “hello world” :将ls -a输出的内容进行文本搜索,含有helloworld内容的文本
ps | grep a :将ps输出的所有进程的信息进行grep过滤搜索,将含有a的打印出来



(责任编辑:IT)