百摩网
当前位置: 首页 生活百科

linux系统命令教程交流(在Linux命令行下使用)

时间:2023-06-12 作者: 小编 阅读量: 2 栏目名: 生活百科

和绝地武士的原力一样,-f参数是很强大的,并伴随着潜在的毁灭性,在你能用好的时候又很便利。

和绝地武士的原力一样,-f 参数是很强大的,并伴随着潜在的毁灭性,在你能用好的时候又很便利。

-- Alan Formy-duval(作者)

近些年来,科幻发烧友开始在每年的 5 月 4 日庆祝 星战节 ,其口号是绝地武士的祝福语”愿 原力(Force)和你同在“。虽然大多数 Linux 用户可能不是绝地武士,但我们依然可以使用 原力(Force)。自然,如果尤达大师只是叫天行者卢克输入什么 “man X-Wing 战机“、“man 原力”,或者 RTFM(去读原力手册,肯定是这个意思对不对),那这电影肯定没啥意思。(LCTT 译注:RTFM 是 “Read The Fucking Manual” 的缩写 —— 读读该死的手册吧)。

很多 Linux 命令都有 -f 选项,意思你现在肯定也知道了,原力(LCTT 译注:force 选项原意是“强制”)!很多时候你先尝试执行命令然后失败了,或者提示你需要补充输入更多选项。通常这都是为了保护你试着改变的文件,或者告诉用户该设备正忙或文件已经存在之类的。

如果你不想被这些提醒打扰或者压根就不在乎,就使用原力吧!

不过要小心,通常使用原力选项是摧毁性的。所以用户一定要格外注意!并且确保你知道自己在做什么!用原力就要承担后果!

以下是一些常见 Linux 命令的原力选项和它们的效果,以及常见使用场景。

cp

cp 是 “copy” 的缩写,这是个被用来复制文件或者目录的命令。其 man 页面 说:

-f, –force

如果已经存在的目标文件无法被打开,删除它并重试

你可能会用它来处理只读状态的文件:

[alan@workstation ~]$ ls -ltotal 8-rw-rw---- 1 alan alan 13 May 1 12:24 Hoth-r--r----- 1 alan alan 14 May 1 12:23 Naboo[alan@workstation ~]$ cat Hoth NabooIcy PlanetGreen Planet

如果你想要复制一个叫做 Hoth 的文件到 Naboo,但因为 Naboo 目前是只读状态,cp 命令不会执行:

[alan@workstation ~]$ cp Hoth Naboocp: cannot create regular file 'Naboo': Permission denied

但通过使用原力,cp 会强制执行。Hoth 的内容和文件权限会直接被复制到 Naboo:

[alan@workstation ~]$ cp -f Hoth Naboo[alan@workstation ~]$ cat Hoth NabooIcy PlanetIcy Planet[alan@workstation ~]$ ls -ltotal 8-rw-rw---- 1 alan alan 12 May 1 12:32 Hoth-rw-rw---- 1 alan alan 12 May 1 12:38 Naboo

ln

ln 命令是用来在文件之间建立链接的,其 man 页面 描述的原力选项如下:

-f, –force

移除当前存在的文件

假设莱娅公主在维护一个 java 应用服务器,并且她又一个存放这所有 Java 版本的目录,比如:

leia@workstation:/usr/lib/java$ ls -lttotal 28lrwxrwxrwx 1 leia leia 12 Mar 5 2018 jdk -> jdk1.8.0_162drwxr-xr-x 8 leia leia 4096 Mar 5 2018 jdk1.8.0_162drwxr-xr-x 8 leia leia 4096 Aug 28 2017 jdk1.8.0_144

正如你所看到的,这里有很多个版本的 JDK,并有一个符号链接指向最新版的 JDK。她接着用一个脚本来安装最新版本的 JDK。但是如果没有原力选项的话以下命令是不会成功的:

tar xvzmf jdk1.8.0_181.tar.gz -C jdk1.8.0_181/ln -vs jdk1.8.0_181 jdk

tar 命令会解压 .gz 文件到一个特定的目标目录,但 ln 命令会失败,因为这个链接已经存在了。这样的结果是该符号链接不会指向最新版本的 JDK:

leia@workstation:/usr/lib/java$ ln -vs jdk1.8.0_181 jdkln: failed to create symbolic link 'jdk/jdk1.8.0_181': File existsleia@workstation:/usr/lib/java$ ls -lttotal 28drwxr-x--- 2 leia leia 4096 May 1 15:44 jdk1.8.0_181lrwxrwxrwx 1 leia leia 12 Mar 5 2018 jdk -> jdk1.8.0_162drwxr-xr-x 8 leia leia 4096 Mar 5 2018 jdk1.8.0_162drwxr-xr-x 8 leia leia 4096 Aug 28 2017 jdk1.8.0_144

