Linux常用命令(詳細)

来源:https://www.cnblogs.com/relitty/archive/2020/05/05/12832050.html
-Advertisement-
Play Games

Linux常用命令 一、控制台相關命令 控制台命令就是指通過字元界面輸入的可以操作系統的命令。我們現在要瞭解的是基於Linux操作系統的基本控制台命令。不同於圖形模式的一種類似文本編輯器的運行命令的環境。在遠程登陸控制或是操作沒有圖形環境的Linux系統時,控制台命令就有很大的用途了,建議大家一定要 ...


Linux常用命令

一、控制台相關命令

控制台命令就是指通過字元界面輸入的可以操作系統的命令。我們現在要瞭解的是基於Linux操作系統的基本控制台命令。不同於圖形模式的一種類似文本編輯器的運行命令的環境。在遠程登陸控制或是操作沒有圖形環境的Linux系統時,控制台命令就有很大的用途了,建議大家一定要熟練掌握控制台模式下的命令操作,這樣不管是否是在Linux系統的圖形環境中操作,我們都可以完成指定的任務。有一點請註意,Linux的命令(也包括文件名等等)對大小寫是敏感的,如“Abc”和“abc”會被認為是不一樣的。如果輸入的命令大小寫不對的話,系統是不會做出你期望的響應的。

下麵先給大家介紹幾個與控制台命令相關的命令,如下所示:

login   登陸控制台

exit    退出控制台

reboot  重啟電腦

shutdown 關閉電腦

clear   清除屏幕信息

echo    顯示信息

man     參考命令

1、註冊和退出系統

       當用戶以不同的身份登陸控制台時,首先要使用login命令,這是一個用戶向系統註冊的過程。若用戶通過身份驗證,login進程會把用戶的home目錄設置成當前目錄並把控制權交給一系列setup程式。setup程式可以是指定的應用程式,通常setup程式為一個Shell程式,如:/bin/sh, 即Bourne Shell(關於Shell程式的概念,請讀者參閱本書第五章內容)。用戶得到控制權後,Shell程式讀取並執行文件/etc/.profile以及.profile。這兩個文件分別建立了系統範圍內的和 該用戶自己的工作環境。

最後Shell顯示命令提示符,如“ You can't use 'macro parameter character #' in math mode”,若是以root用戶登陸,顯示命令提示符為“#”)

1)註冊

用戶登陸後,用戶命令同電腦交互的關係為:命令進程--->Shell程式--->UNIX內核--->電腦硬體。當用戶輸入一個命令,如$ls, Shell將定位其可執行文件/bin/ls並把其傳遞給內核執行。內核產生一個新的子進程調用並執行/bin/ls。 當程式執行完畢後,內核取消該子進程並把控制交給其父進程,即Shell程式。例如執行:

login:

作為系統管理員,第一次進入系統可能需要以超級用戶的身份進入,和NT系統中Administrators身份對應的linux帳號是root(這也是一般類Linux系統中常見的系統管理員身份)。在login:後面輸入“root”,然後回車,系統提示:

Password:

按照系統管理員安裝系統時設置的密碼輸入,然後直接回車後,管理員將成功登錄,系統提示:

[root@linux /root]#

符號“@”前面的自然是登陸時的帳號身份,之後的是主機名,可能根據主機的名稱不同而不同。/root是登陸用戶的主目錄,它既是賬戶配置文件所在的地方,也是每次登錄後所在的目錄,受到系統保護的私人領地——當然,前提是只有你自己擁有root許可權:)。

2 )退出系統exit命令

當用戶需要退出Shell命令的控制台時,我們可以使用exit命令來實現.當用戶在命令提示符號後直接執行exit命令時, 內核把用戶的控制權交給init程式, 用戶將退出當前的Shell環境,例如執行:

[root@linux /root]# exit

有些用:

[root@linux /root]# logout

3)重啟和關閉系統

(1)reboot 命令

reboot 命令用於 Linux 系統的重新啟動,具體使用方法如下

 語法:reboot [-選項] [參數]
 
 參數:

-d: 重新開機時不把數據寫入記錄文件/var/tmp/wtmp。本參數具有“-n”參數的效果。

-f: 強制重新開機,不調用shutdown指令的功能。

-w: 僅做測試,並不真的將系統重新開機,只會把重開機的數據寫入/var/log目錄下的wtmp記錄文件。

舉例:

 # reboot  
(2)halt命令

【語法】halt [選項]

【詳解】halt用於關閉電腦。但它關機前會把信息寫入到“/var/log/wtmp”中。halt命令和shutdown命令大同小異。

【選項】

-w 在“/var/log/wtmp”中寫入信息,但不關機

-d 關閉電腦,且不在“/var/log/wtmp”寫入信息

