隨筆2_tww

1.描述linux發行版的系統目錄名稱命名規則以及用途

1.1)Linux系統基礎目錄的命名規則:node

1.遵循FHS(Filesystem Hierarchy Standard)標準
    2.嚴格區分大小寫
    3.目錄也是文件,在同一路徑下,兩個文件不能同名
    4.支持使用除"/"之外的任意字符
    5.最長字符不能超過255個字符

1.2)目錄架構及用途:mysql

/ 根目錄
    bin      全部用戶可用的基本命令程序文件
    sbin    供系統管理使用的工具程序
    boot   引導加載器必須用到的各類靜態文件:kernel initramfs(initrd) grub等
    dev    存儲特殊文件或設備文件;設備有兩種類型:字符設備(線性設備) 、塊設備(隨機設備)
    etc     系統程序的配置文件,只能爲靜態
        /etc/rc.d       系統啓動的配置文件和腳本
        /etc/fstab      指定啓動時須要自動安裝的文件系統列表
        /etc/passwd  用戶數據庫,記錄了用戶名,用戶ID,組ID,家目錄和shell等信息
        /etc/shadow  用戶的真實帳號密碼的存放文件,一般以加密的形式存在
        /etc/group     記錄了用戶組的各類信息
        /etc/inittab     init的配置文件
        /etc/issue      用戶再登陸提示符前的輸出信息。一般包括系統的一段短說明或歡迎信息,具體內容由系統管理員肯定
    home   普通用戶的家目錄的集中位置:通常每一個普通用戶的家目錄默認爲此目錄下與用戶名同名的子目錄 /home/USERNAME
    root     超級管理員的家目錄
    lib       爲系統啓動或根文件系統上的應用程序(/bin, /sbin)提供共享庫,以及爲內核提供內核模塊
        libc.so.*     動態連接的C庫
          ld*             運行時連接器/加載器
        modules    用於存儲內核模塊的目錄
    lib64    64位系統特有的存放64位共享庫的路徑
    media 便攜式設備掛載點 cdrom,floppy等
    mnt    其餘文件系統的臨時掛載點
    opt     附加應用程序的安裝位置,可選路徑
    srv     當前主機爲服務提供的數據
    tmp   爲那些會產生臨時文件的程序提供的用於存儲臨時文件的目錄;可供全部用戶執行寫入操做:有特殊權限
    usr  全局共享的只讀數據路徑
        /usr/bin          存放應用程序
        /usr/sbin        超級用戶的一些管理程序
        /usr/lib           經常使用的動態連接庫和軟件包的配置文件
        /usr/include   c程序頭文件
        /usr/share     命令手冊頁和自帶文檔等架構特有的文件的存儲位置
        /usr/local      另外一個層級目錄,讓系統管理員安裝本地應用程序,也一般用於安裝第三方程序
        /usr/X11R6   X-windows程序的安裝位置
        /usr/src        程序源碼文件的存儲位置
    var 存儲常發生變化的數據的目錄
        /var/cache  引用程序緩存數據目錄
        /var/lib       應用程序狀態信息數據
        /var/local   專用於爲/usr/local下的應用程序存儲可變數據
        /var/lock    鎖文件
        /var/log     日誌目錄及文件
        /var/opt    專用於/opt下的應用程序存儲可變數據
        /var/run    運行中的進程相關的數據,一般用於存儲進程的pid文件
        /var/spool 應用程序的數據池
        /var/tmp    保存系統兩次重啓之間產生的臨時數據
    proc  基於內核的虛擬文件系統,用於爲內核及進程存儲相關信息:它們多爲內核參數;
    例如:net.ipv4.ip_forward, 虛擬爲net/ipv4/ip_forward 存儲於/proc/sys/ 所以其完整路徑爲:/proc/sys/net/ipv4/ip_forward 
    sys  sysfs虛擬文件系統了一種比proc更爲理想的訪問內核數據的途徑,其主要做用在於管理linux設備提供一種統一模型的接口

2.描述文件的元數據信息有哪些,分別表示什麼含義,如何查看,如何修改文件的時間戳信息

文件的數據分爲兩種:
一種:元數據,既屬性數據
一種:就是數據自己
經過stat命令能夠查看元數據linux

[08:17:53 root@CentOS7 ~]#stat /etc/passwd
  File: ‘/etc/passwd’
  Size: 2381        Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d  Inode: 135236881   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2020-06-17 23:20:01.706147776 +0800
