天天看點

Linux系統(四):目錄和檔案管理

實驗目的:(1)掌握檢視和檢索檔案内容的方法,

                (2)掌握備份與恢複文檔的方法,

                (3)掌握使用vi文本編輯器的方法

實驗需求:

*練習檔案檢視及檢索操作

①檢視 /etc/filesystems檔案,确認目前系統支援的檔案系統類型

[root@chan ~]# cat /etc/filesystems
xfs
ext4
ext3
ext2
nodev proc
nodev devpts
iso9660
vfat
hfs
hfsplus
*
[root@chan ~]#       

②分頁檢視 /etc/services檔案,了解各種服務預設使用的協定,端口号

[root@chan ~]# more /etc/services      

③從/proc/meminfo檔案中過濾實體記憶體大小,空閑記憶體大小

[root@chan ~]# grep "MemTotal" /proc/meminfo 
MemTotal:        2028088 kB
[root@chan ~]# grep "MemFree" /proc/meminfo 
MemFree:          267428 kB      

*練習備份與恢複目錄

①備份整個/etc目錄樹,制作成歸檔壓縮封包件etc.tar.gz

[root@chan /]# tar fzvc etc.tar.gz /etc
[root@chan /]# ls
bbb  bin  boot  dev  etc  etc.tar.gz  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var      

②檢視etc.tar.gz檔案中包含的目錄及檔案清單

[root@chan /]# tar ft etc.tar.gz       

③将etc.tar.gz檔案恢複到/tmp目錄下,确認後删除/tmp/etc檔案夾

[root@chan /]# tar zxvf etc.tar.gz  -C /tmp
[root@chan /]# ls /tmp
anaconda.log        storage.log                                                                   vmware-root_6298-692293416
etc                 systemd-private-23b4a6f7d34244e7bdf6fb7c06802706-bolt.service-dBtwjR          vmware-root_6318-734038149
hsperfdata_root     systemd-private-23b4a6f7d34244e7bdf6fb7c06802706-colord.service-DpUA3a        vmware-root_6321-1681855298
ifcfg.log           systemd-private-23b4a6f7d34244e7bdf6fb7c06802706-cups.service-M7qtx2          vmware-root_6323-1690178240
ks-script-2Kf1dg    systemd-private-23b4a6f7d34244e7bdf6fb7c06802706-fwupd.service-Hwa603         vmware-root_6359-1949639453
packaging.log       systemd-private-23b4a6f7d34244e7bdf6fb7c06802706-rtkit-daemon.service-8XblbE  yum.log
program.log         tracker-extract-files.0                                                       yum_save_tx.2022-06-28.15-23.kbtquZ.yumtx
sensitive-info.log  tracker-extract-files.1000
ssh-msc4OO4bmXZT    vmware-root_6294-734169251
[root@chan /]# rm -rf /tmp/etc
[root@chan /]# ls /tmp
anaconda.log        storage.log                                                                   vmware-root_6294-734169251
hsperfdata_root     systemd-private-23b4a6f7d34244e7bdf6fb7c06802706-bolt.service-dBtwjR          vmware-root_6298-692293416
ifcfg.log           systemd-private-23b4a6f7d34244e7bdf6fb7c06802706-colord.service-DpUA3a        vmware-root_6318-734038149
ks-script-2Kf1dg    systemd-private-23b4a6f7d34244e7bdf6fb7c06802706-cups.service-M7qtx2          vmware-root_6321-1681855298
packaging.log       systemd-private-23b4a6f7d34244e7bdf6fb7c06802706-fwupd.service-Hwa603         vmware-root_6323-1690178240
program.log         systemd-private-23b4a6f7d34244e7bdf6fb7c06802706-rtkit-daemon.service-8XblbE  vmware-root_6359-1949639453
sensitive-info.log  tracker-extract-files.0                                                       yum.log
ssh-msc4OO4bmXZT    tracker-extract-files.1000                                                    yum_save_tx.2022-06-28.15-23.kbtquZ.yumtx      

*練習vi編輯器的基本用法

①通過“man man | col -b > man.txt”操作建立man指令的文本手冊頁,用vi編輯器打開man.txt檔案,以此檔案作為練習素材

[root@chan /]# man man | col -b > /man.txt
[root@chan /]# ls 
bbb  bin  boot  dev  etc  etc.tar.gz  home  lib  lib64  man.txt  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@chan /]# vi man.txt      

②切換到末行模式,并輸入“:set:nu”指令顯示行号[root@chan /]# vi man.txt  (:set nu)

1 1111111111111111111111111111111111111111111111111

~                                                                                                                                                  
~                                                                                                                                                                            
~                                                                                                                                                                            
~                                                                                                                                                                            
~                                                                                                                                                                            
~                                                                                                                                                                   
:set nu      

③将第六行的内容複制到第二行,并删除第二行以後的幾個空行(yy為複制,dd為删除,p為粘貼)

