Linux下的常用命令

GeekWay發表於2012-03-13

Linux下的常用命令

 

一、檔案處理命令

1. 顯示目錄檔案

命令名稱:ls

英文名稱原意:list

命令所在路徑:/bin/ls

執行許可權:所有使用者

功能描述:顯示目錄檔案

語法:ls  選項[-ald] [檔案或目錄]

    -a  顯示所有檔案,包括隱藏檔案

   -l 詳細資訊顯示

   -d  檢視目錄屬性

ls -a 

ls -l

ls -a /tmp

拓:當檢視ls其他的選項時,可以利用命令:ls --help 列出ls命令的選項,--help也適用於其他命令。

注:3個選項可以組合使用,如:ls -ld  / (其中-ld可以互換)

顏色表示:(每種版本也不相同)

黑色: 二進位制標記

(其他後補)

再怎麼把顏色去掉

 

————————————————

輸入後顯示的資訊

ls -l /

 drwxr-xr-x  2  root   root  4096  2012-02-22 03:21  bin

顯示

d

rwx

r-x

r-x

2

root

root

4096

2012-02-22 03:21

bin

示意

檔案型別

U

G

O

硬連線數

所有者

所屬組

檔案大小(不精確)

時間

檔名

d

4種檔案型別:

d:目錄 directory

-:普通檔案

b:塊裝置檔案

l:軟連結檔案link

rwx

3種基本許可權

r:read 讀許可權 ——

w:write 寫許可權

x:execute 執行許可權

每一種代表了一類使用者

rwx:  ——所有者u:包括useronwer

r-x: ——所屬組g, group

r-x: ——其他人oOther

舉例:

 rwxr-xr-x

rwx     r-x   r-x     (即上面每三個分為一組)

所有者 u 所屬組 其他人o

user    g  other

owner 

所以三組的各個許可權就都知道了

————————————————

後面的數字:“2

硬連結:

4096: 檔案大小(不準確)表示建立或最後修改的時間     

解釋:每個檔案至少要佔用一個資料塊,資料塊是linux最小的資料存取單位,一個資料塊一般是512位元組,可調整大小,如果有很少的資料,則512位元組其他的空間就被浪費掉了。

2.切換目錄

命令名稱:cd

命令英文原意:change directory

功能描述:切換目錄

命令所在路徑:shell內建命令

執行許可權:所有使用者

語法:cd [目錄]

範例:$cd / 切換到根目錄

      $cd .. 回到上一級目錄

3.顯示當前工作目錄

命令名稱:pwd

命令英文原意:print working directory

功能描述:顯示當前所在的工作目錄

命令所在路徑:/bin/pwd

執行許可權:所有使用者

語法:pwd

範例:$pwd

4.建立新目錄

命令名稱:mkdir

命令英文原意:make directories

功能描述:建立新目錄

語法:mkdir [目錄名]

範例:$mkdir newdir

在根目錄下建立新目錄:$mkdir /newdir

在當前目錄下建立新目錄:$mkdir newdir

 

5.建立檔案

命令名稱:touch

命令英文原意:touch

功能描述:建立空檔案

執行許可權:所有使用者

命令所在路徑:/bin/touch

語法:touch 【檔名】

範例:#touch newfile  當前檔案下建立空檔案

 

6.複製

命令名稱:cp

命令英文原意:copy

功能描述:複製檔案或目錄

語法:

cp [原始檔] [目的目錄]

cp -R [原始檔或目錄] [目的目錄]

cp -R 複製目錄

 

注:如果複製時間太長,想終止複製,可用終止命令

中止命令:ctrl+c

7.剪下

命令名稱:mv

命令英文原意:move

功能描述:移動檔案,更名(dos下游rename命令,而linux沒有)

命令所在路徑:bin/mv

執行許可權:所有使用者

語法:mv [原始檔或目錄][目的目錄]

