第一週配套作業

第一週配套作業

第1題 描述計算機的組成及其功能
計算機組成CPU(控制器+運算器)、I/O總線、存儲器(內存+硬盤)、輸入輸出系統組成。
1.控制器(Control):對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。
2.運算器(Datapath):對數據進行各種算術運算和邏輯運算,即對數據進行加工處理。
3.I/O總線:各種功能部件之間傳送信息的公共通信幹線,它是由導線組成的傳輸線束。
4.存儲器(Memory):存儲程序、數據和各種信號、命令等信息,並在需要時提供這些信息。
5. 輸入(Input system):輸入設備是計算機的重要組成部分,輸入設備與輸出設備合稱爲外部設備,簡稱外設,輸入設備的作用是將程序、原始數據、文字、字符、控制命令或現場採集的數據等信息輸入到計算機。常見的輸入設備有鍵盤、鼠標器、光電輸入機、磁帶機、磁盤機、光盤機等。
6. 輸出(Output system):輸出設備與輸入設備同樣是計算機的重要組成部分,它把外算機的中間結果或最後結果、機內的各種數據符號及文字或各種控制信號等信息輸出出來。微機常用的輸出設備有顯示終端CRT、打印機、激光印字機、繪圖儀及磁帶、光盤機等。

第2題 按系列羅列Linux的發行版,並描述不同發行版之間的聯繫與區別。
目前Linux的主流發行版主要分爲以下三類:
1.Slackware
2.Debian
3.RedHat
三者都是基於Linux內核由不同的發行商發行版本。
Slackware由商業公司進行維護的發行版,設計哲學——KISS,儘量保持系統的簡潔,保持着文本界面的系統安裝程序,保持着文本界面的系統設置工具,一定程度上犧牲了易用性。Slackware知名的二次發行版是SUSE Linux,SUSE在歐洲擁有大量用戶。

Debian是三大主流Linux發行版中以社區組織維護的發行版,是迄今爲止最遵循GNU規範的Linux系統,Debian最具特色的是apt-get /dpkg包管理方式,在Debian的實際發展包含三個主要分支(如把 “experimental”算在內的話是四個分支):”unstable” (或者稱之爲 “sid”), “testing” 和 “stable”。Debian知名的二次發行版是Ubuntu,Ubuntu是基於Debian的unstable版本加強而來,Ubuntu的安裝及使用非常的人性化,採用自行加強的內核(kernel),安全性方面更高。Ubuntu的版本週期爲六個月,彌補了Debian更新緩慢的不足。

RedHat是由紅帽公司進行維護的發行版,RedHat應用範圍廣,具有典型性和代表性的Linux。RedHat系列,包括RHEL(Redhat Enterprise Linux,也就是所謂的Redhat Advance Server,收費版本)、Fedora Core(由原來的Redhat桌面版本發展而來,免費版本)、CentOS(RHEL的社區克隆版本,免費)。RHEL主要面向企業級應用,穩定性非常好,適合於服務器使用,提供有償服務和技術支持。但是更新較慢,每18個月發行一個新版本。CentOS是通過RHEL源碼進行重新編譯而成。CentOS 可以得到 RHEL 的所有功能,甚至是更好的軟件。但 CentOS兼容rhel的格式, 並不向用戶提供商業支持,也不負上任何商業責任。安全漏洞的修正和軟件包的升級對應RHEL,有數日數星期數個月的延遲情況。Fedora Core主要面向桌面應用,定位爲新技術的實驗場地,許多新的技術都會在 FC 中檢驗,如果穩定的話紅帽公司則會考慮加入RHEL中。版本更新週期也非常短,僅6個月。由於版本更新頻繁,性能和穩定性得不到保證,因此,一般在服務器上不推薦採用Fedora Core。