-f 強制關機

-p 關閉電腦且關閉電源

例:用halt關閉電腦,且不在“/var/log/wtmp”寫入信息。

[root@linux /root]#halt  -d

(3) shutdown 命令
   shutdown 命令用於關閉 Linux 系統, 將系統帶到可以關閉電源的安全點。具體使用方法如下:
 
  語法:shutdown [選項] 時間 [警告]  
 
  參數:

-t n: 在向進程發出警告信號和殺掉信號之間等待n秒。

-h 2:關閉後停機。

-k:不真正關閉系統,只向每人發送警告信息。

-r:關閉後重新啟動。

-n:在重新啟動和停機之前不作磁碟同步。

-f:快速重新啟動,重新啟動時不檢查所有文件系統。

-c:取消已經運行的關閉命令。在本選項中,不能給出時間變數,但可以在命令行輸入一個說明信息傳給每個用戶。

舉例:

#shutdown –h now

#shutdown –k now

#showdown –r now

2、修改口令

passwd

例:

liu@liu-virtual-machine:$  passwd

3、良好的保密

一般來說,在人離機時應退出系統,來保證不讓其他人看到自己的文件,我們可以鎖住終端會話,也可退出系統。

1.鎖住終端會話(vlock)

如果人離開一會可採用鎖住終端會話。

例:

liu@liu-virtual-machine:$ vlock

二、目錄操作命令

大家可能還知道在很早的Dos系統下,有一些對目錄操作的命令,例如cd、md (mkdir)、rd (rmdir)等等。而Linux 系統下的一些命令,和dos命令其實很相似,甚至拼寫和功能都一樣。下麵就介紹一些在Linux 系統下對目錄操作要使用的命令:

  cd      改變當前工作目錄

  pwd     顯示工作的路徑

  mkdir   建立目錄

  rmdir   刪除目錄

1、cd 命令

cd 命令, 用於改變當前工作目錄,和Dos命令下的cd名命令用途一樣,用於工作目錄之間的切換,格式如下:

(1)語法: cd 目錄名

(2)對象: 上面語法的對象為目錄名,即改變到選定的目錄名。如果沒有指定目錄,就返回用戶主目錄。

(3)舉例:

#cd  /var/log

#cd  /usr/local/apache

#cd  /root/sysadm/conf

(4)說明: 第一行命令所代表的功能是使用cd命令,切換到對象為 /var/log的目錄下,第二、三行命令功能是分別切換到對象為 /usr/local/apache和 /root/sysadm/conf 的目錄中去。

    提示:

   直接在命令行中輸入cd命令而不加任何參數,可以馬上回到用戶的主目錄(home),這與DOS中cd命令顯示當前路徑不同,請一定註意。在Linux中,很多與用戶自身相關的配置文件、屬於自己的文檔、程式、腳本和安裝包等東東都存放在用戶自己的home目錄中,這個目錄就相當於Microsoft Windows中的“我的文檔”。所以能用cd命令直接“回家”,真的是很方便。

2、pwd 命令

pwd 命令,用於顯示當前工作的目錄路徑,當用戶操作時,不知道目前處於什麼目錄下,可以使用這個命令來查看當前的目錄路徑。格式如下:

(1)語法: pwd

(2)舉例:

#pwd 

/home/oracle

(3)說明: 第一行為運行的命令,第二行的內容為運行 pwd 命令後顯示的信息,即指用戶當前所在的工作目錄或目錄的路徑為:/home/oracle

提示:

   應該經常使用pwd命令。Linux的目錄結構非常複雜,一個小小的分支就可能會有十幾層目錄,就好像是個森林,所以Linux不會像Windows那樣把全路徑寫在提示符里,那樣太長了。在目錄用cd鑽來鑽去,很容易記不清自己到底身在何處。這時候執行命令可是有點危險的,例如在一個下目錄想刪除一個文件,不搞清楚當前目錄,可能會誤刪除同名的有用文件的,而且沒那麼容易恢復。尤其是在做“rm –rf”這種對目錄直接刪除的操作,更需要用pwd確定一下。還有很多其他的情況需要使用pwd,可能每執行十幾個命令就會敲一回。我們都來感謝Jim Meyering先生吧,他是pwd的創作者。

3、 mkdir 命令

mkdir 命令的功能是用來在 Linux 系統中建立目錄,格式如下:

(1)語法: mkdir 目錄名

  mkdir [-選項] [參數] 目錄名

(2)參數:

-m :  在建立目錄時把按模式指定設置目錄許可權。

-p :  建立所有不存在父目錄的目錄。

(3) 對象: 對象為目錄名,目錄名即指要建立的目錄名稱。

(4) 舉例:

