天天看點

linux檔案管理(基礎)一:linux系統的單根目錄結構二 系統目錄結構與作用三 絕對路徑與相對路徑四 檔案管理

一:linux系統的單根目錄結構

linux與windows 的目錄結構對比

目錄

一:linux系統的單根目錄結構

檔案的擴充名

二 系統目錄結構與作用

三 絕對路徑與相對路徑

四 檔案管理

4.1 檔案管理之:基本指令

4.2 檔案管理

建立

複制  

 移動與删除

4.3 檢視檔案内容

 4.4 修改檔案内容

1、什麼是vim

2、為何要用vim  

 4、vi編輯器的操作模式

 3、在vi編輯器中光标的移動

 4、在指令行模式下删除與複制的操作

 5、粘貼指令

 6、複原和重做指令

 7、掌握擴充模式下常用的指令

8、掌握快速移動光标在檔案中的位置的指令 ​ 

9、掌握快速在螢幕中移動光标的位置的指令 ​ 

10、三種模式下的操作彙總與補充  

 11、同時編輯多個檔案

 12、檔案内容對比

 13、vim執行過程

 13、練習

linux檔案管理(基礎)一:linux系統的單根目錄結構二 系統目錄結構與作用三 絕對路徑與相對路徑四 檔案管理

 linux:一切皆是檔案的設計思想

ls -l 檔案名 僅看的是檔案的修改時間

Linux檔案有

三種時間,用stat檢視 

例如:stat anaconda-ks.cfg

linux檔案管理(基礎)一:linux系統的單根目錄結構二 系統目錄結構與作用三 絕對路徑與相對路徑四 檔案管理

 通路時間:atime,檢視内容,用cat檢測

修改時間:mtime,修改内容

改變時間:ctime,修改内容,修改權限等屬性,凡是有改動都會變

檔案的擴充名

linux 沒有檔案擴充名

// 方法一:

ls -l 檔案名    //看第一個字元

-    普通檔案(文本檔案,二進制,壓縮檔案,電影,圖檔。。。),例如:/bin/ls

d    目錄檔案(藍色),例如/home/

b    裝置檔案(塊裝置)儲存設備硬碟,U盤,例如:/dev/sda

c    裝置檔案(字元裝置)列印機,例如:終端/dev/tty1

s    套接字檔案,例如:/run/rpcbind.sock 

p    管道檔案,例如:/run/systemd/initctl/fifo

l    連結檔案(淡藍色),例如:/bin

ps:通過顔色判斷檔案的類型是錯誤的!!!

// 方法二:

[[email protected] ~]# file /etc/grub.conf

bash shell對檔案進行管理:

  1. 建立
  2. 複制
  3. 删除
  4. 移動
  5. 檢視
  6. 編輯
  7. 壓縮
  8. 權限操作
  9. 查找

二 系統目錄結構與作用

Windows:     以多根的方式組織檔案  C:\   D:\   E:\

Linux:           以單根的方式組織檔案  /

FHS(Filesystem Hierarchy Standard)指的是檔案系統階層化标準,多數Linux版本采用這種檔案組織形式,是以樹形的結構來組織檔案的。

[root@aliyun ~]# ls -l /  # /是所有linux作業系統的頂點目錄,不像windows,每個分區都有一個頂點目錄

total 64

# 1、指令相關目錄

lrwxrwxrwx.  1 root root     7 Jul 11  2019 bin -> usr/bin # 普通使用者使用的指令如ls、date

lrwxrwxrwx.  1 root root     8 Jul 11  2019 sbin -> usr/sbin # 管理者使用的指令

#2、啟動目錄

dr-xr-xr-x.  5 root root  4096 Feb 11 19:06 boot # 存放的啟動相關的檔案,例如kernel,grub(引導裝載程式)

#3、系統檔案目錄

drwxr-xr-x. 13 root root  4096 Jul 11  2019 usr # 系統檔案,相當于C:\Windows

lrwxrwxrwx.  1 root root     7 Jul 11  2019 lib -> usr/lib # 庫檔案Glibc

lrwxrwxrwx.  1 root root     9 Jul 11  2019 lib64 -> usr/lib64 # 庫檔案Glibc

