小編給大家分享一下在Linux命令行下如何使用原力選項(xiàng),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)建站企業(yè)建站,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營經(jīng)驗(yàn),設(shè)計(jì)師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準(zhǔn)市場調(diào)研,為客戶提供的解決方案。
cp
是 “copy” 的縮寫,這是個(gè)被用來復(fù)制文件或者目錄的命令。其 man 頁面 說:
-f, –force
如果已經(jīng)存在的目標(biāo)文件無法被打開,刪除它并重試
你可能會用它來處理只讀狀態(tài)的文件:
[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 Planet Green Planet
如果你想要復(fù)制一個(gè)叫做 Hoth
的文件到 Naboo
,但因?yàn)?Naboo
目前是只讀狀態(tài),cp
命令不會執(zhí)行:
[alan@workstation ~]$ cp Hoth Naboocp: cannot create regular file 'Naboo': Permission denied
但通過使用原力,cp
會強(qiáng)制執(zhí)行。Hoth
的內(nèi)容和文件權(quán)限會直接被復(fù)制到 Naboo
:
[alan@workstation ~]$ cp -f Hoth Naboo[alan@workstation ~]$ cat Hoth NabooIcy Planet Icy 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
命令是用來在文件之間建立鏈接的,其 man 頁面 描述的原力選項(xiàng)如下:
-f, –force
移除當(dāng)前存在的文件
假設(shè)萊婭公主在維護(hù)一個(gè) Java 應(yīng)用服務(wù)器,并且她又一個(gè)存放這所有 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
正如你所看到的,這里有很多個(gè)版本的 JDK,并有一個(gè)符號鏈接指向 JDK。她接著用一個(gè)腳本來安裝 JDK。但是如果沒有原力選項(xiàng)的話以下命令是不會成功的:
tar xvzmf jdk1.8.0_181.tar.gz -C jdk1.8.0_181/ln -vs jdk1.8.0_181 jdk
tar
命令會解壓 .gz 文件到一個(gè)特定的目標(biāo)目錄,但 ln
命令會失敗,因?yàn)檫@個(gè)鏈接已經(jīng)存在了。這樣的結(jié)果是該符號鏈接不會指向 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
她可以通過使用原力選項(xiàng)強(qiáng)制 ln
更新鏈接,但這里她還需要使用 -n
,-n
是因?yàn)檫@個(gè)情況下鏈接其實(shí)指向一個(gè)目錄而非文件。這樣的話,鏈接就會正確指向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 應(yīng)用使其一直使用在 /usr/lib/java/jdk
處的 JDK,而不用每次升級都更新。
rm
命令是 “remove” 的縮寫(也叫做刪除,因?yàn)槟承┫到y(tǒng) del
命令也干這事)。其 man 頁面 對原力選項(xiàng)的描述如下:
-f, –force
無視不存在的文件或者參數(shù),不向用戶確認(rèn)
如果你嘗試刪除一個(gè)只讀的文件,rm
會尋求用戶的確認(rèn):
[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
來回答確認(rèn)才能讓 rm
命令繼續(xù)。如果你使用原力選項(xiàng),rm
就不會尋求你的確認(rèn)而直接刪除文件:
[alan@workstation ~]$ rm -f B-wing[alan@workstation ~]$ ls -ltotal 0[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
命令使用來刪除用戶的。其 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í)候,他知道自己的使命。他需要刪掉達(dá)斯·維達(dá)的用戶賬戶——而達(dá)斯還在里面呢。
[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
因?yàn)檫_(dá)斯還登在系統(tǒng)里,歐比旺需要使用原力選項(xiàng)操作 userdel
。這能強(qiáng)制刪除當(dāng)前登入的用戶。
[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
命令讓我們確認(rèn)了達(dá)斯已經(jīng)被刪除了。
以上是“在Linux命令行下如何使用原力選項(xiàng)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!