Linux命令及脚本中使用的小技巧

本篇文章重点为大家讲解一下Linux命令及脚本中使用的小技巧,有需要的小伙伴可以参考一下。

实例1

创建一个别名,删除原始文件,同时在用户的home目录下backup中保存副本。

#/bin/bash
cp $@ ~/backup && rm -rf $@

实例2

Fork炸弹

:(){:|:&};:

实例3

生成一个11位的随机密码,包括大小写字母、数字及特殊(/与+)符号。

openssl rand -base64 200|cut -b 1-11|head -n 1

实例4

不切换当前工作目录,使用cd命令并显示切换后目标目录的内容。

(cd /bin;ls)

本例子中,使用()定义了一个子shell,对当前的shell并无影响,所有改变仅限于子shell中,上述操作在某些场景中特别有用。

实例5

为防止当前工作终端退出造成正在执行的任务被中断,我们可以在屏幕上随机打印一些数字字母。下面命令用来装X有时候也挺有用。

while true ; do display=`echo $RANDMOM|md5sum` ; echo $display $display ; done

实例6

使用一条命令随机创建一个指定格式的文件或目录。

mktemp gyslXXX
mktemp -d gyslXXX

此命令一般不常见,gysl为指定的前缀,之后的大写X为占位符,这些大写的X不能位于名称最前面,并且至少保证存在3个X占位符,这些大写X在创建新文件和新目录是会被随机字母所替代。如果直接执行mktemp命令,那么会在本机的/tmp目录下创建临时文件或目录。执行该命令创建的文件默认权限为:600,目录权限为700,并不受umask所影响,这一点需要特别注意。

实例7

删除文本中的空白行。

sed -i '/^$/d' a.txt

实现这个功能的命令很多,可能这是最简单一个命令了。

实例8

通过正则表达式的匹配,将匹配内容使用&替代,按照指定格式输出。

echo "My name is Ivan."|sed 's/\w\+/[&]/g'
echo "My name is Ivan. My phone number is 010-87654321"|sed 's/[a-zA-Z0-9]\+/{&}'

上面例子分别匹配出了目标字符串中的单词(包括数字和字母),并把匹配内容分别使用[]和{}包起来。

实例9

通过sed命令直接编辑文本时,在编辑之前先将源文件进行备份。

sed -i.1010.bak 's/ChatDevOps/gysl/' test.txt

执行完该命令后,源文件里面的每一行第一个匹配的ChatDevOps替换为gysl,并将源文件备份为test.txt.1010.bak。

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/8086.html

(0)
晴川运维晴川运维
上一篇 2025年6月11日
下一篇 2025年6月11日

相关推荐

  • 五大最流行的配置管理工具

    了解一下配置管理工具,以找出哪个最适合你的 DevOps 组织。 DevOps 正因为有提高产品质量、缩短产品开发时间等优势,目前备受业界关注,同时也在长足发展当中。 DevOps…

    Linux系统 2025年10月27日
  • 在磁盘中查看MySQL 表大小

    我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应该在 INFORMATION_SCHEMA.TABLES 中提供这些信息吗?没那么简单! 这个看似简单的问题实际上…

    Linux系统 2025年9月23日
  • Linux下复用外部shell脚本

    Linux开发中,经常会编写shell脚本来执行一些任务,通常是一个脚本只做一件事,随着任务的增加,脚本会越来越多,可复用的地方也会逐渐增加,这时就需要提取出脚本中的公共的功能放到…

    Linux系统 2025年10月22日
  • Linux下rsync的安装配置

    rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。目前,已支持跨平台,可以…

    Linux系统 2025年10月4日
  • Linux内核模块参数具体方法

    内核模块是Linux操作系统中一个比较独特的机制,采用模块化技术可以使得系统内核保持最小化,同时确保了内核的可扩展性和可维护性,模块化设计允许我们在需要时才将模块加载至内核,实现动…

    Linux系统 2025年10月5日
  • Linux绝对路径和相对路径详解

    在 linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置,例如,在《Linux文件系统的层次结构》中提到的 /home/cat 就表示的是 cat 文件所存放的位置。…

    Linux系统 2025年7月11日
  • C语言中const修饰的指针

    当用const进行修饰时,根据const位置的不同有三种不同效果。 判断的标准是:const修饰谁,谁的内容就是不可变的。 const修饰指针变量时候有三种情况: 1 const …

    Linux系统 2025年6月8日
  • Ansible:像系统管理员一样思考的自动化框架

    这些年来,我已经写了许多关于 DevOps 工具的文章,也培训了这方面的人员。尽管这些工具很棒,但很明显,大多数都是按照开发人员的思路设计出来的。这也没有什么问题,因为以编程的方式…

    Linux系统 2025年9月21日
  • 详解Shell until命令的用法

    until 命令与 while 命令的工作方式正好相反。until 命令指定了一个通常返回非零退出状态码的测试命令。当测试命令的退出状态码不为 0 时,Bash Shell 执行循…

    Linux系统 2025年9月25日
  • Linux中通过 kill 和 killall管理进程

    在 Linux 中,每个程序和守护程序daemon都是一个“进程process”。 大多数进程代表一个正在运行的程序。而另外一些程序可以派生出其他进程,比如说它会侦听某些事件的发生…

    Linux系统 2025年6月8日

发表回复

登录后才能评论