#mkdir  oracle

#mkdir -m 755 log

#mkdir -p /tmp/var/logs 

 (5)說明:  第一行命令建立一個名為oralce的目錄;第二行命令建立一個log目錄,並授予755許可權(關於許可權的概念會在後面的內容介紹);第三行命令會在/tmp分區下建立var目錄,併在var目錄下在建立一個 logs目錄。

[應用實例:快速建立多級目錄]

 請註意上面介紹的mkdir命令的–p 參數,在某些時候可能會大大減化我們的操作。例如用戶想在當前目錄中創建node/xyd/logs/www目錄的時候,如果現在連node目錄都沒有,我們本來是需要輸入4次mkdir來逐級向下創建的,不過現在用-p參數就方便多了:

#mkdir –p   node/xyd/logs/www

  不管三七二十一,就去建吧!現在一條命令就搞定了。p 是 parent,上一級目錄的意思。

4、rmdir 命令

rmdir 命令的功能是刪除系統中的目錄,具體格式如下:

(1)語法:rmdir 目錄

rmdir [-選項] [參數] 目錄

(2)參數:

-p: 在刪除指定的目錄後,若父目錄為空,則rmdir也刪除父目錄。

  (3) 對象: 對象為目錄,目錄即指要刪除的目錄名稱或目錄列表。

(4)例如:

#rmdir     /zhang/log

#rmdir  –p  /zhang/log

#rmdir     /zhang/log /zhang/log2

(5) 說明: 第一行命令功能刪除/zhang目錄下的log目錄,要註意log目錄為空目錄(後面介紹的rm命令可以刪除非空目錄);第二行命令功能刪除/zhang目錄下的log目錄,並刪除/zhang目錄;第三行命令功能刪除/zhang目錄下的log目錄,並刪除/zhang目錄下的log2目錄。

提示:

rmdir可以刪除的是非空目錄,被刪的目錄下不能有文件或子目錄。如果只是有子目錄存在,還可以用-p來刪除;如果含有文件,那-p參數也無能為力了。只有使用“rm –rf”大法,連根拔起。後面會有介紹。

三、文件操作命令

上面主要講的是在Linux系統中對目錄的操作命令,下麵主要介紹一些常用的文件操作命令。掌握這些基本命令的操作,就可以對Linux系統中的各種文件進行查看、編輯、修改、複製、移動、刪除、建立等操作,這些命令如下所示:

ls     顯示目錄和文件          

rm     刪除文件

touch  建立文本文件          

cp     拷貝文件

cat    顯示文本內容           

mv     移動文件

more   按頁顯示文件內容   

ln     鏈接文件

less   按頁顯示文件內容    

find   查找文件

head   從前顯示文件內容   

file   查看文件類型

tail   從後顯示文件內容

1、ls 命令

ls 命令用於顯示文件(包括目錄)的列表,及每個文件的詳細信息,包括文件的大小、屬組、屬主、讀寫執行許可權、創建日期等信息。具體格式如下:

(1)    語法:ls [-選項] [參數] 文件

(2)    參數:

-a:顯示所有文件,包括當前目錄和父目錄。

-c:按列輸出,縱向排序。

-x:按列輸出,橫向排序。

-d:將每一條都當作一個目錄。

-l:給出長表。長表顯示文件的詳細內容,如:文件類型許可權,連接或目錄計數,所有者,組,按位元組文件大小,文件的最近修改時間和文件名。

-t:按最後修改的時間排序,用-l標誌一起使用。

-u:按最後訪問的時間排序,用-l標誌一起使用。

-c:按i節點信息最後修改的時間排序,用-l標誌一起使用。

-r:反向排序。

-i:在第一列顯示文件的i節點數。

-F:將/放在目錄輸入後,*放在可執行程式後,@放在符號連接後,!放在FIFO後,=放在套接文件後,正規文件後什麼也不放。文件列表:用ls要處理的文件列表,可以使用通配符。

註意:

文件類型有:

-:常規文件

d:目錄 

b:塊設備特殊(磁碟)

c:字元特殊設備(終端)

p:有名管道

s:信號燈 

m:共用存儲器

(3)對象:上面語法中的文件是ls命令執行的對象,這裡指的文件可以是單個文件、文件列表(多個文件)或者是目錄。

(4)舉例:

#cd /home

#ls –al

drwxr-xr-x  4 root    root   4096  Jan 30 21:47  .

drwxr-xr-x 20 root    root   4096  May 16 06:45  ..

drwx------  5 install install 4096  Mar 18 15:48 install

drwxr-xr-x  2 oracle  oracle  4096  Dec 19 18:36 oracle