#4、使用者家目錄

drwxr-xr-x.  5 root root  4096 Feb 24 16:42 home # 普通使用者家目錄

dr-xr-x---. 11 root root  4096 Jul  8 17:03 root # root使用者的HOME

#5、配置檔案目錄

drwxr-xr-x. 79 root root  4096 Jul  8 17:04 etc # 配置檔案,很重要,系統級服務配置檔案都在這裡

/etc/sysconfig/network-script/ifcfg-*,網絡配置檔案

/etc/hostname,系統主機名配置檔案

/etc/resolv.conf,dns用戶端配置檔案

/etc/hosts,本地域名解析配置檔案

/etc/fstab    系統挂載目錄 開機自啟動挂載清單

/etc/passwd  系統使用者檔案

#6、裝置目錄檔案

drwxr-xr-x  19 root root  2960 Feb 15 17:22 dev # 裝置檔案,/dev/sda /dev/sr0

/dev/cdrom 和/dev/sr0,系統CD光牒鏡像裝置

/dev/null,黑洞裝置,隻進不出。類似于垃圾資源回收筒

/dev/random,生成随機數的裝置

/dev/zero,能源源不斷地産生資料,類似于取款機,随時随地取錢

/dev/pts/0,虛拟的Bash Shell終端,提供給遠端使用者使用 0代表第一個終端 1代表第2個終端

以此類推

/dev/stderr,錯誤輸出    

/dev/stdin,标準輸入

/dev/stdout,标準輸出

#7、虛拟檔案系統:類似于小汽車的儀表闆,能夠看到汽車是否有故障,或者是否缺油了。

dr-xr-xr-x  89 root root     0 Feb 15 17:22 proc # 虛拟的檔案系統,反映出來的是核心,程序資訊或實時狀态 

反映系統目前程序的實時狀态

/proc/meminfo:記憶體資訊

/proc/cpuinfo:cpu資訊

#8、可變的目錄與臨時目錄

drwxr-xr-x. 19 root root  4096 Jul 11  2019 var  #存放的是一些變化檔案,比如資料庫,日志,郵件.... 

/tmp,系統臨時目錄(類似于公共廁所),系統會定時删除該目錄下長時間沒有通路的檔案。

/var,存放一些變化檔案,如下

                    mysql:          /var/lib/mysql

                    vsftpd:            /var/ftp

                    mail:            /var/spool/mail

                    cron:            /var/spool/cron

                    log:            /var/log 系統日志檔案存放目錄

                                    /var/log/messages系統日志

                                    /var/log/secure系統登入日志

                    /var/tmp          臨時檔案(主要是程式産生的臨時檔案)

# 9、裝置(主要指儲存設備)挂載目錄

drwxr-xr-x.  2 root root  4096 Apr 11  2018 media # 移動裝置預設的挂載點

drwxr-xr-x.  2 root root  4096 Apr 11  2018 mnt # 手工挂載裝置的挂載點

drwxr-xr-x.  2 root root  4096 Apr 11  2018 opt # 早期第三方廠商的軟體存放的目錄.

drwxrwxrwt. 10 root root  4096 Jul  9 15:16 tmp # 臨時存放檔案,類似于資源回收筒,超過十天自動删除

#10、其他的一些重要目錄

drwx------.  2 root root 16384 Jul 11  2019 lost+found # 孤兒檔案

這個目錄是使用标準的ext2/ext3檔案系統格式才會産生的一個目錄,目的在于當檔案系統發生錯誤時, 将一些遺失的片段放置到這個目錄下。這個目錄通常會在分割槽的最頂層存在, 例如你加裝一顆硬碟于/disk中,那在這個系統下就會自動産生一個這樣的目錄『/disk/lost+found

lost+found這個目錄一般情況下是空的,當系統非法關機後,如果你丢失了一些檔案,在這裡能找回來用來存放fsck過程中部分修複的檔案的

lost+found:幾乎每個被格式化過的Linux分區都會有,意外後找回的檔案一般在這裡面。

這個目錄是儲存發生意外後丢失的檔案的。隻有root使用者才能打開

drwxrwxr-x   6 root root  4096 Feb 23 19:24 application