她可以通过使用原力选项强制 ln 更新链接,但这里她还需要使用 -n,-n 是因为这个情况下链接其实指向一个目录而非文件。这样的话,链接就会正确指向最新版本的JDK了。

leia@workstation:/usr/lib/java$ ln -vsnf jdk1.8.0_181 jdk'jdk' -> 'jdk1.8.0_181'leia@workstation:/usr/lib/java$ ls -lttotal 28lrwxrwxrwx 1 leia leia 12 May 1 16:13 jdk -> jdk1.8.0_181drwxr-x--- 2 leia leia 4096 May 1 15:44 jdk1.8.0_181drwxr-xr-x 8 leia leia 4096 Mar 5 2018 jdk1.8.0_162drwxr-xr-x 8 leia leia 4096 Aug 28 2017 jdk1.8.0_144

你可以配置 Java 应用使其一直使用在 /usr/lib/java/jdk 处的 JDK,而不用每次升级都更新。

rm

rm 命令是 “remove” 的缩写(也叫做删除,因为某些系统 del 命令也干这事)。其 man 页面 对原力选项的描述如下:

-f, –force

无视不存在的文件或者参数,不向用户确认

如果你尝试删除一个只读的文件,rm 会寻求用户的确认:

[alan@workstation ~]$ ls -ltotal 4-r--r----- 1 alan alan 16 May 1 11:38 B-wing[alan@workstation ~]$ rm B-wing rm: remove write-protected regular file 'B-wing'?

你一定要输入 y 或者 n 来回答确认才能让 rm 命令继续。如果你使用原力选项,rm 就不会寻求你的确认而直接删除文件:

[alan@workstation ~]$ rm -f B-wing[alan@workstation ~]$ ls -ltotal 0[alan@workstation ~]$

最常见的 rm 原力选项用法是用来删除目录。 -r(递归)选项会让 rm 删除目录,当和原力选项结合起来,它会删除这个文件夹及其内容而无需用户确认。

rm 命令和一些选项结合起来是致命的,一直以来互联网上都有关于误用 rm 删除整个系统之类的玩笑和鬼故事。比如最出名的一不当心执行 rm -rf . 会直接删除目录和文件(没有用户确认)。(LCTT 译注:真的这么干过的校对飘过~~请按下回车前再三确认:我是谁,我在哪里,我在干什么)

userdel

userdel 命令使用来删除用户的。其 man 页面 是这样描述它的原力选项的:

-f, –force

这个选项会强制移除用户,即便用户当前处于登入状态。它同时还会强制 删除用户的目录和邮件存储,即便这个用户目录被别人共享或者邮件存储并不 属于这个用户。如果 USERGROUPS_ENAB 在 /etc/login.defs 里是 yes 并且有一个组和此用户同名的话,这个组也会被移除,即便这个组还是别 的用户的主要用户组也一样。

注意:这个选项有风险并可能让系统处于不稳定状态。

当欧比旺抵达穆斯塔法星的时候,他知道自己的使命。他需要删掉达斯·维达的用户账户——而达斯还在里面呢。

[root@workstation ~]# ps -fu darthUID PID PPID C STIME TTY TIME CMDdarth 7663 7655 0 13:28 pts/3 00:00:00 -bash[root@workstation ~]# userdel darthuserdel: user darth is currently used by process 7663

因为达斯还登在系统里,欧比旺需要使用原力选项操作 userdel。这能强制删除当前登入的用户。

[root@workstation ~]# userdel -f darthuserdel: user darth is currently used by process 7663[root@workstation ~]# finger darthfinger: darth: no such user.[root@workstation ~]# ps -fu dartherror: user name does not exist

正如我们所见到的一样,finger 和 ps 命令让我们确认了达斯已经被删除了。

在 Shell 脚本里使用原力

很多命令都有原力选项,而在 shell 脚本里他们特别有用。因为我们经常使用脚本完成定期或者自动化的任务,避免用户输入至关重要,不然的话自动任务就无法完成了

我希望上面的几个例子能帮你理解一些需要使用原力的情况。你在命令行使用原力或把它们写入脚本之前应当完全理解它们的作用。误用原力会有毁灭性的后果——时常是对整个系统,甚至不仅限于一台设备。


via: https://opensource.com/article/19/5/may-the-force-linux

作者: Alan Formy-Duval 选题: lujun9972 译者: Jerry Ling 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出

