自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Linux命令行下使用“原力”

系統(tǒng) Linux
和絕地武士的原力一樣,-f 參數(shù)是很強(qiáng)大的,并伴隨著潛在的毀滅性,在你能用好的時(shí)候又很便利。

[[265830]]

和絕地武士的原力一樣,-f 參數(shù)是很強(qiáng)大的,并伴隨著潛在的毀滅性,在你能用好的時(shí)候又很便利。

近些年來,科幻發(fā)燒友開始在每年的 5 月 4 日慶祝星戰(zhàn)節(jié),其口號是絕地武士的祝福語”愿原力Force和你同在“。雖然大多數(shù) Linux 用戶可能不是絕地武士,但我們依然可以使用原力Force。自然,如果尤達(dá)大師只是叫天行者盧克輸入什么 “man X-Wing 戰(zhàn)機(jī)“、“man 原力”,或者 RTFM(去讀原力手冊,肯定是這個(gè)意思對不對),那這電影肯定沒啥意思。(LCTT 譯注:RTFM 是 “Read The Fucking Manual” 的縮寫 —— 讀讀該死的手冊吧)。

很多 Linux 命令都有 -f 選項(xiàng),意思你現(xiàn)在肯定也知道了,原力(LCTT 譯注:force 選項(xiàng)原意是“強(qiáng)制”)!很多時(shí)候你先嘗試執(zhí)行命令然后失敗了,或者提示你需要補(bǔ)充輸入更多選項(xiàng)。通常這都是為了保護(hù)你試著改變的文件,或者告訴用戶該設(shè)備正忙或文件已經(jīng)存在之類的。

如果你不想被這些提醒打擾或者壓根就不在乎,就使用原力吧!

不過要小心,通常使用原力選項(xiàng)是摧毀性的。所以用戶一定要格外注意!并且確保你知道自己在做什么!用原力就要承擔(dān)后果!

以下是一些常見 Linux 命令的原力選項(xiàng)和它們的效果,以及常見使用場景。

cp

cp 是 “copy” 的縮寫,這是個(gè)被用來復(fù)制文件或者目錄的命令。其 man 頁面 說:

-f, –force

如果已經(jīng)存在的目標(biāo)文件無法被打開,刪除它并重試

你可能會用它來處理只讀狀態(tài)的文件:

  1. [alan@workstation ~]$ ls -l
  2. total 8
  3. -rw-rw---- 1 alan alan 13 May 1 12:24 Hoth
  4. -r--r----- 1 alan alan 14 May 1 12:23 Naboo
  5. [alan@workstation ~]$ cat Hoth Naboo
  6. Icy Planet
  7.  
  8. Green Planet

如果你想要復(fù)制一個(gè)叫做 Hoth 的文件到 Naboo,但因?yàn)?Naboo 目前是只讀狀態(tài),cp 命令不會執(zhí)行:

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

但通過使用原力,cp 會強(qiáng)制執(zhí)行。Hoth 的內(nèi)容和文件權(quán)限會直接被復(fù)制到 Naboo

  1. [alan@workstation ~]$ cp -f Hoth Naboo
  2. [alan@workstation ~]$ cat Hoth Naboo
  3. Icy Planet
  4.  
  5. Icy Planet
  6.  
  7. [alan@workstation ~]$ ls -l
  8. total 8
  9. -rw-rw---- 1 alan alan 12 May 1 12:32 Hoth
  10. -rw-rw---- 1 alan alan 12 May 1 12:38 Naboo

ln

ln 命令是用來在文件之間建立鏈接的,其 man 頁面 描述的原力選項(xiàng)如下:

-f, –force

移除當(dāng)前存在的文件

假設(shè)萊婭公主在維護(hù)一個(gè) Java 應(yīng)用服務(wù)器,并且她又一個(gè)存放這所有 Java 版本的目錄,比如:

  1. leia@workstation:/usr/lib/java$ ls -lt
  2. total 28
  3. lrwxrwxrwx 1 leia leia 12 Mar 5 2018 jdk -> jdk1.8.0_162
  4. drwxr-xr-x 8 leia leia 4096 Mar 5 2018 jdk1.8.0_162
  5. drwxr-xr-x 8 leia leia 4096 Aug 28 2017 jdk1.8.0_144

