1. 程式人生 > >Linux上建立和更改硬連結和符號連結

Linux上建立和更改硬連結和符號連結

概述

在本篇中,學習建立和管理硬連結和符號連結。學習:

  • 建立硬或軟連結
  • 識別連結並知道它們的型別
  • 理解複製與連結檔案之間的區別
  • 使用連結執行系統管理任務

連結簡介

在儲存裝置上,檔案或目錄包含在一些資料塊中。有關某個檔案的資訊包含在一個 inode 中,它記錄了所有者、最後訪問該檔案的時間、檔案的大小、它是否是目錄,以及誰可以讀取或寫入它等資訊。inode 編號也稱為檔案序列號 ,該編號在特定檔案系統內是唯一的。一個 目錄條目 包含一個檔案或目錄的名稱,以及用來儲存該檔案或目錄的資訊的 inode 的指標。

建立連結

硬連結 是指向 inode 的目錄條目,而 軟連結符號連結 是指向提供另一個目錄條目的名稱的 inode 的目錄條目。儲存第二個名稱的準確機制可能依賴於檔案系統和名稱的長度。符號連結也稱為symlink

您可以只為檔案建立硬連結,而不為目錄建立硬連結。一個例外是一個包含該目錄和它的父目錄(. 和 ..)的目錄中的特殊目錄條目,它們是維護子目錄數量的硬連結。因為硬連結指向 inode,而且 inode 僅在特定的檔案系統內是唯一的,所以硬連結不能跨檔案系統使用。如果一個檔案有多個硬連結,那麼只在指向該 inode 的最後一個連結被刪除,而且連結數量變為 0 時,才會刪除該檔案。

軟連結或 symlink 僅按名稱指向另一個檔案或目錄,而不是按 inode。軟連結可以跨越檔案系統邊界進行使用。刪除軟連結不會刪除目標檔案或目錄,刪除目標檔案或目錄也不會自動刪除任何軟連結。

首先讓我們看看如何建立硬和軟連結。在本教程後面,我們將介紹識別和使用我們在這裡建立的連結的方式。

硬連結

使用 ln 命令建立現有檔案的額外的硬連結(但不能是目錄,即使系統將 . 和 .. as 設定為硬連結)。

清單 1 展示瞭如何建立一個包含兩個檔案和一個子目錄的目錄,其中包含 file1 的兩個硬連結,一個位於同一個目錄中,另一個位於子目錄中。我們向 file1 新增一個詞,然後向 file3 新增另一個詞,並在子目錄中顯示該連結的內容,以表明所有連結確實都指向相同的資料。

清單 1. 建立硬連結

[[email protected] ~]$ mkdir -p lpi104-6/subdir
 [[email protected] ~]$ touch lpi104-6/file1
 [
[email protected]
~]$ touch lpi104-6/file2 [[email protected] ~]$ ln lpi104-6/file1 lpi104-6/file3 [[email protected] ~]$ ln lpi104-6/file1 lpi104-6/subdir/file3sub [[email protected] ~]$ echo "something" > lpi104-6/file1 [[email protected] ~]$ echo "else" >> lpi104-6/file3 [[email protected] ~]$ cat lpi104-6/subdir/file3sub something else

如果嘗試建立跨檔案系統或針對目錄的硬連結,則會獲得錯誤。清單 2 顯示我的主目錄和 research 目錄在不同的檔案系統上,而且跨這些檔案系統建立硬連結的嘗試失敗了,與建立 lpi104-6 目錄的硬連結的嘗試一樣。

清單 2. 硬連結建立失敗

[[email protected] ~]$ df . research
 Filesystem     1K-blocks     Used Available Use% Mounted on 
 /dev/sda5       71168700 31642752  35887712  47% / 
 /dev/sdb3       60326992 30677592  26578276  54% /home/ian/research 
 [[email protected] ~]$ mkdir -p research/lpi104-6/
 [[email protected] ~]$ ln lpi104-6/file1 research/lpi104-6/file3
 ln: failed to create hard link ‘ research/lpi104-6/file3 ’ => 
