开篇讲讲我刚开始用Linux,特别是Ubuntu那会儿,那真是摸不着头脑。文件都在哪儿,每次都要cd到很深的地方找,特别烦。那会儿我还不知道有什么“快捷方式”这种东西,Windows上用习惯了,到Linux这儿就傻眼了。每次都得记住那长长的一串路径,要是手一抖打错了,又得从头来过。时间一长,我就觉得这样不行,效率太低了,而且操作起来很不顺手。

有一次我项目文件放在home目录下的一个很深的文件夹里,每次要用都得一层层地cd进去。当时我就想着,有没有办法能像Windows那样,把常用的文件夹“拉”到桌面或者一个更容易找到的地方?我开始在网上瞎找,问了同事,他们就随口提了一句“你试试ln命令”。当时我听了也是一头雾水,ln是个也没多想,就自己偷偷摸索去了。

第一次用,感觉打开了新世界的大门

我当时就跑到终端,敲了个man ln想看看这玩意儿是干啥的。但是man页面那个密密麻麻的英文,看得我头都大了。我就只抓住一个大概的意思,好像是能“链接”什么东西。我记得当时我对着一个经常要用的配置文件,那个文件在一个很深的系统目录里,每次改都费劲。我就想着,能不能在我自己的主目录下面弄个假的,一改假的,真的也跟着变?

我查了查,发现有个参数叫-s,说是用来搞“软链接”的。我就照着网上的例子,试了这么一句:

ln -s /etc/nginx/sites-available/default ~/my_nginx_conf

/etc/nginx/sites-available/default是那个配置文件的原地址,~/my_nginx_conf是我想在我主目录创建的那个链接。我敲完回车一看,我主目录里真多了一个my_nginx_conf的文件,图标还跟普通文件有点不一样,旁边有个小箭头。我尝试用vim打开~/my_nginx_conf,修改了几行,保存,然后马上去看/etc/nginx/sites-available/default那个原文件,发现改动竟然同步过去了!当时我就惊呆了,这不是跟Windows的快捷方式差不多嘛而且更直接,更强大!那感觉就像一下子打通了任督二脉,以前那些繁琐的操作,好像瞬间就能找到解决办法了。

我的日常工作都离不开它了

小编温馨提醒:本站只提供游戏介绍,下载游戏请前往89游戏主站,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区

自从尝到甜头以后,这个ln -s就成了我日常工作里的一个得力助手。我可以跟你说说我是怎么把它玩出花来的:

  • 项目管理:我平时会把所有的开发项目都放在一个统一的文件夹里,比如~/dev/projects。但是有些项目我经常要进,有些则不那么频繁。我就把我最常用的几个项目文件夹,用ln -s直接链接到我的主目录下面。比如:ln -s ~/dev/projects/my_super_app ~/my_super_app。这样我每次只要cd ~/my_super_app就能直接进入项目根目录,省去了很多次cd的麻烦。方便得不是一点半点,省下来的时间我可以多摸几分钟鱼,哈哈哈。
  • 配置文件管理(dotfiles):我这个人有点强迫症,电脑上的各种配置文件,比如.bashrc.vimrc.gitconfig这些,我都喜欢统一放到一个Git仓库里进行管理。但是这些文件系统默认是放在我主目录下的,而且都是隐藏文件。我搞了一个~/dotfiles的仓库,把这些配置文件都放在里面。然后,就是用ln -s把仓库里的文件,链接到我主目录对应的位置。比如说:ln -s ~/dotfiles/.bashrc ~/.bashrc。这样我只要改动~/dotfiles/.bashrc,我主目录下的.bashrc也就跟着变了,而且还能方便地用Git来追踪这些配置文件的历史版本。换了新电脑,只要把dotfiles仓库一克隆,然后跑个脚本把所有的链接一建,我的开发环境就立马恢复了,简直是神仙操作。
  • 多版本工具切换:有时候我电脑上会装好几个版本的JDK或者Python,不同的项目可能需要不同的版本。我就把这些不同版本的安装目录都放然后通过ln -s来控制当前使用的版本。比如,我有一个~/bin/java的软链接,它可能指向/usr/lib/jvm/java-11-openjdk-amd64/bin/java。如果我需要切换到Java 8,我就先把~/bin/java这个链接删掉(rm ~/bin/java),然后再创建一个指向Java 8的链接:ln -s /usr/lib/jvm/java-8-openjdk-amd64/bin/java ~/bin/java。这样一来,我通过java -version就能看到当前系统用的Java版本变了,非常灵活,而且不用改什么环境变量,特别省心。

踩过的坑和学到的教训

这东西也不是随便一用就灵的,我也没少在上面栽跟头。最早的时候,我就是搞不清楚软链接和硬链接的区别。我当时以为ln不带-s就是普通的快捷方式,结果发现根本不是那么回事。硬链接不能跨文件系统,也不能链接目录,而且删了原文件链接还在,但数据还在,当时给我搞得一头雾水。后来我才明白,对于我这种普通的应用场景,ln -s,也就是软链接,才是真正的王道,简单直接,几乎能解决我所有的问题。

还有一次,我创建链接的时候,把源文件和目标文件搞反了。结果就是,我想把A链接到B,结果不小心把B链接到了A。然后我一顿操作猛如虎,改的是B,结果A变了。花了半天才搞明白是链接搞反了。一定要记住,ln -s 源文件 目标文件,这个顺序可不能错,源文件在前,目标文件在后,不然会出大问题。

当你要删除一个软链接的时候,直接用rm命令就行了,它只会删除那个链接,不会动到你的源文件。但是如果你不小心删了源文件,那么软链接就成了“死链接”了,也就是指向一个不存在的地方,这个时候你再去访问那个链接,系统就会报错。这个要注意。源文件是根本,链接是通路,源文件没了,通路自然也就断了,访问起来就费劲了。

为什么我说这是新手必学?

现在回过头来看,ln命令,特别是它的-s参数,真的是Linux下提升效率的一大利器。它不像那些复杂的网络配置或者内核编译,普通用户也能很快上手,而且它解决的都是我们日常操作中最频繁、最让人头疼的问题——文件路径太长,来回切换麻烦,配置文件管理不便等等。学会了它,你的命令行操作体验会舒服一大截,你会发现很多以前觉得复杂的事情,突然就变得简单了。

所以我一直跟新来的同事说,学Linux,除了cdlscpmvrm这几个基础命令,第六个你一定要学会的就是ln -s。它真的能帮你把工作环境打理得井井有条,让你的文件管理和项目切换变得超级顺手。熟练运用以后,你会感觉自己的Linux水平又提升了一个档次,做事情也会变得更加游刃有余。别的不说,就光是管理那些散落在各处的配置文件,这一个命令就值回票价了。

免责声明:喜欢请购买正版授权并合法使用,此软件只适用于测试试用版本。来源于转载自各大媒体和网络。 此仅供爱好者测试及研究之用,版权归发行公司所有。任何组织或个人不得传播或用于任何商业用途,否则一切后果由该组织及个人承担!我方将不承担任何法律及连带责任。 对使用本测试版本后产生的任何不良影响,我方不承担任何法律及连带责任。 请自觉于下载后24小时内删除。如果喜欢本游戏,请购买正版授权并合法使用。 本站内容侵犯了原著者的合法权益,可联系我们进行处理。