正如你所看到的,這里有很多個(gè)版本的 JDK,并有一個(gè)符號鏈接指向 JDK。她接著用一個(gè)腳本來安裝 JDK。但是如果沒有原力選項(xiàng)的話以下命令是不會成功的:

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

tar 命令會解壓 .gz 文件到一個(gè)特定的目標(biāo)目錄,但 ln 命令會失敗,因?yàn)檫@個(gè)鏈接已經(jīng)存在了。這樣的結(jié)果是該符號鏈接不會指向 JDK:

  1. leia@workstation:/usr/lib/java$ ln -vs jdk1.8.0_181 jdk
  2. ln: failed to create symbolic link 'jdk/jdk1.8.0_181': File exists
  3. leia@workstation:/usr/lib/java$ ls -lt
  4. total 28
  5. drwxr-x--- 2 leia leia 4096 May 1 15:44 jdk1.8.0_181
  6. lrwxrwxrwx 1 leia leia 12 Mar 5 2018 jdk -> jdk1.8.0_162
  7. drwxr-xr-x 8 leia leia 4096 Mar 5 2018 jdk1.8.0_162
  8. drwxr-xr-x 8 leia leia 4096 Aug 28 2017 jdk1.8.0_144

她可以通過使用原力選項(xiàng)強(qiáng)制 ln 更新鏈接,但這里她還需要使用 -n,-n 是因?yàn)檫@個(gè)情況下鏈接其實(shí)指向一個(gè)目錄而非文件。這樣的話,鏈接就會正確指向JDK了。

  1. leia@workstation:/usr/lib/java$ ln -vsnf jdk1.8.0_181 jdk
  2. 'jdk' -> 'jdk1.8.0_181'
  3. leia@workstation:/usr/lib/java$ ls -lt
  4. total 28
  5. lrwxrwxrwx 1 leia leia 12 May 1 16:13 jdk -> jdk1.8.0_181
  6. drwxr-x--- 2 leia leia 4096 May 1 15:44 jdk1.8.0_181
  7. drwxr-xr-x 8 leia leia 4096 Mar 5 2018 jdk1.8.0_162
  8. drwxr-xr-x 8 leia leia 4096 Aug 28 2017 jdk1.8.0_144

你可以配置 Java 應(yīng)用使其一直使用在 /usr/lib/java/jdk 處的 JDK,而不用每次升級都更新。

rm

rm 命令是 “remove” 的縮寫(也叫做刪除,因?yàn)槟承┫到y(tǒng) del 命令也干這事)。其 man 頁面 對原力選項(xiàng)的描述如下:

-f, –force

無視不存在的文件或者參數(shù),不向用戶確認(rèn)

如果你嘗試刪除一個(gè)只讀的文件,rm 會尋求用戶的確認(rèn):

  1. [alan@workstation ~]$ ls -l
  2. total 4
  3. -r--r----- 1 alan alan 16 May 1 11:38 B-wing
  4. [alan@workstation ~]$ rm B-wing
  5. rm: remove write-protected regular file 'B-wing'?

你一定要輸入 y 或者 n 來回答確認(rèn)才能讓 rm 命令繼續(xù)。如果你使用原力選項(xiàng),rm 就不會尋求你的確認(rèn)而直接刪除文件:

  1. [alan@workstation ~]$ rm -f B-wing
  2. [alan@workstation ~]$ ls -l
  3. total 0
  4. [alan@workstation ~]$

最常見的 rm 原力選項(xiàng)用法是用來刪除目錄。 -r(遞歸)選項(xiàng)會讓 rm 刪除目錄,當(dāng)和原力選項(xiàng)結(jié)合起來,它會刪除這個(gè)文件夾及其內(nèi)容而無需用戶確認(rèn)。

rm 命令和一些選項(xiàng)結(jié)合起來是致命的,一直以來互聯(lián)網(wǎng)上都有關(guān)于誤用 rm 刪除整個(gè)系統(tǒng)之類的玩笑和鬼故事。比如最出名的一不當(dāng)心執(zhí)行 rm -rf . 會直接刪除目錄和文件(沒有用戶確認(rèn))。(LCTT 譯注:真的這么干過的校對飄過~~請按下回車前再三確認(rèn):我是誰,我在哪里,我在干什么)