‘ lpi104-6/file1 ’ : Invalid cross-device link 
 [[email protected] ~]$ ln lpi104-6 lpidir104-6
 ln: ‘ lpi104-6 ’ : hard link not allowed for directory

軟連結

使用 ln 命令和 -s 選項來建立軟連結。軟連結使用檔案或目錄名稱,這些名稱可能是相對或絕對的。如果使用相對名稱,您可能希望當前工作目錄是您建立連結的目錄。否則,您建立的連結將是檔案系統中的另一個位置相對的連結。

清單 3 展示了為我們剛建立的 file1 建立軟連結的兩種方式,以及如何建立軟連結,而不是建立在 清單 2中失敗的兩個硬連結。

清單 3. 建立軟連結

[[email protected] ~]$ # Create symlink using absolute paths
 [[email protected] ~]$ ln -s ~/lpi104-6/file1 ~/lpi104-6/file4
 [[email protected] ~]$ # Create symlink using relative paths
 [[email protected] ~]$ cd lpi104-6/
 [[email protected] lpi104-6]$ ln -s file1 file5
 [[email protected] lpi104-6]$ cd ..
 [[email protected] ~]$ # Create symlink across file systems
 [[email protected] ~]$ mkdir -p ~ian/research/lpi104-6
 [[email protected] ~]$ ln -s ~/lpi104-6/file1 ~ian/research/lpi104-6/file4
 [[email protected] ~]$ # Create symlink for directory
 [[email protected] ~]$ ln -s lpi104-6 lpidir104-6

與之前一樣,您可以使用任何連結或目標檔名來引用該檔案或目錄。清單 4 顯示了一些例子。

清單 4. 使用軟連結

[[email protected] ~]$ echo "another line" >> ~ian/research/lpi104-6/file
 [[email protected] ~]$ # cat a symlink
 [[email protected] ~]$ cat lpi104-6/file5
 something 
 else 
 [[email protected] ~]$ # cat a hard link
 [[email protected] ~]$ cat lpi104-6/file1
 something 
 else 
 [[email protected] ~]$ # display directory contents using symlink
 [[email protected] ~]$ ls lpidir104-6
 file1  file2  file3  file4  file5  subdir

在建立連結時,讓我們在工作目錄 不是我們想要存放連結的目錄時使用相對路徑建立一個連結。下一節將介紹如何實現此目的。

清單 5. 建立不良的軟連結

 [[email protected] ~]$ ln -s lpi104-6/file1 lpi104-6/file6

識別連結

在上一節中,您瞭解瞭如何建立連結,但不知道如何區分您建立的連結。現在讓我們討論一下這個主題。

查詢資訊

在許多系統上,ls 命令等同於 ls --color=auto ,它以不同顏色列印不同型別的檔案系統物件。如果使用此選項,可能使用藍綠色文字來顯示 symlink,如 圖 1中所示。

圖 1. 使用 ls 的 --colors 選項來識別連結
使用 ls 的 --colors 選項來識別連結

在舊配置上,可能使用深藍色背景來顯示硬連結。這些顏色可使用 dircolors 程式來配置。如果要自定義您的終端外觀,您可能希望更改ls 的一些輸出的顏色。清單 6顯示了一種在 Fedora 22 系統上獲得硬連結的藍色背景的方式,而 圖 2 則顯示了結果。使用手冊頁進一步理解該示例。

清單 6. 使用 dircolors 為硬連結設定一種藍色背景

[[email protected] ~]$ # Save a copy of dircolors defaults
 [[email protected] ~]$ dircolors -p > dircolors-defaults
 [[email protected] ~]$ grep MULTI dircolors-defaults 
 MULTIHARDLINK 00 # regular file with more than one link 
 [[email protected] ~]$ # Change MULTIHARDLINK to blue background 
 [[email protected] ~]$ sed -e'/MULTI/s/00/00;44/' dircolors-defaults > dircolors-new 
 [[email protected] ~]$ grep MULTI dircolors-new 
 MULTIHARDLINK 00;44 # regular file with more than one link 
 [[email protected] ~]$ # Set the new colors for the current terminal session 
 [[email protected] ~]$ eval $(dircolors dircolors-new )

