作為程序員我們經常需要和服務器打交道,而現在的主流服務器無疑是Linux,所以掌握好Linux對我們的日常工作能起到很大的幫助。這里我將Linux命令行與shell腳本編程大全的主要內容記錄下來,一方面是為了加深印象以及整理筆記,另一方面也是為了能夠幫助其他人了解shell,如果其中有什么錯誤的話,歡迎指出!
一、Linux基礎介紹
1. 什么是Linux
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。
2. Linux版本
2.1 核心Linux發行版含有內核、一個或多個圖形化桌面環境以及預編譯好的幾乎所有能見到的Linux應用,它提供了一站式的完整Linux安裝。以下為較流行的核心Linux發行版:
| 發行版 |
描述 |
| Slackware |
最早的Linux發行版中的一員,在Linux極客中比較流行 |
| Red Hat |
主要用於Internet服務器的商業發行版 |
| Fedora |
從Red Hat中分離出的家用發行版 |
| Gentoo |
為高級Linux用戶設計的發行版,僅包含Linux源代碼 |
| openSUSE |
用於商業和家用的發行版 |
| Debian |
在Linux專家和商用Linux產品中流行的發行版 |
2.2 特定用途的發行版:它們通常基於某個主流發型版,但僅包含主流發行版中一小部分用於某種特定用途的應用程序。除此之外,定制化發行版還嘗試通過自動檢測和自動配置常見硬件來幫助新手安裝Linux。這使得Linux的安裝簡化了許多。如下:
| 發行版 |
描述 |
| CentOS |
一款基於 Red Hat企業版Linux源代碼構建的免費發行版 |
| Ubuntu |
一款用於學校和家庭的免費發行版 |
| PCLinuxOS |
一款用於家庭和辦公的免費發行版 |
| Mint |
一款用於家庭娛樂的免費發行版 |
| dyne:bolic |
一款用於音頻和MIDI應用的免費發行版 |
| Pubby Linux |
一款適用於老舊PC的小型免費發行版 |
3. 文件系統
Linux內核支持通過不同類型的文件系統從硬盤中讀取數據,Linux系統中用來讀寫數據的標准文件系統如下:
| 文件系統 |
描述 |
| ext |
Linux擴展文件系統,最早的Linux文件系統 |
| ext2 |
第二擴展文件系統,在ext的基礎上提供了更多的功能 |
| ext3 |
第三擴展文件系統,支持日志功能 |
| ext4 |
第四擴展文件系統,支持高級日志功能 |
| hpfs |
OS/2高性能文件系統 |
| jfs |
IBM日志文件系統 |
| iso9660 |
ISO9660文件系統(CD-ROM) |
| minix |
MINIX文件系統 |
| msdos |
微軟的FAT16 |
| ncp |
Netware文件系統 |
| ntfs |
支持Microsoft NT文件系統 |
| proc |
訪問系統信息 |
| ReiserFS |
高級Linux文件系統,能提供更好的性能和硬盤恢復功能 |
| smb |
支持網絡訪問的Samba SMB文件系統 |
| sysv |
較早期的Unix文件系統 |
| ufs |
BSD文件系統 |
| umsdos |
建立在msdos上的類Unix文件系統 |
| vfat |
Windows 95文件系統(FAT32) |
| XFS |
高性能64位日志文件系統 |
4. 常見的Linux目錄及用途
| 目錄 |
用途 |
| / |
虛擬目錄的根目錄。通常不會在這里存儲文件 |
| /bin |
二進制目錄,存放許多用戶級的GNU工具 |
| /boot |
啟動目錄,存放啟動文件 |
| /dev |
設備目錄,Linux在這里創建設備節點 |
| /etc |
系統配置文件目錄 |
| home |
主目錄,Linux在這里創建用戶目錄 |
| /lib |
庫目錄,存放系統和應用程序的庫文件 |
| /media |
媒體目錄,可移動媒體設備的常用掛載點 |
| /mnt |
掛在目錄,另一個可移動媒體設備的常用掛載點 |
| /opt |
可選目錄,常用於存放第三方軟件包和數據文件 |
| /proc |
進程目錄,存放現有硬件和當前進程的相關信息 |
| /root |
root用戶的主目錄 |
| /sbin |
系統二進制目錄,存放許多GNU管理員級工具 |
| /run |
運行目錄,存放系統運作時的運行時數據 |
| /srv |
服務目錄,存放本地服務的相關文件 |
| /sys |
系統目錄,存放系統硬件信息的相關文件 |
| /tmp |
臨時目錄,可以在該目錄創建和刪除臨時工作文件 |
| /usr |
用戶二進制目錄,大量用戶級GNU工具和數據文件都存儲在這里 |
| /var |
可變目錄,用以存放經常變化的文件,比如日志文件 |