(5)說明:上面舉的例子中第一行命令代表切換到/home目錄下;第二行命令代表顯示/home目錄下所有文件和目錄的詳息;第三至六行是第二行命令運行後顯示的信息。下麵以這段信息的最後一行說明每一段內容的含義:

最後一行顯示的信息:

drwxr-xr-x  2 oracle  oracle  4096  Dec 19 18:36 oracle

這行信息分為8個區域,每個區域的含義如下:

drwxr-xr-x:第一個符號指示文件類型,減號為普通文件,d則表示為目錄類型。接下來的九個字元分成三組,分別表示屬主、組員和其它用戶的存取權;每組有三種存取權:r代表讀(Read)許可權、w代表寫(Write)許可權和x代表執行(Execute)許可權。而沒有存取權的相應位置則會出現減號(-)代替。

2 :代表oracle目錄下還有兩個目錄,包括隱含目錄,註意不包括目錄下的文件個數。

oracle(左):代表oracle目錄的屬主為oracle用戶。

oracle(中):代表oracle目錄的屬組為oracle用戶組。

oracle(後):即在/home目錄下有一個oracle目錄。

4096 :  代表當前目錄或文件的大小,即4096 byte=4 k

Dec 19  : 代表目錄創建於12月19日

18:36   : 代表目錄創建於18時36分

【應用實例:“ls –a”查出黑客程式】

   當系統被侵入並植入後門時,黑客一般為了隱藏,會把文件名前加上一個“.”,這些文件在系統中預設是不顯示的。但是 ls 的 –a 參數可以讓它們無處藏身。我們運行下命令:

#cd /home/xyd

#ls

hosts  tmplogs  vnc-3.3.7-x86_linux.tar

上面一行顯示的這三個文件都是比較正常的文件,再執行ls –a:

  .   .bash_history  .bash_profile  .emacs  hosts    vnc-3.3.7-x86_linux.tar ..  .bash_logout   .bashrc      .gtkrc  tmplogs  .start.sh

   註意最後一個文件.start.sh,通常系統中是不會有這種腳本存在的。我們再使用cat或者more,就可以從內容判斷此文件是否是黑客的腳本文件。 

技巧:

我們進入一個陌生的房間後,總是會掃視一下房間內的傢具擺設。在Linux中ls就是用戶的眼睛,我們使用cd進入了某個目錄後,一般都會下意識地“ls”一下,“定睛一看”。關於ls的技巧就太多了,現在我們為大家整理出常用的幾種。

註意管道符“|”的運用,會使ls的功能大大增強。實際上“|”在與其他很多命令的配合上都很有效,我們可以自由地發揮創造力。“|”體現了Linux(也是Unix)的魅力。將目錄下的文件按照大小排序。利用了sort命令,命令行如下:

#ls -l | sort -n -k5

有時我們在有很多文件的目錄下工作,如/dev,通常會有7、8千個設備文件存在,這時如果ls一下,屏幕會向上翻個不停,只剩下最後一屏文件顯示出來,而ls又沒有分屏顯示的參數,像DOS中的“dir /p”那樣的。這時我們又可以藉助“|”了,把結果交給more或less顯示,命令行下:

#ls /dev | more  

#ls /dev | less  

兩個命令都會一屏一屏地顯示結果,而且less還可以往回翻頁。在/dev這樣的目錄,我們還會有這樣的問題,這個目錄中到底有多少個文件呢?可以用wc,統計命令來幫助我們。

#ls /dev | wc -w

7519

屏幕中的7519就是文件的數目。

ls還可以與grep配合,組合出其他很有用的命令,請參看grep部分。

2、touch 命令

touch 命令是用於改變文件的時間戳,也可以用於創建新文件。而建立文件後,其內容的添加一般使用vi編輯器(vi編輯器的詳細使用方法會在下一章給大家詳細介紹),touch 命令具體格式如下:

(1)語法:touch  文件

-a :修改文件的存取時間.

-c :不創建文件

-m :修改文件

-r ref_file:將參照文件 ref_file 相應的時間戳記的數值作為指定文件 file 時間戳記的新值.

-t time:使用指定的時間值 time 作為指定文件相應時間戳記的新值。此處的 time 規定為如下形式的十進位數∶

[[CC]YY]MMDDhhmm[.SS]

(2)對象:對象為文件,即指要改變或建立的文件名稱或文件列表。

(3) 舉例:

#touch text 

#touch text1 text2 test3

(4)說明:第一行命令的功能是改變text的時間戳到當前的時間或當無此文件時創建之,第二行命令的功能是同時對text1、text2、text3 三個文件進行同樣的操作。

3、cat 命令

cat 命令一般用來顯示文本文件中的內容,具體格式如下所示: 

(1)語法:cat [-選項] [參數] 文件