圖 2. 使用藍色背景來標識硬連結
使用 ls 的 --colors 選項來識別連結

對於能夠區分顏色的視力正常的人而言,顏色可能很方便,但它們對其他人沒多大用處,對 shell 指令碼或程式肯定也沒多大用處。沒有顏色,就需要更多的資訊,比如使用ls -l 通過一個長清單所提供的資訊。在 清單 7中,我們為第一個示例顯式禁用了顏色輸出,但您也可以像我們對另外兩個示例所做的一樣顯式呼叫/bin/ls 命令。

清單 7. 識別連結

[[email protected] ~]$ ls --color=none -lR lpi104-6
 lpi104-6: 
 total 12 
 -rw-rw-r--. 3 ian ian   15 Aug  9 14:19 file1 
 -rw-rw-r--. 1 ian ian    0 Aug  9 14:19 file2 
 -rw-rw-r--. 3 ian ian   15 Aug  9 14:19 file3 
 lrwxrwxrwx. 1 ian ian   24 Aug  9 14:26 file4 -> /home/ian/lpi104-6/file1 
 lrwxrwxrwx. 1 ian ian    5 Aug  9 14:26 file5 -> file1 
 lrwxrwxrwx. 1 ian ian   14 Aug  9 14:34 file6 -> lpi104-6/file1 
 drwxrwxr-x. 2 ian ian 4096 Aug  9 14:19 subdir 

 lpi104-6/subdir: 
 total 4 
 -rw-rw-r--. 3 ian ian 15 Aug  9 14:19 file3sub 
 [[email protected] ~]$ /bin/ls -l ~ian/research/lpi104-6/file4
 lrwxrwxrwx. 1 ian ian 24 Aug  9 14:27 /home/ian/research/lpi104-6/file4 -> /home/ian/lpi104-6/file1 
 [[email protected] ~]$ /bin/ls -l lpidir104-6
 lrwxrwxrwx. 1 ian ian 8 Aug  9 14:27 lpidir104-6 -> lpi104-6

輸出的第二列是一個連結計數,顯示了此檔案的硬連結數,所以我們知道 file1、file3 和 file3sub 都擁有多個指向它們表示的物件的硬連結。我們仍沒有足夠的資訊來知道它們都表示同一個物件。如果您刪除一個連結數大於 1 的檔案,inode 中的連結數會減 1,但該檔案只在連結數變為 0 時才會刪除。同一個檔案的其他所有硬連結將顯示一個現在減去了 1 的連結數。

在輸出的第一列中,您會看到第一個字元是表示符號連結的 “l”(L 的小寫形式)。您還會看到在 -> 字元後顯示了連結的目標。例如,file4 -> /home/ian/lpi104-6/file1。另一個提示是,該大小是連結目標的名稱中的字元數。請注意,對於符號連結,目錄清單中的連結數沒有更新。刪除該連結不會影響目標檔案。Symlink 不會阻止檔案被刪除。如果目標檔案被移動或刪除,那麼 symlink 將被破壞。出於這個原因,許多系統在目錄清單中使用了顏色,通常使用淡藍色表示正常連結,使用紅色表示被破壞的連結。

您可以使用 ls 命令的 -i 選項來顯示檔案和目錄條目的 inode 數量。清單 8同時給出了我們的 lpi104-6 目錄的短和長輸出。

清單 8. 顯示 inode 資訊

