热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mvn打包找不懂符号_看完后Linux这些特殊符号你还不懂的话我就哭了

不知道大家接触Linux系统有多久了,可曾了解过Linux中有哪些特殊的字符呢?其实啊,那些特殊字符都大有用处呢,今天的文章

不知道大家接触 Linux 系统有多久了,可曾了解过 Linux 中有哪些特殊的字符呢?其实啊,那些特殊字符都大有用处呢,今天的文章就给大家简单地科普一下 Linux 中你需要了解的 15 个特殊字符,想学或刚学 Linux 的小伙伴赶紧上车了为!

~ 主目录

这个波浪号 ~ 指的是主目录,也就是我们用户的个人目录,无论你身在何方,输入 cd ~ 它将带你回家!

cd ~

a1ada4b35daac7e7f926d54345d78fb2.png

更高端的玩法就是在它后面加上具体的路径,直接定位到家目录中的指定位置,是不是很方便呢?

cd ~/work/archive

35d353536ad143a9ed6ccab045881c80.png

. 当前目录

英文句号 . 代表当前目录,我们来看一下当前目录下的全部文件:

ls -al

1f052a8f56ddc5239c799a90baae15e7.png

红圈里的 . 就是指当前目录,不过这没什么意义,我们更多的是在命令中使用它,如下:

./script.sh

这样做是在告诉 bash 只要在当前目录中查找并执行 script.sh 文件就好了,不用在路径中找了。

6c505cefbc146c84a2ba7621656f7f5e.png

.. 父目录

两个英文句号 .. 代表父目录,也就是当前目录的上一级目录。假设我们要回到上一级目录:

cd ..

280621af2406fa087b80f61e3f79c0f9.png

跟前面一样,你可以在它后面加具体的目录,这里的意思就是定位到与当前目录同级的其它目录:

cd ../projects/

e686c97fdc49caa4ca870def6fdd007b.png

/ 路径目录分隔符

斜杠 "/" 指的是路径目录分隔符,这里没什么好说的。

ls ~/work/tests/

f3d684b9550324e992c7bbc900fe1d01.png

但是,有意思的是,如果 / 路径目录分隔符前面没有东西的话,是不是就是意味着这是最上级的目录了?由于 Linux 系统的目录树均始于 / ,所以仅仅一个 / 代表了我们常说的系统根目录

cd /

197e1e36d2bad14554fc388aeac419cf.png

# 注释

# 开头,代表这句话是注释

# This will be ignored by the Bash shell

35e73e1d8ab47b666b79e03acb12686a.png

虽然上面那段话就被忽略了,但它还是会添加到您的命令历史记录中。

更厉害的做法如下:

先定义一个变量并给它赋值字符串 “amazing alvin”

this_string="amazing alvin"

0f2f7b46f5360001e2f08c1961a95f37.png