(2)參數: -b:計算所有非空輸出行,開始為1。

-e:相當於-vE。

-n:計算所有輸出行,開始為1。

-s:將相連的多個空行用單一空行代替。

-t:相當於-vT。

-u:忽略;為UNIX相容產品而使用。

-V:顯示除LFD和TAB以外的所有控制符,使用^作標誌併在高位置的字元前放M-。

-A:相當於-vET。

-:E在每行末尾顯示#符號。

-T:用^I顯示TAB符號。

(3)對象:上面的語法中的對象為文件,如果沒有指定文件或連字型大小(-),就從標準輸入讀取。

技巧:

cat還可以用來做一些常用的文件操作。cat的結果會顯示到標準輸出,也就是屏幕上來。如果我們用重定向符“>”、“>>”把結果輸出到文件中去,會有什麼效果呢?我們來看看下麵的一些命令行:

#cat hosts > hosts.old

用hosts的內容代替hosts.old文件的內容。如果hosts.old不存在,則一個新文件會被創建。

#cat hosts >> hosts.old

把hosts文件的內容加到hosts.old的末尾,使兩個文件合為一個。

#cat hosts1 hosts2 hosts3 > hosts.new

hosts.new是一個新文件,cat命令把hosts1、hosts2、hosts3的內容依次連接起來,並生成一個新的hosts.new文件。

4、more 和 less 命令

1.more 命令

是 Linux 系統中經常用到的命令,它的主要功能是可以按頁顯示文件及內容,如果一個文本文件的內容很多,可以用 more 命令來分頁查看文件中的內容,具體語法格式如下:

(1)語法:more [-選項] [參數] 文件名

(2)參數:

-n: n是整數,用於建立大小為n行長的視窗。視窗大小是在屏幕上顯示多少行。

-c: 用more給文本翻頁時通過從頭清除一行,然後再在最後寫下一行的辦法寫入。通常,more清除屏幕,再寫每一行。

-d: 顯示 “Press space to cpntinue, ‘q’ quit”代替more的預設提示符。

-f: 計算邏輯行代替屏幕行。長行在屏幕上換行顯示,通常被more計算為新的一行;-f標誌對長行的換行顯示不計數。

-s: 多個空行壓縮處理為一個。

-p: 不滾屏,代替它的是清屏並顯示文本。

-u: 禁止加下劃線。

(3)對象:對象為文件名,即希望用more顯示文件內容的文件。

(4)舉例:

#more  /etc/httpd/conf/httpd.conf

#more –20 /etc/httpd/conf/httpd.conf

#more –s  /etc/httpd/conf/httpd.conf

2.less 命令

類似 more 命令,它的主要功能也是可以按頁顯示文件及內容,並允許在文件中向前和向後移動,其具體語法格式如下:

(1)語法:less [-選項] [參數]  文件名

(2)參數:

 -?:本選項顯示less接收的命令小結。若給出本選項則忽略其他選項,less保留併在幫助屏後顯示。
 
 -a:在當前屏幕顯示的最後一行之後開始查詢。
 
 -c:從頂行向下全屏重寫。

  -C:象-c,但在寫之前清屏。

-e:第二次到文件尾後自動退出less。若預設,唯一退出less的方式是通過q命令。

 -E:第一次到文件尾後自動退出less。
 
 -i:區分大小寫查詢。
 
 -n:去掉行號。
 
 -q:產生相對安靜的操作。當試圖向文件尾之後或文件頭之前滾動時,終端鈴不響;在產生其他錯誤時,如鍵入非法字元,終端鈴響。
 
 -Q:產生完全安靜的操作。
 
 -s:將多個空行壓縮成一個空行。
 
 -x n:每次按製表符走n格,n的預設值是8。

(3)對象:對象為文件名,即希望用less顯示文件內容的文件。

(4)舉例:

#less  /etc/httpd/conf/httpd.conf

#less –s  /etc/httpd/conf/httpd.conf

技巧:

前面的內容已經提示了,我們不但可以用more和less顯示文本文件的內容,而且可以把那些輸出到標準輸出(屏幕)上的信息都通過管道符放到more和less中來顯示,這樣所有的命令就都有分屏顯示功能了!如下下麵的命令:

#find / -name *sh | more

#ls -l /var/named | less

#ps aux | more

5、head 和 tail 命令

1.head 命令

主要功能是從前顯示文件內容,具體格式如下:

語法:  head  文件名

head –n  文件名

   (2)參數:

-n:    從文件開始數第n行之間的文件內容。

對象:  對象為文件,即希望查看文件內容的文件名。若對象為空,則使用標準輸入。

(4) 舉例:

#head  /var/log/message

#head –50 /var/log/message

[ 應用實例:head] 