範例:$mv file1 file3  將當前目錄下檔案file1移動到file3

      $mv file1  dir1  

舉例:

mv services  service  services更名為service

mv text/textfile  /tmp   Text目錄下的textfile移動到tmp目錄中 

mv text/textfile  /tmp/filetext   移動的同時將名字也改變

8.刪除

rm

remove

/bin/rm

所用使用者

語法:rm -r [檔案或目錄]

          -r 刪除目錄

功能:刪除檔案

注:rmdir:  刪除“空目錄”,很少用到。

$rm file3  刪除檔案file3

$rm -r dir1  刪除目錄dir1  (注 1.-r不能省略,2.這種情況下,它會逐一問你該目錄下的所有檔案是否要被刪除,所以最常用到的命令是:$rm -rf dir1 強制刪除)

強制刪除檔案: $rm -f file1 (這樣可以沒有提示“刪除”的將檔案刪除掉)

 注:Ubuntu使用者預設情況下是沒有root許可權的,所以也就沒有許可權刪除檔案。如何在終端模式下切換到root身份?

sudo -s -H

Password: <在此輸入密碼>

關閉root的優點:

buntu預設是關閉root帳戶的,這樣做有如下優點:

起初Ubuntu團隊希望安裝儘可能的簡單,不使用root,在安裝期間的兩個使用者互動步驟可以省略。(科林·沃森)

更進一步, 如果在安裝中使用root,使用者將被要求永遠記住他們選擇的密碼--即使他們很少使用到它。Root密碼經常被對Unix安全模型不熟悉的使用者忘記。(馬特·齊默曼)

它防止了預設登入時“我能做任何事情”--在較大的變化發生之前,你將被提示輸入口令,這可以使你考慮你這樣做的結果。 如果你作為root登入,你可以刪除一些“沒用的資料夾”並且不會意識到你正處於錯誤的目錄,那時已經太晚了。它是在Unix下長時間使用“su-command-^D”練習的情況下,代替一直呆在root shell--除非你做嚴重的系統維護(那時你仍然可以使用 "sudo su")。(吉姆·奇塔姆 和 安德魯·索巴拉)

Sudo 增加了執行命令的日誌記錄(在/var/log/auth.log)。如果你陷入困境,你總是可以返回並看見那些執行的命令。(安德魯·Zbikowski

  

開啟root帳號的方法:

為了啟用root 帳號(也就是設定一個口令)使用:

sudo passwd root

當你使用完畢後遮蔽root帳號使用:

sudo passwd -l root

這個將鎖住root帳號。

如何在終端模式下切換到root身份?

sudo -s -H

Password: <在此輸入密碼>

 

第二節

9.1顯示檔案內容

命令名稱:cat

命令英文原意:concatenate and display files

功能描述:顯示檔案內容

命令所在路徑:/bin/cat

執行許可權:所有使用者

語法:cat [檔名]

範例:  $cat /etc/issue

$cat /etc/services

注:不適合顯示較大的檔案,否則都顯示出來時間很長,且不方便觀看(優化見後面命令)。

9.2 分頁顯示檔案

命令名稱:more

命令英文原意:more

功能描述:分頁顯示檔案內容,按回車換屏

檔案所在路徑:/bin/more

執行許可權:所有使用者

語法:more [檔名]

(空格)或f 顯示下一頁

Enter 顯示下一行

 qQ 退出

範例:  $more /etc/services

9.3 檢視檔案前幾行

命令名稱:head

命令英文原意:head

功能描述:檢視檔案前幾行

檔案所在路徑:/bin/head

執行許可權:所有使用者

語法: head -num [檔名]

-num:顯示檔案的前num

範例:$head -20 /etc/services

9.4 檢視檔案後幾行

命令名稱:tail

命令英文原意:tail

功能描述:檢視檔案後幾行

檔案所在路徑:/bin/tail

執行許可權:所有使用者

語法: tail -num [檔名]

    -num:顯示檔案的後num

    -f  :動態顯示檔案資訊

範例:$tail -20 /etc/services

10.產生連結檔案(注意區分軟硬連結檔案的不同)

命令名稱:ln

命令英文原意:link

功能描述:產生連結檔案,這裡相當與windows下的快捷方式,是符號連結

命令所在路徑:/bin/ln

執行許可權:所用使用者

語法: ln -s [原始檔][目標檔案]

  -s :建立軟連結

連結檔案有軟/硬兩種檔案

10.1

範例:ln -s /etc/issue  /issue.soft

ls -s   /etc/issue  /issue.soft

注:(1)所有的軟連結檔案許可權都是:lrwxrwxrwx,(注意“l”)即所有人都有許可權,這時會看到-->  這裡實際上操作的還是原始檔,操作原始檔時的許可權取決於原始檔的許可權

2)時間值:建立軟連線的時間,