drwxr-xr-x  25 root root   660 Jul  8 17:00 run #  存放程式運作後所産生的pid檔案

drwxr-xr-x.  2 root root  4096 Apr 11  2018 srv # 實體裝置産生的一些檔案

dr-xr-xr-x  13 root root     0 Feb 16 01:22 sys # 硬體裝置的驅動程式資訊

三 絕對路徑與相對路徑

絕對路徑: 從/開頭的路徑 /home ~alice 相對路徑: 相對于目前目錄開始

. 連結到目前目錄

.. 連結到上一級目錄 

~ 目前使用者的家目錄

# 1、絕對路徑示例

touch /home/alice/file1

touch ~alice/file2

# 2、相對路徑示例

touch ../file3

touch file4

touch abc/file5

四 檔案管理

4.1 檔案管理之:基本指令

#1、檢視目前所在的目錄

[[email protected] ~]# pwd

/root

#2、切換目錄

cd  絕對路徑    如:cd /home/alice     cd ~alice

cd  相對路徑    如:cd home/alice      cd ..

cd -      # 傳回上次目錄    

cd          # 直接回家,等同于cd ~

cd .       #保持目前目錄不變

cd ..       #切換到目前目錄的上一級目錄

#3、檢視目錄樹:需要先安裝tree指令,執行yum install tree -y

tree -a 目錄    # 顯示所有檔案,包括隐藏檔案

tree -d 目錄    # 隻顯示子目錄

tree -L 1 目錄  # -L 周遊目錄的最大層數,-L後應該是大于0的正整數

tree -F 目錄    # -F 在條目後加上檔案類型的訓示符号,例如會在顯示出的目錄後面加上左斜杠/

[[email protected] ~]# tree /a  

/a

├── b

│   ├── 1.txt

│   ├── 2.txt

│   └── 3.txt

├── bb

│   ├── a.txt

│   ├── b.txt

│   └── c.txt

└── bbbb

了解一下tree指令其他選項

-a 顯示所有檔案和目錄。

-A 使用ASNI繪圖字元顯示樹狀圖而非以ASCII字元組合。

-C 在檔案和目錄清單加上色彩,便于區分各種類型。

-d 顯示目錄名稱而非内容。

-D 列出檔案或目錄的更改時間。

-f 在每個檔案或目錄之前,顯示完整的相對路徑名稱。

-F 在執行檔案,目錄,Socket,符号連接配接,管道名稱名稱,各自加上"*","/","=","@","|"号。

-g 列出檔案或目錄的所屬群組名稱,沒有對應的名稱時,則顯示群組識别碼。

-i 不以階梯狀列出檔案或目錄名稱。

-I 不顯示符合範本樣式的檔案或目錄名稱。

-l 如遇到性質為符号連接配接的目錄,直接列出該連接配接所指向的原始目錄。

-n 不在檔案和目錄清單加上色彩。

-N 直接列出檔案和目錄名稱,包括控制字元。

-p 列出權限标示。

-P 隻顯示符合範本樣式的檔案或目錄名稱。

-q 用"?"号取代控制字元,列出檔案和目錄名稱。

-s 列出檔案或目錄大小。

-t 用檔案和目錄的更改時間排序。

-u 列出檔案或目錄的擁有者名稱,沒有對應的名稱時,則顯示使用者識别碼。

-x 将範圍局限在現行的檔案系統中,若指定目錄下的某些子目錄,其存放于另一個檔案系統上,則将該子目錄予以排除在尋找範圍外。

#4、浏覽

ls           # 預設浏覽當目錄

ls -l 目錄 # 浏覽目錄下的子目錄子檔案名的詳細資訊

ls -al 目錄 # 浏覽的結果中包含隐藏檔案

ls -dl 目錄 # 檢視目錄

[[email protected] ~]# ll a.txt 

-rw-r--r--. 1 root root 0 12月 15 14:02 a.txt

# 各部分解析如下

-rw-r--r--. 權限,後面的點代表是否在selinux開啟的情況下(enforcing或者permissive都屬于開啟)建立的檔案

1               硬連結個數

root            屬主

root            屬組

0               檔案大小,機關位元組

12月 15 14:02   檔案修改時間

a.txt           檔案名字

# 權限的第一個為代表檔案類型