我們在某些時候,會需要知道系統在啟動時的排在前幾個的進程還有哪些在活動,就可以使用head:

 # ps aux | head 

這時系統就會把排位前10的進程列出,正是我們需要的。

  1. tail 命令

主要功能是從後顯示文件及內容,具體格式如下:

(1)語法: tail –f  文件名

                  tail –n  文件名

(2)參數:

-f:    若用此選項而輸入不是標準輸入,tail監控文件增長。這是無限迴圈輸出,必須用中斷鍵中止。

-n:    從文件末尾倒數第n行開始觀察文件。以行為單位的偏移量文件中開始觀察的位置。如果以-開頭,則從文件尾開始算;以+開關,從文件開始算。

對象: 對象為文件,即希望查看文件內容的文件名。若對象為空,則使用標準輸入。

(4) 舉例:

#tail –f  /www/log/access.log

#tail –50 /var/log/messages

[ 應用實例:tail] 

  我們在調試某些服務的時候,需要在過程中不斷地查看系統日誌給出的信息,來幫助修改。如調試named服務的時候,錯誤信息都會加到/var/log/messages的末尾去。實際上系統中大部分日誌都儲存在這個文件里。這時我們可以用cat、more、less等工具來顯示,但messages文件有幾千行內容是很平常的事情,用這些工具可能需要翻屏一二百屏,才能到最後我們想看的內容,這樣的效率非常低下。而使用tail是恰到好處的。如下麵的命令行:
 
 # tail /var/log/messages  
 
    我們做一次named.conf文件的修改,啟動named進程,馬上就可以tail一下messages文件,看一看剛剛在named啟動時發生了什麼事情。反覆查看反覆修改,直至最後找出問題。

6、rm 命令

rm 命令的功能是刪除文件,是 Linux 系統不可缺少的常用的基本命令,其具體格式如下所示:

   (1)語法:rm  [-選項] [參數]  文件

 (2)參數:

-r: 刪除文件列表中指定的目錄,若不用此標誌則不刪除目錄。

-i: 指定交互模式。在執行刪除前提示確認。任何以Y開始的響應都表示肯定;其他則表示否定。

-f: 指定強行刪除模式。通常,在刪除文件許可權可滿足時rm提示。本標誌強迫刪除,不用提示。

-V: 詳細模式。在刪除前回顯文件名。

--: 指明所有選項結束。用於刪除一個文件名與某一選項相同的文件。例如:假定偶然建立了名為-f的文件,又打算刪除它,命令rm –f不起任何作用,因為f被解釋成標誌而不是文件名;而命令rm -- -f能成功地刪除文件。

(3)對象:上面語法中的文件是rm命令執行的對象,這裡指的文件可以是單個文件、文件列表(多個文件)或者是目錄。

舉例:

#rm –rf /tmp/*

#rm  /tmp/abc.log

提示:

在Linux中我們可以利用alias別名把rm轉為了rm –i,比如:

#alias rm = ‘rm –i‘

這樣我們在刪除文件和目錄時系統就會提示一下,確認之後再刪,提高了刪除操作的安全性。但註意如果加了“-f”選項的話,rm還是會問也不問,直接刪除的。

7、cp 命令

cp 命令類似Dos命令中的copy命令,用於文件及目錄之間的複製,其具體格式如下:

(1)語法 :cp [選項] 源文件   目標文件

cp [選項] 源文件組  目標目錄

(2)參數:

-a: 在備份中保持儘可能多的源文件結構和屬性。

-b: 作將要覆蓋或刪除文件的備份。

-d: 將符號連接作為符號連接拷貝,而不拷貝它們所指的文件。併在備份中保持源文件間固有的連接關係

-f: 刪除已存在的目標文件。

-i: 提示是否覆蓋已存在的目標文件。

-l: 形成固有連接以代替非目錄的拷貝。

-P: 通過加入目標目錄分支和指定的源文件名形成每個目標文件名。給cp的最後一個變數必須是已存在的目錄的名字。

-p: 保持原先文件的所有者,組,許可權和時間標誌。

-r: 遞歸拷貝目錄,把所有非目錄文件當普通文件拷貝。

-s: 建立符號連接,代替非目錄文件的拷貝。如果目標文件不在當前目錄,所有的源文件名必須是絕對路徑(從‘/’開始)。對不支持符號連接的系統,本選項將產生一個錯誤信息。

-u: 更新選項。目標是非目錄自己經存在並具有相同的或更新的修改時間,則不拷貝。

-v: 在拷貝前列印每個文件名。

-x: 從開始拷貝的文件開始,跳過在不同文件系統上的子目錄。

-R: 遞歸拷貝目錄。