[root@chan /]# vi man.txt

      1 1111111111111111111111111111111111111111111111111
      2 6666666666666666666666
      3 333333333333333333333333
      4 444444444444444444444
      5 555555555555555555555
      6 6666666666666666666666
      7 7777777777777777777
~                                                                                                                                                                                                                                                                                                                                                
:set nu
      

④在檔案中查找“1”字元串(/搜尋内容)

[root@chan /]# vi man.txt

      1 1111111111111111111111111111111111111111111111111
      2 6666666666666666666666
      3 333333333333333333333333
      4 444444444444444444444
      5 555555555555555555555
      6 6666666666666666666666
      7 7777777777777777777
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
/1111
      

⑤将檔案中的所有“1”替換成“2”(:% s/舊内容/新内容/g)

[root@chan /]# vi man.txt

      1 2222222222222222222222222222222222222222222222221
      2 6666666666666666666666
      3 333333333333333333333333
      4 444444444444444444444
      5 555555555555555555555
      6 6666666666666666666666
      7 7777777777777777777

~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
:% s /11111/22222/g
      

⑥儲存改檔案後退出vi編輯器(:wq)

[root@chan /]# vi man.txt

      1 2222222222222222222222222222222222222222222222221
      2 6666666666666666666666
      3 333333333333333333333333
      4 444444444444444444444
      5 555555555555555555555
      6 6666666666666666666666
      7 7777777777777777777

~                                                                                                                                                                           
~                                                                                                                                                                           
:wq      

⑦重新打開man.txt,隻保留前五行,删除其餘所有内容(行數+dd)

[root@chan /]# vi man.txt

      1 2222222222222222222222222222222222222222222222221
      2 6666666666666666666666
      3 333333333333333333333333
      4 444444444444444444444
      5 555555555555555555555
      6 6666666666666666666666
      7 7777777777777777777
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
:wq
      

⑧複制/root/.bashrc檔案的内容到第五行,然後另存為man2.txt檔案(:r 檔案路徑---插入内容,:w 檔案路徑---另存為)

[root@chan /]# vi man.txt

2222222222222222222222222222222222222222222222221
6666666666666666666666
333333333333333333333333
444444444444444444444
555555555555555555555
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
:r /root/.bashrc
      

*使用vi修改系統配置

①為/etc/sysconfig/network-scripts/ifcfg-ens33 /etc/issuewenjian 做好備份,以便在必要時進行恢複

[root@chan network-scripts]# cp ifcfg-ens33 ifcfg-ens33.back
[root@chan network-scripts]# cd /etc
[root@chan etc]# cp issue issue.backup      
[root@chan etc]# vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="d3c459d8-b12f-4d3a-b85a-e32c677d1369"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.109.150"
PREFIX="24"
GATEWAY="192.168.109.2"
DNS1="8.8.8.8"
IPV6_PRIVACY="no"
      
[root@chan etc]# vi /etc/issue

Windows Server 2016
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                                                                                                                                                           
~                                        
[root@chan etc]# rm -rf issue
[root@chan etc]# mv issue.backup issue
[root@chan etc]# cd sysconfig/network-scripts/
[root@chan network-scripts]# ls
ifcfg-ens33       ifdown-bnep  ifdown-ipv6  ifdown-routes    ifdown-tunnel  ifup-eth   ifup-isdn   ifup-ppp     ifup-TeamPort     network-functions
ifcfg-ens33.back  ifdown-eth   ifdown-isdn  ifdown-sit       ifup           ifup-ib    ifup-plip   ifup-routes  ifup-tunnel       network-functions-ipv6
ifcfg-lo          ifdown-ib    ifdown-post  ifdown-Team      ifup-aliases   ifup-ippp  ifup-plusb  ifup-sit     ifup-wireless
ifdown            ifdown-ippp  ifdown-ppp   ifdown-TeamPort  ifup-bnep      ifup-ipv6  ifup-post   ifup-Team    init.ipv6-global
[root@chan network-scripts]# rm -rf ifcfg-ens33
[root@chan network-scripts]# cp ifcfg-ens33.back ifcfg-ens33
[root@chan network-scripts]# ls
ifcfg-ens33       ifdown-bnep  ifdown-ipv6  ifdown-routes    ifdown-tunnel  ifup-eth   ifup-isdn   ifup-ppp     ifup-TeamPort     network-functions
ifcfg-ens33.back  ifdown-eth   ifdown-isdn  ifdown-sit       ifup           ifup-ib    ifup-plip   ifup-routes  ifup-tunnel       network-functions-ipv6
ifcfg-lo          ifdown-ib    ifdown-post  ifdown-Team      ifup-aliases   ifup-ippp  ifup-plusb  ifup-sit     ifup-wireless
ifdown            ifdown-ippp  ifdown-ppp   ifdown-TeamPort  ifup-bnep      ifup-ipv6  ifup-post   ifup-Team    init.ipv6-global