众所周知,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文件中。执行了这个命令后,就会将两个文件合并。不过原先的文件仍然存在。如果不需要的话,就需要手工的删除它。

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

三、将程序放在后台运行。

有些时候,系统管理员可能希望某些程序在系统后台运行。如果将Linux操作系统当作服务器来管理的话,讲一些长时间运行的程序放在后台运行是一种很常见的手段。如现在管理员利用while循环来实现一个功能。每5分钟来判断一下某个应用系统是否有产生错误的日志文件。如果有的话要马山将这个错误日志文件发送给系统管理员。写完这个脚本程序之后,最好的方式就是将这个脚本程序放置在后台运行。因为这个程序需要长时间运行,如果在前台运行的话,可能会对其他程序产生干扰。而且也容易被误关闭。所以,放在后台执行反而更加合理。那么在Linux操作系统中是如何将脚本程序防止在后台运行的呢?此时也需要用到另外一个特殊字符&。如这个脚本程序的名字为errorlog.sh。则管理员只需要运行命令errorlog.sh

&,系统就会将这个程序放置在后台运行。

四、解释特殊字符的转义字符。

在微软操作系统中,某些字符是不能够用来做文件名的。如*这个米字符号,其是用来做通配符用的,不能够在文件名或者目录名中出现。但是在Linux操作系统中没有这方面的限制。如test*.txt在Linux操作系统中是一个合法的名字。难道*符号在Linux操作系统中不做通配符使用吗?其实,在Linux操作系统中这个*符号也有特殊的含义,其也是代码通配符。如使用ls

text*命令,可以列出所有已text开头的文件或者目录的名字。那么为什么在Linux操作系统中还可以利用这个*米字符号来作为文件名呢?这都是转义字符在其作用。

如现在用户想在文件名字中加入一个*米字符,则可以使用命令vi

text*.txt来实现。在这个通配符*米字符号前面加入一个转移字符,就告诉系统要将这个*字符当作普通字符来对待。其实这个转义字符的重要作用还是体现在文件的删除上面。如现在某个目录下有如下几个文件,chap*.txt,chap1.txt,chap2.txt。其中chap*表示一本书的目录,而其他的表示这个本书的各章内容。如果现在系统管理员想把目录文件删除了,采用了rm

chap*.txt命令,还有什么后果呢?此时系统会把所有的以chap开头的文件删除。也就是说,不光光是目录文件,章节的内容文件也被删除了。因为此时操作系统是将这个*符号当作通配符来对待。如果要删除目录文件在,则正确的命令应该这么写:rm

chap*.txt。这个命令就是告诉系统这个*符号为普通的符号,而不是通配符。此时系统就会将这个目录文件删除了,而不会影响到其他文件。

虽然说在Linux操作系统中通过转义字符的方法允许用户采用一些特殊的字符来为文件命名。但是出于以后管理的方便,笔者还是建议大家不要采用特殊符号来命名。否则一不小心就会发生不可挽回的损失。如上面的案例中,将*通配符当作文件名字的话,那么在删除时就很容易将相关的文件全部删除。