userdel

userdel 命令使用來刪除用戶的。其 man 頁面 是這樣描述它的原力選項(xiàng)的:

-f, –force

這個(gè)選項(xiàng)會強(qiáng)制移除用戶,即便用戶當(dāng)前處于登入狀態(tài)。它同時(shí)還會強(qiáng)制 刪除用戶的目錄和郵件存儲,即便這個(gè)用戶目錄被別人共享或者郵件存儲并不 屬于這個(gè)用戶。如果 USERGROUPS_ENAB/etc/login.defs 里是 yes 并且有一個(gè)組和此用戶同名的話,這個(gè)組也會被移除,即便這個(gè)組還是別 的用戶的主要用戶組也一樣。

注意:這個(gè)選項(xiàng)有風(fēng)險(xiǎn)并可能讓系統(tǒng)處于不穩(wěn)定狀態(tài)。

當(dāng)歐比旺抵達(dá)穆斯塔法星的時(shí)候,他知道自己的使命。他需要?jiǎng)h掉達(dá)斯·維達(dá)的用戶賬戶——而達(dá)斯還在里面呢。

  1. [root@workstation ~]# ps -fu darth
  2. UID PID PPID C STIME TTY TIME CMD
  3. darth 7663 7655 0 13:28 pts/3 00:00:00 -bash
  4. [root@workstation ~]# userdel darth
  5. userdel: user darth is currently used by process 7663

因?yàn)檫_(dá)斯還登在系統(tǒng)里,歐比旺需要使用原力選項(xiàng)操作 userdel。這能強(qiáng)制刪除當(dāng)前登入的用戶。

  1. [root@workstation ~]# userdel -f darth
  2. userdel: user darth is currently used by process 7663
  3. [root@workstation ~]# finger darth
  4. finger: darth: no such user.
  5. [root@workstation ~]# ps -fu darth
  6. error: user name does not exist

正如我們所見到的一樣,fingerps 命令讓我們確認(rèn)了達(dá)斯已經(jīng)被刪除了。

在 Shell 腳本里使用原力

很多命令都有原力選項(xiàng),而在 shell 腳本里他們特別有用。因?yàn)槲覀兘?jīng)常使用腳本完成定期或者自動(dòng)化的任務(wù),避免用戶輸入至關(guān)重要,不然的話自動(dòng)任務(wù)就無法完成了

我希望上面的幾個(gè)例子能幫你理解一些需要使用原力的情況。你在命令行使用原力或把它們寫入腳本之前應(yīng)當(dāng)完全理解它們的作用。誤用原力會有毀滅性的后果——時(shí)常是對整個(gè)系統(tǒng),甚至不僅限于一臺設(shè)備。 

 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2010-06-01 19:14:53

SVN命令行

2009-08-11 09:11:06

linux打開瀏覽器命linux命令行瀏覽器linux命令行

2009-12-09 09:25:52

Linux命令行svn命令

2015-11-25 14:03:29

LinuxMop股票

2018-11-05 13:50:44

Linux命令tcpdump

2023-03-08 15:38:56

Linux命令dict

2018-12-12 09:44:07

Linux命令行時(shí)間管理

2009-08-11 09:58:22

Linux命令行Linux命令svn命令

2022-10-18 10:00:09

Linuxtcpdump命令

2014-01-24 09:09:32

Linux命令行網(wǎng)速

2019-12-10 10:03:18

Linux命令行工具

2021-07-15 13:32:12

Linux生成密碼

2021-07-15 13:25:43

LinuxPDF

2017-05-27 14:45:04

Linux命令進(jìn)程

2009-02-18 20:20:40

autojump更改目錄命令行下

2009-10-26 18:09:31

Oracle用戶解鎖

2009-02-17 23:21:12

autojump命令行下快速更改目錄

2009-08-16 20:24:59

linux命令行登陸linux命令行linux命令

2014-01-22 10:21:55

Linux命令行

2014-05-04 10:58:18

Linux命令行Linux發(fā)行版
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號