[[email protected] ~]$ ls -i lpi104-6
 1988884 file1  1988884 file3  1988892 file5  1988605 subdir 
 1988886 file2  1988885 file4  1988891 file6 
 [[email protected] ~]$ ls -il lpi104-6
 total 12 
 1988884 -rw-rw-r--. 3 ian ian   15 Aug  9 14:19 file1 
 1988886 -rw-rw-r--. 1 ian ian    0 Aug  9 14:19 file2 
 1988884 -rw-rw-r--. 3 ian ian   15 Aug  9 14:19 file3 
 1988885 lrwxrwxrwx. 1 ian ian   24 Aug  9 14:26 file4 -> /home/ian/lpi104-6/file1 
 1988892 lrwxrwxrwx. 1 ian ian    5 Aug  9 14:26 file5 -> file1 
 1988891 lrwxrwxrwx. 1 ian ian   14 Aug  9 14:34 file6 -> lpi104-6/file1 
 1988605 drwxrwxr-x. 2 ian ian 4096 Aug  9 14:19 subdir

您還可以使用 find 命令,使用 -type l 查詢表示式來搜尋符號連結,如 清單 9中所示。

清單 9. 使用 find 查詢 symlink

[[email protected] ~]$ find lpi104-6 research/lpi104-6 -type l
 lpi104-6/file4 
 lpi104-6/file6 
 lpi104-6/file5 
 research/lpi104-6/file4

破壞的 symlink

清單 5 中,我們宣告要建立一個不良的軟連結。這是破壞的 symlink 的一個示例。因為硬連結始終指向一個表示檔案的 inode,所以它們始終有效。但是,symlink 可能出於許多原因而遭到破壞,包括:

  • 在建立連結時,連結的原始檔案或目標不存在(就像 清單 5 中一樣)。
  • 連結的目標被刪除或重新命名。
  • 目標的路徑中的某個元素被刪除或重新命名。

所有這些條件都不會丟擲錯誤,所以您需要仔細考慮您在建立 symlink 時可能發生了什麼情況。具體地講,對於絕對或相對路徑的選擇,可能受到您希望連結的物件在連結生存期中發生什麼的影響。

如果您使用顏色輸出,破壞的 symlink 可能在黑色背景上顯示為紅色文字,就像 圖 1 中的 file6 的情況一樣。否則,您需要使用 ls-H-L 選項來取消引用該連結,並提供有關目標的資訊。-H 選項在命令列上取消引用連結,-L 選項取消引用顯示中包含的附加連結。清單 10演示了來自這兩個選項的輸出中的區別。

清單 10. 使用 ls -H 和 ls -L 取消引用連結

[[email protected] ~]$ /bin/ls -lH lpidir104-6
 total 12 
 -rw-rw-r--. 3 ian ian   15 Aug  9 14:19 file1 
 -rw-rw-r--. 1 ian ian    0 Aug  9 14:19 file2 
 -rw-rw-r--. 3 ian ian   15 Aug  9 14:19 file3 
 lrwxrwxrwx. 1 ian ian   24 Aug  9 14:26 file4 -> /home/ian/lpi104-6/file1 
 lrwxrwxrwx. 1 ian ian    5 Aug  9 14:26 file5 -> file1 
 lrwxrwxrwx. 1 ian ian   14 Aug  9 14:34 file6 -> lpi104-6/file1 
 drwxrwxr-x. 2 ian ian 4096 Aug  9 14:19 subdir 
 [[email protected] ~]$ /bin/ls -lL lpidir104-6
 /bin/ls: cannot access lpidir104-6/file6: No such file or directory 
 total 20 
 -rw-rw-r--. 3 ian ian   15 Aug  9 14:19 file1 
 -rw-rw-r--. 1 ian ian    0 Aug  9 14:19 file2 
 -rw-rw-r--. 3 ian ian   15 Aug  9 14:19 file3 
 -rw-rw-r--. 3 ian ian   15 Aug  9 14:19 file4 
 -rw-rw-r--. 3 ian ian   15 Aug  9 14:19 file5 
 l?????????? ? ?   ?      ?            ? file6 
 drwxrwxr-x. 2 ian ian 4096 Aug  9 14:19 subdir

