我使用过的Linux命令之:(冒号) - 啥也不做(除了……)

本文深入探讨了Linux环境下冒号的多种用途,包括路径分隔、注释、参数扩展、文件清空及作为占位符的特殊角色,并通过示例展示了其在脚本编写中的实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我使用过的Linux命令之:(冒号) - 啥也不做(除了……)

本文链接:http://codingstandards.iteye.com/blog/1160298   (转载请注明出处)

 

用途说明

我们知道,在Linux系统中,冒号(:)常用来做路径的分隔符(PATH),数据字段的分隔符(/etc/passwd)等。其实,冒号(:)在Bash中也是一个内建命令,它啥也不做,是个空命令、只起到占一个位置的作用,但有时候确实需要它。当然,它也有它的用途的,否则没必要存在。在·Linux的帮助页中说它除了参数扩展和重定向之外不产生任何作用。

 

man : 写道
: [arguments]
    No effect; the command does nothing beyond expanding arguments and performing any specified redirections. A zero exit code is returned.
 

常用参数

格式::

·啥也不做,只起到占位符的作用。比如在编写脚本的过程中,某些语法结构需要多个部分组成,但开始阶段并没有想好或完成相应的代码,这时就可以用:来做占位符,否则执行时就会报错。

 

if [ "today" == "2011-08-29" ]; then
    :
else
    :
fi

 

格式:: your comment here

格式:# your comment here

写代码注释(单行注释)。

 

格式:: 'comment line1

comment line2

more comments'

写多行注释。

 

格式:: >file

格式:>file

清空文件file的内容。

 

格式:: ${VAR:=DEFAULT}

当变量VAR没有声明或者为NULL时,将VAR设置为默认值DEFAULT。如果不在前面加上:命令,那么就会把${VAR:=DEFAULT}本身当做一个命令来执行,报错是肯定的。

 

使用示例

示例一 参数扩展

[root@node56 ~]# : abc=1234
[root@node56 ~]# echo $abc

[root@node56 ~]# : ${abc:=1234}
[root@node56 ~]# echo $abc   
1234

[root@node56 ~]# ${abc:=1234}
-bash: 1234: command not found
[root@node56 ~]#

 

示例二 清空文件

[root@node56 ~]# cat <<<"Hello" >123.txt
[root@node56 ~]# cat 123.txt
Hello
[root@node56 ~]# : >123.txt
[root@node56 ~]# cat 123.txt
[root@node56 ~]#

 

示例三 脚本注释、占位符

脚本test_colon.sh

#!/bin/sh

: this is single line comment

: 'this is a multiline comment,
second line
end of comments'

if [ "1" == "1" ]; then
        echo "yes"
else
        :
fi

 

[root@node56 ~]# ./test_colon.sh
yes
[root@node56 ~]#

 

问题思考

相关资料

【1】Kpld’s Blog  Kpld’s Blog
http://kpld8888.wordpress.com/
【2】nighteblis.cublog.cn  bash中的冒号, 以及bash bomb解析还有各种各样的炸*弹
http://www.cublog.cn/u1/40976/showart_2528550.html
【3】清水如画的博客  2011-03-20 bash之特殊符号冒号、大括号扩展应用、代码块
http://blog.sina.com.cn/s/blog_4002e0d20100qh4w.html

 

 

返回 我使用过的Linux命令系列总目录

 

