跳转至

linux高级命令

  • 输出重定向
  • 查看文件内容
  • 文本搜索
  • 查找文件
  • 管道
  • 链接

输出重定向:>

Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。

ls > test.txt

test.txt 如果不存在,则创建,存在则覆盖其内容

注意:>输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部

查看文件内容:cat&more

cat

cat xxx.py 可以用来快速查看某个文件内容,输出到控制台

cat test.txt >> haha.txt 将test.txt的内容追加到haha.txt中

cat 1.txt 2.txt > 1_2.txt将1.txt 2.txt内容合并到1_2.txt中

more

查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,从头开始,每次只显示一页,空格键显示下一页,b键上一页,按下q键退出显示,按下h键可以获取帮助。

more xxx.py

文本搜索:grep

Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

grep一般格式为:

grep [-选项] '搜索内容串' 文件名

在grep命令中输入字符串参数时,最好用引号或双引号括起来。

例如:

从某个文件搜索

grep 'a' 1.txt

搜索当前目录所有文件

grep 'for' *

递归搜索当前目录及子目录的文件

grep -rni "字符串abc" *

常用选项说明:**

选项 含义
-v 显示不包含匹配文本的所有行(相当于求反)
-n 显示匹配行及行号
-i 忽略大小写
-r 包含子目录

查找文件:find

find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。

常用用法:

命令 含义
find ./ -name test.sh 查找当前目录下所有名为test.sh的文件or目录
find ./ -name '*.sh' 查找当前目录下所有后缀为.sh的文件or目录
find ./ -name "[A-Z]*" 查找当前目录下所有以大写字母开头的文件or目录
find ./ -maxdepth 1 -name '*.sh' 只查找当前目录所有后缀为.sh的文件or目录
find ./ -type f -name "Test*" 查找当前目录所有以Test开头的文件,不包含目录 f文件,d目录,l链接
find /tmp -size 2M 查找在/tmp 目录下等于2M的文件
find /tmp -size +2M 查找在/tmp 目录下大于2M的文件
find /tmp -size -2M 查找在/tmp 目录下小于2M的文件
find ./ -mtime +3 查找当前目录下修改时间超过3天的文件
find ./ -mmin -10 查找当前目录下修改时间小于10分钟的文件
find ./ -size +4k -size -5M 查找当前目录下大于4k,小于5M的文件
find ./ -perm 777 查找当前目录下权限为 777 的文件或目录

管道:|

管道:一个命令的输出可以通过管道做为另一个命令的输入。

管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。即管道左边的输出结果作为管道右侧的参数

cat info.txt | more` `tree | more

建立链接文件:ln

Linux链接文件类似于Windows下的快捷方式。

链接文件分为软链接和硬链接。

  • 软链接:软链接不占用磁盘空间,源文件删除则软链接失效。常用,可以对文件或文件夹创建
ln -s 源文件 链接文件
  • 硬链接:硬链接只能链接普通文件,不能链接目录。
ln 源文件 链接文件

没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,一般用于保护系统重要的文件。所以-s选项是更常见的形式。

注意

如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。