文件的軟硬鏈接& 文件編輯vi和vim

来源:https://www.cnblogs.com/gongjingyun123--/archive/2019/06/21/11065225.html
-Advertisement-
Play Games

[TOC] 文件的軟硬鏈接 1.軟鏈接 2.硬鏈接 文件編輯vi和vim vim比vi多了高亮顯示 須先安裝軟體包yum install y vim 三種方式: 1.命令模式 可控制游標移動,對文本進行查看,翻頁,複製,粘貼,刪除,剪切等工作 [root@gong ~] vim /etc/my.cn ...


目錄

文件的軟硬鏈接

1.軟鏈接

軟鏈接就相當於windows的快捷方式,軟鏈接文件會將incode 指向源文件的 block,當我們在訪問軟鏈接時,其實就是在訪問源文件本身

一個文件,被分為兩個部分:
 1)用戶數據
 2)元數據


元數據:是電腦用來描述文件的屬性,例如文件大小,創建時間,屬組,屬主等,稱為incode
用戶數據:可以稱為block,文件數據塊,是記錄文件真實內容的地方,預設4k

ln -s /root/soft_link /tmp/soft_link
         源文件            目標
示例:

[root@centos7 ~]# touch soft_link

[root@centos7 ~]# ln -s soft_link /tmp/soft_link

[root@centos7 ~]# ls -li soft_link /tmp/soft_link     

33584458 -rw-r--r--. 1 root root 0 Jun 21 15:03 soft_link

16780579 lrwxrwxrwx. 1 root root 9 Jun 21 15:04 /tmp/soft_link -> soft_link

 

軟鏈接的應用場景:

1)軟體升級
2)代碼發佈
3)不方便移動的目錄
4)數據回滾
5)程式讀取

2.硬鏈接

若一個incode號對應多個文件名,則稱這些文件為硬鏈接,就是同一個文件使用了多個別名,如下圖所示hard link就是file的一個別名,他們有共同的incode

1)具有同一個inode號的文件,互為硬鏈接文件
2)目錄不能創建硬鏈接,會報錯

示例:
[root@centos7 ~]# ls -li /etc/passwd
17231345 -rw-r--r--. 1 root root 798 Jun 12 20:11 /etc/passwd

總結

1)創建命令不同
軟鏈接:ln -s
硬鏈接:ln
2)目錄不能創建硬鏈接,並且硬鏈接不可以跨越系統的分區,軟鏈接可以
3)硬鏈接文件與源文件inode相同,軟鏈接文件與源文件inode不同
4)刪除軟鏈接文件,對源文件無影響,但是刪除軟鏈接源文件對軟鏈接文件有影響
5)刪除硬鏈接文件,對源文件也無影響,並且刪除源文件,對硬鏈接文件也無影響
6)只有原文件和硬鏈接同時刪除,原文件才真正刪除
註意

ln
-s:做軟鏈接
-f:強製做鏈接
-v:反向做鏈接    

&&:銜接多條命令,前面執行成功之後,再執行後面的
||:銜接多條命令,前面執行不成功,後面也要執行


查看磁碟信息df
-h:人類可讀
-i:查看磁碟inode
業面試題:

當前磁碟空間還剩餘500G,但是就無法往裡面寫入數據,報錯,磁碟空間滿了。
[root@db04 ~]# df -i
Filesystem                   Inodes IUsed   IFree IUse% Mounted on
/dev/mapper/vg_db01-lv_root 1152816 76391 1076425    7% /
tmpfs                        238319     1  238318    1% /dev/shm
/dev/sda1                    128016    39  127977    1% /boot

 \#模擬
[root@db04 ~]# dd if=/dev/zero of=/opt/disk bs=1K count=1024
[root@db04 ~]# mkfs.ext4 -i 1024 /opt/disk
[root@db04 ~]# mkdir /data1
[root@db04 ~]# mount -t ext4 -o loop /opt/disk /data1
[root@db04 data1]# touch file{1..2000}
touch: 無法創建"file1014": 設備上沒有空間
touch: 無法創建"file1015": 設備上沒有空間
touch: 無法創建"file1016": 設備上沒有空間
touch: 無法創建"file1017": 設備上沒有空間
touch: 無法創建"file1018": 設備上沒有空間

[root@db04 data1]# df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/vg_db01-lv_root   18G  2.0G   15G  12% /
tmpfs                        931M     0  931M   0% /dev/shm
/dev/sda1                    485M   39M  421M   9% /boot
/opt/disk                    891K   39K  801K   5% /data1

 [root@db04 data1]# df -i
Filesystem                   Inodes IUsed   IFree IUse% Mounted on
/dev/mapper/vg_db01-lv_root 1152816 76393 1076423    7% /
tmpfs                        238319     1  238318    1% /dev/shm
/dev/sda1                    128016    39  127977    1% /boot
/opt/disk                      1024  1024       0  100% /data1

硬連接數計算
[root@db04 ~]# mkdir hard
[root@db04 ~]# ll hard -d
drwxr-xr-x 2 root root 4096 6月   1 12:50 hard
[root@db04 ~]# cd hard
[root@db04 hard]# mkdir test1
[root@db04 ~]# ll -d hard
drwxr-xr-x 3 root root 4096 6月   1 12:50 hard
[root@db04 ~]# cd hard
[root@db04 hard]# touch test
[root@db04 ~]# ll -d hard
drwxr-xr-x 3 root root 4096 6月   1 12:50 hard

文件編輯vi和vim

vim相容了vi的所有優勢,yrong比vi多了高亮顯示

須先安裝vim命令的軟體包yum install -y vim

三種模式:

 1.普通模式