格式         說明

-            普通檔案(文本,    二進制,    壓縮包,    圖檔,    日志等)    

d            目錄檔案

b            裝置檔案(塊裝置)儲存設備硬碟    /dev/sda1,    /dev/sda2

c            裝置檔案(字元裝置)列印機,終端    /dev/tty1,    /dev/zero

s            套接字檔案,    程序間通信(socket)

p            管道檔案

l            連結檔案

注意: Linux檔案擴充名不代表任何含義, 僅僅是為了運維人員便于識别

4.2 檔案管理

建立

#1、=============建立檔案:touch    

touch file1.txt              //無則建立,有則修改時間

touch /home/file10.txt

touch file{1..20}

touch Ego{n,N}.txt     //等價touch Egon.txt EgoN.txt

touch -t 2011111111 2018.rmvb 

修改檔案時間 文法:

-t STAMP

              use [[CC]YY]MMDDhhmm[.ss] instead of current time

了解檔案的三個時間參數:https://www.cnblogs.com/linhaifeng/articles/13324247.html

#2、=============建立目錄:mkdir    

mkdir dir1

mkdir /home/dir2 /home/dir3

mkdir /home/{dir4,dir5}

mkdir -v /home/{dir6,dir7}

    mkdir: 已建立目錄 “/home/dir6”

    mkdir: 已建立目錄 “/home/dir7”

mkdir -p /home/dir8/111/222     //包括其父母的建立

複制  

#1、=============複制:cp    

cp 源 目标

cp -v install.log /home/dir1

cp -v install.log /home/dir1/aaa.txt

cp -r /etc /home/dir1

cp install.log /home/dir2

cp anaconda-ks.cfg !$

cp anaconda-ks.cfg /home/dir2

cp -r /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/passwd /etc/grub.conf /etc/hosts .

cp -rv /etc /tmp

\cp -rv /etc /tmp

擴充用法:

cp -rfv /etc/hosts{,.old}

cp -rvf /etc/sysconfig/network-scripts/ifcfg-eth0{,.old}

關于-f參數的一個實驗

[[email protected] ~]# echo "1111" > /opt/a.txt

[[email protected] ~]# echo "2222" > /t2/a.txt

[[email protected] ~]# 

[[email protected] ~]# chmod o=wx /t2

[[email protected] ~]# chmod o=- /t2/a.txt 

[[email protected] ~]# 

[[email protected] ~]# ll -d /t2

drwxr-x-wx 2 root root 4096 Oct 20 00:07 /t2

[[email protected] ~]# ll /t2/a.txt 

-rw-r----- 1 root root 5 Oct 20 00:07 /t2/a.txt

[[email protected] ~]# 

[[email protected] ~]# su - xxx

Last login: Tue Oct 20 00:05:43 CST 2020 on pts/2

[[email protected] ~]$ cp /opt/a.txt /t2/a.txt  # 失敗

cp: cannot create regular file ‘/t2/a.txt’: Permission denied

[[email protected] ~]$ \cp /opt/a.txt /t2/a.txt  # 失敗

cp: cannot create regular file ‘/t2/a.txt’: Permission denied

[[email protected] ~]$ 

[[email protected] ~]$ 

[[email protected] ~]$ cp -f /opt/a.txt /t2/a.txt  # 成功

[[email protected] ~]$ exit

logout

[[email protected] ~]# cat /t2/a.txt 

1111

[[email protected] ~]# 

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

小知識:root使用者使用cp (預設有一個别名 alias cp='cp -i') -i   顯示提示資訊(是否覆寫)

1. /bin/cp -rf /etc /tmp

2. # unalias cp                

    # cp -rf /etc /tmp  

3. # \cp -rf /etc /tmp

4.-f 參數是強制複制,比如你在A檔案夾裡面有個檔案名叫B,然後你把C檔案夾裡面的另一個檔案名叫B的複制到A裡面,這個時候會照成沖突,然後會提示你要不要繼續複制.加上-f 就不會提示你了.

你輸入-f 還是會提示你的原因是

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

有的系統在安裝的時候,cp - i 的 alias 就是 cp

也就是說你在執行cp的時候,其實是執行的cp -i 

