热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux中学会灵活使用shell下的特殊字符

文章标题:Linux中学会灵活使用shell下的特殊字符。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

    众所周知,shell是Linux操作系统下的主要管理工具。系统管理员除了要掌握shell下的命令外,还需要掌握一些特殊的字符。这些特殊字符可以帮助系统管理员将多个命令组合成一个命令,或者说可以让系统管理员更便捷的操作。笔者就给大家介绍一下这些特殊字符以及相关的应用。

  一、快速在目录之间切换。

  在Linux操作系统的文本模式下,在目录之间进行切换都需要通过命令来完成。显然这没有图形化界面下使用鼠标点点那么方便。但是,shell中仍然提供了一些特殊的字符。在这些字符的帮助下,系统管理员可以轻松的在不同的目录之间进行切换。

  如现在系统管理员想从任何目录中回到用户的主目录下,除了按原路返回外,还有其他更快的方法吗?其实,要回到用户的主目录下,有一个很便捷的方式,就是通过一个特殊的字符~来完成。通常情况下,当管理员创建某个用户后,在系统的/home目录中会以这个用户的名字建立一个文件夹。这个文件夹所在的目录就是用户的主目录。当用户不知道自己所处那个目录,而需要迅速回到自己的主目录时,可以使用这个命令来实现:cd ~。也就是说,特殊符号~在操作系统中代表的是用户的主目录。由于不同用户的主目录不同,利用这个主目录可以快速的回到自己的主目录下面。

  在目录切换过程中,还有两个比较重要的特殊字符,分别为.与..符号。其中“.”表示当前目录。这个符号很重要,在很多地方都需要用到。如在定义PATH环境变量的时候,在路经的最后需要加上这个.号,这表示当前目录。另外,如果系统管理员想运行当前目录下的一个脚本文件,如setup.sh。则可以不采用绝对路径,而直接使用./setup.sh。其中这个.符号就代表当前目录。在cd命令中也可以使用.号,如cd ./setup,就表示进入到当前目录的下一个子目录setpup下面。所以说这个特殊符号..(英文状态下的点号)在切换目录的时候非常有用。另外一个特殊的字符就是“..”(英文状态下的双点号)在系统中表示的是上一级目录。如故管理员利用cd命令定义到一个目录后,又想回到上一级目录中,则可以使用cd ..命令来实现。注意cd命令与点号之间要有空格。

  系统管理员若能够熟练应用这些特殊字符,特别是表示用户主目录的~符号,能够帮助管理员迅速切换到自己想要的目录下。如在Linux客户端中,往往用户邮箱的文件夹是保存在用户主目录下面的。如用户可能采用的是thunderbird的邮件客户端。采用这个客户端有一个弊端,即当Linux系统非法关机后,开会在邮件的目录中产生一个lock的文件。客户端就不能够打开。只是系统管理员需要切换到用户主目录下的邮件文件夹中,删除这lock文件。此时比较简单的方法,就是直接使用~符号定位到用户的主目录下,然后再进入到邮件目录中,找到这个文件并删除。这笔一级一级的进入要快的多。

  二、将执行结果保存到文件中。

  用户在日常的操作中,可能需要将某些命令的执行结果保存到文件中。如需要将一些程序的运行结果保存到日至文件中等等。笔者现在以一个简单的例子为例。Ps命令是用来显示当前系统运行程序的命令。如在命令行中,输入ps命令可以显示当前系统运行的所有程序(注意程序跟进程是两个不同的经验)。其中会显示应用程序的进程号、终端信息、运行时间以及程序名字等等。现在管理员如果要将这些信息保存到一个特定的文件中,该如何实现呢?

  此时系统管理员可以在命令后面采用一个特殊的字符>,如ps > ps.txt的方式,将命令ps的执行结果保存到文本文件ps.txt 中。如果目标文件不存在的话,则系统会创建文件并保存信息。如果目标文件存在的话,则系统会覆盖原先的文件。所以,在使用>这个特殊符号来创建文件的时候,需要特别的注意。因为目标文件存在,则系统不会给用户任何的提示信息,就把目标文件删除并新建同名的文件。为此一不小心就可能会造成文件的丢失。不过其还有一个双胞胎的兄弟,即>>符号。这个特殊符号跟>符号类似,也是将执行结果保存到一个文件中。不过这个符号与>符号有一个很大的不同。如果目标文件已经存在的话,两个符号的执行效果是不同的。如果采用的是>符号的话,则系统会自动覆盖它。而如果采用的是>>符号的话,在系统不会覆盖已经存在的目标文件,而只是在这个目标文件中追加相关地记录。如果目标文件不存在的话,则仍然会自动创建目标文件。

  由于>>符号不会自动覆盖目标文件,只是在目标文件中追加记录。为此这个符号还有其他一些特殊的用途,如可以用来合并不同的文件。如现在有连个文件listjpg.txt与listgif.txt。在这个两个文件中主要保存着jpg与gif的图片名字。现在用户想将这个两个文件合并,或者说想将listjpg.txt中的记录追加到listgif.txt文件中。此时该如何处理呢?利用命令cat listjpg.txt >> listgif.txt就可以实现这个功能了。这个命令的意思是,先利用cat命令将文件listjpg.txt的内容读取出来然后追加到listgif.txt文件中。执行了这个命令后,就会将两个文件合并。不过原先的文件仍然存在。如果不需要的话,就需要手工的删除它。

  由于这两个特殊符号功能类似,但是实现细节上有所差异。为此系统管理员需要掌握其中的差异,并在实际工作中选择合适的处理方式。如在一些安装程序中,需要将安装过程中的信息保存在日志文件中。但是在下一次重新安装的过程中,系统管理员可能喜欢先将原先的日志删除。因为这会增加阅读量。此时就是采用>这个特殊符号来实现比较合理,因为其会自动删除日志文件。

[1] [2] 下一页


推荐阅读
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文详细介绍了如何在BackTrack 5中配置和启动SSH服务,确保其正常运行,并通过Windows系统成功连接。涵盖了必要的密钥生成步骤及常见问题解决方法。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 掌握Linux:基础命令入门
    本章节深入浅出地介绍了Linux系统中的基本命令操作,帮助读者快速上手并理解其核心功能。 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
author-avatar
陈hancox_894
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有