本文出自 “諸葛草廬” 博客,請務必保留此出處http://lyp0909.blog.51cto.com/508999/461269
何爲操作系統?按照自己的理解,操作系統就類似一個平臺,上面可以運行各種應用程序,向下可以屏蔽各種硬件差異對用戶帶來的影響,是用戶與計算機硬件系統之間的接口。
看看《計算機操作系統》中對操作系統是怎麼定義的:
OS作爲用戶與計算機硬件系統之間的接口;
OS作爲計算機系統資源的管理者;
OS實現了對計算機資源的抽象;
OS是鋪設在計算機硬件上的多層系統軟件,它們不僅增強了系統的功能,而且還隱藏了對硬件的操作細節,由它們實現了對計算機硬件操作的多個層次的抽象。
多用戶多任務操作系統的含義是:允許多個用戶通過各自的終端使用同一臺機器,共享主機系統的各種資源,而每個用戶程序又可以分爲幾個任務,使他們能併發執行,從而可進一步提高資源利用率和系統吞吐量。
計算機體系結構的分層關係:
應用程序 |
庫(API) |
內 核 |
硬 件 |
API規範:POSIX規範 遵循POSIX規範之後各種應用程序可以運行在不同的系統之上。
上層用戶跟內核交互的機制:中斷,系統調用(system call)
系統調用:從用戶態切換到內核態 以能夠實現所有功能但是消耗資源最少
中斷:停止正在執行的任務,轉而執行對實時性要求更高的進程。分爲硬終端還軟中斷
Redhat封裝了GNU多個應用程序再加上Linux的內核編譯成通用的二進制形式,並提供安裝形成發行版。
LFS──Linux from Scratch,就是一種從網上直接下載源碼,從頭編譯LINUX的安裝方式。它不是發行版,只是一個菜譜,告訴你到哪裏去買菜(下載源碼),怎麼把這些 生東西( raw code) 作成符合自己口味的菜餚──個性化的linux,不單單是個性的桌面。(來自百度百科)
Redhat Linux經歷了6.0 7.0 8.0 9.0。自2002年起,Redhat將產品分爲兩個系列,即由Red hat公司提供收費技術支持 和更新的RHEl服務器版,以及由Fodora社區開發的桌面版本Fedora Core(FC),目前通用的Redhat Enterprise版本爲5.4 5.5以及剛剛發行的6.0版本。
常用的兩種體系架構有 IA-32,x86 AMD64,x86_64兩種平臺
除了常用的Intel ,AMD處理器之外,還有Power,PowerPC,Ultrasparc,安騰,M68K,Mips ,Arm(只製作標準)等。
應用程序之上有一種特殊的程序 SHELL 計算機和人相互交接的一個界面。
進程是用戶意圖代表。
Linux下兩種人機交互接口:CLI :bash (windows)sh ksh csh zsh
GUI (X-window) Desktop Gnome KDE XFace
紅帽默認Gnome
Linux下各種設備都是以文件的形式存在於磁盤中。
Linux環境下用戶分爲兩類Root :superuser administrator; Commonuser:student不建議使用管理員身份登錄。普通用戶的家目錄是/home/username 管理員Root /root。
幾個常用命令的使用:Ctrl+shift+T 可多打開多個終端
Ctrl+Pageup(Pagedown)之間相互切換
Crtl+shift+C 複製
Shift+Pageup(pagedown)上下翻頁
Alt+F10 窗口最大化
Alt+F9 窗口最小化
Less 分屏查看文件
往下翻一行 space鍵?--->b 翻一頁Enter?->k
補齊分爲命令補齊和路徑補齊。
命令有兩種:內部命令:shell
外部命令 PATH 有一個可執行的程序 #echo $PATH
su switch user 用戶切換
su [-] login 不加橫線 shell是root 環境下不會發生改變, 加橫線su – student會改變(爲當前用戶創建一個新的shell)。
sudo 不再切換用戶的情況下使用另外一個用戶執行命令。
!! 使用上一個命令
!fin 查找從後往前第一個以fin開頭的命令
!數字 表示執行命令歷史列表中的第N條命令
!-n 表示倒數第N條命令
^/etc^/dev 把上一條命令的etc轉換爲dev
!$或者Esc+. 調用上一條命令的最後一個參數
Ctrl+r
Histsize 命令歷史的長度 最多保存多少條 redhat默認1000條
Histfilesize控制文件裏保存多少條 默認1000條
Histfile 定義文件的保存位置 /root/.bash_history
清空命令歷史列表 history –c
文本編輯器 :純粹處理純文本文件,字符本身沒有任何修飾信息。行編輯器 :sed,全屏編輯器 :nano vim emacs。
命令格式:# command [options] 選項 [arguments]參數
選項:修改命令的執行動作
長選項 - -開頭 eg –help 不能組合
短選項 -開頭 eg -l 可以組合 eg -lhd
參數: 制定命令的執行對象
<>表示必須的 [-x|-y|-z]可選的,多選一
clock顯示硬件時間,即bios裏邊的時間。
更改時間 Date hhmmMMDDYY.ss
hwclock –w 把系統時鐘寫到硬件裏邊去
hwclock –s 把硬件時間寫到系統時鐘裏邊去
Date +“%m-%d-%y”
%s表示從unix元年到此刻所經過的秒數
如何獲得幫助
命令 -h 內部命令獲得幫助的方式
命令 --help 外部命令獲得幫助
Man ——》查找manual 手冊 /usr/share/man
Man command 查看命令手冊
man –k =apropos 非精確搜索
info –p在節點間進行跳轉 –n跳轉到下一個命令 作爲man命令的補充使用的
Whatis makewhatis 手動建立whatis數據庫
/usr/share/doc
n/N 下一個,前一個
Linux文件系統結構:
/bin二進制文件的存放目錄(可執行文件)一般都顯示爲綠色
/dev 設備特殊文件
/etc 系統管理和配置文件
/etc/rc.d 啓動的配置文件和腳本
/home 用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示
/lib 標準程序設計庫,又叫動態鏈接共享庫,作用類似windows裏的.dll文件
/sbin 系統管理命令,這裏存放的是系統管理員使用的管理程序(二進制文件)
/tmp 公用的臨時文件存儲點
/root 系統管理員的主目錄(呵呵,特權階級)
/mnt 系統提供這個目錄是讓用戶臨時掛載其他的文件系統。
/lost+found 這個目錄平時是空的,系統非正常關機而留下“無家可歸”的文件(windows下叫什麼.chk)就在這裏
/proc 虛擬的目錄,是系統內存的映射。可直接訪問這個目錄來獲取系統信息。
/var 某些大文件的溢出區,比方說各種服務的日誌文件
/usr 最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄。其中包含:
/usr/X11R6 存放X window的目錄
/usr/bin 衆多的應用程序
/usr/sbin 超級用戶的一些管理程序
/usr/doc linux文檔
/usr/include linux下開發和編譯應用程序所需要的頭文件
/usr/lib 常用的動態鏈接庫和軟件包的配置文件
/usr/man 幫助文檔
/usr/src 源代碼,linux內核的源代碼就放在/usr/src/linux裏
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的庫
兩個掛載點:/media 掛載便攜式媒介 /mnt 掛載格外硬盤
/opt 可有可無的
/var /srv (service 服務器在工作當中,產生一些中間數據,放在此目錄下) 數據文件的存放目錄
僞文件系統 /proc 正在內存當中運行的內核信息的映射
/sys 導出系統的硬件設備信息
/lib 功能模塊 可執行文件 動態庫 靜態庫 符號庫
linux 內核在/boot分區
/swap 交換分區,一般是物理內存的二倍。
以點開頭的文件表示隱藏文件
.表示當前目錄 ..表示父目錄
動態裝入器,ld.so.conf, ld.so.conf.d/*.conf 將路徑添加進去即可。
FHS規範:規範在根目錄(/)下面各個主要目錄應該放什麼樣的文件。FHS定義了兩層規範,第一層是, / 下面的各個目錄應該要放什麼文件數據,例如/etc應該要放置設置文件,/bin與/sbin則應該要放置可執行文件等等。第二層則是針對/usr及/var這兩個目錄的子目錄來定義。例如/var/log放置系統登錄文件、/usr/share放置共享數據等等。
文件或目錄名 255個字符 嚴格區分大小寫 除 /不能用以外原則上其他任何都可以用
有特殊符號的話 如* 空格 ,要加引號‘’ eg: touch ‘c d’ 。
查看student用戶信息:id student
finger student
pwd 顯示當前工作目錄
cd – 返回上一個工作目錄
Mkidr –pv z/y 如果z不存在,先創建z v選項表示顯示創建過程
- 普通文件 在使用ls –l時,所列內容的第一項的第一位爲“-”。系統中源碼、文本和shell程序等都是正規文件。
D 目錄文件 目錄是一種特殊的文件,它的內容是所包含的文件的信息:文件的位置、大小、文件的創建時間等。使用ls –l時,第一項第一列的標識爲“d”。目錄文件只能由操作系統或專門的程序來讀取和修改,普通用戶無法直接訪問目錄文件,只能讀取目錄文件的內容。
L 鏈接文件(link file) 系統中的鏈接是一個已經存在的文件的另一個名字,它不復制文件的內容。有兩種鏈接方式,一種是硬鏈接(hard link),另一種是符號鏈接(symbolic link),又稱軟鏈接。硬鏈接和原有文件是存儲在同一物理地址的兩個不同的名字,因此硬鏈接是相互的;符號鏈接的內容只是一個所鏈接文件的文件名,在使 用ls –l時,符號鏈接的第一項的第一位爲“l”。
C 字符設備 一次傳輸一個字符 裝置文件裏邊的串行端口設備,例如鍵盤,鼠標
B 塊設備 一次讀一個數據塊 裝置文件裏邊可供儲存的接口設備;
S 套接字文件 socket 進程間通信 socket是linux系統中用於計算機之間相互通信的應用程序的接口它將完成網絡上的I/O操作。在linux系統中,socket並不是一個真正的文件,但是它被抽象成一個文件,使用ls –l命令時,第一項第一位的標識爲“s”。
P管道文件 進程間通信的一種機制
查看文件的三個時間:訪問時間access 修改時間 modify 改變時間change(文件屬性 文件名改變)
stat a 顯示a的狀態
touch 將三個時間都改爲當前時間
touch –a access time改爲當前時間
-m 改變最近一次修改時間
-t 改變成指定時間
cp src dst
如果目標文件存在,則覆蓋目標文件
如果目標不存在 則把源文件拷過來,並以目標文件名命名
cp /etc/issue /m/a..txt
-f 強行覆蓋目標文件
-i 如果目標文件存在,提示你是否覆蓋
alias 要想使用原命令,繞過別名,直接使用命令原來的意義,在命令前邊加”\”
mv
rm -f 強制刪除 -r遞歸刪除
file 簡單判斷文件內容的不同
用戶:使用標識可以獲取資源的集合。
組:容器
linna——>UID ——>/etc/passwd
password——>/etc/shadow 同時也包含着賬戶密碼的屬性信息
mygrp——>GID——>/etc/group 組賬號
/etc/gshadow 組密碼
用戶賬號:
類別 管理員 系統用戶和普通用戶
root
1——499 系統用戶
500<UID<60000 普通用戶
屬主的權限:定義了文件和目錄屬主可對其進行的操作
l 同組用戶的權限:定義了與屬主在同組的其他成員可對其進行的操作。
l 其他用戶的權限:定義了除去屬主和同組的成員外,其他用戶可對其進行的操作。
組 三類
私有組 公共組
基本組(主組)和附加組(額外組)
對文件來說
9 8 7 6 5 4 3 2 1 0
- r w x r - x r - x
r 查看 例如cat less
w修改
x 執行(腳本) 可執行文件
對於目錄來說r查看內容 例如ls
w 建立新文件 刪除原有文件 修改文件
x進入目錄權限
useradd 建立一個新用戶
passwd username 爲用戶添加密碼
文件權限修改方法:同時操作所有用戶權限
只操作一類用戶權限
用戶:u 組 g 其他 o 所有 a
chgrp 改變文件所屬羣組
chown 改變文件所屬人
chmod 改變文件的屬性、SUID等等的特性
chmod u=
只操作某一類用戶某一位用戶權限
chmod –R 遞歸改變權限
chown/chgrp [-R(子目錄文件權限都改變)] groupname filename
chown username;grpname filename 改變所屬用戶和組
chown --reference =src dst
chmod –reference=src dst
把src的權限改成dst的權限
超級權限
suid sgid sticky
11 10 9 8 7 6 5 4 3 2 1 0
S G T r w x r w x r w x
第11位爲SUID位,第10位爲SGID位,第9位爲sticky位,第8-0位對應於上面的u g o三組的 rwx位。
suid 期望其他用戶不是以自己身份來運行腳本,而是以文件屬主的身份來運行
sgid
sticky o:w 全局可寫通常只能用在目錄上
4:suid
2:sgid
1:sticky
S表示原來沒有執行的權限 s表示在原來執行的權限上再加一個s
本文出自 “諸葛草廬” 博客,請務必保留此出處http://lyp0909.blog.51cto.com/508999/461269