博主名称键盘敲碎了雾霭 个人专栏: 《C语言》《数据结构》 《C》《Matlab》 《Python》 《Linux》⛺️指尖敲代码雾霭皆可破文章目录一、指令1.1 回显字符串1.2 重定向1.3 cat1.4 一切皆文件的思想1.5 文件的类型1.6 mv1.7 tac1.8 以日志为例二、更多指令2.1 date2.2 查找命令对比2.3 grep文章结语一、指令1.1 回显字符串echo把后续内容当作字符串打印出来cat显示指定文件里面的内容1.2 重定向在Linux当中一切皆文件文件包括自己创建的文件、键盘、显示器等程序在启动时默认打开三个文件stdin、stdout、stderr输出重定向比如默认echo默认写入到了显示器文件里而可以写到指定的普通文件如果后面后续文件不存在新建之存在则先清空再写入所以后面想新建普通文件或者清空文件都可以用追加重定向1.3 cat默认从键盘文件读内容然后反向的写到显示器文件里也可以从指定的文件里面读还有-n选项对输出的所有行编号1.4 一切皆文件的思想终端的本质在linux系统里就是一个文件/devV/pts/XX,当你执行命令时默认会打开这个终端文件由于重定向可以向文件写入那也可以向设备文件写入当你登入设备时系统默认会新建一个叫0/1/2的设备文件指令只需要向终端对应的设备文件去写把执行结果打印到显示器上echo hello Linux /dev/pts/2代表向第二台机器进行写入指令也同样可以写到不同的文件里ls /dev/pts/2也可以自己写C/C程序对文件操作 redir.cnano redir.c输入代码gcc redir.c -o redir./redir在另一个机器就会显示1.5 文件的类型在Linux上不看后缀看输入ll的第一个字母普遍文件文本可执行库图片视频系统不关心后缀当成文件名的一部分不代表工具(gcc)不关心字符文件块设备文件*链接文件可以通过ls /usr/bin -l看到管道文件1.6 mv剪切重命名与前面剪切如何区分如果最后一个不是目录或不存在就是命名对文件也是一样如果存在会把一整个递归剪切过去1.7 tac查看日志cat /var/log/syslog,如果想要看第一个操作的人是谁可以反向打印1.8 以日志为例less:与more相比更推荐less可以上下翻可以查找less选项-i忽略搜索时的大小写-N显示每行的行号/字符串向下搜索“字符串”的功能?字符串向上搜索“字符串”的功能n重复前一个搜索与/或有关)N反向重复前一个搜索(与/或有关)q:quithead与tailhead 用来显示档案的开头至标准输出中默认head命令打印其相应文件的开头10行tail规则也是一样。head /var/log/syslog还可以显示几行head -2 /var/log/sysloghead -3 /var/log/syslog同理tail一样如果想从一个文件拿中间文件比如拿500-510行的内容方法一这种需要建立临时文件head -510 log.txt tmp.txttail -10 tmp.txt方法二head -510 log.txt | tail -10,|称为管道可以把它当作文件把前一个命令结果往管道里面写后一个命令往管道里面读如果还想逆序打印head -510 log.txt | tail -10 | tac,如果先打印出来cat log.txt | head -510 | tail -10 | tac,想统计多少行则wc -l二、更多指令2.1 date在显示方面使用者可以设定欲显示的格式格式设定为一个加号后接数个标记其中常用的标记列表如下(有大小写之分)%H:小时%M:分钟%S:秒%X:相当于%H:%M:%S%d:日%m:月份%Y:完整年份%F:相当于%Y-%m-%d时间戳时间-时间戳date%s时间戳-时间date-d1508749502时间戳可以转化为普通时间可以帮用户进行区间查找Unix时间戳英文为UnixepochUnix time POSIXtime或 Unix timestamp是从1970年1月1日UTC/GMT的午夜开始所经过的秒数不考虑闰秒2.2 查找命令对比which:which查找命令指定的目录下(/usr/bin)去查找指定的命令whereis man:在系统指定的目录下去查find:可用于查找文件根据文件名用法find pathname -options用于在文件树中查找文件并作出相应的处理(可能访问磁盘选项-name2.3 grep行文本过滤工具,会把保含关键字的行保留下来进行筛选场景一:日志cat var/log/syslog | grep systemgrep systemd /var/log/syslog | tail -10场景二进程新建文件nano myprogress.c打开文件nano myprogress.c输入以下代码#includestdio.h#includeunistd.hintmain(){while(1){sleep(1);}return0;}编译gcc myprogress.c -o myprogress放后台执行./myprogress grep用来查找进程ps ajx | grep myprogress查找文本选项先用这段指令建立大文件hello 1——hello 2cnt0; while [ $cnt -le 100 ]; do echo hello $cnt; let cnt; done log.txt-n显示在原本文件的行号-v相反的成功匹配的那一行去掉-i:忽略大小写都可以匹配还可以混合使用-vi:忽略大小写匹配到的全都不要文章结语感谢你读到这里我是「键盘敲碎了雾霭」愿这篇文字帮你敲开了技术里的小迷雾 如果内容对你有一点点帮助不妨给个暖心三连吧点赞| ❤️收藏| ⭐关注听说三连的小伙伴代码一次编译过bug绕着走你的支持就是我继续敲碎技术雾霭的最大动力 小彩蛋/^ ^\ / 0 0 \ V\ Y /V / - \ / | V__) ||摸一摸毛茸茸的小狗赶走所有疲惫和bug我们下篇见 ✨
【Linux基础】Linux 必学基础指令:echo/cat/ 重定向 / 查找命令全解析
博主名称键盘敲碎了雾霭 个人专栏: 《C语言》《数据结构》 《C》《Matlab》 《Python》 《Linux》⛺️指尖敲代码雾霭皆可破文章目录一、指令1.1 回显字符串1.2 重定向1.3 cat1.4 一切皆文件的思想1.5 文件的类型1.6 mv1.7 tac1.8 以日志为例二、更多指令2.1 date2.2 查找命令对比2.3 grep文章结语一、指令1.1 回显字符串echo把后续内容当作字符串打印出来cat显示指定文件里面的内容1.2 重定向在Linux当中一切皆文件文件包括自己创建的文件、键盘、显示器等程序在启动时默认打开三个文件stdin、stdout、stderr输出重定向比如默认echo默认写入到了显示器文件里而可以写到指定的普通文件如果后面后续文件不存在新建之存在则先清空再写入所以后面想新建普通文件或者清空文件都可以用追加重定向1.3 cat默认从键盘文件读内容然后反向的写到显示器文件里也可以从指定的文件里面读还有-n选项对输出的所有行编号1.4 一切皆文件的思想终端的本质在linux系统里就是一个文件/devV/pts/XX,当你执行命令时默认会打开这个终端文件由于重定向可以向文件写入那也可以向设备文件写入当你登入设备时系统默认会新建一个叫0/1/2的设备文件指令只需要向终端对应的设备文件去写把执行结果打印到显示器上echo hello Linux /dev/pts/2代表向第二台机器进行写入指令也同样可以写到不同的文件里ls /dev/pts/2也可以自己写C/C程序对文件操作 redir.cnano redir.c输入代码gcc redir.c -o redir./redir在另一个机器就会显示1.5 文件的类型在Linux上不看后缀看输入ll的第一个字母普遍文件文本可执行库图片视频系统不关心后缀当成文件名的一部分不代表工具(gcc)不关心字符文件块设备文件*链接文件可以通过ls /usr/bin -l看到管道文件1.6 mv剪切重命名与前面剪切如何区分如果最后一个不是目录或不存在就是命名对文件也是一样如果存在会把一整个递归剪切过去1.7 tac查看日志cat /var/log/syslog,如果想要看第一个操作的人是谁可以反向打印1.8 以日志为例less:与more相比更推荐less可以上下翻可以查找less选项-i忽略搜索时的大小写-N显示每行的行号/字符串向下搜索“字符串”的功能?字符串向上搜索“字符串”的功能n重复前一个搜索与/或有关)N反向重复前一个搜索(与/或有关)q:quithead与tailhead 用来显示档案的开头至标准输出中默认head命令打印其相应文件的开头10行tail规则也是一样。head /var/log/syslog还可以显示几行head -2 /var/log/sysloghead -3 /var/log/syslog同理tail一样如果想从一个文件拿中间文件比如拿500-510行的内容方法一这种需要建立临时文件head -510 log.txt tmp.txttail -10 tmp.txt方法二head -510 log.txt | tail -10,|称为管道可以把它当作文件把前一个命令结果往管道里面写后一个命令往管道里面读如果还想逆序打印head -510 log.txt | tail -10 | tac,如果先打印出来cat log.txt | head -510 | tail -10 | tac,想统计多少行则wc -l二、更多指令2.1 date在显示方面使用者可以设定欲显示的格式格式设定为一个加号后接数个标记其中常用的标记列表如下(有大小写之分)%H:小时%M:分钟%S:秒%X:相当于%H:%M:%S%d:日%m:月份%Y:完整年份%F:相当于%Y-%m-%d时间戳时间-时间戳date%s时间戳-时间date-d1508749502时间戳可以转化为普通时间可以帮用户进行区间查找Unix时间戳英文为UnixepochUnix time POSIXtime或 Unix timestamp是从1970年1月1日UTC/GMT的午夜开始所经过的秒数不考虑闰秒2.2 查找命令对比which:which查找命令指定的目录下(/usr/bin)去查找指定的命令whereis man:在系统指定的目录下去查find:可用于查找文件根据文件名用法find pathname -options用于在文件树中查找文件并作出相应的处理(可能访问磁盘选项-name2.3 grep行文本过滤工具,会把保含关键字的行保留下来进行筛选场景一:日志cat var/log/syslog | grep systemgrep systemd /var/log/syslog | tail -10场景二进程新建文件nano myprogress.c打开文件nano myprogress.c输入以下代码#includestdio.h#includeunistd.hintmain(){while(1){sleep(1);}return0;}编译gcc myprogress.c -o myprogress放后台执行./myprogress grep用来查找进程ps ajx | grep myprogress查找文本选项先用这段指令建立大文件hello 1——hello 2cnt0; while [ $cnt -le 100 ]; do echo hello $cnt; let cnt; done log.txt-n显示在原本文件的行号-v相反的成功匹配的那一行去掉-i:忽略大小写都可以匹配还可以混合使用-vi:忽略大小写匹配到的全都不要文章结语感谢你读到这里我是「键盘敲碎了雾霭」愿这篇文字帮你敲开了技术里的小迷雾 如果内容对你有一点点帮助不妨给个暖心三连吧点赞| ❤️收藏| ⭐关注听说三连的小伙伴代码一次编译过bug绕着走你的支持就是我继续敲碎技术雾霭的最大动力 小彩蛋/^ ^\ / 0 0 \ V\ Y /V / - \ / | V__) ||摸一摸毛茸茸的小狗赶走所有疲惫和bug我们下篇见 ✨