請注意,錯誤訊息表明 file6 不存在,另請注意針對它的包含所有 “?” 字元的輸出,它們同樣表明該檔案不存在。

關於破壞的符號連結,還要說明最後一點。讀取該檔案的嘗試將失敗,因為它不存在。但是,如果您擁有目標檔案的合適許可權,寫入它的嘗試將有效,如 清單 11中所示。請注意,我們需要在寫入該檔案之前建立 lpi104-6/lpi104-6。

清單 11. 讀取和寫入一個破壞的 symlink

[[email protected] ~]$ cat lpi104-6/file6
 cat: lpi104-6/file6: No such file or directory 
 [[email protected] ~]$ echo "Testing file6" > lpi104-6/file6
 bash: lpi104-6/file6: No such file or directory 
 [[email protected] ~]$ mkdir lpi104-6/lpi104-6
 [[email protected] ~]$ cat lpi104-6/file6
 cat: lpi104-6/file6: No such file or directory 
 [[email protected] ~]$ echo "Testing file6" > lpi104-6/file6
 [[email protected] ~]$ cat lpi104-6/file6
 Testing file6 
 [[email protected] ~]$ ls lpi104-6/lpi104-6
 file1 
 [[email protected] ~]$ ls -l lpi104-6/file6
 lrwxrwxrwx. 1 ian ian 14 Aug  9 14:34 lpi104-6/file6 -> lpi104-6/file1

誰連結到我?

要確定哪些檔案是一個特定 inode 的硬連結,可以使用 find 命令和 -samefile 選項及一個檔名,或者-inum 選項及一個 inode 編號,如 清單 12 中所示。

清單 12. 查詢同一個檔案的硬連結

[[email protected] ~]$ find lpi104-6 -samefile lpi104-6/file1
 lpi104-6/file1 
 lpi104-6/file3 
 lpi104-6/subdir/file3sub 
 [[email protected] ~]$ ls -i lpi104-6/file1
 1988884 lpi104-6/file1 
 [[email protected] ~]$ find lpi104-6 -inum 1988884
 lpi104-6/file1 
 lpi104-6/file3 
 lpi104-6/subdir/file3sub

要查詢哪些檔案通過符號連結而連結到一個特定檔案,可以使用 find 命令和 -lname 選項及一個檔名,如 清單 13 所示。連結可以使用相對或絕對路徑,所以您可能希望在名稱中放入一個前導的星號來找到所有匹配結果。

清單 13. 查詢一個檔案或目錄的符號連結

[[email protected] ~]$ find lpi104-6 research/lpi104-6 -lname "*file1"
 lpi104-6/file4 
 lpi104-6/file6 
 lpi104-6/file5 
 research/lpi104-6/file4

複製還是連結

根據您想要完成的任務,有時會使用連結,有時複製一個檔案可能會更好一些。主要區別在於,連結提供了一個檔案的多個名稱,而副本會在兩個不同的名稱下建立兩組相同的資料。對於備份和測試用途,肯定會使用副本,您希望試驗一個新程式而不讓您的操作資料處於風險之中。在需要某個檔案(或目錄)的別名時(可能用於提供更方面或更短的路徑),可以使用連結。在下一節中,我們將介紹連結的其他一些用法。

您已經看到,在更新一個檔案時,它所有的連結都會看到更新資訊,而複製檔案不會這樣。您還看到,符號連結可以破壞,後續寫入操作可以建立新的檔案。請小心使用連結。

連結和系統管理

連結(尤其是符號連結)通常用在 Linux 系統管理中。命令通常具有別名,所以使用者不需要知道當前命令的版本號,但在必要的時候,可以使用更長的名稱來訪問其他版本。如 清單 14所示,python 命令是python2 的 symlink,python2 本身是 2.7 版的 python2.7 的 symlink。

清單 14. 將命令別名化為一個特定版本