Modify: 2020-06-06 08:32:02.435455179 +0800
Change: 2020-06-06 08:32:02.435455179 +0800
 Birth: -

參數說明:git

File:文件名
    Size:文件大小         Blocks:文件佔了多少個數據塊   IO Block:文件所佔數據塊的大小 
    Device:硬件           Inode:節點號                  Links:連接
    第一個Access:指權限   Uid:屬主                      Gid:屬組
    Context:指安全上下文
    第二個Access:文件上一次訪問時間
    Modify:文件上一次修改的時間
    Change:文件上一次屬性更改的時間

修改文件的時間戳信息使用:touch正則表達式

touch [option]...file...
選項:
    -c 指定的文件路徑不存在時不予建立
    -a 僅修改atime和ctime
    -m 僅修改mtime和ctiem
    -t 指定atime和mtime的時間戳,而非如今的時間;[[CC]YY]MMDDhhmm[.ss]

3.總結軟連接和硬連接區別,並用實例操做說明

Linux中連接分兩種:sql

1.硬連接(Hard Link) 
                ln -s source target
    2.軟鏈接(符號連接 Symbolic Link)
                ln source target

1.1)硬連接
硬連接指經過索引節點(inode)來進行連接。
inode:
磁盤分區並格式化時,分區被劃分爲兩個部分; 即:inode和data block(實際數據存放的位置)
inode是(目錄,檔案)文件在文件系統中的惟一標識;須要訪問文件,必須先找到並讀取文件的inode
inode存儲了文件的不少參數,其中惟一標識稱爲:Inumber 其餘信息還有:ctime mtime 文件大小 屬主 歸屬的用戶組 讀寫權限 數據所在block號等信息
1.2)硬連接訪問文件:
[1]找到目錄的inode ;當用戶具備訪問目錄block的權限時,讀取block中的內容
[2]在目錄的block中存放的是:子目錄或文件名及其inode號
當爲子目錄:繼續進行遞歸循環,直到在block中找到尋找的文件名爲止
當爲文件名:依據inode號找到文件,從block中讀取實際的數據
1.3)硬連接的特色:docker

1.3.1)不論修改源文件仍是硬連接文件,另外一個文件中數據都會發生改變
    1.3.2)不論刪除源文件仍是硬連接文件,只要還有一個文件,這個文件均可以被訪問
    1.3.3)硬連接不會創建新的inode信息,也不會更改inode的總數
    1.3.4)硬連接不能跨文件系統(分區)創建,由於在不一樣的文件系統中,inode號是從新計算的 1.3.5)硬連接不能連接目錄,由於若是給目錄創建硬連接,那麼不只目錄自己須要從新創建,目錄下全部子文件,包括子目錄中的全部文件都須要創建硬連接,這對當前的linux來說過於複雜

2.1)軟連接
軟連接相似於Windows的快捷方式,能夠快速連接到目標檔案或目錄
2.2)軟連接的特色shell

2.2.1)能夠連接目錄
    2.2.2)能夠跨分區創建軟連接
    2.2.3)不論修改源文件,仍是修改軟連接,另外一個文件中的數據都會發生改變
    2.2.4)刪除軟連接文件,源文件不受影響,而刪除原文件,連接文件將找不到實際的數據從而顯示文件不存在
    2.2.5)軟連接會新建本身的inode信息和block,只是block中不存儲實際文件數據,而存儲的是源文件的文件名及inode號

3.1).硬連接與軟連接的區別:
最主要的不一樣在於:硬連接不會創建本身的 inode 索引和 block(數據塊),而是直接指向源文件的 inode 信息和 block,因此硬連接和源文件的 inode 號是一致的;而軟連接會真正創建本身的 inode 索引和 block,因此軟連接和源文件的 inode 號是不一致的,並且在軟連接的 block 中,寫的不是真正的數據,而僅僅是源文件的文件名及 inode 號
範例1數據庫

建立一個硬連接
[22:29:48 root@CentOS7 /data/cs]#touch text.txt
[22:30:04 root@CentOS7 /data/cs]#ln text.txt  text1.txt
[22:33:47 root@CentOS7 /data/cs]#ls -li
    total 0
    69 -rw-r--r--. 2 root root 0 Jun 17 22:30 text1.txt
    69 -rw-r--r--. 2 root root 0 Jun 17 22:30 text.txt