第3題 描述Linux的哲學思想,並按照自己的理解對其進行解釋性描述。
Linux的哲學思想:
1.一切皆文件
(將計算機資源通過文件形式進行組織管理)
2.由衆多單一目的小程序組成
(系統設計以簡潔爲出發點,應用程序設計爲功能單一的小程序,保證程序運行效率,對於複雜任務通過小程序組成完成)
3.儘量避免跟用戶交互
(以功能單一的小程序爲基礎,用戶可以根據自己的需求,通過編寫腳本程序調用其他的小程序,自動完成自己需要的操作作業)
4.使用純文本文件保存配置信息
(用戶可以通過任意一款文本編程器對操作系統、應用程序的配置文件進行修改,快速的完成系統及軟件配置工作)

第4題 說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,並配合相應的示例來闡述。
Linux系統上的命名格式
#COMMAND [OPTIONS...] [ARGUMENTS...]
OPTIONS:命令選項,用於啓用或關閉命令的某個或某些功能
ARGUMENTS:命令參數,爲命令的作用對象

【ifconfig】
1.命令格式:ifconfig [網絡設備] [參數]

2.命令功能:ifconfig 命令用來查看和配置網絡設備。當網絡環境發生改變時可通過此命令對網絡進行相應的配置。

3.命令參數:
    up 啓動指定網絡設備/網卡。
    down 關閉指定網絡設備/網卡。該參數可以有效地阻止通過指定接口的IP信息流,如果想永久地關閉一個接口,我們還需要從核心路由表中將該接口的路由信息全部刪除。
    arp 設置指定網卡是否支持ARP協議。
    -promisc 設置是否支持網卡的promiscuous模式,如果選擇此參數,網卡將接收網絡中發給它所有的數據包
    -allmulti 設置是否支持多播模式,如果選擇此參數,網卡將接收網絡中所有的多播數據包
    -a 顯示全部接口信息
    -s 顯示摘要信息(類似於 netstat -i)
    add 給指定網卡配置IPv6地址
    del 刪除指定網卡的IPv6地址
    <硬件地址> 配置網卡最大的傳輸單元 mtu<字節數> 設置網卡的最大傳輸單元 (bytes)
    netmask<子網掩碼> 設置網卡的子網掩碼。掩碼可以是有前綴0x的32位十六進制數,也可以是用點分開的4個十進制數。
    tunel 建立隧道
    dstaddr 設定一個遠端地址,建立點對點通信
    -broadcast<地址> 爲指定網卡設置廣播協議
    -pointtopoint<地址> 爲網卡設置點對點通訊協議
    multicast 爲網卡設置組播標誌
    address 爲網卡設置IPv4地址
    txqueuelen<長度> 爲網卡設置傳輸列隊的長度

4.常用舉例
實例1:顯示網絡設備信息(激活狀態的)
    ifconfig

實例2:啓動關閉指定網卡
    ifconfig eth0 up
    ifconfig eth0 down

實例3:配置IP地址
    ifconfig eth0 192.168.2.56 netmask 255.255.255.0

實例4:啓用和關閉ARP協議
    ifconfig eth0 arp
    ifconfig eth0 -arp

實例5:設置最大傳輸單元
    ifconfig eth0 mtu 150

【echo】
1.命令格式:echo [選項][參數]或 echo [--help][--version]

2.命令功能:是在顯示器上顯示一段文字,一般起到一個提示的作用。

3.命令選項:
   -n 不要在最後自動換行
   -e 若字符串中出現以下字符,則特別加以處理,而不會將它當成一般文字輸出:
        \\ 反斜線
        \a 發出警告聲;
        \b 刪除前一個字符;
        \c 最後不加上換行符號;
        \f 換行但光標仍舊停留在原來的位置;
        \n 換行且光標移至行首;
        \r 回車;
        \t 水平製表;
        \v 垂直製表;
        \ 插入字符;nnn 插入nnn(八進制)所代表的ASCII字符;
    --help 顯示幫助
    --version 顯示版本信息

4.常用舉例
實例1:輸入一行文本並顯示在標準輸出上
    #echo Tecmintis a community of LinuxNerds
    Tecmintis a community of LinuxNerds