点击“了解更多”可访问文内链接,
    推荐阅读
  • 完美关系在那个台几点播出(你知道吗)

    接下来我们就一起去研究一下吧!完美关系在那个台几点播出当代都市题材电视剧《完美关系》的播出时间:2020年2月18日,首播平台:湖南卫视、爱奇艺、腾讯视频。若是VIP会员24点更新,非会员次日24点观看,2018年7月拍摄,由浙江金溪影视有限公司制作,制作周期12个月,该剧由安建导演,主演:黄轩,佟丽娅,陈数。

  • 堂哥的儿子是我的外甥还是侄子(堂哥的儿子是我的外甥还是侄子呢)

    亦称朋友的儿子,属于客套话,而哥哥的小孩其实就是弟兄的孩子,所以叫“侄子”最恰当不过。姑侄对称,与亲兄弟之子无关。在此之前,兄弟之子称为兄子和弟子,多用作亲属的“转述叙称”称谓。

  • 晨跑和夜跑哪个更减肥瘦身(晨跑和夜跑哪个减肥更快)

    但是对于减肥的人而言,还是要有所限制。

  • 施瓦辛格成功绝非偶然(从穷小子到国际巨星)

    在加入美国国籍后,他就报名参加了美国举办的国际健美比赛,而在本场比赛上,施瓦辛格凭借着接近完美的男性身材而获得了比赛冠军,也因此得到了健美先生的称号。施瓦辛格心里一直有一个梦想——成为美国总统。施瓦辛格弃影从政,成功当选州长施瓦辛格在健美界和影坛所取得的成就也使得他闻名世界,他所积攒下的财富也使得他跻身亿万富翁。另外施瓦辛格还提出了使用清洁能源等政策,为此他还放弃

  • 汉服简介(汉服的介绍)

    与汉人一词类似,汉服中的“汉”字的词义外延亦存在着由汉朝扩大为整个民族指称的过程。汉服“始于黄帝,备于尧舜”,源自黄帝制冕服。定型于周朝,并通过汉朝依据四书五经形成完备的冠服体系,成为神道设教的一部分。汉服还通过华夏法系影响了整个汉文化圈,亚洲各国的部分民族如日本、朝鲜、越南、蒙古、不丹等等服饰均具有或借鉴汉服特征。

  • 山楂的保存方法(山楂的保存方法简述)

    下面内容希望能帮助到你,我们来一起看看吧!山楂的保存方法对于已经切开的山楂,想要保存可以放进盐水中,也可放在阳光下晾晒,让水分尽快蒸发掉。完整的山楂保存可以装入塑料袋中,扎紧袋口放进冰箱冷藏。在容器底部放一层细沙将山楂装入,再放一层细沙密封保存。最简单的方法是放入保鲜膜中,把里面空气放干净,密封袋口保存。

  • 象棋中的马怎么算撇脚(撇脚的具体情况如下)

    以下内容大家不妨参考一二希望能帮到您!象棋中的马怎么算撇脚比如马要向前跳!那马前面也就是马头上如果有棋子就是挡马脚!无论马往哪边跳!马前面有一颗棋子挡着,比如想向前跳,紧挨着马的正前方有一颗棋子,都叫撇脚马,同理,你想向左跳,紧挨着马的左方有一颗棋子也叫撇脚马。

  • 赘婿楼舒婉为什么要杀死家人 赘婿楼舒婉报仇了吗

    在对方强占檀儿时,被宁毅给撞见了,一向有仇必报的他,自然要将楼家给灭掉。之前宣威营的小头目绑走了苏檀儿,最终卖给了楼书恒。之后楼舒婉制作了防水衣送给了刘西瓜,刘西瓜又给了宁毅。之后宁毅发现了防水衣的秘密,急冲冲的跑到了楼家的布店,刚好撞见楼书恒在欺负苏檀儿。如此看来,这一切都是楼舒婉布下的局,就是为了弄死自己的哥哥和父亲。之后他的所作所为,都是为了报复自己之前遭遇的不公。

  • 自制瓷砖胶(瓷砖胶配方及制作方法)

    接下来我们就一起去研究一下吧!自制瓷砖胶先将冷水按比例加入到容器内,开启搅拌机再将胶粉徐徐撒入,高速搅拌10-15分钟即为胶水。批重钙、滑石粉,每1000公斤水加107胶粉13-14公斤、杀菌防腐剂3公斤,或加入甲醛2.5-3公斤,制成胶水。批硅酸盐灰白水泥:每1000公斤水直接加入107胶粉10-11公斤,制成胶水。

  • 研教学评一体化(备教学)

    只有经历这一大循环的教学,才能呈现一种持续评价教与学的目标达成度、教与学的进步度、决定教与学的需求,并实现螺旋上升的态势,使教与学和质量评价更有意义。所以,在“备、教、学、评一体化”教学指导下的教学新格局,应该是一个高效的课堂。