取消掉cp的alias就好了 

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

解決辦法

unalias cp 

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

 移動與删除

#1、=============複制:mv    

mv 源 目标

# mv file2 /home/dir3      将file2移動到/home/dir3裡

# mv file4 file5                将file4重命名為file5,目前位置裡的移動就是重命名

#2、=============複制:rm

示例:删除/home/dir1       

# cd /home

# rm -rf dir1       

-r 遞歸

-f force強制

-v 詳細過程

4.3 檢視檔案内容

==文本檔案 (cat less more head tail grep)

/etc/hosts

/etc/sysconfig/network

/etc/sysconfig/network-scripts/ifcfg-eth0

/etc/passwd

/etc/shadow 

/etc/group

/etc/grub.conf

/etc/resolv.conf

/var/log/messages    //系統的主日志檔案

cat     

-n  顯示行号

-A  包括控制字元(換行符)linux $     Windows ^M$

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

擴充知識:

dos2unix     将Windows格式的檔案轉換成Unix格式

unix2dos     将Unix格式的檔案轉換成Windows格式

例如

# unix2dos file1

# dos2unix file2

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

less  more head  tail  

# head  /etc/passwd

# head -2 /etc/passwd

# tail /etc/passwd

# tail -1 /etc/passwd

# more /etc/passwd  # 使用more指令之後,每次在螢幕上顯示一屏(一頁)的檔案内容,并且在螢幕的尾部将會出現“—More--(n%)”的資訊,其中,n%是已經顯示檔案内容的百分比。按空格下一頁,按b上一頁,more +40 a.txt從第40行開始檢視

# tail -f /var/log/messages              //-f 動态檢視檔案的尾部

# logger xxxxxxxxx                      //手動産生日志資訊

grep 針對檔案内容進行過濾

# grep 'root' /etc/passwd

# grep --color 'root' /etc/passwd

# grep --color '^root' /etc/passwd

# grep --color 'bash$' /etc/passwd

 4.4 修改檔案内容

1、什麼是vim

可以了解為windows下面的文本編輯器,比如記事本,比如word文檔。

vi編輯器通常被簡稱為vi,而vi又是visual editor的簡稱。它在Linux上的地位就像Edit程式在DOS上一樣。它可以執行輸出、删除、查找、替換、塊操作等衆多文本操作,而且使用者可以根據自己的需要對其進行定制,這是其他編輯程式所沒有的。

vi 編輯器并不是一個排版程式,它不像Word或WPS那樣可以對字型、格式、段落等其他屬性進行編排,它隻是一個文本編輯程式。沒有菜單,隻有指令,且指令繁多。

2、為何要用vim  

1.修改配置

2.寫腳本

3、vi與vim的差別

vi不顯示高亮顔色文法

vim顯示高亮顔色文法。

其他功能沒有什麼差別。

是以在linux系統下,使用vi還是vim取決個人習慣。

預設vi是安裝的 , vim需要通過yum install vim -y

 4、vi編輯器的操作模式

linux檔案管理(基礎)一:linux系統的單根目錄結構二 系統目錄結構與作用三 絕對路徑與相對路徑四 檔案管理

#1、指令行模式:在編輯模式下按下ESC鍵傳回指令行模式。

vi的預設模式。在這一模式中,所有的輸入被解釋成vi指令,可以執行修改、複制、移動、粘貼和删除正文等指令,也可以進行移動光标、搜尋字元串和退出vi的操作等。

#2、編輯/插入模式:輸入a、i、o之一

在編輯模式中,可以往一個檔案中輸入正文。在這一模式下,輸入的每一個字元都被vi編輯器解釋為輸入的正文。使用ESC鍵傳回指令行模式。

a:進入插入模式并在光标之後進行添加。

i:進入插入模式并在光标之前進行插入。

o:進入插入模式并在目前(光标所在)行之下開啟新的一行。

#3、擴充/末行模式:輸入冒号:

在一些UNIX系統上也叫最後一行模式。在這一模式下,可以使用一些進階編輯指令,如搜尋和替代字元串、存盤或退出vi編輯器等。要進入最後一行模式,需要在指令行模式中輸入冒号(:),冒号這一操作将把光标移到螢幕的最後一行。

 3、在vi編輯器中光标的移動