實例2:輸出一個聲明的變量值
    #x=10
    #echo The value of variable x = $x
    The value of variable x =10

實例3:使用‘\b‘選項
    #echo -e "Tecmint \bis \ba \bcommunity \bof \bLinux \bNerds"
    TecmintisacommunityofLinuxNerds

實例4:使用‘\n‘選項

    #echo -e "Tecmint \nis \na \ncommunity \nof \nLinux \nNerds"
    Tecmint
    is
    a
    community
    of
    Linux
    Nerds

實例5:使用‘\t‘選項
    #echo -e "Tecmint \tis \ta \tcommunity \tof \tLinux \tNerds"
    Tecmintis a community of Linux Nerds

實例6:使用‘\v‘選項
    #echo -e "\vTecmint \vis \va \vcommunity \vof \vLinux \vNerds"
    Tecmint
    is
    a
    community
    of
    Linux
    Nerds

【tty】
1.命令格式:tty [-s][--help][--version]

2.命令功能:顯示終端機連接標準輸入設備的文件名稱。在Linux操作系統中,所有外圍設備都有其名稱與代號,這些名稱代號以特殊文件的類型存放於/dev目錄下。你可以執行tty(teletypewriter)指令查詢目前使用的終端機的文件名稱。

3.命令選項:

    -s或--silent或--quiet 不顯示任何信息,只回傳狀態代碼。
    --help 在線幫助。
    --version 顯示版本信息。
    
    返回的狀態碼:

        0 表示標準輸入是一個終端。
        1 表示標準輸入不是一個終端。
        2 表示給定的參數是不正確的參數。
        3 表示發生了寫錯誤。

4.常用舉例
實例1:顯示當前終端
    #tty
    /dev/pts/0

實例2:運行tty什麼也不輸出,然後查看其退出碼
    #tty -s
    #echo $?
    0

實例3:向指定終端發送信息
    ## echo hello >/dev/pts/1
    打開"/dev/pts/1"對應的終端,就會發現剛纔發送的hello
    tty#或僞終端/dev/pts/#是代表linux的純命令行終端,而寫到這個終端的字符串只是做爲這個終端的輸出,不會當做終端的輸入處理。
    
【startx】
1.命令格式:startx [ -d Display:0 ] [ -t | -w ] [ -x Startup | [ -r Resources ] [ -m Window_Manager ] ] [ -wait ]

2.命令功能:初始化一個 X 會話。

3.命令選項:

    -d Display :0 指定在啓動過程中傳遞給 X 客戶機的 X 服務器的顯示名稱。
    -m Window_Manager 當未找到 startup 腳本時,啓動窗口管理器。
    -r Resources 當未找到 startup 腳本時,裝入資源文件。
    -t 爲一個 X 終端啓動 X 客戶機。
    -w 爲工作站上的 X 窗口會話啓動 X 服務器和 X 客戶機。
    -wait 當 xdm 命令調用 startx 時,防止重新啓動 X 會話。
    -x Startup 使用 startup 腳本啓動 X 窗口會話。。

4.常用舉例
實例1:要在工作站上或 X 終端上啓動 X 會話
    startx

實例2:要在工作站上強制啓動 X 會話
    startx -w

實例3:要爲 X 終端啓動 X 會話,並註銷用戶的 Telnet 會話
    startx; kill -9 $$

實例4:要使用 .xinitrc 腳本啓動 X 會話
    startx -x .xinitrc

實例5:要使用 mwm 窗口管理器啓動 X 會話
    startx -m mwm


【export】
1.命令格式:export [-fnp][變量名稱]=[變量設置值]

2.命令功能:設置或顯示環境變量

3.命令選項:

    -f  代表[變量名稱]中爲函數名稱。
    -n  刪除指定的變量。變量實際上並未刪除,只是不會輸出到後續指令的執行環境中。
    -p  列出所有的shell賦予程序的環境變量。