-S: 用於產生備份文件的尾碼。可以SIMPLE_BACKUP_SUFFIX環境變數建立,它能被此選項繞過。若以上都未給出,預設值是~。

(3)對象:

源文件 : 要拷貝的文件。

目標文件:文件名。也可以是目錄名,這種情況下,源文件名作為目標文件名,而文件放在該目錄下。

源文件組:要拷貝文件的由空格分隔的列表。

目標目錄:目標目錄。

(4)舉例:

#cp  /home/oracle  /root

#cp –R /home/oracle /root

#cp –r /home/*    /tmp

8、mv 命令

mv 命令的功能為移動文件(包括目錄),如果在同一目錄進行此操作,則是對相應對象進行改名。具體格式如下:

(1)語法:   mv [-f] [-i] 文件1 文件2 ……

  mv [-f] [-i] 目錄1 目錄2 ……
 
  mv [-f] [-i] 文件列表 目錄

   (2)參數:

-f: 通常目標文件存在且沒有寫權,mv會提示信息。本選項使mv執行移動而不作提示。

-i: 交互模式,在改寫文件前提示。

-R:  遞歸移動目錄。註意需要移動子目錄時一定要加上

(3)對象:

 文件1:源文件名。
 
 文件2:目標文件名(新文件名)。
 
 目錄1:源目錄名。
 
 目錄2:目標目錄名(新目錄名)。
 
 目錄 :目標目錄。
 
 文件列表:用空格分隔的文件名列表。用於文件保持它們的名字但移到一個新目錄。

(4)舉例:

#mv  /tmp/abc.log   /home/oracle

#mv  -R  /home/test  /home    

#mv  /home/yani/.  /tmp 

9、ln 命令

ln 命令的功能主要是鏈接文件,其具體格式如下:

(1)語法: ln [-選項] [參數] 文件1 文件2

(2)參數:

  -f :  鏈結時先將與 dist 同檔名的檔案刪除

-d : 允許系統管理者硬鏈結自己的目錄

-i : 在刪除與 dist 同檔名的檔案時先進行詢問

-n : 在進行軟連結時,將 dist 視為一般的檔案

-s : 進行軟鏈結(symbolic link)

-v : 在連結之前顯示其檔名

-b : 將在鏈結時會被覆寫或刪除的檔案進行備份

-S SUFFIX: 將備份的檔案都加上 SUFFIX 的字尾

-V METHOD: 指定備份的方式

--help : 顯示輔助說明

--version: 顯示版本

(3)對象:

文件1 : 指源文件或目錄

文件2 : 指生成的連接文件或目錄

(4)舉例:

#ln -s yy zz

說明: 上面一行命令的結果是ln命令將文件 yy 鏈接,並產生一個鏈接文件 zz。

10、find 命令

find 命令是Linux系統中非常重要的一個命令,它的主要功能是用來查找文件或目錄。其具體格式如下:

(1)語法:find  [-選項] [參數] 文件 匹配標準  

(2)參數:

  -name文件: 告訴find要找什麼文件;要找的文件包括在引號中,可以使用通配符(*和?)

-perm模式: 匹配所有模式為指定數字型模式值的文件。不僅僅是讀,寫和執行,所有模式都必須匹配。如果在模式前是負號(-),表示採用除這個模式的所有模式。

-type x:   匹配所有類型為x的文件。x是c(字元特殊),b(塊特殊),d(目錄),p(有名管道),l(符號連接),s(套接文件)或f(一般文件)。

-links n:  匹配所有連接數為n的文件。

-size n:  匹配所有大小為n 塊的文件(512位元組塊,若k在n後,則為1K位元組塊)。

    -user用戶號:匹配所有用戶序列號是前面所指定的用戶序列號的文件,可以是數字型的值或用戶登錄名。

-atime n: 匹配所有在前n天內訪問過的文件。

-ctime n: 匹配所有在前n天內文件狀態被修改過的文件。

-mtime n:  匹配所有在前n天內文件數據被修改過的文件。

-exec命令:對每個匹配文件執行指定命令,標誌{}用於指定命令執行時文件名出現的地方。命令必須終止於轉義分號( ;)。 這裡,命令ls用-d變元執行,每個文件在發現{}的地方傳給ls。

-newer文件:匹配所有修改時間比file文件更新的文件。

(3)對象:

文件: 上面語法中的文件是find命令執行的對象,這裡指的文件希望查詢的單個文件、文件列表(多個文件)或者是目錄。

匹配標準: 希望查詢的文件的匹配標準或說明。

(4)舉例:(root許可權)

#find /home  -name admin  

#find / -ctime  3

(5)說明: 第一行命令實現在/home目錄下查找admin的文件或目錄;第二行命令實現在/ 目錄下查找前三天修改過的文件或目錄。