<think>好的,我现在需要帮助用户解决一系列关于Linux命令行和Vim操作的问题。首先,我需要仔细阅读用户的问题,确保理解每个步骤的要求。 首先,用户要求在home目录下创建一个名为“vitest_name”的目录,其中“name”替换为学生姓名的拼音。例如,如果学生叫张三,目录名就是vitest_zhangsan。这个步骤应该使用mkdir命令,需要注意目录的位置是否正确,即是否在用户的家目录下。可能需要确认用户是否有权限在该目录下创建文件夹,但通常家目录没有问题。 接下来是复制/etc/syslog.conf文件到新建的vitest_name目录中。这里需要使用cp命令,源文件是/etc/syslog.conf,目标目录是~/vitest_name。需要注意的是,如果目标目录存在,或者用户拼写错误,可能会导致命令失败。另外,权限问题也可能存在,比如用户是否有权限读取/etc/syslog.conf文件,通常可能需要使用sudo,但用户可能没有提到,所以这里假设用户有权限,或者问题中没有提到需要sudo,所以按普通用户处理。 然后是关于使用Vim编辑syslog.conf文件的多个步骤。首先需要打开文件,这应该是通过vim ~/vitest_name/syslog.conf命令完成的。接下来需要执行多个Vim操作: 1. 找到设置mail的行。通常在syslog.conf中,mail相关的配置行可能以“mail.”开头,或者包含“mail”关键字。用户需要指出该行,可能使用搜索命令如/mail来查找。 2. 复制该行。在Vim中,可以使用yy命令复制当前行。 3. 粘贴到最后一行。在Vim中,G跳到末尾,然后p粘贴。 4. 撤销粘贴。使用u命令撤销。 5. 删除指定行“#Everybody gets…”,需要先找到该行,可能使用搜索或者手动移动光标,然后dd删除。 6. 保存但退出,使用:w命令。 7. 在首行插入学号和姓名等信息。这涉及到跳转到首行(gg),然后进入插入模式(i或者A),输入信息后退出插入模式。 8. 向下查找“authpriv”,使用/authpriv回车。 9. 向上查找“log”,使用?log回车。 10. 强制退出保存,使用:q!命令。 现在需要考虑每个步骤是否正确,有没有可能出错的地方。比如,在查找字符串时,是否区分大小写,Vim默认是区分大小写的,如果用户需要区分,可能需要使用\c修饰符,但问题中没有说明,所以按默认处理。另外,在粘贴到最后一行时,是否正确跳转到最后一行,可能需要确认。撤销操作是否正确,保存操作是否正确执行,以及在输入学号信息时是否进入插入模式。 同时,需要注意路径是否正确,比如用户是否真的在home目录下创建了vitest_name目录,复制文件时是否正确指定了路径。另外,Vim中的命令模式与插入模式的切换,用户是否容易混淆,比如在输入学号时需要先进入插入模式。 可能还需要提醒用户,如果文件存在或者权限足时的处理方法,但根据问题描述,用户可能已经具备这些条件,所以可能需要额外说明。 总结来说,步骤需要分步解释,确保每个命令的正确性,并考虑到用户可能的操作错误,给出清晰的指令。可能还需要对Vim的一些基本命令进行简要说明,帮助用户理解每个操作的具体执行方式。</think>以下是分步骤操作指南: 1. 创建目录 ```bash mkdir ~/vitest_zhangsan # 请将"zhangsan"替换为你的姓名拼音 ``` 2. 复制配置文件 ```bash cp /etc/syslog.conf ~/vitest_zhangsan/ ``` 3. vi/vim操作流程(按顺序执行): ```bash vim ~/vitest_zhangsan/syslog.conf ``` (1)查找mail行 ```vim /mail " 输入斜杠后输入mail回车 ``` (2)复制当前行 ```vim yy " 在普通模式按两次y键 ``` (3)粘贴到文件末尾 ```vim G " 跳转到最后一行 p " 粘贴复制内容 ``` (4)撤销操作 ```vim u " 普通模式按u键 ``` (5)删除指定行 ```vim /#Everybody gets " 搜索目标行 dd " 删除当前行 ``` (6)保存退出 ```vim :w " 冒号+w回车 ``` (7)添加个人信息 ```vim gg " 跳转到首行 i " 进入插入模式 输入:202311001 张三 " 输入你的真实学号姓名 ESC " 返回普通模式 ``` (8)向下查找 ```vim /authpriv " 输入斜杠后输入authpriv回车 ``` (9)向上查找 ```vim ?log " 输入问号后输入log回车 ``` (10)强制退出 ```vim :q! " 冒号+q+!回车 ``` 注意事项: 1. 所有vim命令均在普通模式(按ESC键可确保进入普通模式)下执行 2. 实际配置文件内容可能因系统版本同有所差异,操作前建议备份文件 3. 学号姓名信息需要根据实际情况填写 4. 最终保存退出会丢失第(6)步之后的修改
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值