4.常用舉例
實例1:列出當前所有的環境變量
    # export -p
    declare -x CVS_RSH="ssh"
    declare -x G_BROKEN_FILENAMES="1"
    declare -x HISTCONTROL="ignoredups"
    declare -x HISTSIZE="1000"
    declare -x HOME="/root"
    declare -x HOSTNAME="STCO6"
    declare -x LANG="en_US.UTF-8"
    declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
    declare -x LOGNAME="root"
    declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
    declare -x MAIL="/var/spool/mail/root"
    declare -x OLDPWD
    declare -x PATH="/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
    declare -x PWD="/root"
    declare -x QTDIR="/usr/lib64/qt-3.3"
    declare -x QTINC="/usr/lib64/qt-3.3/include"
    declare -x QTLIB="/usr/lib64/qt-3.3/lib"
    declare -x SELINUX_LEVEL_REQUESTED=""
    declare -x SELINUX_ROLE_REQUESTED=""
    declare -x SELINUX_USE_CURRENT_RANGE=""
    declare -x SHELL="/bin/bash"
    declare -x SHLVL="1"
    declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
    declare -x SSH_CLIENT="192.168.2.11 56445 22"
    declare -x SSH_CONNECTION="192.168.2.11 56445 192.168.2.30 22"
    declare -x SSH_TTY="/dev/pts/0"
    declare -x TERM="xterm"
    declare -x USER="root"

實例2:定義環境變量
    # export MYENV
    # export -p
    declare -x CVS_RSH="ssh"
    declare -x G_BROKEN_FILENAMES="1"
    declare -x HISTCONTROL="ignoredups"
    declare -x HISTSIZE="1000"
    declare -x HOME="/root"
    declare -x HOSTNAME="STCO6"
    declare -x LANG="en_US.UTF-8"
    declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
    declare -x LOGNAME="root"
    declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
    declare -x MAIL="/var/spool/mail/root"
    declare -x MYENV
    declare -x OLDPWD
    declare -x PATH="/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
    declare -x PWD="/root"
    declare -x QTDIR="/usr/lib64/qt-3.3"
    declare -x QTINC="/usr/lib64/qt-3.3/include"
    declare -x QTLIB="/usr/lib64/qt-3.3/lib"
    declare -x SELINUX_LEVEL_REQUESTED=""
    declare -x SELINUX_ROLE_REQUESTED=""
    declare -x SELINUX_USE_CURRENT_RANGE=""
    declare -x SHELL="/bin/bash"
    declare -x SHLVL="1"
    declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
    declare -x SSH_CLIENT="192.168.2.11 56445 22"
    declare -x SSH_CONNECTION="192.168.2.11 56445 192.168.2.30 22"
    declare -x SSH_TTY="/dev/pts/0"
    declare -x TERM="xterm"
    declare -x USER="root"


實例3:定義環境變量賦值
    # export MYENV=7
    # export -p
    declare -x CVS_RSH="ssh"
    declare -x G_BROKEN_FILENAMES="1"
    declare -x HISTCONTROL="ignoredups"
    declare -x HISTSIZE="1000"
    declare -x HOME="/root"
    declare -x HOSTNAME="STCO6"
    declare -x LANG="en_US.UTF-8"
    declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
    declare -x LOGNAME="root"
    declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
    declare -x MAIL="/var/spool/mail/root"
    declare -x MYENV="7"
    declare -x OLDPWD
    declare -x PATH="/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
    declare -x PWD="/root"
    declare -x QTDIR="/usr/lib64/qt-3.3"
    declare -x QTINC="/usr/lib64/qt-3.3/include"
    declare -x QTLIB="/usr/lib64/qt-3.3/lib"
    declare -x SELINUX_LEVEL_REQUESTED=""
    declare -x SELINUX_ROLE_REQUESTED=""
    declare -x SELINUX_USE_CURRENT_RANGE=""
    declare -x SHELL="/bin/bash"
    declare -x SHLVL="1"
    declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
    declare -x SSH_CLIENT="192.168.2.11 56445 22"
    declare -x SSH_CONNECTION="192.168.2.11 56445 192.168.2.30 22"
    declare -x SSH_TTY="/dev/pts/0"
    declare -x TERM="xterm"
    declare -x USER="root"

