1.描述計算機的組成及其功能
CPU,輸入,輸出,內存(memory),存儲器(外存,磁盤)
這種結構稱為: 馮諾依曼 機
2.按系列羅列Linux 的發行版,并描述不通發行版之間的聯系和區別.
操作系統發展史:
day01#lesson03
day01#lesson04
什么是Linux發行版(Linux distribution)?
GNU組織發布的都是源代碼,想使用就需要將源碼編譯成二進制.但是過程復雜.
所以有不同維護者或組織,來進行編譯成二進制.這就是發行版.所以發行版種類很多.
Linux 發行版 = Linux 內核(Kernel) + 眾多軟件工具(Application).
三大分支:debian,Slackware,RedHat
Debian:
-
Ubuntu
-
Knopix
Slackware:
-
S.u.S.E
-
OpenSUSE
RedHat:
RedHat 9.以后分為RedHat Enterprise Linux:RHEL 和Fedora Core
-
RedHat Enterprise Linux:RHEL
-
Centos:Community Enterprise OS : 可以看做是RedHat的山寨版.
-
Fedora Core:每6個月發行一個版本.
linux發展史:https://zh.wikipedia.org/wiki/Linux歷史#.E5.A4.A7.E4.BA.8B.E5.B9.B4.E8.A1.A8
linux發行版分支時間線:
https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg?uselang=zh-cn
下載:https://commons.wikimedia.org/wiki/File:Linux_Distribution_Timeline.svg?uselang=zh-cn
Linux內核:https://www.kernel.org/
3.描述Linux的哲學思想,并按照自己的理解對其進行解釋
1.一切皆文件 把幾乎所有資源都抽象為文件形式,包括硬件設備,設置通信接口. open().read(),write(),close(),delete(),create()
2.由眾多功能單一的程序組成,一個程序只做一件事.并且做好.
3.盡量避免和用戶交互 易于以編程的方式實現自動化任務.
4.使用文本文件保存配置信息 文本是最容易實現的底層接口,可以用簡單的編輯器就可以操作.
文件是什么?眾多的文件如何有效的組織起來?
目錄:路徑映射.
文件:存儲空間存儲的一段流式數據,對數據可以做到按名存取.
文件系統: 層級結構,有索引.
/: 原始初起點.
倒置樹狀結構;
如:/dev/pts/2
最左側/:表示根路徑
其他的/:表示路徑分隔符
Linux路徑分隔符是/
windows是
文件路徑表示:
絕對路徑:從根表示的路徑
相對路徑:從當前位置表示的路徑
文件名使用法則:
嚴格區分字符大小寫:file1,File1 ,FILE1 是不同的.
目錄也是文件,同一路徑下,文件不能同名
支持/以外的任意字符.
最長不超過255字符.
用戶有家目錄:
用戶的起始目錄,普通用戶管理文件的位置.
工作目錄:
basename : 最右側的文件名或目錄名
dirname:basename左側的路徑
命令:
~]# basename 文件路徑或目錄路徑/PATH/TO/SOMEFILE
SOMEFILE
~]# dirname 文件路徑或目錄路徑/PATH/TO/SOMEFILE
/PATH/TO
4.說明Linux系統命令的使用格式,詳細介紹ifconfig,echo,tty,startx,export.pwd,history,shutdown,poweroff,reboot,hwclock,date命令的使用,并配合相應的示例闡述.
day02#lesson03
[root@nodel ~]# COMMAND
prompt:
root:當前登錄的用戶
nodel:當前主機的主機名.非完整格式
~ :用戶當前所在的目錄,也成為工作目錄
#:命令提示符
#:管理員賬號,為root,最高權限,能執行所有操作
$:普通用戶.非root用戶.不具有管理權限,不能執行系統
Linux命令的語法通用格式:
# COMMAND OPTIONS ARGUMENTS
COMMAND :
發起命令:請求內核將某一個二進制程序運行為一個進程.
程序–>進程
靜態–>動態(有生命周期)
命令本身是一個可執行的程序文件:二進制的格式的文件,有可能會調用共享庫文件:
多數系統程序文件都存放在:
/bin, /sbin, /usr/bin, /usr/sbin , /usr/local/bin , /usr/local/sbin
普通命令:/bin, /usr/bin, /usr/local/sbin
管理命令:/sbin , /usr/sbin , /usr/local/sbin
共享庫: /lib , /lib64 , /usr/lib , /usr/lib64 , /usr/local/lib , /usr/local/lib64
32bits的庫: /lib , /usr/lib , /usr/local/lib
64bits的庫: /lib64 , /usr/lib64 , /usr/local/lib64
注意:并非所有的命令都有一個在某目錄下對應的的可執行文件
命令必須遵循特定格式規范:windows(exe,msi) , linux(ELF)
查看文件類型:
~]#file 文件路徑
命令分為兩類:
由shell程序的自帶的命令:內置命令(builtin)
獨立的可執行程序文件,文件名即命令名:外部命令
shell程序是獨立的程序,負責解析用戶提供的命令:
環境變量:
PATH:從哪些路徑中查找用戶鍵入的命令字符串對應的命令文件:(查找順序,從左往右)
~]# echo $PATH
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
查看命令類型:
type COMMAND
OPTIONS:
指定命令的運行特性;
選項有兩種表現形式:
長選項: –word ,如:–help , –human -readable
長選項 不能合并
短選型:-C 如:-l , -d
有些命令選項沒有-
如果多個短類型選項可以進行合并,-l -d –> -ld
ARGUENTS:
命令作用的對象,就是命令對什么有效.
不同的命令參數:有些命令可以同時帶多個參數,多個參數之間已空白字符分隔
如:
~]# ls -ld /var /etc
常用命令:
ifconfig,echo,tty,startx,export.pwd,history,shutdown,poweroff,reboot,hwclock,date
ifconfig:
查看IP地址:
ifconfig或ip addr show
echo:
echo 回顯
echo [SHORT-OPTION]… [STRING]…
echo LONG-OPTION
-n do not output the trailing newline 不加換行符
-e enable interpretation of backslash escapes 讓轉義生效
\n:換行
\t :tab鍵,制表符
STRING可以使用引號,
單引號:強引用.變量不執行替換
雙引號:弱引用 , 變量會被替換
注意:變量正規引用使用${name}
tty:
查看當前設備終端
[root@localhost ~]# tty
/dev/pts/0
startx:
啟動桌面程序.
centos7 最小化安裝的話,沒有桌面應用.可以參考如下方式安裝,
http://unix.stackexchange.com/questions/181503/how-to-install-desktop-environments-on-centos-7
使用xshell遠程ssh連接可能啟動不了桌面.
export:
將shell變量輸出為環境變量,或者將shell函數輸出為環境變量。
pwd:
printing working directory
顯示工作目錄
history:
命令歷史:shell進程會其會話中保存此前用戶提交執行過的命令;
~]# history
定制history的功能,可通過環境變量實現:
HISTSIZE:shell進程可保留的命令歷史的條數;
HISTFILE:持久保存命令歷史的文件;
.bash_history
HISTFILESIZE:命令歷史文件的大小;
eg:
[root@localhost ~]# echo $HISTSIZE 1000 [root@localhost ~]# echo $HISTFILE /root/.bash_history [root@localhost ~]# echo $HISTFILESIZE 1000
命令用法:
history [-c] [-d 偏移量] [n]
或 history -anrw [文件名]
或 history -ps 參數 [參數…]
-c: 清空命令歷史;
-d offset:刪除指定命令歷史, 如 history -d 10 2 刪除第10條歷史
-r: 從文件讀取命令歷史至歷史列表中;
-w:把歷史列表中的命令追加至歷史文件中;
history n:顯示最近的n條命令;
調用命令歷史列表中的命令:
!#:再一次執行歷史列表中的第#條命令;
!!:再一次執行上一條命令;
!STRING:再一次執行命令歷史列表中最近一個以STRING開頭的命令;
注意:命令的重復執行有時候需要依賴于冪等性;
調用上一條命令的最后一個參數:
快捷鍵:ESC, .
字符串:!$
控制命令歷史記錄的方式:
環境變量:HISTCONTROL
ignoredups:忽略重復的命令;
ignorespace:忽略以空白字符開頭的命令;
ignoreboth:以上兩者同時生效;
修改變量的值:
NAME='VALUE'
shutdown:
關機或重啟命令;
shutdown [OPTIONS…] [TIME] [WALL…]
OPTIONS:
-h : halt
-r:重啟
-c:取消
TIME:
now
hh:mm : 指定時間
+m: 幾分鐘后
WALL:發送廣播
poweroff:
關機命令:
Centos 7:
~]# systemctl poweroff
~]# systemctl reboot
*:
~]# poweroff
~]# reboot
~]# halt
reboot:
重啟;
hwclock:
hwclock – query or set the hardware clock (RTC)
查詢或設置硬件時鐘
hwclock [function] [option…]
option:
-s : –hctosys : 已硬件為準,把系統調整為與預硬件時間相同
-w : –systohc : 已系統為準,把硬件調整為與系統時間相同
-
1[root@localhost ~]# date
-
2Mon Sep 19 16:38:51 EDT 2016
-
3[root@localhost ~]# hwclock
-
4Mon 19 Sep 2016 01:39:12 PM EDT –0.532864 seconds
-
5[root@localhost ~]# hwclock -s
-
6[root@localhost ~]# date
-
7Mon Sep 19 13:39:46 EDT 2016
date:
顯示日期時間:
date [OPTION]… [+FORMAT]
FORMAT:格式符
%F full date; same as %Y-%m-%d
%T time; same as %H:%M:%S
%Y year
%m month (01..12)
%d day of month (e.g., 01)
%H hour (00..23)
%I hour (01..12)
%M minute (00..59)
%S second (00..60)
%s seconds since 1970-01-01 00:00:00 UTC //時間戳
-
1[root@localhost ~]# date
-
2Mon Sep 19 13:02:31 EDT 2016
-
3[root@localhost ~]# date +%F
-
42016–09–19
-
5[root@localhost ~]# date +%T
-
613:09:08
-
7[root@localhost ~]# date +'%Y-%m-%d %H:%M:%S'
-
82016–09–19 13:11:01
-
9[root@localhost ~]# date +%s
-
101474305077
設定日期時間:
date [MMDDhhmm[[CC]YY][.ss]] //月日小時分鐘年份(2位或4位).秒鐘
-
1[root@localhost ~]# date 101008082013.08
-
2Thu Oct 10 08:08:08 EDT 2013
-
3[root@localhost ~]# date 0919161916.08
-
4Mon Sep 19 16:19:08 EDT 2016
5.如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的,
day02#lesson03
獲取命令的幫助:
內部命令:
help COMMAND
外部命令:
1.命令自帶簡要格式的使用幫助
~]# COMMAND –help
2.使用手冊
位置: /usr/share/man
-
1[root@localhost ~]# ls /usr/share/man
-
2cs es id ko man1p man2x man3x man5 man6x man8 man9x pt sk zh_CN
-
3da fr it man0p man1x man3 man4 man5x man7 man8x mann pt_BR sv zh_TW
-
4de hu ja man1 man2 man3p man4x man6 man7x man9 pl ru tr
~]# man COMMAND
man 幫助文檔結構:
SECTION: NAME:功能性說明
SYNOPSIS:語法格式
DESCRIPTION:描述
OPTIONS:選項
EXAMPLES:示例
AUTHOR:作者
BUGS:報告陳谷BUG的方式
SEE ALSO:參考
…等等
SYNOPSIS:語法格式
[] : 可選內容
<>:必須
a|b|c : 多選一
… :同類內容可以出現多個.
使用手冊:壓縮格式的文件,有章節之分
1.用戶命令
2.系統調用
3.C庫調用
4.設備文件和特殊文件
5.文件格式(配置文件格式)
6.游戲使用幫助
7.雜項
8.管理工具和守護進程
~]# man CHAPTER COMMAND 查找指定章節下手冊
并非每個COMMAND在所有章節下都有手冊
查看:
~]# whatis COMMAND
[root@localhost ~]# whatis passwd
sslpasswd (1ssl) – compute password hashes
passwd (1) – update user's authentication tokens
注意:其執行過程是查詢數據庫進行的.
手動更新數據庫:
~]# make whatis
man命令打開手冊的操作方法:
翻屏:
空格行:向文件尾翻一屏
b:向文件首部翻一屏
Ctrl+D:向文件尾翻半屏
Ctrl+u:向文件首翻半屏
回車:向文件尾翻一行
k:向文件首部翻一行
G:跳轉到最后一行
#G:跳轉到指定行
1G:跳轉至文件首部
查找:
/keyword:從首部向尾部查找,不區分大小寫
?keyword:從尾部向首部查找
n:與查找命令方向相同
N:與查找命令方向相反
退出:
q:退出
man命令的選項:
-M /PATH/TO/SOMEDIR 到指定目錄下查找命令手冊并打開
3.info COMMAND
獲取命令的在線文檔
4.應用自帶的幫助文檔
/usr/share/doc/APP-VERSION
5.主流發行版的官方文檔
如:
6.程序的官方文檔
7.搜索引擎
google
關鍵字 filetype:pdf //查找pdf
關鍵字 site:域名 //查找某個域名下面的資料
推薦書籍:google hacking技術手冊:
http://down.51cto.com/data/1867431
http://www.hicode.cn/download/view-software-19272.html
6.請羅列Linux發行版的基礎目錄名稱命名法及功用規定
FHS:
Filesystem Hierarchy Standard : 文件系統層級標準
-
1[root@localhost ~]# ls /
-
2bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
-
3
/bin:所有用戶可用的基本命令程序文件;
/sbin:供系統管理使用的工具程序;
/boot:引導加載器必須用到的各靜態文件:kernel, initramfs(initrd), grub等;
/dev:存儲特殊文件或設備文件;
-
設備有兩種類型:字符設備(線性設備)、塊設備(隨機設備);
/etc:系統程序的配置文件,只能為靜態;
/home:普通的家目錄的集中位置;一般每個普通用戶的家目錄默認為此目錄下與用戶名同名的子目錄,/home/USERNAME;
/root:管理員的家目錄;可選;
/lib:為系統啟動或根文件系統上的應用程序(/bin, /sbin等)提供共享庫,以及為內核提供內核模塊
-
libc.so.*:動態鏈接的C庫;
-
ld*:運行時鏈接器/加載器;
-
modules:用于存儲內核模塊的目錄;
/lib64:64位系統特有的存放64位共享庫的路徑;64位特有
/media:便攜式設備掛載點,U盤,cdrom, floppy等;
/mnt:其它文件系統的臨時掛載點;
/opt:附加應用程序的安裝位置;可選路徑;第三方
/srv:當前主機為服務提供的數據;
/tmp:為那些會產生臨時文件的程序提供的用于存儲臨時文件的目錄;可供所用戶執行寫入操作;有特殊權限;
/usr:usr Hierarchy,全局共享的只讀數據路徑;
子目錄:
-
bin, sbin
-
lib, lib64
-
include:C程序頭文件;
-
share:命令手冊頁和自帶文檔等架構特有的文件的存儲位置
-
local:另一個層級目錄;
-
X11R6:X-Window程序的安裝位置
-
src:程序源碼文件的存儲位置
/usr/local:Local hierarchy,讓系統管理員安裝本地應用程序;也通常用于安裝第三方程序;
/var:/var Hierarchy,存儲常發生變化的數據的目錄;
子目錄:
-
cache: Application cache data
-
lib: Variable state information
-
local: Variable data for /usr/local
-
lock: Lock files
-
log: Log files and directories
-
opt: Variable data for /opt
-
run: Data relevant to running processes 運行中進程相關數據
-
spool: Application spool data
-
tmp: Temporary files preserved between system reboots
/proc:基于內存的虛擬文件系統,用于為內核及進程存儲其相關信息;它們多為內核參數,例如net.ipv4.ip_forward, 虛擬為net/ipv4/ip_forward, 存儲于/proc/sys/, 因此其完整路徑為/proc/sys/net/ipv4/ip_forward;
/sys:sysfs虛擬文件系統提供了一種比proc更為理想的訪問內核數據的途徑;其主要作用在于為管理Linux設備提供一種統一模型的的接口;
/sys參考:
https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/
FHS參考:
http://www.pathname.com/fhs/
http://www.pathname.com/fhs/pub/fhs-2.3.html
原創文章,作者:luoluo,如若轉載,請注明出處:http://www.www58058.com/48078
看的出來很用心,寫的很好,多注意一下排版的問題