${this_string#amazing} 返回的是被注释掉 amazing 的 this_string 字符串变量,可以 echo 输出看下结果:

echo awsome ${this_string#amazing}

e1e4e7a49f627052b68a04f353738865.png

amazing 只是被注释掉而已,它并未被删除,去掉注释它就回来了:

echo $this_string

221f57272f07347db8e5930d896ab576.png

? 单字符通配符

问号 "?",指的是单字符通配符。Bash Shell 支持三种通配符。

它代表文件名中任意一个字符的匹配,例如:

ls badge?.txt

45380f35d59f4748f05615781b02e1f8.png

注意,它与 badge.txt 是不匹配滴,因为 badge 后面没有字符。

正因为 "?" 匹配单个字符,所以这里有个看似很厉害的玩法,就是你想要的找的文件的文件名有多少个字符,你就输入多少个 "?"

ls ?????.txt

1c4e286b587edf71955adf8fa159d28f.png

看着挺厉害,不过我怎么感觉这好别扭?????

* 字符序列通配符

星号 * 代表的是任意字符序列,匹配任意字符,包括空字符,以刚才的 badge 为例:

ls badge*

da3f3bf64bf101b8b6c57817441e0a6c.png

可以看到,badge.txt 都匹配到了。

匹配任意类型的文件:

ls source.*

[] 字符集通配符

方括号 "[]" 指的是字符集通配符,文件名中的相关字符必须与字符集中的至少一个字符匹配。通过例子来体会一下它的作用吧:

ls badge_0[246].txt

deae04a9b844d22d559bdd0aa7264a13.png

ls badge_[01][789].txt

71a609dc62424fb59ec27a569846d06a.png

ls badge_[23][1-5].txt

ed7a5a17b2cb633393373b36e2f313cb.png

; 命令分隔符

这跟我们日常使用的 ";" 差不多,就不细说了,主要是用来分隔命令的。

ls > count.txt; wc -l count.txt; rm count.txt

a10517b4a85f91c043d42dfa9080b209.png

这里注意,用 ; 分隔命令时,即使第一个命令失败,第二个命令也会运行,即使第二个命令失败,第三个命令也会运行,依此类推。

如果要在一个命令失败的情况下就停止,请使用 "&&" ,如下:

cd ./doesntexist && cp ~/Documents/reports/* .

631b00e006def62707b686d5f8d579ce.png

& 后台处理

有时候在终端正在运行一个命令时,例如 vim,你想运行另外一个命令怎么办?这里有个小技巧就是在命令后面加一个 "&" 符号,将这个程序放在后台启动,这样你就能在终端实现后台多任务的效果了。

vim command_address.page &

16b008d3c2fccb372b079fb18c0284ac.png

上面显示的是这个后台进程的 ID 。

<输入重定向

许多 Linux 命令接受一个文件作为参数&#xff0c;并从该文件中获取数据。这些命令中的大多数还可以从流中获取输入。要创建一个流&#xff0c;可以使用左尖括号 " &#xff0c;如下将文件重定向到命令中:

sort

3488c0e76174ea15ef959c8fd33778df.png

上面将 words.txt 文件的内容并进行了排序。

注意&#xff1a;它是不显示数据来源文件的文件名的。

wc words.txt

wc

285ad919f9648cac74637db9fececc60.png

> 输出重定向

输入和输出是相反的&#xff0c;很好理解。用右尖括号 ">" 将命令的输出重定向&#xff0c;通常是重定向到文件中

ls > files.txt

cat files.txt

1ff510aa4f4572f6e7723cf263e6ca1f.png

高端玩家还可以和数字一同使用&#xff1a;

wc doesntexist.txt 2> errors.txt

cat errors.txt

611a2b0b42604f75eb9f098acfda28ce.png

这里的 2 是一个文件描述符&#xff0c;表示标准错误(stderr)

大家感兴趣的可以去搜索下文件描述符 stdin&#xff0c;stdout&#xff0c;stderr 是什么&#xff1f;

| 连接命令

我们可以将 " | " 看成将命令链接在一起的管道。它从一个命令获取输出&#xff0c;并将其作为输入送入下一个命令。管道命令的数量是任意的。

cat words.txt | grep [cC] | sort -r

73f124941770794c700be9d8f7f67938.png

解释下&#xff0c;上面先使用 cat 将 words.txt 文件的内容输入 grep , 然后 grep 提取包含小写或大写(C/c)的任何行&#xff0c;接着 grep 将这些行传递给 sort &#xff0c;最后 sort 进行 -r 反向排序。

! 逻辑非

这跟编程语言中的 " ! " 差不多&#xff0c;我们直接拿个例子来说吧&#xff1a;

[ ! -d ./backup ] && mkdir ./backup

第一个命令 -d 判断当前目录是否存在 backup 的目录文件&#xff0c;外面加个逻辑非 ! 判断&#xff0c;
第二个命令是创建 backup 目录文件&#xff0c;
中间的 && 上面说过。
总的来说就是当 backup 目录不存在时&#xff0c;创建 backup 目录&#xff1b;当不存在时则不执行第二条命令。

不妨看下文件夹的备份状态&#xff1a;

ls -l -d backup

d46b6da1496da69225f63190ab943c74.png

" ! " 的另一个用法就是重新运行历史命令&#xff1a;

!24

!!

291ae5144218eeee819c14d788b55c46.png

" !! " 是重新运行上一条命令的意思。

$ 变量表达式

"$" 开头通常表示变量&#xff0c;下面是一些系统变量&#xff1a;

echo $USER

echo $HOME

echo $PATH

e85635bb00eceeb44d773c1c04973ddb.png

当然&#xff0c;你也可以自己定义变量然后输出&#xff1a;

ThisDistro&#61;Ubuntu

MyNumber&#61;2001

echo $ThisDistro

echo $MyNumber

5383a7ecf3740884891ecb4cdff7280c.png

我们还可以通过 "{}" 解锁更高级的玩法&#xff1a;

先定义一个变量 MyString 并给它赋值 123456qwerty

MyString&#61;123456qwerty

正常输出

echo ${MyString}

加个 ":6" 返回从索引位置 6 开始的一直到最后的字符串

echo ${MyString:6}

显示从索引位置从 0 开始往后 6 个字符的字符串

echo ${MyString:0:6}

显示从索引位置从 4 开始往后 4 个字符的字符串

echo ${MyString:4:4}

4b7bcb5f7740f43452818cb67059e303.png

引用特殊字符

说了那么多&#xff0c;那么就有个问题了&#xff0c;就是我只想在命令里面将这些特殊字符作为一般的符号显示怎么办&#xff1f;这种我们称之为引用&#xff0c;Linux 中有三种引用方法。

用双引号 "" 括起来&#xff0c;不过这对 "$" 无效。

echo "Today is $(date)"

用单引号 &#39;&#39; 括起来&#xff0c;停止所有特殊字符的功能

echo &#39;Today is $(date)&#39;

反斜杠 转义&#xff0c;这在很多场合都有通用的。

echo "Today is $(date)"

bd343781b399bb1fd117a23d6ad5a5c5.png

今天的科普文章有点长&#xff0c;大家慢慢消化哈。



推荐阅读
  • Zabbix自定义监控与邮件告警配置实践
    本文详细介绍了如何在Zabbix中添加自定义监控项目,配置邮件告警功能,并解决测试告警时遇到的邮件不发送问题。 ... [详细]
  • 本文深入探讨了Linux内核中进程地址空间的设计与实现,包括虚拟地址空间的概念、内存描述符`mm_struct`的作用、内核线程与用户进程的区别、进程地址空间的分配方法、虚拟内存区域(VMA)的结构以及地址空间与页表之间的映射机制。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文详细介绍了Linux系统中常用的文件操作命令,包括echo用于输出内容至屏幕或文件,cat用于显示或合并文件内容,sed用于流编辑器功能,以及wc命令用于统计文件中的字节、行数和单词数量。通过具体示例加深理解。 ... [详细]
  • 体育游戏开发商望尘科技冲刺港股IPO:国内增长放缓,海外扩张成关键
    体育游戏开发商望尘科技近期向港交所提交了IPO申请,显示其在国内市场增长放缓的背景下,正积极寻求通过海外扩张来提升自身竞争力。 ... [详细]
  • Ubuntu系统下的GIF动画录制解决方案
    在撰写文章或教程时,GIF动态图能够有效地传达信息。对于Windows用户而言,ScreenToGif是一款非常实用的工具。而在Ubuntu系统中,用户同样拥有多种选择来创建GIF动画,本文将重点介绍两款录屏工具——Byzanz和Peek。 ... [详细]
  • MITM(中间人攻击)原理及防范初探(二)
    上一篇文章MITM(中间人攻击)原理及防范初探(一)给大家介绍了利用ettercap进行arp欺骗及劫持明文口令,后来我发现好友rootoorotor的文章介绍比我写的更透彻,所以基础利用大家可以参看 ... [详细]
  • Fiddler 安装与配置指南
    本文详细介绍了Fiddler的安装步骤及配置方法,旨在帮助用户顺利抓取用户Token。文章还涵盖了一些常见问题的解决方案,以确保安装过程顺利。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • 本文详细探讨了Linux系统中的文件权限设置,包括常见的755、700等权限模式,以及这些权限在实际应用中的具体含义和作用。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
author-avatar
手机用户2502883723
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有