【pwd】
1.命令格式:pwd [OPTION]

2.命令功能:查看”當前工作目錄“的完整路徑

3.命令選項:

    -P  顯示出實際路徑,而非使用連接(link)路徑

4.常用舉例
實例1:用 pwd 命令查看默認工作目錄的完整路徑
    # pwd
    /root

實例2:顯示當前目錄的物理路徑
    # cd /etc/init.d
    # pwd -P
    /etc/rc.d/init.d

實例3:要顯示當前目錄的連接路徑
    # cd /etc/init.d
    # pwd -L
    /etc/init.d

【history】
1.命令格式:
    history [-c] [-d offset]
    history -anrw [filename]
    history -ps arg [arg...]

2.命令功能:用於顯示歷史指令記錄內容, 下達歷史紀錄中的指令 。

3.命令選項:

    -c: 清空命令歷史
    -d: 刪除歷史中指定的命令;
    #: 顯示最近的#條歷史
    -a: 追加本次會話新執行的命令歷史列表至歷史文件
    -n: 讀歷史文件中未讀過的行到歷史列表
    -r: 讀歷史文件附加到歷史列表
    -w: 保存歷史列表到指定的歷史文件
    -p: 展開歷史參數成多個行,但不存在歷史列表中
    -s: 展開歷史參數成一行,附加在歷史列表後

4.常用舉例
實例1:使用history命令顯示最近使用的10條歷史命令
    # history 10
   21  man pwd
   22  pwd -P
   23  man pwd
   24  cd /etc/rc.d/init.d/
   25  pwd -L
   26  vi /etc/sysconfig/network-scripts/ifcfg-eth0
   27  history
   28  history -p
   29  history -P
   30  history 10


實例2:使用命令記錄號碼執行命令,執行歷史清單中的第10條命令
    # !10
    /init 0

實例3:重複執行上一個命令
    # !!


【shutdown】
1.命令格式:shutdown [-efFhknr][-t 秒數][時間][警告信息]

2.命令功能:可以安全地關閉或重啓Linux系統,它在系統關閉之前給系統上的所有登錄用戶提示一條警告信息。該命令還允許用戶指定一個時間參數,可以是一個精確的時間,也可以是從現在開始的一個時間段。精確時間的格式是hh:mm,表示小時和分鐘,時間段由+ 和分鐘數表示。系統執行該命令後會自動進行數據同步的工作。

3.命令選項:

    -c  當執行"shutdown -h 11:50"指令時,只要按+鍵就可以中斷關機的指令。
    -f  重新啓動時不執行fsck。
    -F  重新啓動時執行fsck。
    -h  將系統關機。
    -k  只是送出信息給所有用戶,但不會實際關機。
    -n  不調用init程序進行關機,而由shutdown自己進行。
    -r  shutdown之後重新啓動。
    -t<秒數>  送出警告信息和刪除信息之間要延遲多少秒。
    [時間]  設置多久時間後執行shutdown指令。
    [警告信息]  要傳送給所有登入用戶的信息。

4.常用舉例
實例1:馬上關閉Linux系統
    # shutdown -h now

實例2:系統10分鐘後重新啓動
    # shutdown -r +10
    /init 0

實例3:設置系統在那個時間點關機
    # shutdown -h 12:30

【poweroff】
1.命令格式:poweroff[選項]

2.命令功能:用來關閉計算機操作系統並且切斷系統電源。

3.命令選項:

    -n:關閉操作系統時不執行sync操作
    -w:不真正關閉操作系統,僅在日誌文件“/var/log/wtmp”中
    -d:關閉操作系統時,不將操作寫入日誌文件“/var/log/wtmp”中添加相應的記錄
    -f:強制關閉操作系統
    -i:關閉操作系統之前關閉所有的網絡接口
    -h:關閉操作系統之前將系統中所有的硬件設置爲備用模式。