查看上述兩個文件的詳細信息,能夠發現這兩個文件的 inode 號是同樣的(都是69)
分別爲源文件和連接文件添加數據後查看結果
[23:32:51 root@CentOS7 /data/cs]#echo 11 >> text.txt
[23:33:08 root@CentOS7 /data/cs]#echo 22 >> text1.txt
[23:34:47 root@CentOS7 /data/cs]#cat text1.txt 
    11
    22
[23:35:28 root@CentOS7 /data/cs]#cat text.txt 
    11
    22
刪除源文件後,查看連接文件
[23:35:34 root@CentOS7 /data/cs]#rm -f text.txt 
[23:36:25 root@CentOS7 /data/cs]#cat text1.txt 
    11
    22

範例2編程

建立一個軟連接
[23:41:21 root@CentOS7 /data/cs]#touch check.txt
[23:57:52 root@CentOS7 /data/cs]#ln -s /data/cs/check.txt  /data/qt/check1.txt
[23:58:34 root@CentOS7 /data/cs]#ll -id /data/cs/check.txt  /data/qt/check1.txt
    68 -rw-r--r--. 1 root root  0 Jun 17 23:41 /data/cs/check.txt
    69 lrwxrwxrwx. 1 root root 18 Jun 17 23:58 /data/qt/check1.txt -> /data/cs/check.txt
軟連接和源文件的inode號不一致,軟連接經過->明顯地標識源文件的位置
上述的顯示結果"lrwxrwxrwx."中 "l"就表明軟連接文件
注意!注意!注意! 軟連接的源文件必須寫絕對路徑,不然創建的軟連接文件就會報錯,沒法正常使用

[00:16:07 root@CentOS7 /data/cs]#echo 11 >> check.txt 
[00:16:58 root@CentOS7 /data/qt]#echo 22 >>check1.txt 
[00:16:52 root@CentOS7 /data/cs]#cat check.txt 
    11
    22
[00:17:08 root@CentOS7 /data/qt]#cat check1.txt 
    11
    22

4.linux上的文件管理類命令都有哪些,其經常使用的使用方法及其相關示例演示

