如果是已經存在的用戶,那么用usermod -md /path/to/new/home XXX。將XXX 的home目錄遷移到 /path/to/new/home, 原home 目錄下的內容也一起移動到新目錄下。
我們提供的服務有:網站設計、網站制作、微信公眾號開發、網站優化、網站認證、劍川ssl等。為近1000家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的劍川網站制作公司
如果是新加用戶,那么在 useradd 命令里加上 -d /path/to/home 即可。
linux命令是對Linux系統進行管理的命令。對于Linux系統來說,無論是中央處理器、內存、磁盤驅動器、鍵盤、鼠標,還是用戶等都是文件,Linux系統管理的命令是它正常運行的核心,與之前的DOS命令類似。linux命令在系統中有兩種類型:內置Shell命令和Linux命令。
在linux系統中復制文件我們可以使用cp或copy命令了,我們要復制文件或目錄都可以使用它們兩來完成哦,下面我來給大家介紹cp或copy命令與復制目錄到指定目錄的命令吧。 ? ? copy命令 ? ? 該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中,同MSDOS下的copy命令一樣,功能十分強大。
語法: cp [選項] 源文件或目錄 目標文件或目錄 ? ? 說明:該命令把指定的源文件復制到目標文件或把多個源文件復制到目標目錄中。 ?
該命令的各選項含義如下: ? ? - a 該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,并遞歸地拷貝目錄,其作用等于dpR選項的組合。 ? ? - d 拷貝時保留鏈接。 ? ? - f 刪除已經存在的目標文件而不提示。 ? ? - i 和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認。回答y時目標文件將被覆蓋,是交互式拷貝。 ? ? - p 此時cp除復制源文件的內容外,還將把其修改時間和訪問權限也復制到新文件中。 ? ? - r 若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。此時目標文件必須為一個目錄名。 ? ? - l 不作拷貝,只是鏈接文件。 ?
需要說明的是,為防止用戶在不經意的情況下用cp命令破壞另一個文件,如用戶指定的目標文件名已存在,用cp命令拷貝文件后,這個文件就會被新源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時,最好使用i選項。 ?
例1 ? ? 復制指定目錄下的全部文件到另一個目錄中 ? ? 文件及目錄的復制是經常要用到的。linux下進行復制的命令為cp。 ? ? 假設復制源目錄 為 dir1 ,目標目錄為dir2。怎樣才能將dir1下所有文件復制到dir2下了 ? ? 如果dir2目錄不存在,則可以直接使用 ? ? cp -r dir1 dir2 ? ? 即可。 ? ? 如果dir2目錄已存在,則需要使用 ? ? cp -r dir1/. dir2 ? ? 如果這時使用cp -r dir1 dir2,則也會將dir1目錄復制到dir2中,明顯不符合要求。 ? ? ps:dir1、dir2改成對應的目錄路徑即可。 ?
例2 ? ? 復制指定文件到指定文件夾 ? ? 首先建立一個用于測試的目錄,用'tree'命令查看其結構如下所示: ? ? ? ? 可見,目錄中主要包含用于測試的*.txt文件和用于充當炮灰的*。tes文件 ? ? 目標是保持當前的目錄結構,只把txt文件復制出來 ?
方法一:當不需要的文件類型較為單一時,可以通過完全復制然后刪除指定類型的文件完成 ? ? Step1 使用命令 cp -r test/ test2 將測試目錄test下所有內容完全復制到test2,此時樹形結構如下圖 ? ? ? ? Step2 組合使用find及xargs,將*.tes文件刪除 ? ? xargs是給命令傳遞參數的一個過濾器,可以將前一個命令產生的輸出作為后一個命令的參數 ? ? 命令find test2/ -name '*.tes' |xargs rm -rf, 即將find產生的輸出(test2目錄下的所有tes文件),作為rm的參數,從而完全刪除 ? ? 實際效果如圖所示 ? ? ? ? 適用場景舉例:把項目文件備份,要去除其中的.svn文件,可以采用這種方式 ?
方法二:需要的文件為單一類型,帶目錄結構復制 ? ? 這種情況下可以使用tar命令將指定類型的文件打包,然后解包,同樣需要組合使用find和xargs ? ? Step1 建立目錄test3 ? ? mkdir test3 ? ? Step2 將指定類型文件帶目錄結構打包 ? ? find test/ -name '*.txt' |xargs tar czf test3.tgz ? ? Step3 解包到目錄test3 ? ? tar zxvf test3.tgz -C test3
我們都知道Linux是一個操作系統,與Windows系統不同的是,Linux是由各種命令形成的,因此命令的掌握程度可謂是至關重要,你知道Linux系統中的進入目錄的相關命令是什么嗎?如果你還不清楚,請看下文:
Linux cd命令可以說是Linux中最基本的命令語句,其他的命令語句要進行操作,都是建立在使用cd命令上的。
所以學習Linux常用命令,首先就要學好cd命令的使用方法技巧。
命令格式為:cd [dirName]dirName:要切換的目標目錄。
命令功能為:切換當前目錄至dirName。
dirName表示法可為絕對路徑或相對路徑,若目錄名稱省略,則變換至使用者的home目錄(也就是剛login時所在的目錄)。
另外,~也表示為home目錄的意思,.則是表示目前所在的目錄,..則表示目前目錄位置的上一層目錄。
命令用法如下:
1、不加參數時,默認切換到用戶主目錄;
2、接絕對路徑或相對路徑,切換到對應目錄;
3、接特殊符號,進入到對應表示目錄
特殊符號有:
~:進入用戶主目錄;
-:返回進入此目錄之前所在的目錄;
..:返回上級目錄;
../..:返回上兩級目錄;
!$:把上個命令的參數作為cd參數使用
模式:
當打開終端,第一行所見的就叫命令行提示符。我的是這樣的:
命令行提示符,顧名思義就是提示在其后面輸入命令。在你輸入新的一行命令前,這個命令提示符都會出現。分別解析一下上邊代表什么意思:
oscar 這是當前用戶的名字。Linux是一個多用戶的操作系統,Windows也可以。不過Linux的多用戶管理更方便。我們一般建議每個使用Linux系統的用戶都創建一個屬于自己的賬戶,便于隱私管理。
@ 這個符號我們應該不陌生,我們的電子郵件一般都是 name@domain.com 這樣的不是嗎。這個@就表示英語里的at,是“在...里面,落戶在...的,在其中”的意思。@前面是用戶名,后面是所在的域。
oscar-laptop 這是當前電腦/操作系統的名字。上面說了在@后面的是一個域,所以 oscar@oscar-laptop 就表示oscar-laptop這臺電腦的oscar這個用戶。oscar-laptop這個名稱在安裝此Linux系統時可以任意指定。
: 這是分隔符,沒有什么特別的涵義。
~ 這是當前所在目錄的名字,會隨著用戶進入不同目錄而改變。~表示當前用戶的家目錄,有點類似Windows系統的“我的文檔”這個目錄。
$ 指示你所具有的權限的字符。在Linux系統中有兩種可能:
因此, oscar@oscar-laptop:~$ 的意思就是:
你目前是以oscar這個用戶登錄;你的電腦名稱為oscar-laptop;你目前位于 ~ 目錄下,就是你的用戶家目錄。你是普通用戶,擁有有限的權限。
參數里可以包含多個參數,由空格隔開,也可以包含數字,字母,等等。可以說,參數沒有固定的格式,但是一般來說還是遵循一定的規范的。
如果我們要一次加好幾個短參數,可以用空格隔開,例如:
多個短參數也可以合并在一起,例如上面的命令等價于:
請注意:參數的字母的大小寫是有區別的,大寫的T和小寫的t通常表示不同意思。
如果有多個長參數,是不能像多個短參數那樣合并寫的。而是只能以空格隔開,例如:
當然我們也可以組合使用短參數和長參數,例如:
有時候,同一個意義的參數有短參數和長參數兩種形式,效果是一樣的,可以任選哪一種。
有一些參數你還需要給它賦一個值才行。而且短參數和長參數的賦值的方式不盡相同。
例如,短參數賦值,通常是這樣的:
表示把10賦值給p參數。
如果是長參數,則一般是這樣賦值:
長參數的方式更加容易理解,但是不如短參數那么簡潔。
正如我們說過的,參數的形式沒有絕對的準則。我們上面給出的規則是一般的,有些命令的參數格式可能是我們沒怎么見過的。
有些參數就不一樣,而且取決于命令。例如對于 ls 這個命令,假如后面帶了一個參數,這個參數是一個目錄的路徑名的話,那么就會列出此目錄下的文件。
兩種類型的文件
簡單起見,我們把Linux下的文件分為兩大類:
在一個文件系統中,我們總有一個被稱為根目錄的東西,這個根目錄里包含了所有其他目錄和文件。Linux中有且只有一個根目錄,就是
是的,就是用一個斜杠表示。沒有比根目錄再高一階的目錄了,因為沒有目錄包含根目錄,根目錄就是Linux最頂層的目錄。
Linux系統安裝后,包含了很多的文件和目錄(雖然其實都是文件),我們很容易迷失在“茫茫文海”中。
當然我們不可能一下子列出Linux中的所有文件,那不現實。但是我們可以向你展示如何在Linux的目錄樹中來回穿梭,你可以知道此刻你位于哪個目錄下。就好比能看懂Linux這個很大的“地圖”。
pwd 是英語Print Working Directory的縮寫,表示“打印當前工作目錄”。
which 命令:獲取命令的可執行文件的位置,which命令用于顯示一個命令的對應的可執行程序的位置。可能聽起來有點拗口。
在Linux下,每一條命令其實對應了一個可執行程序。我們在終端中輸入命令,再按回車的時候,其實就是執行了對應的那個程序。比如說,pwd命令對應的pwd程序就是存在于Linux中的。
which命令接受一個參數,也就是你想要知道其可執行程序位于哪里的那個命令。
我們來測試一下,就拿pwd命令來測試好了:
得到:
因此,pwd命令對應的pwd這個可執行程序位于/bin目錄中。
我們也可以注意到Linux中的可執行程序和Windows中不太一樣,在Windows中可執行程序一般以.exe結尾,而Linux中一般是沒有后綴名的。
Linux中的可執行程序也不是都位于相同目錄的。我們可以來測試一下which命令本身對應的可執行程序位于哪里:
我們可以看到,which命令對應的可執行程序which并不位于/bin中,而是在/usr/bin中。
Ubuntu的終端默認是有顏色標注的,一般來說:
如果在你的終端里沒有標明顏色,那么你可以加上參數 --color=auto 來開啟顏色標注。如下:
如果你不需要顏色標注,那么可以用 --color=none 來關閉顏色標注。如下:
當然,為了避免每次都輸入這么一串額外的參數,其實我們可以在一個配置文件里修改,使得永久顯示顏色或不顯示顏色。
在Linux,以點( . )開頭的文件是隱藏文件,不過這里不包括開頭的兩個 . 和 .. ,這兩個的含義如下:
- . (一個點)表示當前目錄。在當前情況下,就是 /home/oscar 。
- .. (兩個點)表示上一級目錄。因為當前目錄是/home/oscar,所以上一級目錄就是 /home 。
我們有一個大寫的參數 -A,它的作用和小寫的-a幾乎一樣,唯一不同就是-A不列出 . 和 .. 這兩個文件。
-l 這個參數算是ls命令最常用的了。加上-l參數使得ls命令列出一個顯示文件和目錄的詳細信息的列表。
當我們僅用ls -l時,列出的文件詳細信息中,文件的大小是以字節為單位的。有時這不是太直觀。我們可以再加一個參數-h,h是humain readable的縮寫,表示“適合人類閱讀的”。所以我們的命令變成了:
t是time的縮寫。
du命令也是很有用的,因為它可以讓我們知道文件和目錄所占的空間大小。
雖然ls -l命令也可以顯示文件和目錄的大小,但是du命令統計的才是真正的文件大小。du命令會深入遍歷每個目錄的子目錄,把所有文件的大小都做一個統計。
du是英語disk usage的縮寫,表示“磁盤使用/占用”。
我們的du命令也可以使用參數。
cat命令和less命令:顯示文件內容,這兩個命令只能顯示文件內容,并不能對文件內容進行修改。
一次性顯示文件的所有內容,如果你想要在顯示的文件內容上加上行號,那么你可以加上 -n 這個參數。
分頁顯示文件內容
head命令和tail命令:顯示文件的開頭和結尾。
顯示文件開頭,默認情況下,head會顯示文件的頭10行。我們也可以指定顯示的行數,用 -n 這個參數:
就會顯示文件的頭5行。
顯示文件結尾。默認情況下,tail會顯示文件的尾10行。
我們也可以指定顯示的行數,用 -n 這個參數:
就會顯示文件的尾5行。
tail命令還可以配合 -f 參數來實時追蹤文件的更新:
這樣,就會檢查文件是否有追加內容,如果有,就顯示新增內容。
默認地,tail -f會每過1秒檢查一下文件是否有新內容。你也可以指定間隔檢查的秒數,用 -s 參數:
可以用快捷鍵 Ctrl + c 來終止tail -f 命令。
touch命令和mkdir命令:創建文件和目錄
創建一個空白文件。事實上,Linux沒有一個命令是專門用來創建一個空白文件的。touch命令其實一開始的設計初衷是修改文件的時間戳,就是可以修改文件的創建時間或修改時間,讓電腦以為文件是在那個時候被修改或創建的。但是touch命令如果后面跟著的文件名是不存在的,那么它就會新建一個。
事實上,我們可以用touch命令同時創建多個文件:
如果我所要創建的文件的名字里有空格怎么辦呢?
很簡單,加上雙引號:
創建一個目錄。
mkdir也可以同時創建好幾個目錄:
如果我所要創建的目錄的名字里有空格怎么辦呢?
很簡單,加上雙引號:
我們還可以用 -p 參數來遞歸創建目錄結構。
比如:
cp命令和mv命令:拷貝文件和移動文件
拷貝文件或目錄
cp是英語copy的縮寫,表示“拷貝”。所以,顧名思義,此命令用于拷貝。cp命令不僅可以拷貝單個文件,還可以拷貝多個文件,也可以拷貝目錄。
復制文件到另一個目錄只需要把cp命令的第二個參數換成目錄名。
拷貝目錄
要拷貝目錄,只要在cp命令之后加上-R參數(注意是大寫的R)。拷貝的時候,目錄中的所有內容(子目錄和文件)都會被拷貝。
使用通配符*
*號(星號)是很常用的正則表達式的符號,被稱為“通配符”,
所以如果我們用如下命令:
那么就會把當前目錄下所有txt文件拷貝到folder這個子目錄當中。
又如:
那么就會把當前目錄下凡是以ha開頭的文件都拷貝到folder目錄中。
移動文件
mv是英語move的縮寫,表示“移動”。mv命令有兩個功能:
用mv命令來移動目錄很簡單,不需要額外的參數,就跟移動文件一樣:
當然,我們也可以使用通配符。
除了移動文件,mv命令還可以用于重命名文件。
事實上,Linux中沒有一個專門的命令用于重命名文件。之所以mv命令可以重命名文件,其實還是歸因于它的機制:移動文件。經過mv移動之后,原始文件變成了新的名字的文件,文件內容是不變的,這不就相當于重命名了嗎?
以上命令會將new_file重命名為renamed_file。
刪除文件和目錄
rm命令可以刪除一個文件,多個文件,目錄,甚至你的整個Linux系統(如果你愿意的話)。
以上命令刪除當前目錄下的new_file_copy這個文件。
我們也可以同時刪除多個文件,只要用空格隔開每個文件即可。例如:
保險起見,用rm命令刪除文件時,可以加上 -i 參數,這樣對于每一個要刪除的文件,終端都會詢問我們是否確定刪除。i是英語inform的縮寫,表示“告知,通知”。
有兩種回答:
y:是英語yes的縮寫,表示“是”。那么回車確認后,文件就刪除了。
n:是英語no的縮寫,表示“否”。那么回車確認后,文件不會刪除。
如果在rm命令后加上-f參數,那么終端不會詢問用戶是否確定刪除文件,不論如何,文件會立刻被強制刪除。
f是英語force的縮寫。
以上命令會強制刪除file文件。
r是英語recursive的縮寫,表示“遞歸的”。所以使用-r參數,可以使rm命令刪除目錄,并且遞歸刪除其包含的子目錄和文件。
這個命令也挺危險的,用得不好可能你的子目錄和文件都沒了。
以上命令會刪除one這個目錄,包括其子目錄和文件。
其實,也存在一個命令
看著和 rm -r 挺像的。但是這個命令有個局限性:只能刪除空的目錄。
創建鏈接
事實上,Linux下有兩種鏈接類型:
為了區分這兩種鏈接類型的不同,我們首先來談一談如Linux這樣的操作系統中文件在硬盤上的存放。
文件在硬盤上存儲時,大致來說(請注意我用了“大致來說”),每個文件有兩部分:
文件名的列表是儲存在硬盤的其他地方的,和文件內容分開存放,這樣方便Linux管理。
注意:為什么我上面要用“大致說來”呢?因為此處我們簡化了描述,其實每個文件有三部分:
我們這里簡化地將文件分為兩部分:文件名和文件內容。因為我們不想把事情復雜化,我們想要理解兩種鏈接類型的區別,暫時只要知道這些就夠了。
每個文件的文件內容被分配到一個標示號碼,就是inode。因此每個文件名都綁定到它的文件內容(用inode標識)。原理如下圖:
下面我們學習如何創建硬鏈接和軟連接。
比之軟鏈接,硬鏈接的使用幾率小很多。但是我們還是要學習一下,畢竟可能會用到。
硬鏈接的原理:使鏈接的兩個文件共享同樣的文件內容,也就是同樣的inode。
所以一旦文件1和文件2之間有了硬鏈接,那么你修改文件1或文件2,其實修改的是相同的一塊內容。只不過我們可以用兩個文件名來取到文件內容。
硬鏈接有一個缺陷:只能創建指向文件的硬鏈接,不能創建指向目錄的硬鏈接。但是軟鏈接可以指向文件或目錄。當然了,事實上,通過一些參數的修改,也可以創建指向目錄的硬鏈接,但是比較復雜,這里不再詳述。所以對于目錄的鏈接,我們一般都是用軟鏈接。
硬鏈接原理圖:
要創建硬鏈接,直接用ln命令,不加任何參數:
我們可以用ls -i命令查看一下(-i參數可以顯示文件的inode)。對于硬鏈接來說,刪除任意一方的文件,共同指向的文件內容并不會從硬盤上被刪除。
我們用ls -l命令查看文件信息的時候,第二列的那個2,其實是表示擁有相同inode號的文件數。不難理解,因為它們指向相同的文件內容,所以共享一個inode。
這個第二列的數字,一般來說對于普通文件,都是1,因為不同文件inode不同嘛。對于目錄來說,這第二列的數字標明目錄內所含文件數目。
其實,軟鏈接才是真正像我們在Windows下的快捷方式的,其原理很相似。
創建硬鏈接是ln不帶任何參數,但是要創建軟鏈接需要加上-s參數。s是symbolic(符號的)的縮寫。
file2指向的不再是file1的文件內容(和硬鏈接不同),而是指向file1的文件名。
軟鏈接原理圖:
用ls -l命令查看一下,會發現形式和之前的硬鏈接不一樣噢,file2的信息是這樣的: file2-file1,表示file2指向file1。
而且file2前面的權限那里的第一個字母變成了l,表示link(鏈接)。之前硬鏈接的時候是沒有l的,硬鏈接外表看起來就和普通文件類似。
我們用ls -l命令查看文件信息的時候,第二列的那個1,表示擁有相同inode號的文件數。不難理解,因為file2指向file1,它們并沒有指向同一塊文件內容,所以它們的inode號不相同。
軟鏈接的特點:
此處要介紹的相關命令共有29個
關于文件與目錄管理的命令有9個,分別是 cd 、 ls 、 pwd 、 mkdir 、 rmdir 、 cp 、 rm 、 mv 、 touch
關于文件與目錄權限的命令有6個,分別是 chown 、 chgrp 、 chmod 、 umask 、 chattr 、 lsattr
關于文件查看與尋找的命令有14個,分別是 cat 、 tac 、 nl 、 more 、 less 、 head 、 tail 、 od 、 which 、 whereis 、 locate 、 find 、 file 、 updatedb
在linux中,有5個特殊目錄:
在 ls -l 命令的輸出內容中,顯示出每一個文件或目錄的一些常見屬性,例如:
在上述的屬性中,第一欄 drwxr-xr-x 為該文件的權限欄,該塊共有10個字符組成。其中第一個字符顯示該文件的類型,共有7種文件類型:
其余9個字符分為三組,第一組代表文件擁有者的權限,第二組代表文件擁有組的權限,第三組代表其他用戶的權限
三組中每組又有三個字符,分別代表這 rwx 權限,也就是讀,寫,執行權限。當權限不存在時,系統會以 - 填充該位。
SUID
該權限僅作用于文件,主要用途是讓使用者臨時擁有文件所有者的權限,僅對可執行的二進制文件有用,對腳本無效,在文件所有者的x權限上生效,存在時x權限變為小寫s,當x權限本身不存在時,顯示大寫S
SGID
當該權限作用在文件上時,主要用于是讓使用者擁有該文件群組的權限;如果該權限作用在目錄上時,主要是讓新建的文件或者目錄的所屬組為當前目錄的所屬組,在文件群組的x權限上生效,存在時x權限變為小寫s,當x權限本身不存在時,顯示大寫S
作用于文件
作用于目錄
SBIT
該權限僅作用于目錄,主要用途是讓使用者在該目錄創建了新文件或目錄時,僅有該使用者或root才有權利刪除該文件,在文件其他用戶的x權限上生效,存在時x權限變為小寫t,當x權限本身不存在時,顯示大寫T
以上三個特殊權限的配置與一般權限配置類似,只不過在需要配置特殊權限時,chmod后跟四位權限信息即可(需要注意的是,在配置特殊權限時要保證對應的位置上有x權限,否則將會顯示大寫的字母來標識無效)
一、讓使用者能進入某目錄成為『可工作目錄』的基本權限為何?
二、使用者在某個目錄內讀取一個文件的基本權限為何?
三、讓使用者可以修改一個文件的基本權限為何?
四、讓一個使用者可以創建一個文件的基本權限為何?
五、讓使用者進入某目錄并運行該目錄下的某個命令之基本權限為何?
新聞標題:linux加目錄的命令,linux文件目錄操作命令
網頁網址:http://vcdvsql.cn/article36/hejosg.html
成都網站建設公司_創新互聯,為您提供云服務器、網站制作、網站建設、Google、軟件開發、標簽優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