4.常用舉例
實例1:如果確認系統中已經沒有用戶存在且所有數據都已保存,需要立即關閉系統

    # poweroff

【reboot】
1.命令格式:reboot[選項]

2.命令功能:用來重新啓動正在運行的Linux操作系統。

3.命令選項:

    -d:重新開機時不把數據寫入記錄文件/var/tmp/wtmp。
    -f:強制重新開機,不調用shutdown指令的功能
    -i:在重開機之前,先關閉所有網絡界面
    -n:重開機之前不檢查是否有未結束的程序
    -w:僅做測試,並不真正將系統重新開機,只會把重開機的數據寫入/var/log目錄下的wtmp記錄文件。


4.常用舉例
實例1:系統重啓
    # reboot
實例2:做個重開機的模擬(只有紀錄並不會真的重開機)
    # reboot -w

【hwclock】
1.命令格式:hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test][--utc][--version][--set --date=<日期與時間>]

2.命令功能:顯示與設定硬件時鐘。

3.命令選項:

    -r, --show    讀取並打印硬件時鐘(read hardware clock and print result )
    -s, --hctosys    將硬件時鐘同步到系統時鐘(set the system time from the hardware clock )
    -w, --systohc    將系統時鐘同步到硬件時鐘(set the hardware clock to the current system time )
    --adjust  hwclock每次更改硬件時鐘時,都會記錄在/etc/adjtime文件中。使用--adjust參數,可使hwclock根據先前的記錄來估算硬件時鐘的偏差,並用來校正目前的硬件時鐘。
    --debug  顯示hwclock執行時詳細的信息。
    --directisa  hwclock預設從/dev/rtc設備來存取硬件時鐘。若無法存取時,可用此參數直接以I/O指令來存取硬件時鐘。
    --hctosys  將系統時鐘調整爲與目前的硬件時鐘一致。
    --set --date=<日期與時間>  設定硬件時鐘。
    --show  顯示硬件時鐘的時間與日期。
    --systohc  將硬件時鐘調整爲與目前的系統時鐘一致。
    --test  僅測試程序,而不會實際更改硬件時鐘。
    --utc  若要使用格林威治時間,請加入此參數,hwclock會執行轉換的工作。
    --version  顯示版本信息。


4.常用舉例
實例1:顯示硬件時鐘
    # hwclock
    # hwclock –r
    # hwclock --show
    
實例2:系統時間同步到硬件時間
    # hwclock -w
    
【date】
1.命令格式:date [選項]... [+格式]

2.命令功能:顯示與設定硬件時鐘。

3.命令選項:

    時間方面 :
    % : 印出 %
    %n : 下一行
    %t : 跳格
    %H : 小時(00..23)
    %I : 小時(01..12)
    %k : 小時(0..23)
    %l : 小時(1..12)
    %M : 分鐘(00..59)
    %p : 顯示本地 AM 或 PM
    %r : 直接顯示時間 (12 小時制,格式爲 hh:mm:ss [AP]M)
    %s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前爲止的秒數
    %S : 秒(00..61)
    %T : 直接顯示時間 (24 小時制)
    %X : 相當於 %H:%M:%S
    %Z : 顯示時區
    日期方面 :
    %a : 星期幾 (Sun..Sat)
    %A : 星期幾 (Sunday..Saturday)
    %b : 月份 (Jan..Dec)
    %B : 月份 (January..December)
    %c : 直接顯示日期與時間
    %d : 日 (01..31)
    %D : 直接顯示日期 (mm/dd/yy)
    %h : 同 %b
    %j : 一年中的第幾天 (001..366)
    %m : 月份 (01..12)
    %U : 一年中的第幾周 (00..53) (以 Sunday 爲一週的第一天的情形)
    %w : 一週中的第幾天 (0..6)
    %W : 一年中的第幾周 (00..53) (以 Monday 爲一週的第一天的情形)
    %x : 直接顯示日期 (mm/dd/yy)
    %y : 年份的最後兩位數字 (00.99)
    %Y : 完整年份 (0000..9999)
    若是不以加號作爲開頭,則表示要設定時間,而時間格式爲 MMDDhhmm[[CC]YY][.ss],其中 MM 爲月份,DD 爲日,hh 爲小時,mm 爲分鐘,CC 爲年份前兩位數字,YY 爲年份後兩位數字,ss 爲秒數
    參數 :
    -d datestr : 顯示 datestr 中所設定的時間 (非系統時間)
    --help : 顯示輔助訊息
    -s datestr : 將系統時間設爲 datestr 中所設定的時間
    -u : 顯示目前的格林威治時間
    --version : 顯示版本編號