10.2 產生硬連結檔案

不需要加“-s

ln /etc/issue /issue.head

ls /etc/issue /issue.head

執行後會發現檔案大小與原始檔相同,類似於windows下的copy,但不完全相同

硬連結:“cp+同步更新”,即更新一個另一個也更新,時間值也不相同,操作cp時兩個時間是相同的。相當於有個實時備份。

/硬連結的不同,刪除原始檔時,軟連結一無法使用,硬連結依然可以使用。

i結點的相關知識:

(核心不認識字母,只認識數字,所以每個檔案要有個檔案標識,即i結點,每個檔案必須有個i結點, ls -i

硬連結和原始檔有相同的i結點,只不過i結點有兩個對映,所以可是實現同步更新。

注:軟連線可以跨檔案系統生成,如/etc中的檔案可以在/tmp檔案系統中生成。硬連結不可以跨檔案系統,(“無效的跨裝置連結”)

==================================================================

二、許可權管理命令

1. 改變檔案目錄許可權

命令名稱:chmod 

命令英文原意:change the permissions mode of a file

功能描述:改變檔案或目錄許可權

命令所在路徑:/bin/chmod

執行許可權:所有使用者

語法:chmod [{ugo} {+-=} {rwx}] [檔案/目錄]

       [mode=421] [檔案/目錄]

chmod  u

g

o

u-所有者

g-所屬組

o-其他人

+:授權

-:去權

=:賦權

r:

w:

e:執行

所以:

chmod u+wx 

chmod o-rx

chmod g=rwx

如:

-rw-r--r-- 2 root root 0 12-01 23:11 a

[root@localhost test]# chmod u+x

[root@localhost test]# ls -la

-rwxr--r-- 2 root root 0 12-01 23:11 a

通過數字的方法進行授權:

r4100

w210

x11

許可權對應的數字:

rwxr-xr--

 7  5  4

rw-r-x--x

 6  5  1

數字對應的許可權

 7  5  2

rwxr-xx-w

RWX的深入理解:

代表字元

許可權

對檔案的含義

對目錄的含義

r

讀許可權

可以檢視檔案的內容

可以列出目錄中的內容

w

寫許可權

可以修改檔案

可以在目錄中建立、刪除檔案

x

執行許可權

可以執行檔案

可以進入目錄

各許可權下可用到的命令:

(下面是對“目錄”的操作)

r  -ls

w -touch  mkdir rm

x -cd (可以進入這個目錄,所以大部分的目錄是有x許可權的)

注:“檔案”有寫許可權時,只是可以修改檔案的內容,是不能刪除此檔案的,而如果你在“目錄”有寫許可權,那麼你可以對其裡面的檔案作建立、刪除操作。

2.改變檔案目錄所有者

命令名稱:chown

命令英文原意:change file ownership

命令所在路徑:/bin/chown

命令英文原意:改變檔案/目錄的所有者

語法:chown [使用者] [檔案/目錄]

範例:$chown user1 file1

改變檔案file1 的所有者為user1

:Linux環境下要有user1才可以使用,“nobody”是linux有的使用者,類似windows下的guest使用者。

$chown nobody  file1 (nobodyLinux自帶的使用者,類似於windowsguest

拓:

linux新增使用者:

usetadd zhangsan 新增使用者

passwd *** 設定密碼

3.改變檔案/目錄的所屬組

命令名稱:chgrp

命令英文原意:change  file group owership 

功能描述:改變檔案/目錄的所屬組

命令所在路徑:bin/chgrp

語法:chgrp [使用者組] [檔案/目錄]

範例:$chgrp adm file1

  改變檔案file1的所屬組為adm

3.

命令名稱:

命令英文原意:

功能描述:

命令所在路徑:

語法:

範例:

umask :檢視訪問許可權

範例:

1.

umask  

0022   

示意:“0022”是掩碼,

0

777

- 022

-----------------

755

各許可權是755

2.umask -S

u=rwx  g=rx o=rx

注:當touch一個檔案時是沒有x許可權的,即使有755許可權

將新建立的檔案改成750的方法:umask   750(×:錯誤)

umask 027

su -使用者名稱  :切換使用者

 

檢視目錄/檔案許可權;

umask

 預設許可權:

mkdir newdirtouch newfile  時沒有提示輸入目錄/檔案許可權,因為他們都有一個預設的許可權:U:rwx  G:r-x  O:r-x

建立預設檔案許可權如圖:

建立預設目錄的許可權如圖:

但預設建立的新檔案將x的許可權去掉,防止惡意病毒木馬的產生。

硬該其許可權:改掩碼值

如改成750

777-750=027

所以:umask 027

再建立其他目錄時就會改變其許可權了,但建立檔案時的x許可權去掉了。

檔案搜尋命令:

which

命令所在路徑:/usr/bin/which

執行許可權:所有使用者

功能描述:顯示命令所在的目錄

語法:which [命令名稱]

範例:$which ls 

拓:命令也是有操作許可權的,如,bin下和user.bin下的命令,所有使用者都可以使用,而在 sbin下的命令只有超級管理員才可以使用。

which可以查詢所有的命令的路徑,另外,whereis命令也可以用來查詢檔案路徑,

區別:which檢視命令時還用攜帶檔案的別名。(Ubuntu下沒有顯示出檔案的別名)

whereis會顯示出被查命令的幫助文件所在的位置。如圖:

理論上,查詢命令時兩者都可以使用。

find

命令所在路徑:/usr/bin/find

執行許可權:所有使用者

功能描述:查詢檔案/目錄

語法:find [搜尋路徑][搜尋關鍵字]

使用的基本原則:儘量節省系統資源,儘量不要再根目錄下查詢。

-name的用法:

find  /etc -name init

注:跟windows的區別這裡只查詢init的檔案,包含“init”的檔案不會被查詢到,需要時可以加萬用字元

:匹配任意字元

?:匹配單個字元

-size

 檔案大小,block資料塊:512位元組

100MB=102400KB=102400*2B=204800 block 

大於:+

小於:-

等於:空,一般沒大有

如:find / -size +202800

-user

按照檔案的擁有者查詢,如:

find /home -user wangminli

-time 

1、天:ctime  atime mtime

2、分鐘:cmin  amin、 mmin

c:change改變,修改

a:access瀏覽,訪問

m:modify 修改

c m的區別:

c表示檔案的屬性被修改過,屬性包括所有者,所屬組,許可權

m表示檔案的內容被修改過

-:表示多長時間之內 ,-1:一天之內,如find /etc  -mmin  -120   2個小時之內檔案被修改

+:超過多長時間。

-type 

find /etc -name init* -a -type  -l  (查詢int*的二進位制檔案)

選項:

-f :二進位制檔案,

-l:軟連線檔案

-d:目錄

find的選項非常多,還有type燈,不一一列舉,學會查詢幫助檔案。

查詢大於80MB小於100MB的檔案?見下面:

連線符1

-aand 邏輯與

-o: or邏輯或

find /etc -size +16380 -a -size 204800 大於80MB小於100MB的檔案

連線符2-exec執行

固定格式:

1.-exec 命令 {}  \ ;

{}:f前面ind查詢的結果

\:轉義符,使用符號本身的含義

find /etc -name inittab -exec ls -ls {} \;  查詢inittab檔案並列舉出該檔案

find /test -name testfile3 -exec rm {} \;   查詢testfile3檔案並刪除該檔案

;:結束

2-OK 

含義同上,但會詢問使用者

知識:i節點

有些檔案用rm是刪不掉的,如 touch a b”建立時,用rm a b 是刪不掉的,這是可以直接刪除其該i節點,每個字元都有i節點。

find .-inum 16 -exec rm {} \;     查詢並刪除i節點為16的檔案

lacate(有的系統不提供,但find一定有)

如:locate services

find的不同,根據系統安裝和定期更新的資料庫裡查詢的,所以查詢非常快,但新建立的檔案不一定能找到。

lacate要配合一個一個命令uptatedb

命令名稱:updatedb

命令英文原意:update the slocate database

執行許可權:root

功能描述:建立整個系統目錄檔案的資料庫

語法:updatedb

範例:#updatedb

updatedb在系統安裝完成以後會建立一個整個linux系統的檔案目錄的資料庫,所以使用locate時會直接呼叫updatedb裡面生成的資料庫,不需要在整個硬碟裡檢索,所以查詢速度非常快。但是這個資料庫有個計劃任務,定期執行updatedb(也可以手動執行),所以有的時候新建立的檔案可能找不到,所以比較適合查詢系統預設安裝的命令,配置檔案等。

 

grep

命令名稱:grep

命令所在路徑:/bin/grep

執行許可權:所有使用者

功能描述:在檔案中搜尋匹配的行並輸出

語法:grep [指定字串][原始檔]

範例:#grep ftp/etc/services

檔案幫助命令

man

命令名稱:man

命令英文原意:manual

命令所在路徑:/usr/bin/man

功能描述:獲得幫助資訊

語法:man [命令或配置檔案]

範例:$ man ls     檢視ls命令的幫助資訊

 $man serivces  檢視配置檔案services的幫助資訊

1:執行man命令時,它會呼叫more進行幫助瀏覽文件

所以:按回車換行,空格下一頁,q退出

2:當檢視配置檔案的幫助時,只寫配置檔名即可,如man services ,用man /etc/services 反而不行。

問題:當“man passwd”時,是檢視 “passwd”命令的幫助,還是“/etc/passwd”配置檔案的幫助資訊呢?

答:man時會優先檢視命令的幫助,那麼怎麼檢視同名的配置檔案的幫助呢?可以“man man ”一下,發現有9型別的幫助:

配置檔案是第5種,所以可以用“man 5 passwd,所以man passwd時實際上是 man 1 passwd

2.info

命令名稱:info

命令英文原意:information

命令所在路徑:/usr/bin/info

執行許可權: 所有使用者

功能描述:獲取幫助資訊

語法:info [任何關鍵字]

範例:$info ls  檢視指令的幫助資訊

1:瀏覽方式也同more

2infoman差不多,只是顯示有所不同

3.whatis

命令名稱:whatis  apropos  makewhatis 

命令英文原意:search the whatis database for strings

執行許可權:All User ,All User ,root

功能描述:獲取索引的簡短說明資訊,也需要更新資料庫目錄

語法:whatis apropos [任何關鍵字]

範例:$whatis ls

     $apropos fstab 相當於man -k

簡單列出被查命令的用法,例如選項等(whatis ls),同--help差不多。

4.help

檢視shell內建命令的幫助

help cd

可以用man bash 檢視到shell內建命令

相關文章