1.描述計算機的組成及其功能。
組成:CPU (運算器+控制器),存諸器(內存與硬盤),輸入設備,輸出設備。
運算器:對數據進行加工處理的部件(包括算述運算與邏輯運算)。
控制器:負責從存儲器取出指令,按指令的要求發出控制信號,使各部件協調的,一步步的完成各種操作。
存儲器:計算機記憶或暫存數據的部件
輸入設備:人機接口,負責輸入信息(數據與指令)轉成計算機能識別二進代碼,送入存儲器保存。
輸出設備:輸出計算機處理的結果并轉換成便于人們識別的形式。
2.按系列羅列Linux的發行版,并描述不同發行版之間的聯系和區別。
linux的發行版大體分為2類:商業版(Enterprise)和社區版(Community);商業版如Redhat、Solaris等,社區版如FreeBSD、Debian、CentOS等;
Linux大體可以分為4大家族:
(1)Redhat系列包括RHEL、Fedora、CentOS,使用Yum方式管理軟件包,使用人群較大,較為流行;RHEL有一套完善的認證體系;
CentOS是其社區克隆版本,二者穩定性非常好,適合服務器使用;Fedora的穩定性較差;
(2)Debian系列包括Debian和Ubuntu等,使用apt-get/dpkg 包管理方式;
據我所接觸到的很多游戲公司以及一些國外的軟件開發公司偏好使用。
ubuntu是基于debian發行版,是一個以桌面應用為主的linux操作系統,在桌面化linux操作系統上較為流行,目前ubuntu有一套完整的ubuntu生態體系(手機、平板、PC端、服務器端、云端);
Linux Minit也是基于Debian的一個發行版;
(3)SUSE系列包括SLES,openSUSE等,是Noverll公司產品;SLES是企業版,openSUSE是社區版;
SUSE采用Yast包管理方式,是基于RPM為基礎的;
(4)其它發行版本如Gentoo、Arch等,Gentoo、Arch定制性很強,上手比較困難;
3.描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述。
linux的哲學思想:
(1)一切皆文件;
linux系統上所有的東西都是以文件形式出現的;如磁盤設備、驅動、進程、管道等都被抽象成了文件;
(2)能簡寫,絕不全寫;
linux上很多命令基本上選項參數都帶有簡寫模式,設置一些"命令+參數"都被定義別名,使用一個命令來表示;
(3)盡量避免捕獲用戶接口;
(4)作用范圍越小的越是最終生效的;
在linux上很多服務配置文件中都分為全局配置和局部配置,如果有重復的參數配置時,通常都是以局部配置的參數配置為準,作用域小的最終生效;
(5)組合小命令完成復雜任務;
linux上的命令通過一些參數的配合具有很強大的能力,通過合適的命令組合通常都能夠完成非常復雜的任務;
如查看當前系統上tcp的連接情況:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
使用netstat和awk命令的組合就能快速地統計到結果;
4.描述Linux系統命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、histroy、shutdown、poweroff、reboot、hwclock、data命令的使用,并配合相應的示例來闡述。
(1)ifconfig命令
#ifconfig -a:列出所有接口的詳細信息;
[root@director1 ~]# ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.3 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::20c:29ff:fe59:396f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:59:39:6f txqueuelen 1000 (Ethernet)
RX packets 444 bytes 41402 (40.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 372 bytes 53149 (51.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.0.1 netmask 255.255.255.0 broadcast 172.16.0.255
inet6 fe80::20c:29ff:fe59:3979 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:59:39:79 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12 bytes 888 (888.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
#ifconfig <interface>:查看指定接口的網絡信息;
[root@director1 ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.3 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::20c:29ff:fe59:396f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:59:39:6f txqueuelen 1000 (Ethernet)
RX packets 482 bytes 44862 (43.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 404 bytes 59267 (57.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
#ifconfig <interface> <address>[/<prefixlen>]|[netmask] [broadcast]:添加子網卡并配置臨時地址;
[root@director1 ~]# ifconfig eth1:0 172.16.0.100/24
[root@director1 ~]# ifconfig eth1:0
eth1:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.0.100 netmask 255.255.255.0 broadcast 172.16.0.255
ether 00:0c:29:59:39:79 txqueuelen 1000 (Ethernet)
#ifconfig <interface> up|down:臨時啟用或關閉網卡;
[root@director1 ~]# ifconfig eth1 down
[root@director1 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.3 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::20c:29ff:fe59:396f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:59:39:6f txqueuelen 1000 (Ethernet)
RX packets 1150 bytes 106278 (103.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 913 bytes 129375 (126.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
#ifconfig <address> mtu <NUM>:設置網卡的最大傳輸單元,默認是1500;
[root@director1 ~]# ifconfig eth0 mtu 1460
[root@director1 ~]# ifconfig eth0|grep mtu
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
(2)echo命令
用法:echo [參數] [字符串]
參數:
-n:輸出不換行;
-E:不啟用反斜杠轉義功能,默認;
-e:啟用反斜杠轉義功能;
\\:插入'\'字符;
\a:發出警告聲;
\b:刪除前一個字符;
\c:最后不加入換行符號;
\v|\f:換行但光標仍舊停留在原來位置;
\n:換行且光標移至行首;
\r:光標移至行首,但不換行;
\t:插入tab符;
示例:
[root@director1 ~]# echo 'hello \n world'
hello \n world
[root@director1 ~]# echo -e 'hello \nworld'
hello
world
特殊用法:
輸出顏色文本
[root@director1 ~]# echo -e "\033[44;31;1m HELLO \033[0m world"
\033[44;31;1m HELLO:設置背景為藍色,前景為紅色,加粗的HELLO;
\033[0m:重新設置屏幕到默認設置;
(3)tty命令
打印連接到標準輸出的終端文件名稱
用法: tty [參數]
參數:
-s,–slient,–quiet:不顯示輸出,指返回退出狀態碼;
–help:顯示幫助信息;
–version:顯示tty版本;
示例:
[root@director1 ~]# tty
/dev/pts/0
[root@director1 ~]# tty -s
[root@director1 ~]# echo $?
0
[root@director1 ~]# tty –version
tty (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by David MacKenzie.
(4)startx命令
啟動X Windows服務;
用法: startx [ [ client ] options … ] [ — [ server ] [ display ] options … ]
(5) export命令
用法:export [-fn] [名稱[=值] …] 或 export -p
-f:指定shell函數
-n:刪除每個NAME名稱的導出屬性
-p:顯示所有導出的變量和函數的列表
(6) pwd命令
顯示出當前/活動目錄的名稱
示例:
[root@kvm apache2]# pwd
/usr/local/apache2
(7) history命令
顯示當前終端輸入過的歷史命令信息;
用法:history [參數]
參數:
-c:清空歷史命令;
-d offset:刪除offset位置的歷史條目;
NUM:讀取最新的NUM個歷史命令;
-r:讀取歷史文件的內容,使用它們作為當前歷史;
-w:將當前歷史列表寫入到歷史文件,覆蓋原有內容;
示例:
[root@kvm apache2]# history 4
1017 man history
1018 history -3
1019 history
1020 history 4
[root@kvm apache2]# history -c
[root@kvm apache2]# history
22 history
(8) shutdown命令:
用于關閉系統,可以指定立即或一段時間之后關閉系統;
用法:shutdown [-t sec] [-arkhncfF] time [warning-message]
參數:
-a:使用 /etc/shutdown.allow 來驗證身份;
-t sec:通知 init在轉換到其它運行級別前,發送警告 (warning) 信號后延時 (sec) 秒數后再發送關閉 (kill) 信號;
-k:并非關機,只是向所有人顯示警告信息;
-r:重啟;
-h:停機;
-f:重啟時跳過磁盤檢測;
-F:重啟時強制磁盤檢測;
-c:取消運行中的shutdown進程;
time:指定關機時間
warning-message:指定發送所有用戶的告警信息;
示例:
[root@kvm apache2]# shutdown -h +5 "shutdown after 5 minutes "
Shutdown scheduled for 二 2016-08-09 14:12:39 CST, use 'shutdown -c' to cancel.
[root@kvm apache2]#
Broadcast message from root@kvm (Tue 2016-08-09 14:07:39 CST):
shutdown after 5 minutes
The system is going down for power-off at Tue 2016-08-09 14:12:39 CST!
shutdown -c
Broadcast message from root@kvm (Tue 2016-08-09 14:07:43 CST):
The system shutdown has been cancelled at Tue 2016-08-09 14:08:43 CST!
(9) poweroff命令
用來關閉系統并切斷電源;
用法:poweroff [參數]
可不加參數;
參數:
-n:關閉操作系統時不執行sync操作;
-w:不真正關閉操作系統,僅在日志文件“/var/log/wtmp”中;
-d:關閉操作系統時,不將操作寫入日志文件“/var/log/wtmp”中添加相應的記錄;
-f:強制關閉操作系統;
-i:關閉操作系統之前關閉所有的網絡接口;
-h:關閉操作系統之前將系統中所有的硬件設置為備用模式。
(10) reboot命令
用來重啟系統;
用法:reboot [參數]
可不加參數;
參數:
-d:重新啟動時不把數據寫入記錄文件/var/tmp/wtmp;
-f:強制重新開機,不調用shutdown指令的功能;
-n:保存數據后再重新啟動系統;
-w:僅做測試,并不真的將系統重新開機,只會把重開機的數據寫入/var/log目錄下的wtmp記錄文件;
-h:在系統關機或poweroff之前,將所有的硬盤處于待機模式;
-i:關閉網絡設置之后再重新啟動系統;
(11) hwclock命令
可以顯示當前時間、設置硬件時鐘的時間和設置硬件時鐘為系統時間,也可設置系統時間為硬件時鐘的時間;
用法: hwclock [參數]
功能:
-r:讀取硬件時鐘并打印結果;
-s,–hctosys:從硬件時鐘設置系統時間;
-w,–systohc:從當前系統時間設置硬件時鐘;
-c:定期將系統時鐘與CMOS時鐘相比較;
-v:顯示版本信息
(12) date命令
顯示或設置日期時間;
用法:
date [OPTION]… [+FORMAT]
date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]
常用參數:
-u:顯示目前的格林威治時間
%H:小時(00..23)
%M:分鐘(00..59)
%S:秒(00..60)
%T:相當于%H:%M:%S
%Y:年份,如2016
%m:月份(01..12)
%d:天,如01,11;
%F:相當于%Y-%m-%d
%D:直接顯示日期(mm/dd/yy)
%a|%A:顯示星期
示例:
[root@kvm apache2]# date +"%F %T"
2016-08-09 14:32:57
5.如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。
獲取命令幫助信息的方法:
(1)COMMAND -h
(2)COMMAND –help
(3)help COMMAND
(4)man COMMAND
(5)info COMMAND
man文檔章節分類:
1:普通的命令;
2:系統調用;
3:庫函數;
4:特殊文件,如/dev目錄下各種文件;
5:文件格式;
6:游戲相關;
7:其它內容相關;
8:系統管理命令相關;
9:內核例程相關;
6.請羅列Linux發行版的基礎目錄命名法則及功用規定
[root@director1 ~]# tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
/:根目錄,文件系統入口;
/bin:存放一般用戶都可使用的二進制可執行命令;
/boot:存放Linux內核及系統引導程序所需的文件;
/dev:存放特殊設備文件;
/etc:系統管理和配置文件;
/home:普通用戶的家目錄;
/lib:標準程序設計庫或動態鏈接共享庫,根文件系統上的程序所需的共享庫;
/media:空目錄,可用于用戶臨時掛在其它文件系統;
/mnt:空目錄;
/opt:給主機安裝額外軟件預留的目錄;
/proc:虛擬目錄,是系統內存的映射;
/root:root用戶的家目錄;
/sbin:超級管理命令,通常存放的是系統管理員使用的命令;
/srv:服務啟動之后需要訪問的數據目錄;
/sys:偽文件系統,是系統內核的映射;
/tmp:臨時目錄;
/usr:應用程序存放的目錄;
/var:某些大文件的溢出區,如日志
原創文章,作者:N22-昆山-Dexter_Wang,如若轉載,請注明出處:http://www.www58058.com/36523