guidlinux
Ⅰ 一般面試linux都問什麼問題
平時用的不多的或者確實本身就有點模糊的,非常感謝面試官的解釋,這里記錄下:
文件許可權 4755的涵義 = 文件許可權中s/S的意義?
chmod是Linux下設置文件許可權的命令,後面的數字表示不同用戶或用戶組的許可權。
一般是三個數字:
第一個數字表示文件所有者的許可權
第二個數字表示與文件所有者同屬一個用戶組的其他用戶的許可權
第三個數字表示其它用戶組的許可權
許可權分為三種:讀(r=4),寫(w=2),執行(x=1)。綜合起來還有可讀可執行(rx=5=4+1)、可讀可寫(rw=6=4+2)、可讀可寫可執行(rwx=7=4+2+1)。
所以,chmod 755 設置用戶的許可權為:
1.文件所有者可讀可寫可執行
2.與文件所有者同屬一個用戶組的其他用戶可讀可執行
3.其它用戶組可讀可執行
chmod 4755與chmod 755 的區別在於開頭多了一位,這個4表示其他用戶執行文件時,具有與所有者相當的許可權。
文章Linux中的文件特殊許可權中通過實例很好地解釋了這里的4的含義:
先看個實例,查看你的/usr/bin/passwd 與/etc/passwd文件的許可權
[root@MyLinux ~]# ls -l /usr/bin/passwd /etc/passwd
-rw-r--r--1 root root 154908-1913:54/etc/passwd
-rwsr-xr-x 1 root root 229842007-01-07/usr/bin/passwd
眾所周知,/etc/passwd文件存放的各個用戶的賬號與密碼信息,/usr/bin/passwd是執行修改和查看此文件的程序,但從許可權上看,/etc/passwd僅有root許可權的寫(w)權,可是為什麼每個用戶都可以直接調用/usr/bin/passwd來寫/etc/passwd從而達到修改自己的密碼呢?注意這里的s代替了x( -rwsr-xr-x 1 root root 229842007-01-07/usr/bin/passwd) , 這里的s使得其他的用戶執行/usr/bin/passwd時具有與owner root相當的許可權。
這里的4或s是特殊的文件許可權,其實s可以用在user或group,還有另一種特殊許可權t:
再看個實例,查看你的/tmp目錄的許可權
[root@MyLinux ~]# ls -dl /tmpdrwxrwxrwt 6 root root 4096 08-22 11:37 /tmp tmp目錄是所有用戶共有的臨時文件夾,所有用戶都擁有讀寫許可權,這就必然出現一個問題,A用戶在/tmp里創建了文件a.file,此時B用戶看了不爽,在/tmp里把它給刪了(因為擁有讀寫許可權),那肯定是不行的。
有t特權的目錄下的文件或目錄只有owner和root才可以刪除和修改,其他的人即使有寫許可權也不能刪除。
如何設置以上特殊許可權:
setuid:chmod u+s xxx
setgid: chmod g+s xxx
stick bit : chmod o+t xxx
或者使用八進制方式,在原先的數字前加一個數字,三個許可權所代表的進制數與一般許可權的方式類似,如下:
suid guid stick bit
1 1 1
所以:
suid的二進制串為:100,換算十進制為:4
guid的二進制串為:010,換算十進制:2
stick bit 二進制串:001,換算十進制:1
於是也可以這樣設:
setuid:chmod 4755 xxx
setgid:chmod 2755 xxx
stick bit:chmod 1755 xxx
最後,在一些文件設置了特殊許可權後,字母不是小寫的s或者t,而是大寫的S和T,那代表此文件的特殊許可權沒有生效,是因為你尚未給它對應用戶的x許可權.
硬鏈接和軟連接的大小?
通過下面的測試,硬鏈接與源文件是相同的inode節點,指向相同的文件,肯定是相同的大小;軟連接可以理解為文件內容中存儲了源文件的地址或路徑,所以有自己的大小。
[aaa@myvm ~]$ mkdir mytest
[aaa@myvm ~]$ cd mytest
[aaa@myvm mytest]$ echo "AAAAAAAAAAAAAAAAA" >hello
[aaa@myvm mytest]$ ln hello hello2
[aaa@myvm mytest]$ ln -s hello hello3
[aaa@myvm mytest]$ ls -lia
總計 16
5764989 drwxrwxr-x 2 aaa aaa 4096 11-25 16:03 .
5566272 drwx------ 23 aaa aaa 4096 11-25 16:02 ..
5765068 -rw-rw-r-- 2 aaa aaa 18 11-25 16:03 hello
5765068 -rw-rw-r-- 2 aaa aaa 18 11-25 16:03 hello2
5765116 lrwxrwxrwx 1 aaa aaa 5 11-25 16:03 hello3 -> hello
[aaa@myvm mytest]$ echo "BBBBBBBBBBB" >>hello
[aaa@myvm mytest]$ ls -lia
總計 16
5764989 drwxrwxr-x 2 aaa aaa 4096 11-25 16:03 .
5566272 drwx------ 23 aaa aaa 4096 11-25 16:02 ..
5765068 -rw-rw-r-- 2 aaa aaa 30 11-25 16:04 hello
5765068 -rw-rw-r-- 2 aaa aaa 30 11-25 16:04 hello2
5765116 lrwxrwxrwx 1 aaa aaa 5 11-25 16:03 hello3 -> hello
如何設置當前用戶新建文件或目錄的默認許可權?
umask用來定義新建文件或目錄的默認許可權,新的目錄的許可權為777-umask設置的值,新建文件的許可權為666-umask設置的值。若要長期修改umask的值,可以把它寫進/etc/profile或~/.profile或~/.bash_profile中。
[aaa@myvm mytest]$ umask
0002
[aaa@myvm mytest]$ umask -S
u=rwx,g=rwx,o=rx
[aaa@myvm mytest]$ mkdir aa
[aaa@myvm mytest]$ touch bb
[aaa@myvm mytest]$ ls -la
總計 12
drwxrwxr-x 3 aaa aaa 4096 11-25 16:20 .
drwx------ 23 aaa aaa 4096 11-25 16:20 ..
drwxrwxr-x 2 aaa aaa 4096 11-25 16:20 aa
-rw-rw-r-- 1 aaa aaa 0 11-25 16:20 bb
[aaa@myvm mytest]$ umask 022
[aaa@myvm mytest]$ mkdir aa2
[aaa@myvm mytest]$ touch bb2
[aaa@myvm mytest]$ ls -la
總計 16
drwxrwxr-x 4 aaa aaa 4096 11-25 16:29 .
drwx------ 23 aaa aaa 4096 11-25 16:20 ..
drwxrwxr-x 2 aaa aaa 4096 11-25 16:20 aa
drwxr-xr-x 2 aaa aaa 4096 11-25 16:29 aa2
-rw-rw-r-- 1 aaa aaa 0 11-25 16:20 bb
-rw-r--r-- 1 aaa aaa 0 11-25 16:29 bb2
find . -name "filename" 中的filename為啥必須加引號?但是ls中不需要?
find [-H] [-L] [-P] [path...] [expression]
ls [OPTION]... [FILE]...
因為這里的"filename"其實是表達式中的一個pattern,所以必須要加「」來組織shell的解析。 例如find . -name "aa*" -exec rm {}。
如何快速地將遠程機器上的共享目錄下的所有文件拷貝到本地供只讀使用?
如果不拷貝,簡單地mount到本地目錄。但是這里是要求拷貝到本地,所以這里可以使用softlink來將對文件的拷貝時間變為固定值。具體可以使用cp的-s參數。
Linux中文件路勁可以用空格嗎?
windows中用雙引號就可以了,linux中用\加空格來表示。
mkdir my\ \ folder (中間有2個空格)
cd my\ \ folder/
Ⅱ linux下的UUID是個什麼東西
UUID
簡介
UUID含義是通用唯一識別碼 (Universally Unique Identifier),這 是一個軟體建構的標准,也是被開源軟體基金會 (Open Software Foundation, OSF) 的組織應用在分布式計算環境 (Distributed Computing Environment, DCE) 領域的一部分。
2作用
UUID 的目的,是讓分布式系統中的所有元素,都能有唯一的辨識資訊,而不需要透過中央控制端來做辨識資訊的指定。如此一來,每個人都可以建立不與其它人沖突的 UUID。在這樣的情況下,就不需考慮資料庫建立時的名稱重復問題。目前最廣泛應用的 UUID,即是微軟的 Microsoft's Globally Unique Identifiers (GUIDs),而其他重要的應用,則有 Linux ext2/ext3 檔案系統、LUKS 加密分割區、GNOME、KDE、Mac OS X 等等。
3組成
UUID是指在一台機器上生成的數字,它保證對在同一時空中的所有機器都是唯一的。通常平台會提供生成的API。按照開放軟體基金會(OSF)制定的標准計算,用到了乙太網卡地址、納秒級時間、晶元ID碼和許多可能的數字
UUID由以下幾部分的組合:
(1)當前日期和時間,UUID的第一個部分與時間有關,如果你在生成一個UUID之後,過幾秒又生成一個UUID,則第一個部分不同,其餘相同。
(2)時鍾序列。
(3)全局唯一的IEEE機器識別號,如果有網卡,從網卡MAC地址獲得,沒有網卡以其他方式獲得。
UUID的唯一缺陷在於生成的結果串會比較長。關於UUID這個標准使用最普遍的是微軟的GUID(Globals Unique Identifiers)。在ColdFusion中可以用CreateUUID()函數很簡單地生成UUID,其格式為:xxxxxxxx-xxxx- xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每個 x 是 0-9 或 a-f 范圍內的一個十六進制的數字。而標準的UUID格式為:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx (8-4-4-4-12),可以從cflib 下載CreateGUID() UDF進行轉換。
4應用
使用UUID的好處在分布式的軟體系統中(比如:DCE/RPC, COM+,CORBA)就能體現出來,它能保證每個節點所生成的標識都不會重復,並且隨著WEB服務等整合技術的發展,UUID的優勢將更加明顯。根據使用的特定機制,UUID不僅需要保證是彼此不相同的,或者最少也是與公元3400年之前其他任何生成的通用唯一標識符有非常大的區別。
通用唯一標識符還可以用來指向大多數的可能的物體。微軟和其他一些軟體公司都傾向使用全球唯一標識符(GUID),這也是通用唯一標識符的一種類型,可用來指向組建對象模塊對象和其他的軟體組件。第一個通用唯一標識符是在網路計算機系統(NCS)中創建,並且隨後成為開放軟體基金會(OSF)的分布式計算環境(DCE)的組件。
Ⅲ win7和Linux雙硬碟雙系統如何安裝
Win7下安裝ubuntu (雙硬碟用戶加強版)起源還是學習上要用到linux操作系統,所以才在自己電腦上安裝linux操作系統。先開始是在虛擬機上用的,但用過一兩星期就感覺還是不適合,用虛擬機感覺只要ctrl+Alt就能退出來,給自己留了太多的退路,又回到了windows環境。所以個人很支持在硬碟上安裝雙系統,在操作系統的選擇上,我是支持ubuntu的,因為她擁有一個堅固的後盾,那就是http://forum.ubuntu.org.cn/,記住這個網址,有什麼問題都可以找她。
好了廢話也不多說了,就我自己的安裝經歷給大家講一講在win7操作系統下安裝Ubuntu過程中會遇到的各種問題(本人是兩塊硬碟,所以情況更復雜,但也更有參考價值!)。
STEP1:下載ubuntu
目前截止到2010/10/23最新的版本是10.10
http://www.verycd.com/topics/2857712/ 這是電驢上的資源,可以去下,600多M不是很大,下載完當然刻盤後就叫ubuntu 10.10 LiveCD。
STEP2:空出你的硬碟空間
安裝ubuntu所需要的空間不大,10G足以(太夠了,考慮到以後還要裝其他一些東西,留大一點吧)。
STEP3:情況調查
QA:你機箱中安裝了幾塊硬碟?
A1、一塊 (太簡單了,網上很多教程都適合你)
A2、兩塊 (情況復雜,引導需要小心)
QB:你願意將liveCD刻錄下來嗎?(這會省去你許多麻煩,也可以收藏以備崩潰後重新安裝。但沒有刻錄機和空白光碟的用戶也不要著急,還是有辦法的)
B1、願意
B2、不願意
一、A1B1用戶
太簡單了,將你的liveCD塞入光碟機,從主板設置由CDROM啟動系統也就是我下面要說的二、A1B2用戶 的第6、7兩步,呵呵,這時大多數人發現在開機的GNU GRUB中沒有win7系統的選項只能進入ubuntu,請往下翻頁至——從ubuntu中修復win7開機引導 就教你解決這個問題
二、A1B2用戶
這就是網上說的很多的「win7下如何使用GRUB4DOS來引導硬碟安裝LINUX系統」,好這里提到了一個新的名詞「GRUB4DOS」 這是ubuntu社區上一篇帖子http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=150541,可以去膜拜一下,當然如果想省一點時間,我就簡單地說——這是一款在win7下能在啟動主板後引導進入光碟或操作系統的軟體(雖然很不全面,但在本教程中就起到這點作用了),這是她的下載地址,去下一個最新版的(就是最新發布的,這個不會不懂吧)吧http://download.gna.org/grub4dos ,這是很多小軟體的集成打包,我們只會用到其中的幾個,這個待會再說。
1、將下載的grub4dos解壓,復制其中的menu.lst、grldr和grldr.mbr三個文件到C盤根目錄(就是C:\),如果想GRUB支持中文,那就把china文件夾中的grldr放在C盤根目錄下。
2、將下載的ISO文件ubuntu-9.04-desktop- i386.iso放在分區根目錄下,並將用winrar或者虛擬光碟機打開LINUX的ISO文件,這里以ubuntu-10.10-dvd-i386.iso為例,該文件內casper文件夾里的initrd和vmlinuz這兩個文件復制到C:盤根目錄,(其實不一定放在C盤根目錄,任何一個分區都可以,只要你的menu.lst文件參數配置正確就可以了,例如只有一塊硬碟,放在C盤就是(hd0,0),D盤就是(hd0,1)依次類推),menu.lst中指定initrd.lz和vmlinuz兩個文件的路徑是正確的就可以了,並不一定要把initrd.lz和vmlinuz兩個文件放到根目錄的。
3、這里將會出現一個分歧,網上有些教程會使用boot.ini方法,有的會使用BCDedit方法。這里我推薦使用BCDedit方法,原因有一下兩點: 1)、boot.ini方法對win7使用軟改激活的用戶會導致啟動不能(雖然我也不確定軟改的具體定義是什麼,但君子不立危牆之下,不要沒事找事了,當然純學習時間的例外) 2)、 BCD(Boot Configuration Date)即系統引導配置數據,這是從Windows Vista開始才引入的。我們知道,在Windows Vista/Server 2008中BootManager組件負責系統的初始化和引導工作,而與之相匹配系統的引導數據就存儲在BCD中。這才是win7引導的核心,已經不再用boot.ini引導了,當然win7還是承認boot.ini文件的這也是為什麼boot.ini方法能起作用的原因。初步了解BCD,這也將是本次安裝的額外收獲。 PS:強烈推薦閱讀ubuntu社區smallapple 所整理的grub2基礎教程,http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=229387這是帖子的地址,這個pdf教程有21頁,我是列印下來放入文件夾好好閱讀收藏的。事實上,教程非常詳細,對ubuntu的引導問題基本都提到了,膜拜!如果說BCD是win7引導的核心,那麼grub就是ubuntu的BCD了,現在自ubuntu9.10升級後就默認使用grub2了,一定要了解一下。
4、我們使用BCD方法:
1)、在WIN7里以管理員的身份運行cmd,打開命令提示符
2)、輸入 bcdedit /export "D:\BCD Backup"
#將系統存儲的內容導出到文件。此文件可以在以後用於還原系統存儲的狀態。此命令僅對系統存儲有效。注意:一定要備份,一方面以還原防止操作錯誤,另一方面,後面再說(順帶一提:bcdedit /import "D:\BCD Backup"就是與之相對的還原操作)
3)、輸入bcdedit /create /d 「GRUB4DOS」 /application bootsector
#這個命令會產生一個guid列印在cmd窗口中,通俗講就是在啟動隊列中佔一個位置。注意:guid類似於{******xx-***x-***x-***x-************}格式,具體數字根據硬碟或分區參數會有相應變化。例如我的就是{dadaa27d-c9f1-11df-a802-ce8c84d8192b},我們把它復制下來,我們下面有用(有同學提到:怎麼復制呀?這里提一種方法 在cmd窗口右鍵→標記→選中要復制的東西再點滑鼠右鍵,此時選中的文本會變成未選中的狀態,不過沒關系,按下Ctrl+C,information就到你的剪貼板里了~到目的地去Ctrl+V吧~!)
4)、bcdedit /set {dadaa27d-c9f1-11df-a802-ce8c84d8192b} device partition=C:
#設定操作系統{dadaa27d-c9f1-11df-a802-ce8c84d8192b}引導分區「C」,設置剛剛添加啟動項的啟動分區,這里設的是C盤,因為我們的文件都在C盤。
5)、bcdedit /set {dadaa27d-c9f1-11df-a802-ce8c84d8192b} path \grldr.mbr
#設置啟動時運行的文件。
6)、bcdedit /displayorder {dadaa27d-c9f1-11df-a802-ce8c84d8192b} /addlast
#這個只是為了將增加的啟動項放到其他啟動項的後面。注意:也可以用/bootsequence 選項,具體可以去網路再了解一下,我就不具體列舉了。
7)、最後可以用 bcdedit /enum 查看一下,會看到執行上述命令後產生的啟動項配置。
實模式啟動扇區
———————
標識符 {dadaa27d-c9f1-11df-a802-ce8c84d8192b}
device partition=C:
path \grldr.mbr
description GRUB4DOS
這樣就完成了在WIN7啟動菜單添加GRUB的選擇項了,只要你在C盤根目錄下寫一個正確的menu.lst文件就可以引導硬碟安裝LINUX啦。
5、書寫正確的menu.lst文件
回到我們的C根目錄下從GRUB4DOS中拷貝出來的menu.lst文件,裡面有一些書寫說明,不過是英文的,我略微說一下我們要用到的內容。首先將裡面的說明都刪掉,寫下內容如下:
default 0
timeout 0
title ubuntu 10.10 install
rootnoverify (hd0,0)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-10.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
initrd /initrd.gz
title Windows 7
rootnoverify (hd0,1)
chainloader +1
不懂?沒事也不需要太了解,具體的menu.lst寫法可以參考網上的教程,我記得比如:http://www.360doc.com/content/09/0817/19/74585_4997923.shtml 很不錯的簡單介紹。
6、接下來,就是重啟,安裝ubuntu了,很簡單也許在分區那邊會遇到一些問題。我的建議是用手動指定分區然後把你在STEP2中空出的盤選擇ext4,掛載在 / 上(注意剩下2G空間),剩下的2G可以用作swap分區,關於分區方面的知識建議閱讀《鳥哥的私房菜》,現在已經是第三版了,強烈推薦通讀此書,寫的很好,很基本。
7、安裝完成後她會要求你重啟,這時大多數人發現在開機的GNU GRUB中沒有win7系統的選項只能進入ubuntu,請往下翻頁至——從ubuntu中修復win7開機引導 就教你解決這個問題
三、A2B1用戶
擁有兩塊硬碟,那麼註定你在安裝上沒有什麼問題,但是在系統引導上肯定會出現問題。我的建議是,一定要搞清楚你的硬碟狀況,比如每一個分區是什麼 ?你的win7Loader在哪裡?……
1、不要被嚇唬住了!先通過LiveCD安裝ubuntu吧,不管怎樣都是要裝的。
在引導程序的安裝位置上,我建議就裝在/目錄所在的分區,這樣重啟後你會進入win7就像我當初一下,直接進入win7,就像沒裝過ubuntu一樣。別急,用LiveCD引導進入ubuntu。
2、這時 就是通過腳本script,完整了解你的系統情況的時候了,感謝ubuntu社區的onshoestring 他向我提供了這個腳本,http://sourceforge.net/projects/bootinfoscript/
把文件先復制到桌面,在終端運行:sudo bash ~/桌面/boot_info_script055.sh
生成的RESULTS.txt文件中有詳細的信息
3、你這時了解你的硬碟了嗎?呵呵,下面可以通過
——從ubuntu中修復win7開機引導(利用Ubuntu-GRUB2來引導)
——從win7中修復ubuntu開機引導(利用BCDedit來引導)
來自由選擇你的引導程序是通過Ubuntu-grub2 進入win7還是通過win7-BCD來調用Grub2以進入ubuntu
四、A2B2用戶
你選擇了一條最艱巨的路,先把A1B2的執行一遍以安裝ubuntu ,再選擇
——從ubuntu中修復win7開機引導(利用Ubuntu-GRUB2來引導)
——從win7中修復ubuntu開機引導(利用BCDedit來引導)
來自由選擇你的引導程序是通過Ubuntu-grub2 進入win7還是通過win7-BCD來調用Grub2以進入ubuntu,呵呵。
——從ubuntu中修復win7開機引導(利用Ubuntu-GRUB2來引導)
既然是從ubuntu修復win7的啟動項,那就必須進入ubuntu,對於那些只能進入win7卻無法進入ubuntu的用戶,可以用LiveCD引導進入(就是最開始選擇試用Ubuntu,LiveCD的作用終於體現出來了)。當然對於B2而且無法進入ubuntu的情況,我們還有下面的教程——從win7中修復ubuntu開機引導。好,廢話不多說,進入正題。
進入ubuntu後,請打開終端輸入:
1、sudo fdisk -l
(注意是小寫的L,不是數字的1,此步用於確定電腦中安裝 Ubuntu10.10 的所在分區的位置,輸入以後會輸出類似如下信息,找到system為Linux的那行,記住/dev/sdaX的情況,比如本人的電腦是/dev /sda7,以下就以此為例,你自己的請加以更改)
2、 sudo -i (此步用於得到root許可權,無需輸入密碼,方便以下操作)
3、 mount /dev/sda7 /mnt (注意,sdaX是第一步查到的/目錄所安裝的盤)
4、 mount /dev/sda7 /mnt/boot (如果boot是單獨分區裝的話才需要這一步,……總之把其他單獨分區安裝的目錄都掛上去,例如/home 、/var等)
5、 mount --bind /dev /mnt/dev (重要,一定要掛)
6、 mount --bind /proc /mnt/proc (重要,一定要掛)
7、 chroot /mnt (chroot掛好的ubuntu)
8、 grub-install /dev/sda (雙硬碟的用戶注意,此處的sda是由win7loader所在位置所決定的,就是說,如果你的win7和ubuntu假如都安裝在sdb,但win7loader卻在sda的話,也只能寫sda,具體怎樣查看win7loader在哪裡,我在A2B1中有所講解)
Ps:這一步執行後會有幾行代碼出現,總體來說就是成功的,用liveCD引導進入的用戶可能會遇到 cannot find ***prition 等字樣,無視他,沒關系的,重啟後你就會發現終於可以進入ubuntu了,然後再按照這個步驟執行一遍。 關於這個問題的記載我在一個英文的叫做:小石頭工作室的網頁上找到的……很遺憾,網址沒記錄下來,遺失了,還是感謝他們!
9、update-grub (重裝grub2)
感謝ubuntu社區的foxman997在他的帖子中我才正確
知道為什麼嗎?好好閱讀ubuntu社區smallapple 所整理的grub2基礎教程,http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=229387這是帖子的地址,下載他整理的pdf文檔。
——從win7中修復ubuntu開機引導(利用BCDedit來引導)
前4步的流程和 二、A1B2用戶 中的win7下如何使用GRUB4DOS來引導硬碟安裝LINUX系統步驟一樣,區別就在第5步,書寫正確的menu.lst文件
文件如下:
Timeout 0
Default 0
Title grub2
Find --set-root /boot/grub/core.img
Kernel /boot/grub/core.img
Boot
(當然,若果/boot單獨分區的話,改為
Find --set-root /grub/core.img
Kernel /grub/core.img)
Ⅳ linux下查看分區是不是gpt
df可以看看每個分區掛載到哪個目錄了,以及分區大小等等信息(df -h可以看得清楚點)
然後fdisk一下你想看的那個分區,可以看到詳細信息。
Ⅳ 如何查看linux用戶主目錄下的文件
在沒有圖形界面的Linux中需要查看一個文件的內容,這里分享下查找方法。
1、首先在電腦中打開Putty軟體,連接上Linux,如下圖所示。