1)  apmd            進階電源管理服務程序
2)  apropos         在whatis數據庫中查找字符串
3)  apt-key         管理APT軟件包的密鑰
4)  apt-sortpkgs    排序軟件包索引文件
5)  as              GUN彙編器
6)  auditctl        控制內核的審計系統
7)  audit-viewer    查看和總結審計事件的圖形工具
8)  aureport        生成審計信息報表
9)  ausearch        搜索審計記錄
10)  autoupdate     更新configure.in到較新的Autoconf
11)  autrace        跟蹤指定進程
12)  awk            文本和數據進行處理的編程語言
13)  basename       顯示文件路徑名的基本文件名
14)  batch          指定時間執行任務
15)  blkid          顯示關於可用塊設備的信息
16)  bunzip2        bz2文件的解壓縮程序
17)  bzgrep         搜索.bz2壓縮包中文件內容
18)  bzless         查看bzip2壓縮過的文本文件的內容
19)  bzmore         查看bzip2壓縮過的文本文件的內容
20)  chown          改變文件或目錄用戶和用戶組
21)  chroot         改變根目錄
22)  cp             複製文件或目錄
23)  cpio           複製文件到歸檔包
24)  cupsaccept     接受做業發送到目的地
25)  cupsreject     拒絕做業發送到目的地
26)  dd             拷貝文件及轉換
27)  diff           比較文件的差別
28)  diff3          比較3個文件的不一樣之處
29)  diffstat       顯示統計數字
30)  dirname        去除文件名中的非目錄部分
31)  docker         應用容器引擎
32)  dos2unix       將DOS格式的文本文件轉換成UNIX格式
33)  dpkg-deb       Debian包管理器
34)  dpkg-divert    將文件安裝到轉移目錄
35)  dpkg-preconfigure 軟件包安裝以前詢問問題
36)  dpkg-query     在dpkg數據庫中查詢軟件包
37)  dpkg-reconfigure  從新配置已安裝的軟件包
38)  dpkg-split     分割軟件包
39)  dpkg-statoverride 改寫全部權和模式
40)  dpkg-trigger   軟件包觸發器
41)  dris           顯示和清空目錄堆棧中的內容
42)  e2image        保存ext2/ext3文件元數據
43)  e2label        設置文件系統的卷標
44)  egrep          在文件內查找指定的字符串
45)  emacs          功能強大的文本編輯器
46)  ethtool        查詢與設置網卡參數
47)  expand         轉換爲空白字符
48)  fgrep          爲文件搜索文字字符串
49)  find2perl      轉換找到的命令行爲perl代碼
50)  gcc            GUN C/C++編譯器
51)  gcov           測試代碼覆蓋率
52)  gdb            GUN調試器
53)  get_module     獲取模塊信息
54)  getopt         解析命令行選項
55)  git            版本控制系統
56)  gitps          報告程序情況
57)  groupmems      管理用戶主要組羣的成員
58)  gzexe          壓縮執行文件
59)  hexdump        顯示文件十六進制格式
60)  hping3         測試網絡及主機的安全
61)  indent         調整代碼文件格式
62)  inotifywait    異步文件系統監控
63)  inotifywatch   收集關於被監視的文件系統的統計數據
64)  ipcs           多進程間通訊經常使用的工具
65)  iperf          網絡性能測試
66)  joe            純文本編輯器
67)  kbdconfig      設置鍵盤類型
68)  la             顯示當前目錄下的全部文件
69)  ld             GUN鏈接器
70)  ldd            打印程序依賴的共享庫
71)  lpstat         顯示cpus狀態信息
72)  ls             顯示指定工做目錄下的內容及屬性信息
73)  ltrace         跟蹤進程調用庫函數的狀況
74)  lynx           終端上的純文本瀏覽器
75)  man            查看命令幫助信息
76)  mc             菜單式文件管理程序
77)  mcopy          複製 MSDOS 格式文件到Linux中
78)  mdel           刪除 MSDOS 格式的檔案
79)  mdir           顯示MS-DOS目錄
80)  minfo          顯示MS-DOS文件系統的各項參數
81)  mkdir          建立目錄
82)  mmove          移動文件或目錄
83)  mtoolstest     測試並顯示mtools的相關設置
84)  mysql          MySQL服務器的客戶端工具
85)  mysqladmin MySQL服務器客戶端管理工具
86)  mysqldump  MySQL數據庫備份
87)  mysqlimport    MySQL服務器數據導入
88)  newusers       更新和批量建立新用戶
89)  ngrep          數據包匹配和顯示工具
90)  nl             添加行號
91)  nm             顯示二進制目標文件的符號表
92)  nmcli          網絡管理命令行工具
93)  objdump        查看目標文件構成的gcc工具
94)  od             輸出文件內容
95)  patch          修補文件
96)  perl           實用報表提取語言
97)  pfctl          防火牆配置
98)  pr             將文本文件轉換成適合打印的格式
99)  pwd            顯示當前路徑
100)  readelf       顯示elf格式文件的信息
101)  readonly      標記shell變量或函數爲只讀
102)  rename        批量改變文件名
103)  restore       還原備份
104)  rlogin        遠端登入
105)  rpm2cpio      文件格式轉換
106)  rpmbuild      建立軟件包
107)  rpmdb         初始化和重建數據庫
108)  rpmquery      查詢信息
109)  rpmsign       簽名管理工具
110)  rpmverify     驗證已安裝的RPM軟件包的正確性
111)  semanage      安全上下文查詢與修改
112)  setenv        查詢或顯示環境變量
113)  smbclient     存取SMB/CIFS服務器的用戶端程序
114)  smbd          Samba服務器程序
115)  source        在當前Shell環境中從指定文件讀取和執行命令
116)  split         文件分割
117)  stat          顯示文件狀態信息
118)  statserial    顯示串口狀態
119)  strings       在對象文件或二進制文件中查找可打印的字符串
120)  su            切換用戶
121)  sudoedit      以另一個用戶文件編輯文件
122)  sudoreplay    重播sudo會話日誌
123)  systool       顯示系統中設備的信息
124)  tailf         跟蹤文件輸出
125)  tgz           將文件壓縮爲.tgz格式文件
126)  udevadm info  查詢udev數據庫中的設備信息
127)  umask         設定權限掩碼
128)  uncompress    壓縮或解壓縮compress文件
129)  unlink        刪除指定文件
130)  unprotoize    刪除函數原型
131)  unrar         解壓提取文件
132)  userinfo      更改本身的finger信息
133)  userpasswd    容許用戶更改密碼的圖形化工具
134)  uucico        文件傳輸服務程序
135)  uucp          unix系統之間傳輸文件
136)  uuname        顯示所有的UUCP遠端主機
137)  vimdiff       同時編輯多個文件
138)  vipw          編輯某些配置文件
139)  visudo        編輯/etc/sudoers文件
140)  xlsfonts      顯示X服務器字體列表
141)  xzcmp         比較xz壓縮文件
142)  xzdec         解壓縮xz文件
143)  xzdiff        比較xz壓縮文件
144)  xzgrep        在xz壓縮文件上搜索正則表達式
145)  xzless        查看xz壓縮文本文件
146)  xzmore        查看xz壓縮文本文件
147)  ytalk         與其餘用戶交談
148)  zmore         查看壓縮文件
149)  apk           下載包管理工具
150)  arj           建立和管理.arj壓縮包
151)  autoconf      自動生成配置腳本
152)  autoheader    建立C定義的模板文件
153)  autoreconf    更新已經生成的配置文件
154)  autoscan      生成一個初步的configure.in
155)  bzcmp         比較.bz2壓縮包中的文件
156)  bzdiff        比較兩個.bz2壓縮包中文件的不一樣
157)  dnsdomainname 打印DNS的域名
158)  dumpe2fs      打印快組信息
159)  fsview        文件系統瀏覽器
160)  gdbserver     調試遠程服務器
161)  htdigest      管理用戶摘要認證文件
162)  info          閱讀info格式的文件
163)  install       複製文件和設置屬性
164)  lftpget       下載指定的文件
165)  lnewusers     建立用戶帳號
166)  manpath       查看man手冊頁的查詢路徑
167)  mke2fs        建立文件系統
168)  mkfifo        建立FIFO文件
169)  mread         mtools工具
170)  mren          更改文件或目錄
171)  mshowfat      顯示在FAT中的記錄
172)  nologin       限制用戶登陸
173)  pinfo         基於lynx類型info瀏覽
174)  pssh          批量管理執行
175)  pushd         添加目錄到目錄堆棧頂部
176)  readlink      找出符號連接所指向的位置
177)  rev           顛倒過來顯示文件內容
178)  sulogin       單用戶登陸
179)  telinit       更改系統的運行級別
180)  xclip         跨窗口複製文字
181)  xzcat        查看xz壓縮文件的內容
182)  zdump        時區輸出器
183)  zgrep        在壓縮文件中按正則表達式來搜索
184)  zless        查看zip壓縮文件