[[email protected] ~]$ which python
 /usr/bin/python 
 [[email protected] ~]$ ls -l /usr/bin/python
 lrwxrwxrwx. 1 root root 7 May 27 14:12 /usr/bin/python -> python2 
 [[email protected] ~]$ ls -l /usr/bin/python2
 lrwxrwxrwx. 1 root root 9 May 27 14:12 /usr/bin/python2 -> python2.7 
 [[email protected] ~]$ ls -l /usr/bin/python2.7
 -rwxr-xr-x. 1 root root 7120 May 27 14:12 /usr/bin/python2.7

在多個命令名稱使用相同的基礎程式碼時,比如儲存和重新啟動系統的各種命令,其他用途就可以派上用場。有時,一個新命令名稱(比如 genisoimage )將取代舊命令名稱,但舊名稱 (mkisofs) 保持為新命令的連結。一些替代性 工具會廣泛使用連結,所以您可以在多個替代性工具中選擇一個來用於某條命令,比如java 。清單 15顯示了一些示例。

清單 15. 命令別名的示例

[[email protected] ~]$ which halt
 /usr/sbin/halt 
 [[email protected] ~]$ ls -l /usr/sbin/halt
 lrwxrwxrwx. 1 root root 16 Jun  9 09:16 /usr/sbin/halt -> ../bin/systemctl 
 [[email protected] ~]$ find /usr/sbin /usr/bin -lname "*/systemctl"
 /usr/sbin/halt 
 /usr/sbin/telinit 
 /usr/sbin/shutdown 
 /usr/sbin/runlevel 
 /usr/sbin/poweroff 
 /usr/sbin/reboot 
 [[email protected] ~]$ which mkisofs
 /usr/bin/mkisofs 
 [[email protected] ~]$ ls -l /usr/bin/mkisofs
 lrwxrwxrwx. 1 root root 25 Jun 15 08:02 /usr/bin/mkisofs -> /etc/alternatives/mkisofs 
 [[email protected] ~]$ alternatives --display mkisofs
 mkisofs - status is auto. 
 link currently points to /usr/bin/genisoimage 
 /usr/bin/genisoimage - priority 50 
 slave mkisofs-mkhybrid: /usr/bin/genisoimage 
 slave mkisofs-mkhybridman: /usr/share/man/man1/genisoimage.1.gz 
 slave mkisofs-mkisofsman: /usr/share/man/man1/genisoimage.1.gz 
 Current `best' version is /usr/bin/genisoimage.

庫名稱通常也使用 symlink 來管理,無論是允許程式在獲取當前版本時連結到一般名稱,還是管理系統,比如能夠執行 32 位程式的 64 位系統。清單 16顯示了一些示例。請注意,一些情況會使用絕對路徑,而另一些情況會使用相對路徑。

清單 16. 庫連結

[[email protected] ~]$ ls -l /usr/lib*/libm.so*
 lrwxrwxrwx. 1 root root 21 Feb 23 10:31 /usr/lib64/libm.so -> ../../lib64/libm.so.6 
 lrwxrwxrwx. 1 root root 12 Feb 23 10:33 /usr/lib64/libm.so.6 -> libm-2.21.so 
 lrwxrwxrwx. 1 root root 12 Feb 23 10:35 /usr/lib/libm.so.6 -> libm-2.21.so 
 [[email protected] ~]$ find  /usr/lib/ /usr/lib64/ -lname "*libstdc++*"
 /usr/lib/gcc/x86_64-redhat-linux/5.1.1/libstdc++.so 
 /usr/lib/gcc/x86_64-redhat-linux/5.1.1/32/libstdc++.so 
 /usr/lib/gcc/x86_64-redhat-linux/5.1.1/32/libstdc++.a 
 /usr/lib64/libstdc++.so.6 
 [[email protected] ~]$ ls -l /usr/lib64/libstdc++.so.6
 lrwxrwxrwx. 1 root root 19 Jun 18 06:52 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.21 
 [[email protected] ~]$ ls -l /usr/lib64/libwbclient*
 lrwxrwxrwx. 1 root root 19 Jul  1 10:37 /usr/lib64/libwbclient.so.0 -> libwbclient.so.0.12 
 lrwxrwxrwx. 1 root root 40 Jul  1 10:37 /usr/lib64/libwbclient.so.0.12 -> 
 /etc/alternatives/libwbclient.so.0.12-64

累死了,大概這些就夠了吧,有興趣的可以多去了解了解!Linux是很有魅力的!







相關推薦

Linux建立更改連結符號連結

概述 在本篇中,學習建立和管理硬連結和符號連結。學習: 建立硬或軟連結識別連結並知道它們的型別理解複製與連結檔案之間的區別使用連結執行系統管理任務 連結簡介 在儲存裝置上,檔案或目錄包含在一些資料塊中。有關某個檔案的資訊包含在一個 inode 中,它記錄了所有者、最後

Xftp連接阿裏雲Linux,向Linux傳文件,WindowsLinux文件傳輸

技術 幫助 很多 blog 就是 希望 上傳 linu 好用 我之前是用SecureCRT連接阿裏雲Linux的,上傳文件用的Alt+p快捷鍵,感覺不是很方便。後來朋友給我推薦了Xshell,感覺確實好用得很多。 傳輸文件用的是Xftp,今天在向我的個人網站發布項目的時候總

linux靜態庫的創建使用

ont ret \n i++ 宋體 fin 命令 argc 特點 靜態庫的概念:   我們知道程序編譯一般需經預處理、編譯、匯編和鏈接幾個步驟。在我們的應用中,有一些公共代碼是需要反復使用,就把這些代碼編譯為"庫"文件;在鏈接步驟中,連接器將從庫文件取得所需的代碼,復制到生

Linux建立、檢視、提取修改靜態庫(*.a)

先說明一點,靜態庫檔案是由多個目標檔案打包而成的,在windows下靜態庫檔案的字尾是.lib,而在linux下靜態庫檔案的字尾是.a(a是archive的縮寫,也就是文件檔案)。   廢話少說,下面直接進入主題。   1.建立兩個c檔案:addition.c 和 mul

Linux電自動掛載SD卡檔案系統的修改

參照黑金例程在ZYNQ開發板上移植好Linux系統後,預設是沒有載入SD卡的。因此每次斷電後,在Linux上的配置資訊全部丟失,每次上電後都要重複配置,非常的不方便,經過死皮爛臉的求問和網上查資料之後,終於實現了這個功能,在這裡分享一下我通過新建petalinux的開機自啟

Caffe學習筆記1:linux建立自己的資料庫訓練測試caffe中已有網路

本文是基於薛開宇 《學習筆記3:基於自己的資料訓練和測試“caffeNet”》基礎上,從頭到尾把實驗跑了一遍~對該文中不清楚的地方做了更正和說明。 主要工作如下: 1、下載圖片建立資料庫 2、將圖片轉化為256*256的lmdb格式 3、計算影象均值 4、定義網路修改部分引

linux安裝php7 memcache擴展 安裝服務端memcached

gre 加載 ins file wget phpize 一個 根據 虛擬 轉:https://www.cnblogs.com/hejun695/p/5369610.html 先說安裝服務端 memcached 1. 首先安裝Libevent事件觸發管理器。 wge

linux建立svn伺服器(centos7.3)

1.安裝svn yum -y install subversion 2.建立svn版本倉庫 mkdir /var/svn/svnrepos svnadmin create /var/svn/svnrepos/rep 建立成功,cd rep進入rep中有如下目錄: 3.命令:cd conf 修改

Linux建立txt檔案,並編輯

1. touch +  akk.txt(檔名 ) 建立檔案akk.txt檔案 2.ls 檢視所有檔案 3.vi akk.txt vi為進入vim編輯器命令,意為在vim編輯器中編輯akk.txt檔案 可以輸入a後,按tab鍵,可以自動補全a開頭的檔案 4.i i意為inse

ORACLE 11g在linux建立第二個例項

linux伺服器主機不夠,而測試人員需要新的一臺oracle環境做測試,,所以準備在已經有的oracle的linux主機上上面建立第二個例項。這臺oracle伺服器的資源足夠用,所以就直接在上面搭建多例項來滿足測試人員的需求。 1,使用vnc 遠端工具進去

在 Ubuntu Linux,如何更改你的主機名( 計算機名稱)

Ubuntu要求你在安裝計算機時為你的計算機選擇一個名為"主機名"的名稱。 你可以稍後更改這個主機名,但是Ubuntu並沒有提供一個圖形化的介面。 這裡過程也將在 Linux Mint 和其他基於debian的 Linux發行版中工作。 其他Linux發行版- 例如Fedora和其他基於紅帽的發行版-

linux 建立不了模擬器

[email protected]:~$ sudo apt-get install ia32-libs [sudo] password for administrator:  正在讀取軟體包列表... 完成 正在分析軟體包的依賴關係樹        正在讀取狀態資訊... 完成        有一

如何用sosreport在Linux建立診斷報告

Sosreport是RHEL / CentOS上的一個命令,它會收集系統配置和你linux機器上的診斷資訊,如正在執行的核心版

gnu linux ARM預設char是不帶符號.

 C標準表示char型別可以帶符號也可以不帶符號,由具體的編譯器、處理器或由它們兩者共同決定到底char是帶符號合適還是不帶符號合適。大部分體系結構上,char預設是帶符號的,它可以自-128到127之間取值。而也有一些例外,比如ARM體系結構上,char就是不帶符號的,它

LInux連結連結建立、刪除

軟連結:     1.以路徑的形式存在     2.軟連結可以跨檔案系統,硬連結不可以     3.軟連結可以對一個不存在的檔名進行連結     4.軟連結可以對

Linux連結軟連線的區別以及建立

硬連結:已存在的檔案的一個別名,當原始檔刪除時仍可使用,且inode可共享,僅檔名不同的檔案,硬連結的建立會使連結數加1。 軟連線:符號連結,也就是快捷方式,不共享inode,有自己的inode,可對不存在的檔案建立軟連結,建立時連結數不加一,當原始檔刪除時,則

Linux命令——建立連結連結

Linux 系統中有軟連結和硬連結兩種特殊的“檔案”。 軟連結可以看作是Windows中的快捷方式,可以讓你快速連結到目標檔案或目錄。 硬連結則透過檔案系統的inode來產生新檔名,而不是產生新檔案。 建立方法: #軟連結 ln -s source targe #硬連結 ln so

Linux學習筆記之1——文件目錄管理(連接軟連接)(連結檔,相當於快捷方式)

class 學習linux lock 訪問 接下來 所有 sdn ext test 在這節將要學習linux的連接檔,在之前用"ls -l" 查看文件屬性的命令時, 其中第二個屬性是連接數。那麽這個連接數是幹什麽的?這就要理解inode。 先說一下文件是怎麽存儲的。

Linux 連結連結小結

每個linux儲存裝置的分割槽被格式化成檔案系統後, 一般生成兩個部分: 第一部分是inode;inode是用來儲存資料屬性資訊的; 第二部分是block;block是用來儲存實際資料的 例如照片 視訊; inode具有指向檔案實體的功能,但是inode唯獨不包含檔名 檔名儲存在它上一級目錄的block中。

linux中軟連結連結的區別與小結

首先我們需要了解linux下硬連結以及軟連線的基本概念. 硬連結:新建的檔案是已經存在的檔案的一個別名,當原檔案刪除時,新建的檔案仍然可以使用. 軟連結:也稱為符號連結,新建的檔案以“路徑”的形式來表示另一個檔案,和Windows的快捷方式十分相似,新建的軟連結可以指向不存在的檔案. 下