也就是命令模式,進入文本當中就是普通模式,可控制游標移動,對文本進行查看,翻頁,複製,粘貼,刪除,剪切等 工作

[root@gong ~]# vim /etc/my.cnf

G shift+g ,將游標移動到文件的末尾
gg 將游標移動到文件的開頭 ,ngg就是移至n行行首
dd 刪除一行,(刪除多行 ndd dnd :n為數字 + p = 剪切)
D 將游標之後的內容都刪除
u 撤銷
dG 刪除游標以下的所有內容(包括游標所在行)
dgg 刪除游標以下的所有內容(包括游標所在行)
$(shift+4) 將游標移動至行尾
^(shift+6) 將游標移動至行首
Ctrl+r 恢復撤銷
x 刪除游標所在字元
X 刪除游標之前的字元
yy 複製,複製n 行,nyy ,yny
p 粘貼(游標所在行的下一行)
P 粘貼(游標所在行的上一行)
Ctrl+f 往下翻頁(行比較多)
Ctrl+b 網上翻頁
r 單個字元替換
R 多個字元替換(按ESC退出替換)

 2.編輯模式

需要由普通模式進入到編輯模式,可移動游標自由修改文件。
[root@gong ~]# vim/etc/my.cnf

i 進入編輯模式
I 將游標跳至行首,併進入編輯模式
A 將游標跳到行末,併進入編輯模式
a 將游標向後移動一個字元,併進入編輯模式
o 將游標調至下一行,併進入編輯模式
O 將游標調至上一行,併進入編輯模式
s 刪除游標所在的字元,併進入編輯模式
S 刪除游標所在的行,併進入編輯模式

3.末行模式

主要用於搜索,保存,退出文件,還可以讓用戶執行外部的linux命令跳轉到所編寫文檔的特定行數
[root@gong ~]# vim/etc/my.cnf

:w 保存當前狀態
:w! 強制保存當前狀態
:q 退出當前文檔(文檔必須保存才能退出)
:q! 強制退出文檔不會修改當前內容
:wq 先保存,再退出
:wq! 強制保存並退出
:x 先保存,再退出
ZZ 保存退出, shfit+zz相當於 :wq 相當於:x
:number 跳轉至對應的行號,和普通模式Ngg一個意思
3.末行模式的報錯   
E37: No write since last change (add ! to override)
E45: 'readonly' option is set (add ! to override)
E212: Unable to open and write files

末行模式(查找和替換)     
查找  /string 需要搜索的內容(查找)
n 按搜索到的內容依次往下進行查找
N 按搜索到的內容依次往上進行查找

替換
:1,5s#sbin#test#g          替換1-5行中包含sbin的內容為test
:%s#sbin#test#g            替換整個文本文件中包含sbin的替換為test
:%s#sbin#test#gc           替換內容時時提示是否需要替換
%表示所有行   s表示替換   g表示所有匹配到的內容     c表示提示              

替換為 w (y/n/a/q/l/^E/^Y)?
y:替換一次
n:選中下一個
a:全部替換
q:退出
l:替換一次並退出詢問

另存
:w /root/test  將文件所有內容另存為/root/test             

讀入
:r  /etc/hosts  讀入/etc/hosts文件至當前游標下麵
:5r /etc/hosts  指定/etc/hosts文件當前文件的哪行下麵

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

-Advertisement-
Play Games
更多相關文章
  • http://mtoou.info/cipanbeixiebaohu/index.html ①打開運行(快捷鍵Win+R)→輸入regedit後回車 ②找到這個目錄:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePo ...
  • 1. alipay 鏡像倉庫 地址 (自行換成自己的阿裡鏡像雲DockerHub地址) https://cr.console.aliyun.com/repository/ 2.alipay 代碼雲 地址 (自行換成自己的阿裡代碼雲GitHub地址) https://code.aliyun.com/t ...
  • rhel7 date函數 顯示本地時間?設定當前系統的時間,以一定格式顯示當前時間,如X-X-X /X:X:X 使用man date命令查看關於date的使用方法 SYNOPSIS date [OPTION]...[+FORMAT] [OPTION]表示可選選項,其中[ ]表示實際操作時可有可無 [ ...
  • 現在筆記本上很少帶有串口了,而串口又是做電子設計必備的通訊介面之一,好在USB轉串口比較方便,市面上常用的USB轉串口晶元有很多,最常見的有FT232、PL2303、CH340三種 原理:單片機的TXD、RXD是TTL電平,所以你得萬變不離其宗的將其它信號轉成TTL電平,只有這樣給單片機下載程式才有 ...
  •   Kali安裝好後,預設的瀏覽器是Firefox ESR(Extended Support Release 長期支持)版本。   作為Chrome的死忠粉,當然是要下Chrome用用的。   直到我安裝之後,點擊圖標打不開Chrome,用 ...
  • 1.根據自己系統的python版本下載pip安裝包,可去官網下載相應版本的。 [root@www ~]# python ##查看python版本Python 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8. ...
  • 可以進WINDOWS的管理里查看MYSQL的服務,把它停止或以DOS下用命令停止1.如果要卸載MYSQL執行下麵命令:DOS下>mysqld -remove mysql2.啟動MYSQL: DOS下>net start mysql3.停止MYSQL: DOS下>net stop mysql你先在運行 ...
  • # cd /lib64# LD_PRELOAD=/lib64/libc-2.15.so ln -sf /lib64/libc-2.15.so libc.so.6 libc-2.15.so 這個文件名根據你系統中的文件而定,如果有多個版本so文件可以逐個嘗試 原理分析: linux調用so的庫文件時, ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...