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

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

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

和绝地武士的原力一样,-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中国 荣誉推出

点击“了解更多”可访问文内链接,
    推荐阅读
  • 猎人求生日记怎么拿终极工作台(猎人求生日记拿终极工作台方法简述)

    接下来我们就一起去了解一下吧!猎人求生日记怎么拿终极工作台猎人求生日记要拿终极工作台必须在Y8网玩,把其中一个成就通过编辑器删掉,然后移到Y8存档,最后再手动获得那个成就即可。这是一个生存类的小游戏,玩家扮演猎人,通过用手撸一些方块,或者制作武器,或者制作房屋,来尽可能的生存下去。游戏背景是猎人进入了一个荒岛,而我们需要的是帮助猎人生存下去。

  • 狗狗受伤很严重伤口化脓了怎么办(狗狗伤口发炎化脓的时候应该怎么办)

    一般来说,当狗狗伤口有发炎化脓情况的时候,可以尝试先买一瓶双氧水,给宠物狗彻底清洁伤口,一定要尽可能的将狗狗伤口部位的化脓清洗掉。然后在可以购买一包消炎粉或者金霉素软膏,帮助涂抹在狗狗的伤口处,让伤口能在消炎药之下尽快收口。此外,如果狗狗的伤口比较严重,那么还是得进行包扎的。注意,如果狗狗伤口发炎化脓情况很严重,而且狗狗可能有病菌感染,发烧的情况,那么请及时将它送到宠物医院,千万不要耽误救治时间。

  • word带圈字符输入技巧(高手都在用的Word带圈数字输入法)

    大家好,我是小绘!今天,小绘就来教一下大家,一起来看看吧!更多打印知识、职场小技巧记得多跟小绘在留言区沟通哦~WPS5个调整表格小技巧,提高工作效率不加班万能的CtrlE键,学会一键解决Excel中90%的问题Excel单元格内容不全?

  • 宁丹琳个人资料(宁丹琳资料盘点)

    宁丹琳个人资料宁丹琳,1987年3月23日出生于北京市,中国大陆女演员。宁丹琳有“民国版万人迷、性感九尾狐、真人版红太狼”等称号。1990年,3岁第一次出境在潘虹领衔主演的电影《的士女人》里。1993年,考进儿童电影学院学习表演。2000年,移民美国就读于纽约百老汇街艺术学院,主修舞台表演。2003年,回国投入演艺事业。2006年,接拍《家有儿女3-4》而被观众所熟知。2011年,主演电视剧《杀狼花》。2014年,在抗战剧《飞哥大英雄》中饰演邢亚萍。

  • 经典传承八年级手抄报(一年级传承经典文化手抄报)

    接下来我们一起去欣赏以下手抄报作品吧!经典传承八年级手抄报传承文明诵读经典手抄报阅读经典手抄报诵读经典传承红色精神主题手抄报国学经典手抄报图片传承传统文化传承优良文化手抄报优良家风手抄报弘扬国学文化手抄报弘扬家风手抄报传承经典展风采沐浴书香润童心手抄报沐浴阳光手抄报传统文化传承基地手抄报传统文化手抄报

  • 躲不过的“857”,我太难了

    逃过了“996”“007”,最近某人又来了个“456”,那么“857”又是什么何方神圣。其实“857”代表的就是当代年轻人下班后从晚上8点一直嗨到早上5点,这种行为连续一周7次,夜夜笙歌。体检合格率不足1%,部分网友表示,那干脆体检也不做了,免得徒增烦恼。就连知名硬汉也开始呼吁广大网友定时体检,及时就医,以免小病拖成大病,抱憾终生。之前新闻也有某女星因为生活不规律,长期透支自己的身体,也导致了未老先衰。

  • 陇南市属于哪个省(陇南市介绍)

    陇南,是甘肃省地级市,省域南部重要的交通枢纽和商贸物流中心,具有鲜明地域文化特色的陇蜀之城、橄榄之城。截至2019年末,全市辖1个区、8个县,总面积2.78万平方公里,城镇人口92.03万。根据第七次人口普查数据,截至2020年11月1日零时,陇南市常住人口为2407272人。陇南距今7000多年前即有人类活动,是秦人的发祥地、中国古代西部民族氐人和羌人活动的核心地区,文县白马人被誉为“东亚最古老的部族”。

  • 冬天火锅怎么吃看看有没你喜欢的(冬天的第一顿火锅)

    温度一下下降真是冷的受不了,这个时候最想吃的就是火锅了,作为冬天的第一顿火锅,有7种食材是我必点的,即便是顿顿吃也不会觉得腻,不知道你们吃火锅都爱吃啥,看看我们有没有共同爱吃的!第六个就是冻豆腐,作为一个东北人,吃火锅里面必备的,冻豆腐有很多小孔,每一个小孔都有满满的火锅汤汁,吸了汤汁再吸了蘸料的汤汁,一口下去水灵灵的,然后还嫩嫩的口感,牙口不好的都能吃,吃火锅一定要吃!

  • 明朝那些事55篇读书笔记(读书推荐明朝那些事儿)

    那时候老师推荐过二月河的《康熙大帝》,直到最近才开始看,最近刚用了两个多月的时间把《明朝那些事儿》看了一遍。作者以幽默诙谐的文章将枯燥乏味的历史写出来,让人看起来津津有味,更主要的是本书尊重历史事实,客观公正,是了解认识明代历史的一本好书,明史专家毛佩琦教授所说的:“《明朝那些事儿》的确是别开生面的,是一种创造。”以铜镜为鉴,可以正衣冠,以人为鉴,可以知得失,以史为鉴,可以知兴衰。

  • 辛丑年是啥意思(辛丑年的意思)

    接下来我们就一起去研究一下吧!辛丑年是啥意思辛丑年就是农历一甲子中的一个,比如19192021。辛丑为干支之一,顺序为第38个。前一位是庚子,后一位是壬寅。论阴阳五行,天干之辛属阴之金,地支之丑属阴之土,是土生金相生。中国传统纪年农历的干支纪年中一个循环的第38年称“辛丑年”。以下各个公元年份,年份数除以60余41,或年份数减3,除以10的余数是8,除以12的余数是2,自当年正月初一起至次年除夕止的岁次均为“辛丑年”。