Linux基礎入門
1、Linux發行版及哲學思想
1.1 Linux發行版
Linux發行版(Linux Distribution,也被叫做GUN/Linux發行版),為一般用戶預先集成好的Linux操作系統及各種應用軟件。Linux發行版通常包含了包括桌面環境、辦公包、媒體播放器、數據庫等應用軟件。這些操作系統通常由Linux內核、以及來自GUN計劃的大量的函數庫,和基于X Window的圖形界面。有些發行版考慮到容量大小而沒有預裝X Window,而使用更加輕量級的軟件。
目前有超過300個Linux發行版,大部分正處于活躍的開發中,不斷的改進。
1.2 linux哲學思想
1.2.1 一切皆文件
把幾乎所有資源,包括硬件設備都組織為文件格式;
1.2.2 由眾多單一目的小程序組成;一個程序只實現一個功能,而且要做好
組合小程序完成復雜任務;
1.2.3 盡量避免跟用戶交互
目標:實現腳本編程,以自動完成某些功能;
1.2.4 使用純文本文件保存配置信息
目標:一款使用的文本編輯器即能完成系統配置工作;
2、Linux獲取命令幫助詳解
2.1 Linux命令的分類(Shell的內部命令和外部命令)
Linux命令的執行必須依賴于Shell命令解釋器。Shell實際上是在Linux系統中運行的一種特殊程序,它位于操作系統內核與用戶之間,負責接受用戶輸入的命令并進行解釋,將需要執行的操作傳遞給系統內核執行,Shell在用戶和內核之間充當了一個“翻譯官”的角色。當用戶登陸到Linux系統時,會自動加載一個Shell程序,以便給用戶提供可以輸入命令的操作環境。
Bash是Linux系統中默認使用的Shell程序,文件位于/bin/bash。根據Linux命令與Shell程序的關系,一般分為以下兩種類型:
內部命令:指的是集成于Shell解釋器程序(如Bash)內部的一些特殊指令,也成為內建(Built-IN)指令。內部命令屬于Shell的一部分,所以并沒有單獨對應的系統文件,只要Shell解釋器被運行,內部指令也就自動載入內存了,用戶可以直接使用。內部命令無需從硬盤中重新讀取文件,因此執行效率更高。
外部命令:指的是Linux系統中能夠完成特定功能的腳本文件或二進制程序,每個外部命令對應了系統中的一個文件,是屬于Shell解釋器程序之外的命令,所以稱為外部命令。Linux系統必須知道外部命令對應的文件位置,才能夠由Shell加載并執行。
區別外部命令和內部命令的方法:
1、使用 type 命令 。
$ type cd
cd is a shell builtin
$ type cat
cat is /bin/cat
2、使用whereis或者which
2.2 內部命令獲取幫助
# help COMMAND
2.3 外部命令獲取幫助
2.3.1 # COMMAND –help
2.3.2 使用手冊(manual)
# man COMMAND
2.3.3 信息頁
#info COMMAND
2.3.4 程序自身的幫助文檔
程序自身的幫助文檔一般位于/usr/share/doc/COMMAND-VERSION
2.3.5 程序官方文檔
2.3.6 發行版的官方文檔
以redhat為例,其發行版的官方文檔:http://www.redhat.com/docs
2.3.7 Google
3、Linux常用的系統基礎命令
3.1目錄相關的命令
cd: 切換目錄
~:用戶的主目錄
cd 或 cd ~: 回當前用戶的主目錄
cd ~USERNAME: 切換至指定用戶的主目錄
cd -: 在上一個目錄和當前目錄之間來回切換
.
..
相關的環境變量:
PWD:保存了當前目錄路徑;
OLDPWD:上一次所在目錄路徑;
pwd: 顯示當前目錄
ls: list顯示指定路徑下的文件列表;
ls [OPTION]… [DIR]…
-a, –all: 顯示所有文件,包括隱藏文件;
-l: 長格式
-rw-r–r– 1 root root 44800 Aug 14 14:32 install.log
-rw-r–r–:
最左側的第一位:文件類型
-, d, l, b, c, p, s
后面的9位:訪問權限,perm
數 字1:文件被硬鏈接的次數;
左root: 文件的owner
右root: 文件的group
44800:文件的size
Aug 14 14:32 : 文件的最近一次被修改的時間
install.log: 文件名
-h, –human-readable:單位換算
-d: 顯示目錄自身的相關屬性;通常要與-l一起使用;
-r, –reverse: 逆序顯示
-R, –recursive: 遞歸
stat /PATH/TO/SOMEFILE:獲取指定文件的元數據
3.2文件查看命令:cat, tac
cat [OPTION]… [FILE]…
-E: 顯示行結束符$
-n: 對顯示出的每一行進行編號
3.3文件內容類型查看命令:file
file /PATH/TO/SOMEWHERE
3.4系統管理類命令:
關機:
halt, poweroff, shutdown, init 0
重啟:
reboot, shutdown, init 6
跟用戶登錄相關:
who, whoami, w
3.5回顯命令:echo
-n: 禁止自動添加換行符號;
-e: 允許使用轉義符;
\n: 換行
\t: 制表符
echo "$VAR_NAME": 變量會替換,雙引號表弱引用
echo '$VAR_NAME': 變量不會替換,強引用
3.6 which:顯示命令對應的程序文件路徑
which [OPTION] COMMAND
–skip-alias:禁止顯示別名
whatis: 在whatis數據庫中搜索單詞
4、Linux 文件系統基礎
4.1 首相來了解下什么是文件系統
計算機的文件系統是一種存儲和組織計算機數據的方法。從系統角度來啦嗎,文件系統對文件存儲設備的空間進行組織和分配,負責文件存儲并對存入的文件進行保護和檢索的系統。
文件系統不僅包含著文件中的數據而且還有文件系統的結構,所有Linux用戶和程序看到的文件、目錄、軟連接及文件保護信息等都存儲在其中。
不同Linux發行版之間的文件系統差別很少,主要表現在系統管理的特色工具以及軟件包管理方式的不同,文件目錄的基本結構都是一樣的。
文件系統有多種類型:
? ext2 : 早期Linux中常用的文件系統。
? ext3 : ext2的升級版,帶日志功能。
? RAMFS : 內存文件系統,速度很快。
? Iso9660 : 光盤或光盤鏡像。
? NFS : 網絡文件系統,由SUN發明,主要用于遠程文件共享。
? MS-DOS : MS-DOS文件系統。
? FAT : Windows XP操作系統采用的文件系統。
? NTFS : Windows NT/XP操作系統采用的文件系統。
4.2 Linux發行版的常見目錄
目錄 |
功能 |
|
/ |
根目錄,只能包含目錄,不能包含具體文件。 |
|
/bin |
供所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序 |
|
/sbin |
管理類的基本命令,不能關聯之獨立分區,OS啟動即會用到的程序 |
|
/lib |
基本共享庫文件,以及內核模塊文件(/lib/modules) |
|
/lib64 |
專用于x86_64系統上的輔助共享文件存放位置 |
|
/etc |
配置文件目錄(純文本文件) |
|
/home/username |
普通用戶家目錄 |
|
/root |
管理員的家目錄 |
|
/media |
便攜式移動設備掛載點(cdrom|usb) |
|
/mnt |
臨時文件系統掛載點 |
|
/dev |
設備文件及特殊文件存儲位置(b: block device隨機訪問)(c:character device線性訪問) |
|
/opt |
第三方應用程序的安裝位置 |
|
/srv |
系統上運行的服務用到的數據 |
|
/tmp |
臨時文件存儲位置 |
|
/usr |
Universal shared, read-only data |
|
/usr/bin |
保證系統擁有完整功能而提供的應用程序 |
|
/usr/sbin |
非必要的二進制標準系統文件 |
|
/usr/lib |
用于編程和包的庫 |
|
/usr/lib64 |
||
/usr/include |
C程序的頭文件(header files) |
|
/usr/share |
結構化獨立的數據,例如doc,man等 |
|
/user/local |
第三方應用程序的安裝位置 |
|
/var |
Variable data files |
|
/var/cache |
應用程序緩存數據目錄 |
|
/var/lib |
應用程序狀態信息數據 |
|
/var/local |
專用于為/usr/local下的應用程序存儲可變數據 |
|
/var/lock |
鎖文件 |
|
/var/log |
日志目錄及文件 |
|
/var/opt |
專用于為/opt下的應用程序存儲可變數據 |
|
/var/run |
運行中的進程相關的數據;通常用于存儲進程的pid文件 |
|
/var/tmp |
保存系統兩次重啟之間產生的臨時數據 |
|
/proc |
用于輸出內核與進程信息相關的虛擬文件系統 |
|
/sys |
用于輸出當前系統上硬件設備相關信息的虛擬文件系統 |
|
/selinux |
Security enhanced linux,selinux相關的安全策列等信息存儲位置0 |
4.3 Linux應用程序的常見組成部分
? 二進制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
? 庫文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
? 配置文件:/etc, /etc/DIRECTORY, /usr/local/etc
? 幫助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc
4.4 Linux下的文件類型
? – (f):普通文件;
? d: 目錄文件;
? b: 塊設備;
? c: 字符設備;
? l: 符號鏈接文件;
? p: 管道文件;
? s: 套接字文件;socket;
原創文章,作者:Daniel-W,如若轉載,請注明出處:http://www.www58058.com/11695
文章寫的不錯。仍有提升空間,可參考置頂推薦的文章
@stanley:thanks~