11、 file 命令

file 命令是查看文件類型的命令,具體格式如下:

(1)語法:file  [-選項] [參數] 文件

(2)參數:

-c: 列印輸出幻數文件的分析形式。這通常用於與-m聯合使用。在安裝一個新的幻數文件之前調試它。

-z: 深入觀察一個壓縮文件,並試圖查出它的類型。

-L: 本選項允許符號連接。

-m文件: 指定用於說明文件類型的幻數的一個替換文件。

(3)對象: 上面語法中的文件是file命令執行的對象,這裡指的文件是希望查詢文件類型的單個文件、文件列表(多個文件)或者是目錄,甚至目錄列表。

(4)舉例:

#file  /var/log/message

#file  /var/log  /var/log1 /var/log2

#file –z /home/yani/apache1.3.2.tar.gz

四、屬性與許可權命令

   在 Linux 系統中,每個文件和目錄都有自己的屬性和存取許可權,這樣一來,通過屬性的設置,就可以決定不同用戶或組之間的文件授權的訪問。而文件許可權可以決定哪些用戶可以讀、寫或者執行一個文件。下麵這節中的內容屬要是介紹在 Linux 系統中改變目錄文件屬性與許可權的命令。

屬性與許可權命令如下所示:

chown    改變屬主

chgrp     改變屬組

chmod    改變或設置文件或目錄的存取許可權

umask    設置限制新文件許可權的掩碼

1、chown 命令

(change owner) ——改變文件(或目錄)的擁有者或所屬組

格式:chown 用戶名 文件或目錄名

例如:

[root @wl /root]#chown wl chap1.txt

把文件chap1.txt的擁有者改為wl用戶。

[root @wl /root]#chown wl:root chap1.txt

把chap1.txt文件的擁有者改為wl用戶,同時文件的所屬組改為root組。

2、chgrp 命令

chgrp (change group)   &mdas

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 0. 前言 繼續之前的C IO流,在前幾篇小短片中我們大概看了下C 的基礎IO也對文件、目錄和路徑的操作有了一定的瞭解。這一篇開始,給大家演示一下流的各種操作。以文件流為例,一起來看看如何操作吧。 註:之前更新了一篇《Spring Cloud 實戰日記》,這是一個新的系列,有興趣的小伙伴可以從我的賬 ...
  • 《ASP.NET MVC 5 網站開發之美》 [作者] (台) demo (台) 小朱 (台) 陳傳興 (台) 王育民 (台) 陳仕傑[出版] 清華大學出版社[版次] 2015年09月 第1版[印次] 2017年03月 第2次 印刷[定價] 128.00元 【第01章】 (P004) 目前網頁前端技 ...
  • 不知道何時開始,很多程式員喜歡用ToLower,ToUpper去實現忽略大小寫模式的字元串相等性比較,有可能這個習慣是從別的語言引進的,大膽猜測下是JS,為了不引起爭論,我指的JS是技師的意思~ 一:背景 1. 講故事 在我們一個訂單聚合系統中,每一筆訂單都會標註來源,比如JD,Taobao,Eta ...
  • 本教程說明如何使用OWIN自托管Web API框架,在控制台應用程式中托管ASP.NET Web API。 .NET開放Web界面(OWIN)定義了.NET Web伺服器和Web應用程式之間的抽象。OWIN將Web應用程式與伺服器分離,這使OWIN成為在IIS之外以自己的進程自托管Web應用程式的理 ...
  • UWP已經有好幾個Bilibili的客戶端,最近又多了一個: "嗶哩 Microsoft Store" 作者雲之幻是一位很擅長設計的UWP開發者,我也從他那裡學到了很多設計方面的技巧。它還是一位Bilibili的Up主,主打PowerPoint和UWP教學。 "雲之幻的個人空間 嗶哩嗶哩 ( ゜ ゜ ...
  • using System; using System.Collections.Generic; using System.IO.Ports; using System.Text; //串口通訊類 public class SerialPortManager { //聲明一個靜態的串口資源 priva ...
  • 在資料庫的數據日積月累的積累下,業務資料庫中的單表數據想必也越來越大,大到百萬、千萬、甚至上億級別的數據,這個時候就很有必要進行資料庫讀寫分離、以及單表分多表進行存儲,提高性能 ...
  • 更安全的rm命令,保護重要數據 網上流傳的安全的rm,幾乎都是提供一個rm的"垃圾"回收站,在伺服器環境上來說,這實非良方。 我想,提供一個安全的rm去保護一些重要的文件或目錄不被刪除,避免出現重要數據誤刪的悲劇,或許才是更佳方案。 我寫了一個腳本:https://github.com/malong ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...