5.複製etc/profile 至tmp/目錄 用查找替換命令刪除/tmp/profile 文件中行首的空白字符

當前目錄:
[14:31:14 root@CentOS7 /etc]#pwd
/etc
執行復制命令:
[14:30:27 root@CentOS7 /etc]#cp profile ../tmp/
查看tmp目錄:
[14:31:21 root@CentOS7 /tmp]#ll
total 452
-rw-r--r--. 1 root      root        1819 Jun 18 14:31 profile
#刪除/tmp/profile 文件中行首的空白字符
    1)[18:43:19 root@CentOS7 /tmp]#cat profile |tr -d ' '
    或者
    2)[23:13:57 root@CentOS7 /tmp]#vim profile 
        :%s/^[[:space:]]\+//
        或:%s@^[[:space:]]\+@@

6.在vim中設置tab縮進爲4個字符

vim .vimrc 輸入 set tabstop=4

vim配置文件分爲:系統文件和用戶配置文件
系統配置文件位於:vim的安裝目錄(默認路徑爲/etc/.vimrc)
用戶配置文件位於主目錄:~/.vimrc 即經過執行vim ~/.vimrc 命令便可對此配置文件進行合理修改。一般狀況下,vim用戶配置文件須要本身手動建立
注意!注意!注意! vim用戶配置文件比系統配置文件的優先級高

vim提供的環境配置參數不少,能夠在vim中輸入":set all" 來查詢
經常使用參數:

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8     設置編碼格式,encoding 用於緩存的文本,寄存器,vim腳本文件等;
                                    fileencoding 是vim寫入文件時採用的編碼類型;
                                    termencoding 表示輸出到終端時採用的編碼類型
set nu
set number  nu是number縮寫  取消行號:set nonu
set cursorline  突出顯示當前行
set mouse=a
set selection=exclusive
set selectmode=mouse,key  vim編輯器裏默認是不啓用鼠標的,經過此設置便可啓動鼠標
set autoindent 設置自動縮進,即每行的縮進同上一節相同
set tabstop=4  設置tab鍵寬度爲4個空格
相關文章
相關標籤/搜索