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設備提供一種統一模型的接口
文件的數據分爲兩種:
一種:元數據,既屬性數據
一種:就是數據自己
經過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]
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
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壓縮文件
當前目錄: [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:]]\+@@
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個空格