《Linux Shell脚本攻略》 笔记 第二章:常用命令

简介: 《Linux Shell脚本攻略》 笔记第二章:常用命令

1、cat

    cat -s  //多个空白行压缩成一个

    cat *.txt | tr -s '\n'    //移除空白行

    cat -n  //加行号

2、find

沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。

eg:

find ./ ! -name "*.txt" -print

[root@localhost program_test]# find ./  -type f -name "*.swp" -delete


3、xargs 将标准输入数据转换成命令行参数。

[root@localhost program_test]# cat out.txt | xargs  //将单行转化为多行


[root@localhost program_test]# cat out.txt | xargs -n 3  //将单行转化为多行,每行的个数为3.


//统计.c和.cpp的文件的代码行数.  xargs -0 将'\0'作为定界符.

[root@localhost program_test]# find . -type f -name "*.c*" -print0 | xargs -0 wc -l

 10 ./main/cos_value.c

 10 ./main/sin_value.c

  5 ./main/haha.c

 15 ./main/main.c

  8 ./hello.cpp

  8 ./sin.c

 32 ./review2.cpp

 24 ./review5.cpp

  7 ./hello.c

119 total


4.tr命令(translate的简写) 可对来自标准输入的字符进行替换、删除及压缩。

即:将一组字符变为另一组字符。

1)替换

echo “HELLO” | tr [A-Z] [a-z]

2)删除

[root@localhost program_test]# echo "hello 123 world 456" | tr -d '0-9'

hello  world

3)压缩字符

[root@localhost program_test]# echo "GNU is     not UNIX" | tr -s ' '

GNU is not UNIX

//综合举例

[root@localhost program_test]# cat sum.txt

1

2

3

4

5

[root@localhost program_test]# cat sum.txt | echo $[ $(tr '\n' '+') 0 ]

15


5、 md5校验

[root@localhost program_test]#  md5sum out.txt > out.txt.md5

[root@localhost program_test]# cat out.txt.md5

fd46d559bf0c90170fef3da3c3de4c67  out.txt


//eg:

[root@localhost program_test]# find ./ -type f -name "*.txt" -print0 | xargs -0 md5sum >> curr_dir.md5

46e17910faf509df48dbfba9729ef018  ./banana.txt

c1dbbf63209a5580c052dc557510e7fb  ./11.txt

a80ddf02fa3a86c14066204e4bf2dbb9  ./multiline.txt

[root@localhost program_test]# md5sum -c curr_dir.md5

./banana.txt: OK

./11.txt: OK

./multiline.txt: OK


6、sort排序

//sort 按第2列排序

[root@localhost program_test]# sort -k 2 sort.txt

4 bad 5000

3  linux 50

1   mac 2000

2  winxp 100

//sort 逆序排序

[root@localhost program_test]# sort -r sort.txt

4 bad 5000

3  linux 50

2  winxp 100

1   mac 2000


//综合举例:统计字符串中每个字符出现的次数

[root@localhost program_test]# ./total_cnts.sh

AHEBHAAA

4A1B1E2H

[root@localhost program_test]# cat total_cnts.sh

INPUT="AHEBHAAA"

output=$(echo $INPUT | sed 's/[^.]/&\n/g' | sed '/^$/d' | sort | uniq -c | tr -d ' \n')

echo $INPUT

echo $output


[释义]: sed 's/[^.]/&\n/g'     //任意一个字符后面都加上\n

拆分如下:

[root@localhost program_test]# input="ahebhaaa"

[root@localhost program_test]# echo $input | sed 's/[^.]/&\n/g'

a

h

e

b

h

a

a

a


sed '/^$/d'   //删除空行

uniq -c          //统计各行文本出现的次数.

tr -d '\n  '      //删除换行符以及空格字符


7、临时文件命名

[root@localhost program_test]# temp_file="/tmp/var.$$"

[root@localhost program_test]# echo $temp_file

/tmp/ var.16565


相关文章
|
7月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
814 1
二、Linux文本处理与文件操作核心命令
|
7月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
472 137
|
7月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1281 59
|
6月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
1160 2
|
7月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
631 9
|
7月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
680 0
Linux内存问题排查命令详解
|
7月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
609 16
|
7月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
657 2
|
7月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
8月前
|
Linux 网络安全 开发工具
技术栈:这50条最常用的 Linux 命令你一定要会!
建议多在终端中实践,遇到不懂的命令就用 man 或 --help 了解详情!
1428 0
下一篇
开通oss服务