远程连接Linux密码特殊字符,[转载]linux shell 命令_特殊字符相关推荐

  1. 远程连接基于VMware虚拟机的linux操作系统

    远程连接基于VMware虚拟机的linux操作系统 一.实验目的要求 二.实验环境 三.实验内容 任务一 CentOS配置IP地址与子网掩码 在物理机中配置"VMware Virtual E ...

  2. Linux 基础操作、常用shell命令、vi常用命令、man帮助手册

    Linux 基础操作.常用shell命令.vi常用命令.man帮助手册 一.简述 记录简单的Linux 基础操作.常用shell命令.vi编辑器常用命令.man帮助手册的使用. 二.Linux 基础操 ...

  3. 阿里云服务器远程连接账号密码获取方法

    阿里云服务器远程连接登录用户名和密码在哪查看?阿里云服务器默认密码是什么?云服务器系统不同默认用户名不同,阿里云服务器没有默认密码,如果没有设置密码需要先重置实例密码再远程连接,阿小云来详细说下阿里云 ...

  4. Linux学习系列五:Shell命令脚本的基本语法

    这个系列的Linux教程主要参考刘遄老师的<Linux就该这么学>.用的系统是RHEL8,如果遇见一些命令出现问题,请首先检查自己的系统是否一致,如果不一致,可网上查一下系统间某些命令之间 ...

  5. linux中dpkg找不到命令_工作中常用的Linux命令介绍与实践

    点击上方可关注! 前言 做后端开发的同学,一般都会接触到服务器,而我们现在的系统用的比较多的服务器系统就是linux了,平时多多少少也会接触到一些linux下的shell命令.我们来介绍下linux一 ...

  6. 在Jenkins远程链接Linux系统,然后执行shell命令-亲测可用【转】

    版权声明:本文为博主原创文章,未经博主允许不得转载.部分为转载其他人的,如要使用,也请提前通知一声 https://blog.csdn.net/a136332462/article/details/7 ...

  7. linux系统怎么重启网络连接wifi密码,怎么查看linux连接wifi的密码?_网站服务器运行维护,linux,wifi...

    如何使用外部硬盘安装linux系统?_网站服务器运行维护 使用外部硬盘安装linux系统的方法:首先将格式化的U盘和固态硬盘连接到电脑上并按F9:然后从菜单选择U盘启动并按enter:接着按linux ...

  8. windows远程连接ubuntu-(密码登录、密钥登录、免密登录)

    入坑前的必备小知识: 什么是公钥登录? 所谓"公钥登录",就是用户将自己的公钥储存在远程主机上.登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来.远 ...

  9. 【Linux学习笔记】 -- 基本Shell命令

    常见的目录名均基于文件系统层级标准(filesystem hierarchy standard,FHS) Linux的四个部分: 1 Linux内核:控制所有硬软件,必要时分配硬件根据需要执行软件 系 ...

  10. 小技巧:远程连接共享文件密码错误

    window+r输入IP地址远程连接别人共享的文件 明明对方没有设置密码,却提示输入密码 用户名输入guest,密码为空就可以连接 转载于:https://www.cnblogs.com/lvhanz ...

最新文章

  1. FTP 服务搭建及常用的命令脚本及传输协议基础普及
  2. 为什么有些画面让你终生难忘?GAN来告诉你原因
  3. CodeForces 906D (欧拉降幂)
  4. android开发之EditText金额输入只能两位小数点
  5. Cover the Tree(2020多校第二场C)
  6. 通过ID查询一个用户的两种开发方法
  7. ElasticSearch Java SpringBoot根据时间范围分组求和
  8. linux禁止防火墙命令,LINUX关闭打开防火墙命令
  9. 诗与远方:无题(五)
  10. VNPY价差交易模块
  11. python自我复制的程序_Python自我
  12. 烹佛烹祖大炉鞴,锻凡锻圣恶钳锤
  13. linux 移动压缩包 命令,文件的复制、移动、压缩等对SELinux属性关系详解
  14. 智能机器人及其应用ppt课件_3D机器视觉在智能机器人拆垛中的应用
  15. 解决酷狗音乐缓存文件kgtemp文件无法播放的问题
  16. java加载不了驱动程序,请教java连mysql数据库时一直加载不起驱动
  17. 重发布实验、路由策略实验
  18. 求一阶微分方程通解和特解
  19. 奠定技术基石 英特尔创新引擎闪耀CES2019
  20. 互联网思维之流量思维

热门文章

  1. js 正则清除html格式
  2. 总编下午茶:技术老男人的创业经
  3. Html表格lt;tablegt;还是须要加入一些标签进行优化,能够加入标题lt;captiongt;和摘要lt;table summarygt;...
  4. 在Spring MVC中使用FileUpload功能
  5. Java语法总结 - 线程
  6. maven helper解决依赖冲突问题
  7. 浏览器静态资源的缓存机制(http强缓存 协商缓存)
  8. php系列框架的加速器Opcache
  9. linux 系统运维小工具
  10. Python模块--Pexpect