#blog text
1. 描述計算機的組成及其功能。
2. 按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。
3. 描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述。
4. 說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應的示例來闡述。
5. 如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。
6. 請羅列Linux發行版的基礎目錄名稱命名法則及公用規定。
###描述計算機的組成及其功能
計算機由CPU、內存、IO設備組成。
CPU由控制器和運算器組成。
控制器:輸入控制指令。
運算器:運算數據,得出運算結果。
內存:像是與cpu進行數據交換,為CPU提供數據,并將CPU運算結果再次交給內存。
IO:輸入、輸出設備。用于數據的輸入和輸出。
###按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別
slackware
S.U.S.E
SLES
OpenSUSE
debian
ubuntu
mint
knopix
redhat
redhat 0-9.0
RedHat Enterprise Linux(RHEL)
Community ENTerprise OS(CentOS)
Fedora core(6個月)
gentoo
ArchLinux
Linux的發行版是以GNU/Linux為基礎,在其基礎上將其包裝,添加基本常用的應用以及自己發行版獨特的標志等改動。就像如同在同一個地基上,造出不同風格的房子一樣。(地基則是GUN/Liunx,Linux的發行版則是一個完整的房子),而不同風格的房子也就是不同發行版Linux的聯系與區別了。
###描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述。
1.Linux一切皆文件。
在Linux中所有的設備、管道、套接字、目錄等都是以文件的形式存在。
2.Linux由眾多功能單一的程序組成;一個程序只做一件事,而且要做好;組合小程序完成復雜任務。
Linux中的程序分工明確,每種程序只做其該做的事,因此每個程序都不會太大,運用Linux中的一些工具將其組合起來,可以完成復雜困難的任務。
3.盡量避免跟用戶交互。(目標:易于以編程的方式實現自動化任務;)
運行程序后減少跟用戶的交互,可以減輕人員的工作量。
4.使用文本文件保存配置信息。
每個程序都會有其對應的配置文件,文本文件更加容易修改。
### 如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。
Linux中命令分為內部命令和外部命令。
type命令可以查詢出此文件為什么命令;
如:~]# type man
man is /usr/bin/man
外部命令
~]# type type
type is a shell builtin
內部命令
內部命令獲取幫助信息:
help COMMAND
如:~]# help type
外部命令獲取幫助信息:
1)通過幫助手冊獲取幫助(幫助手冊路徑/usr/share/man)
man COMMAND
如: ~]# man man
manual中幫助信息:
NAME:功能說明
SYSNOPSIS:語法格式
DESCRIPTION:詳細描述
OPTION:選項
EXAMPLES:使用示例
AUTHOR/HISTORY:作者
SEE ALSO:參考
BUGS:報告BUG的提交方式
manual手冊是壓縮格式的文件,分章節:
1)用戶命令
2)系統調用
3)C庫函數
4)設備和特殊文件
5)文件格式和配置
6)游戲
7)雜項
8)系統管理工具和守護進程
~] # man # COMMAND
whatis命令可以查詢此命令有哪些章節:
~] # whatis man
man -M /PATH 可以查看指定路徑的幫助手冊
2)獲取命令的在線文檔
info COMMAND
如: ~]# info man
3)命令自帶簡要格式的幫助
COMMAND –help
如:man –help
4)一般程序會自帶幫助文檔
如:很多應用程序會自帶幫助文檔:/usr/share/doc/APP-VERSION
INSTALL:安裝幫助
README:程序相關信息
CHANGES:版本迭代改動信息
###Linux系統命令格式
基本格式:
]# COMMAND [OPIONTS] [OPTIONS_ARG] COMMAND_ARG
COMMAND:命令的執行路徑,如/bin/ls
OPTIONS:命令的選項,不同的選項,命令的執行的功能就會不同。如/bin/ls -l;/bin/ls -a。
OPTIONS_ARG:選項的參數。選項作用的對象。如cut -d: -f1
COMMAND_ARG:命令的參數,也就是命令作用的對象。如ls /var
[]:代表中括號中內容可選
|:代表或者。如[a|b],可以選擇a或b
…:代表前面的內容可以有多個
ifconfig:configure a network interface
配置一個網絡接口;顯示網絡接口信息。
ifconfig [interface]
]#ifconfig
顯示所有連接的網絡接口信息
]#ifconfig INTERFACE_NAME
顯示指定的網絡接口的信息
echo:display a line of text
展示一行文本;回顯輸出。
echo [SHORT-OPTION]… [STRING]…
-n:不輸出換行符
-e:啟用轉義字符
-E:不啟用轉義字符(默認選項)
example:
]# echo -n "sadan"
輸出sadan不換行
]# echo -e "\tsadan"
sadan
]# echo -E "\tsadan"
\tsadan
tty: print the file name of the terminal connected to standard input
顯示連接的終端文件名
tty [OPTION]…
-s 什么都不顯示,僅返回一個退出狀態
example:
]# tty
顯示終端
]# tty -s
什么都不顯示
startx-initialize an X session
啟動X Window
startx [options]
example:
]# startx
啟動X會話
export:Set export attribute for shell variables
設置shell變量屬性
export [-fn] [name[=value] …]
or export -p
-f:提交到shell函數
-n:刪除變量
-p:顯示所有變量和函數
example:
]# export sadan=yxq
將變量sadan設置為yxq
]# export -p
顯示所有變量
]# export -n sadan
刪除sadan變量
]# export -p
顯示所有變量
pwd:print name of current/working directory
打印當前工作目錄的名字
pwd [OPTION]…
-L:包含軟連接
-P:避免軟連接
example:
[root@centos ~]# cd /etc/init.d
[root@centos init.d]# pwd -P
/etc/rc.d/init.d
不顯示軟連接
[root@centos init.d]# pwd -L
/etc/init.d
顯示軟連接
history:Display or manipulate the history list
顯示或控制歷史列表(命令歷史保存在.bash_history文件中)
history [-c] [-d offset] [n]
or history -anrw [filename]
or history -ps arg [arg…]
-c:清空歷史列表
-d:刪除歷史列表中指定的命令歷史
-r:讀命令歷史文件并將其添加到歷史列表中
-w:將歷史列表寫入到命令歷史文件中
history n:顯示最近的n條命令
example:
]# history
顯示歷史列表
]# history -c
清空歷史列表
]# history -d 2
刪除編號為2的歷史命令
]# history -r
將命令歷史添加到歷史列表中
]# history -w
將歷史列表寫入命令歷史文件中
]# history 2
顯示最近兩條歷史命令
shutdown:shutdown may be used to halt, power-off or reboot the machine
可以關閉或重啟機器
shutdown [OPTIONS…] [TIME] [WALL…]
-r:相當reboot
-H: 相當halt
-P:相當poweroff
-k:僅僅發送信息
-c:取消尚未執行,但正在運行的shutdown指令
TIME:
now
hh:mm
+m
example:
]# shutdown -H now
現在立刻關閉機器
]# shutdown -P +3
三分鐘后關閉機器
]# shutdown -r 10:00 please backup
10點準時重啟,并提醒所以用戶"please backup"
halt、poweroff、reboot: Halt, power-off or reboot the machine
關閉或重啟機器
halt [OPTIONS…]
poweroff [OPTIONS…]
reboot [OPTIONS…]
-f : 強制執行
example:
]# halt -f
]# poweroff -f
強制關機
]# reboot -f
強制重啟
hwclock:query or set the hardware clock
檢查并設置硬件時鐘
hwclock [function] [option…]
-r:顯示硬件時鐘時間
-s, –hctosys:以硬件時間為標準,將系統時間設置為硬件時間
-w, –systohc:以系統時間為標準,將硬件時間設置為系統時間
example:
]# hwclock -s
將系統時間設置為硬件時間
]# hwclock -w
將硬件時間設置為系統時間
date:print or set the system date and time
顯示或設置系統日期和時間
date [OPTION]… [+FORMAT]
date [MMDDhhmm[[CC]YY][.ss]]
FORMAT:
%y or %Y :年
%m :月
%d :日
%H :時
%M :分
%S :秒
%s :1970-01-01 00:00:00 到現在經過多少秒
M:月
D:日
h:時
m:分
Y:年
s:秒
example:
顯示當前時間
~]# date "+%Y-%m-%d %H:%M:%S"
2016-12-04 01:48:16
設置當前時間
~]# date 020202022016.02
Tue Feb 2 02:02:02 CST 2016
###請羅列Linux發行版的基礎目錄名稱命名法則及公用規定。
其文件名稱標準為FHS(firesystem hierachy standard).
根目錄下的子目錄:
/boot:引導啟動時要加載的靜態文件、內核和ramdisk及grup等
/bin:用戶使用的命令程序
/sbin:系統管理員使用的命令程序
/lib:共享庫文件以及內核模塊
/lib64:專為x86_64位的共享庫文件
/usr:全局共享的只讀數據文件;獨立的層級結構
/usr/
bin
sbin
lib
lib64
include:C程序頭文件
share:自帶文檔及幫助手冊等特定文件
src:程序源碼存儲位置
local:第三方應用程序的安裝位置;也是獨立層級結構
/usr/local/
bin
sbin
lib
lib64
include
share
src
/dev:存儲設備文件或特殊文件
/etc:系統程序的配置文件
/srv:當前主機為服務提供的數據
/var:存放一些經常改變的文件;獨立的層級結構
cache:應用程序緩存數據目錄
lib:應用程序狀態信息數據
local:專用于為/usr/local下的應用程序提供可變數據
lock:鎖文件
log:日志目錄及文件
opt:專用于為/opt下的應用程序提供可變數據
run:運行進程相關數據
spool:應用程序的數據池
tmp:保存系統兩次重啟之間產生的臨時文件
/home:用戶的家目錄
/media:掛載便攜式移動設備文件
/mnt:臨時掛載目錄
/tmp:臨時文件
/opt:第三方應用程序安裝目錄
/proc:用于輸入內核與進程信息相關的虛擬文件系統,也叫偽文件系統,由內核參數映射而來
/sys:sysfs虛擬文件系統,提供一種比/proc更方便訪問內核的途徑;其主要作用在于為管理Linux設備提供一種統一模型的的
#用戶及權限管理
用戶是什么,在Linux中表現方式
用戶信息如何找到,在哪找
對應目錄提供的具體信息
/etc/passwd
/etc/gpasswd
/etc/shadow
/etc/gshadow
屬主與屬組
用戶管理命令
權限的出現及其作用
權限在Linux中的表現方式
目錄跟文件之間權限的區別
遮罩碼是什么?作用?
特殊權限suid,sgid,sticky
用戶是什么,在Linux中表現方式
Linux是多用戶和多進程的系統,而其中的用戶,顧名思義就是使用系統資源的賬戶,在Linux中將這個賬戶稱為用戶名(Username)。每個用戶名都有其唯一對應的ID號,其被稱為用戶的UID。
為了將部分特定資源,讓特定用戶使用,則出現了用戶組這一概念,也就是將資源分組,不同的用戶在不同的組內,享受不同的資源。它在Linux則稱為組名(GroupName)。每個組也有其對應的ID號,其被稱為用戶組(基本組)的GID。
Linux中UID分為以下幾類:
管理員:root uid=0
普通用戶:uid 1-65535
普通用戶又可以分為:系統用戶和登陸用戶兩種;
系統用戶:1-499(centos6),1-999(centos7) 為了分配一些后臺進程或服務類進程以非管理員的身份運行,且不能登陸系統。因而創建的普通用戶。
登陸用戶:500+(centos6),1000+(centos7) 通過交互式方式登陸的普通用戶。
Linux組
管理員組:root gid=0
普通組:1-65535
普通組又分為:系統組和非系統組,我們通常把非系統組就叫作普通組。
系統組:1-499(centos6),1-999(centos7)
非系統組:500+(centos6),1000+(centos7)
對于一個用戶而言可以有多個不同的組,稱其為用戶的基本組和附加組。
基本組:與用戶同名,且僅包含用戶自己。
附加組:除基本組以外,用戶所在的組,被稱為該用戶的附加組。
還有共有組及私有組之稱:
私有組:僅包含一個用戶的組,一般都是用戶的基本組。
共有組:包含多個用戶的組。
用戶信息如何找到,在哪找
對應目錄提供的具體信息
管理用戶在Linux中需要用戶名及其密碼,組名及其密碼。這些信息都保存在以下配置文件中:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
/etc/passwd文件中保存信息的格式:
account;password;UID;GID;GECOS;directory;shell
用戶名;可以是加密的密碼,也可以是占位符x;用戶UID;用戶主組的GID;注釋信息;用戶家目錄;默認使用shell
/etc/shadow文件中保存信息的格式:
login name;
encrypted password;
date of last password change;
minimum password age;
maximum password age;
password warning period;
password inactivity period;
account expiration date;
reserved field
登陸名;加密的密碼;最近一次密碼修改時間;最短密碼修改期限(天);最大密碼修改期限(天);警告期段;過期期限;用戶停止時間;保留字段
/etc/group文件中保存信息的格式:
group_name;password;GID;user_list
組名;加密組密碼,如果為空則無密碼;組ID號;組中的用戶列表(以此組為附加組的用戶列表)
/etc/gshadow文件中保存信息的格式:
group name;encrypted password;administrators;members
組名;組加密的密碼;組管理員;組成員
屬主與屬組
Linux一切皆文件,在Linux中每個文件都會有其對應屬主和屬組;也就是說這個文件的所屬者是誰,屬于哪個組。
~]# ls -l /etc/passwd
-rw-r–r–. 1 root root 2153 Nov 22 17:22 /etc/passwd
其中中左邊root是文件屬主,右邊root是文件屬組。
用戶管理命令
用戶管理命令:
創建用戶:
useradd [options] LOGIN
-u UID:指定用戶UID
-g GROUP:指定用戶基本組(該用戶組必須事先存在)
-G GROUP1[,GROUP2,…[,GROUPN]]]:指定用戶附加組(附加組必須事先存在)
-r:創建一個系統用戶
-c COMMENT:用戶注釋信息
-d HOME_DIR:指定用戶家目錄
-s SHELL:指定用戶默認SHELL
-k:家目錄所需框架;也就是將/etc/skel中隱藏文件全部復制到新建的家目錄中
-M:不創建家目錄;但/etc/passwd中顯示有,實際上沒有創建
刪除用戶:
userdel [options] LOGIN
-f:強制刪除
-r:刪除用戶的同時,刪除其家目錄
修改用戶信息:
usermod [options] LOGIN
-u UID:修改用戶UID
-g GROUP:修改用戶的基本組
-c:用戶注釋信息
-d HOME_DIR:用戶家目錄
-m:將用戶家目錄中所新建的文件移動到新的家目錄中
-s SHELL:用戶默認shell
-L:鎖定用戶
用戶組管理命令:
用戶組添加:
groupadd [options] group
-g GID:指定組的GID
-r:創建系統組
用戶組刪除:
groupdel [options] GROUP
用戶組修改:
groupmod [options] GROUP
-g GID:修改組的GID
查詢用戶及用戶組信息:
id [OPTION]… [USER]
-u:顯示指定用戶的UID
-g:顯示指定用戶的基本組GID
-G:顯示所有組(基本組和附加組)
-n:使用用戶ID查詢,顯示其名稱
用戶及用戶組密碼管理命令:
passwd命令:
passwd [option] [username]
-l:鎖定用戶
-u:不鎖定用戶(默認)
-e DATE:過期期限,日期;
-n, –minimum DAYS:最短使用期限
-x, –maximum DAYS:最長使用期限
-w, –warning DAYS:警告階段
-i, –inactive DAYS:活躍天數
–stdin:將管道的標準輸出作為密碼
-f:強制
gpasswd命令:
gpasswd [option] group
-a USERNAME:向組中添加用戶
-d USERNAME:從組中移除用戶
屬主和屬組命令管理:
chown命令:
chown [OPTION]… [OWNER][:[GROUP]] FILE…
-r:遞歸管理,對目錄使用
用戶切換命令管理:
su命令:
su [options…] [-] [user [args…]]
-l:讀取用戶配置信息重新初始化登陸
-c 'COMMAND':使用指定用戶執行此命令
注意:管理員可無密碼切換至其它任何用戶;
權限的出現及其作用
在此之前需要思考一個問題,那么Linux中僅僅只是用戶跟組就足夠管理各種資源分配么?很明顯是不能的,那么在Linux中引入了權限這個用于細化資源分配的東西。
權限在Linux中的表現方式
那么權限在Linux中是如何表現的呢?
~]# ls -l /etc/passwd
-rw-r–r–. 1 root root 2153 Nov 22 17:22 /etc/passwd
從第二字符到第十個字符
可以看出rw-r–r–這些就是Linux中的權限表示,
r:readable,表示可讀
w:writable,表示可寫
x:excutable,表示執行
-:表示沒有此權限
左rw-:表示文件所有者user的權限
中r–:表示文件所屬組group的權限
右r–:表示其他者other的權限
權限的數字表示法:
0:表示沒有
1:表示有
mode 二進制 八進制
— 000 0
–x 001 1
-w- 010 2
-wx 011 3
r– 100 4
r-x 101 5
rw- 110 6
rwx 111 7
修改文件權限命令:
chmod命令
chmod [OPTION]… MODE[,MODE]… FILE…
-R:遞歸處理
用戶簡寫表示: u:屬主 g:屬組 o:其它 a: 所有
MODE:
賦權表示:
u=###
g=###
o=###
a=###
授權表示法:直接操作一類用戶的一個權限位r,w,x;
a+,a-
o+,o-
g+,g-
u+,u-
數字授權法:
777
###
注意:用戶僅能修改屬主為自己的那些文件的權限;
目錄跟文件之間權限的區別
Linux的權限指的是對文件和目錄的權限
文件:
r:可讀取文件內容
w:可修改文件內容
x:可執行文件
目錄:
r:可以查看目錄下一級子文件的名稱,可以使用ls /Dir
w:可以修改目錄中的子目錄(如刪除,移動,復制,重命名等),但不能修改文件內容
x:可以進入目錄,可以查看文件更詳細的元數據(也就是可以使用ls -l命令)
遮罩碼是什么?作用?
每次創建文件時,系統默認會分配給創建的文件權限,那么系統根據的是什么呢?
它就是遮罩碼,在Linux中是umask。
那么權限對象只有文件和目錄:
創建一個新文件的默認權限:
666-umask
注意:如果某類的權限減去的結果有x權限,則在其權限上+1
創建一個新目錄的默認權限:
777-umask
umask命令:
umask 查看遮罩碼
umask #:設置遮罩碼
特殊權限suid,sgid,stick
Linux中有三個特殊權限suid,sgid,sticky
在Linux對文件的訪問權限是如何判別的呢?
首先得有一個對文件的訪問權限應用模型:
首先查看訪問文件的用戶是否跟文件的所有者一致,一致則使用屬主權限
不一致則查看是否屬于文件所有組,一致則使用屬組權限,
不一致則使用其它人權限。
那么用戶使用一個命令時,那么這個命令去訪問其他文件時權限是怎么判斷呢?
首先我們知道命令也只是一個文件,它運行成為一個進程。也就是進程所使用的權限是該如何判別。進程訪問文件,它的權限是跟誰有關呢?其實就是運行該用戶的權限。
SUID
好,現在可以說說SUID了
文件有了它這個權限,運行一個程序時,運行中的進程所使用的權限為其程序自身的權限,而不是運行該程序用戶的權限。
SGID
一個場景,不同用戶在同一目錄中各自創建文件,那么各個文件直接所屬者跟所屬組都是創建人自身,那么這樣的話這些文件都只有其創建人才能去修改,訪問?,F在我想要在這個目錄中所有人創建的文件是共享的。
為了解決這個問題,出現了SGID這個特殊權限。給目錄添加SGID權限,該目錄下所有創建的文件的屬組默認都是該目錄的屬組。
Sticky
這個特殊權限也叫粘滯位。還是上述場景為例,我在一個共享目錄中,我不小心刪除了其他人的文件,那該如何,我想的是只有自己才能刪除自己的文件,其它人沒有此權限。
所以Sticky權限的作用就是有該權限的目錄下的文件,所有文件只有創建者才能刪除,其他人無刪除權限。
那么這三個特殊權限該如何實現呢?
SUID
chmod u+s FILE…
chmod u-s FILE…
表現為在屬組的左三個權限位(user):
rws或rwS
當文件自身有x權限時,SUID為s
當文件自身無x權限時,SUID為S
SGID
chmod g+s FILE…
chmod g-s FILE…
表現為在屬組的中三個權限位(group):
rws或rwS
當文件自身有x權限時,SUID為s
當文件自身無x權限時,SUID為S
Stiky
chmod o+t FILE…
chmod o-t FILE…
表現為在屬組的右三個權限位(other):
rwt或rwT
當文件自身有x權限時,SUID為t
當文件自身無x權限時,SUID為T
同樣的三個特殊權限也占用一個權限位:
suid sgid stiky 000 001 010 011 100 101 110 111
0 1 2 3 4 5 6 7
也可以使用權限為來賦予特殊權限
chmod 4755 /path/to/somewhere
原創文章,作者:N25_sadan,如若轉載,請注明出處:http://www.www58058.com/62532
總結的很好,下次要加一例子說明就更棒了