linux檔案管理(基礎)一:linux系統的單根目錄結構二 系統目錄結構與作用三 絕對路徑與相對路徑四 檔案管理

 4、在指令行模式下删除與複制的操作

linux檔案管理(基礎)一:linux系統的單根目錄結構二 系統目錄結構與作用三 絕對路徑與相對路徑四 檔案管理

 5、粘貼指令

linux檔案管理(基礎)一:linux系統的單根目錄結構二 系統目錄結構與作用三 絕對路徑與相對路徑四 檔案管理

 6、複原和重做指令

linux檔案管理(基礎)一:linux系統的單根目錄結構二 系統目錄結構與作用三 絕對路徑與相對路徑四 檔案管理

 7、掌握擴充模式下常用的指令

linux檔案管理(基礎)一:linux系統的單根目錄結構二 系統目錄結構與作用三 絕對路徑與相對路徑四 檔案管理

8、掌握快速移動光标在檔案中的位置的指令
linux檔案管理(基礎)一:linux系統的單根目錄結構二 系統目錄結構與作用三 絕對路徑與相對路徑四 檔案管理

9、掌握快速在螢幕中移動光标的位置的指令
linux檔案管理(基礎)一:linux系統的單根目錄結構二 系統目錄結構與作用三 絕對路徑與相對路徑四 檔案管理

10、三種模式下的操作彙總與補充  

vi ===> vim 檔案編輯器

# vim /boot/grub2/grub.cfg

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

指令模式:

    a. 光标定位 

        hjkl  

        0 $ 

        gg G  

        3G      進入第三行 

        /string(n N 可以循環的)  快速定位到某一行  

    b. 文本編輯(少量)

           y        複制     yy 3yy     ygg  yG    (以行為機關)

           d        .删除 dd 3dd dgg  dG           (以行為機關)    

        p        粘貼

           x          删除光标所在的字元

        D         從光标處删除到行尾

        u        undo撤銷

        ^r      redo重做

           r       可以用來修改一個字元

    c. 進入其它模式

        a        進入插入模式

        i        進入插入模式

        o        進入插入模式

        A        進入插入模式

        :        進入末行模式

        ^v     進入可視塊模式

        R      進入替換模式

插入模式:

        ^p    唯一補齊

末行模式:

    a. 儲存退出

        :10    進入第10行   

        :w      儲存   

        :q      退出    

        :wq     儲存并退出      

        :w!     強制儲存    

        :q!     不儲存并退出       

        :wq!    強制儲存退出

        :x        儲存并退出

    b. 查找替換

        :範圍 s/old/new/選項        

        :1,5 s/Note/yyy/                  從1-5行的Note 替換為yyy   

        :5,$ s/Note/yyy/                 $表示最後一行

        :1,$ s/to/xxx/g        =     :% s/to/xxx/g    %表示全文  g表示全局

        :4,9 s/^#//                          4-9行的以#開頭的替換為空

        :% s#/dev/sda#/var/ccc#g

        :,8 s/to/xxx/            從目前行到第8行

    c. 讀入檔案/寫檔案

        :w

        :w /aaa.txt                          另存為/aaa.txt  

        :1,3 w /2.txt

        :1 w! /root/ccc.txt  如果目标檔案已經存在則需要加!号

        :r /etc/hosts

    d. 設定環境     

        臨時設定:        

        :set nu                                 設定行号      

        :set ic                                  不區分大小寫

        :set ai                                自動縮進

        :set list

        :set nonu                          取消設定行号     

        :set noic

           永久的環境:

           /etc/vimrc                        影響所有系統使用者

           ~/.vimrc                    影響某一個使用者

        # vim ~/.vimrc  # 在家目錄下新增一個檔案,輸入下述内容

        set ic

        set nu

# vim -O /etc/hosts /etc/grub.conf        ^w 按兩次切換

# vimdiff grub.conf /etc/grub.conf         對比檔案,^w 按兩次切換       

# vim -p /etc/hosts /etc/grub.conf      ^PgUp, ^PgDn

 11、同時編輯多個檔案

#1、

vim -o 檔案1 檔案2  # 水準分隔