4.常用舉例
實例1:顯示時間後跳行,再顯示目前日期
    # date '+%T%n%D'
    18:11:43
    08/05/16

實例2:顯示月份與日數
    # date '+%B %d'
    August 05

    
第5題 如何在Linux系統上獲取命令的幫助信息,請詳細列出,並描述man文檔的章節是如何劃分的。
1.內部命令獲取幫助
# help 命令名稱
2.外部命令獲取幫助
(1)# 命令名稱 --help
(2)# 命令名稱 -h
(3)使用手冊(manual) # man 命令名稱
(4)信息頁 # info 命令名稱
(5)程序自身的幫助文檔(README、INSTALL、ChangeLog)

3.man文件章節劃分
man1: 用戶命令
man2: 系統調用
man3: C庫調用
man4: 設備文件及特殊文件
man5: 配置文件格式
man6: 遊戲
man7: 雜項
man8: 管理類的命令
man9:內核
man10:最新

第6題 請羅列Linux發行版的基礎目錄名稱命名法則及功用規定
/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放於此目錄;
/bin:供所有用戶使用的基本命令;不能關聯至獨立分區,OS啓動即會用到的程序;
/sbin:管理類的基本命令;不能關聯至獨立分區,OS啓動即會用到的程序;
/lib:基本共享庫文件,以及內核模塊文件(/lib/modules);
/lib64:專用於x86_64系統上的輔助共享庫文件存放位置;
/etc:配置文件目錄(純文本文件);
/home/USERNAME:普通用戶家目錄;
/root:管理員的家目錄;
/media:便攜式移動設備掛載點;
/mnt:臨時文件系統掛載點;
/dev:設備文件及特殊文件存儲位置;
/opt:第三方應用程序的安裝位置;
/srv:系統上運行的服務用到的數據;
/tmp:臨時文件存儲位置;
/usr:系統存放程序的目錄,比如命令、幫助文件等。
            bin: 保證系統擁有完整功能而提供的應用程序;
            sbin: 根文件系統不必要的系統管理命令,例如多數服務程序。
            lib:應用程序庫文件,程序或子系統的不變的數據文件
            lib64:專用於x86_64系統上應用程序庫文件,程序或子系統的不變的數據文件
            include: C程序的頭文件(header files);
            share:結構化獨立的數據,例如doc, man等;
            local:第三方應用程序的安裝位置;
                bin, sbin, lib, lib64, etc, share

/var: 動態數據。這個目錄的內容是經常變動的
            cache: 應用程序緩存數據目錄;
            lib: 應用程序狀態信息數據;
            local:專用於爲/usr/local下的應用程序存儲可變數據;
            lock: 鎖文件
            log: 日誌目錄及文件;
            opt: 專用於爲/opt下的應用程序存儲可變數據;
            run: 運行中的進程相關的數據;通常用於存儲進程的pid文件;
            spool: 應用程序數據池;
            tmp: 保存系統兩次重啓之間產生的臨時數據;

/proc: 用於輸出內核與進程信息相關的虛擬文件系統;
/sys:用於輸出當前系統上硬件設備相關信息的虛擬文件系統;
/selinux: security enhanced Linux,selinux相關的安全策略等信息的存儲位置。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章