vim -O 檔案1 檔案2   # 垂直分隔

使用ctrl + ww切換

#2、

vim -p /etc/hosts /etc/grub.conf      

使用 ^PgUp, ^PgDn切換

 12、檔案内容對比

# 相同檔案之間差異對比,通常用于對比修改前後的差異。

diff         #檔案對比(No)

vimdiff         #以vim方式打開兩個檔案對比,高亮顯示不同的内容

# patch實驗:

touch a.txt b.txt

[[email protected] ~]# echo 111 >> a.txt

[[email protected] ~]# echo 222 >> b.txt 

[[email protected] ~]# diff -u a.txt b.txt > patch.diff

[[email protected] ~]# patch a.txt patch.diff 

patching file a.txt

[[email protected] ~]# cat a.txt

222

 13、vim執行過程

linux檔案管理(基礎)一:linux系統的單根目錄結構二 系統目錄結構與作用三 絕對路徑與相對路徑四 檔案管理

==============Vim非正常退出===============

(1)、模拟故障: 編輯檔案的時候斷開連接配接即可(斷網或斷電) 重新連接配接伺服器 再次進行編輯檔案

(2)、故障報錯: Found a swap file by the name ".vim.log.swp" Swap file ".vim.log.swp" already exists

(3)、故障解決: 删除臨時檔案或者先恢複内容再删除 使用-r選項進行恢複。

 13、練習

#Vim練習題一

1) 使用vi編輯器編輯檔案/1.txt進入編輯模式寫入内容“hello world”

2) 進入指令行模式複制改行内容,在下方粘貼80行

3) 快速移動光标到檔案的最後一行

4) 快速移動光标到目前螢幕的中間一行

5) 快速移動光标到檔案的第五行

6) 在下方插入新的一行内容“welcome to beijing”

7) 删除剛插入的一行

8) 撤銷上一步的操作

9) 進入擴充模式,執行檔案的儲存退出操作

10) 修改相應檔案,内容如下:

#Vim練習題二

1.将/etc/passwd 複制到/root/目錄下,并重命名為test.txt

2.用vim打開test.txt并顯示行号

3.分别向下、向右、向左、向右移動5個字元,分别向下、向上翻兩頁

4.把光标移動到第10行,讓光标移動到行末,再移動到行首,移動到test.txt檔案的最後一行,移動到檔案的首行

5.搜尋檔案中出現的 root 并數一下一共出現多少個

6.把從第一行到第三行出現的root 替換成admin,然後還原上一步操作

8.把整個檔案中所有的root替換成admin

9.把光标移動到20行,删除本行,還原上一步操作

11.删除從5行到10行的所有内容,還原上一步操作

12.複制2行并粘貼到11行下面,還原上一步操作(按兩次u)

13.複制從11行到15行的内容并粘貼到8行上面,還原上一步操作(按兩次u)

14.把13行到18行的内容移動檔案的尾部,還原上一步操作(按兩次u)

15.将檔案中所有的/sbin/nologin為/bin/bash

16.在第一行下面插入新的一行,并輸入"# Hello!"

17.儲存文檔并退出

#Vim練習題三

根據檔案回答下列習題

[[email protected] ~]# cat proxy.conf

server {

Listen 8080;

Server_Name vim.OldboyEDU.com;

location / {

proxy_pass http://127.0.0.1:8080;

proxy_set_header Host $http_host;

proxy_set_header X-Forward-for;

proxy_intercept_errors on;

proxy_next_upstream error timeout;

proxy_next_upstream_timeout 3s;

proxy_next_upstream_tries 2;

error_page 500 502 403 404 = /proxy_error.html;

}

location = /proxy_error.html {

root /code/proxy;

}

}

1.使用vim打開proxy.conf檔案

2.修改Listen為listen小寫,并将8080修改為80

3.修改Server_Name為server_name小寫。

4.修改vim.OldboyEDU.com為vim.oldboy.com

5.在server_name行下插入一行 root /code;

6.複制5-14行的内容,然後将其粘貼到14行下面

7.删除與proxy_set_header相關的兩行全部删除

8.如上操作完成後,在13-20行前面加上#号

9.删除21-23的行,然後儲存目前檔案

繼續閱讀