<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    About Shell
    -----------
    Q1.用戶登錄到Linux機器,系統會啟動login子程序處理用戶登錄請求,如何自動設置用戶環境變量?
    比如 PATH,CVS_RSH等等

    編輯/etc/profile 和 $HOME/.bash_profile $HOME/.bash_login $HOME/.profile
    當退出登錄時,shell會執行 ~/.bash_logout

    Q2.如何快速執行歷史命令?

    fc -s [cmd] 執行編號為cmd的命令,缺省的話,執行最近1條指令
    可以使用alias r='fc -s' 登記1個命令別名,減少鍵擊次數

    注:
    fc - Fix Command

    可以用bash內建的命令查找功能,在命令輸入狀態下輸入C-R,則再輸入命令,即可出現
    與當前輸入字符串匹配的命令列表

    Q3.如何快速查看一個用戶的id和組id?

    輸入id 即可查看當前用戶的id和組id(包括數字和名稱)
    輸入id [USERNAME] 即可查看 USERNAME的id和組id(包括數字和名稱)

    Q4.如何查看OS打開的所有文件句柄?

    輸入lsof,可查看所有的打開文件
    輸入lsof /path/of/file, 可查看/path/of/file目錄中被打開的文件

    Q5.如何轉化不同編碼的文件?

    例如 readme.txt 是GB2312編碼的,Console只支持utf-8的,要將readme.txt
    打印處理,如果不作編碼轉換,必然出現亂碼.
    可以用iconv工具進行轉化
    cat readme.txt| iconv -f gb2312 -t utf-8

    Q6.如何在當前的shell會話上下文中設置環境變量?

    將設置指令寫如一個特定的bash文件,如setup.sh
    執行 . setup.sh 命令
    注: . 也是bash的一個內建指令

    Q7.如何使用Bash的花括號自動擴展?

    假設我們要打印出從a到z的26個字母,那么通常做法是從a循環到z,逐個輸出,但我們知道
    Linux下這樣的輪子大多數已經被人發明過了,Bash中就有這樣的工具

    輸入 echo {a..z}

    擴展應用:
    a) 當我們要列出多個目錄下的文件時,這能給我們幫助
    ls /path/{dir1, dir2}
    b) 當我們要改變多個目錄的屬主時
    chown /path/{ex?.?*, how_ex}

    Q8.如何把一個命令的輸出賦值給某一個特定的變量?

    使用語句
    var1=$(command)
    或者反引號
    var1=`command`

    Q9. Bash中如何用快捷鍵鍵?

    輸入 CTRL-W 刪除左邊文本,直至遇到空格 ( vim 中 dB )
    輸入 CTRL-K 刪除從光標位置到行尾的文本 (vim 中 d$ )
    輸入 CTRL-Y 粘貼剪貼板中的文本至光標位置 (vim 中 p)
    輸入 CTRL-r或 CTRL-s, 可匹配增量匹配當前的字, 顯示出候選的命令.如果有多個匹配
    結果,則輸入C-r向后搜索,輸入C-s向前搜索.

    Q10. 如何讓Bash中在sudo/man等命令時也會自動補全命令?

    可利用Bash中的Programmable Completion Builtins功能,具體語法見
    INFO BASH :: Command Line Editing :: Programmable Completion
    比如要讓man 具備自動補全的功能,則這么寫
    complete -F _man $filenames man

    _man 函數會被執行,請求所有可能補全的值寫在COMPREPLY數組中

    Q11. Bash中如何Use Here Document?
    使用語法
    VAR=<<"EOF"
    Some here document
    EOF

    注: 詳見Bash Info - 3.6.5 Here Documents
    - read input from the current source until a line containing only WORD (with no trailing
    -blanks) is seen.

    Q12. Bash中[[和[有何不同?
    [[是復合命令,它可以構成測試用的表達式,表達式可以是bash中的條件表達式的任一種,
    單目和雙目運算的均可.可以用! && || 這樣的邏輯運算符.

    [是內建命令,同樣也是用來測試表達式,表達式可以是Bash條件表達式中的任一種.
    可以用! -a -o 這樣的邏輯運算符.
    兩者是除了邏輯運算符不同之外,并無明顯區別.

    About Man/Info
    ---------------
    Q1.用戶手冊將命令劃分為不同的類別,如何查看分屬不同Section的命令?

    man 7 locale # 7代表Section 號


    About X
    --------
    X1.如何獲得系統中所有的字體?

    輸入指令 xlsfonts

    X2. 如何在ssh登錄到遠程機器上后在本地運行X應用程序?

    假設你的本地主機HostA,遠程主機HostB,那么你要遠程連接到HostB上運行X應用,顯示在
    HostA的屏幕上.
    1. 配置HostA上 ~/.ssh/config 文件

    Host *
    ForwardAgent yes
    ForwardX11 yes

    ForwardX11Trusted yes
    2. ssh HostB
    3. 執行X應用程序

    注意:必須在HostA上開通X11的轉發而不是HostB.

    X3. 如果使用第2個屏幕-投影儀?

    在Ubuntu 7.04以上中自動支持投影儀,即插即用,但需要插上VGA的接口,重新啟動系統后方可使用
    在Ubuntu 7.10版本接上投影儀后,第2個屏幕無輸出,要LOGOUT后才有輸出

    About Maintain
    --------------
    R1. 目錄名字不要包含大寫字符,盡量少包含中文字符.

    1. 中文文件名在Unix/Linux下不易輸入,需要X/輸入法的支持.
    2. 如果采用Apache的文件訪問接口,非Latin字符大多需要URL轉義,這對于HTML作者不友好

    R2. 請及時清理一些臨時,系統日志文件,減少其對存儲空間的占用,也是加快程序運行速度
    1. /tmp
    2. /var/log

    R3. 不要直接用root用戶身份登錄系統

    如果你不想讓你系統中的重要文件因為你的操作不當在傾刻間消失,那就用吧.
    有人用chown命令把整個操作系統中文件的用戶/組屬性改成了asterisk:asterisk
    也有人曾經把/var, /etc兩個目錄刪除,系統必須重裝.

    R4. 為了有助于確保Web Mail您的密碼和帳戶的安全,請在每個會話結束時注銷帳戶。

    About System
    ------------
    S1. Linux在boot起來之后,先調用/sbin/init,它是其他所有進程的父進程
    1.啟動時先運行boot level master script
    2.執行硬件初始化腳本
    3.執行run level master script,運行級別定義在/etc/inittab中
    每級的腳本放在/etc/init.d/rc<X>.d中
    4.到最后用戶看到的即是mingetty登錄界面

    S2. Linux TTY這種用戶接口的設計思想
    用戶通過本地鍵盤或者網絡 -->命令 -->TTY -->Shell Interpreter
    --> Excute Cmd --> Output --> TTY --> 本地內存或者網絡 -->顯示器輸出
    優點: 可以用不同形式的終端登錄,比如本地鍵盤,遠程網絡,Modem,只有TTY與用戶
    之間存在某種連接即可

    S3. Linux如何同一張網卡如何支持多個IP?

    1. 配置 虛擬接口
    ifconfig eth0:0 192.168.12.240
    ifconfig eth0:0 netmask 255.255.255.0

    2. 增加一個路由表
    route add -net 192.168.12.0 netmask 255.255.255.0 dev eth0:0

    3. 增加一個缺省的路由表

    route add default gw 192.168.12.168

    S4. 如果Home分區中空間不夠,但是/usr分區中留有較大的空間,如何平衡利用這兩空間?

    目標: 1.通過Home分區文件的形式讀寫數據
    2.實際的數據確是存儲在/usr/分區中

    利用符號鏈接的方式,在Home分區中建立一個符號鏈接目錄,指向
    ln -s /usr/local/voip ~/project/voip

    S5. Apache 使用UserDir模塊時,~username形式訪問,Apache告之禁止訪問?

    比如/home/robbie 它具有drwx------屬性,必須將它改為
    drwxr-xr-x屬性,Apache服務器才可打開用戶目錄

    S6. 如何添加自定義的全局的初始化動作?

    比如要添加這兩個別名命令fcc,和fpp統計.c和.cpp源文件數目,
    可在/etc/bash.bashrc.local中添加如下腳本
    alias fcc='ll -R | grep "[:alpha:]*[.]c$" | nl |less'
    alias fpp='ll -R | grep "[:alpha:]*[.]cpp$" | nl |less'

    注:
    Linux Kernel 共有7454個源文件

    S7. 如何查看系統中打開某個目錄/文件的進程?

    fuser -v FILE_TO_LOOK_UP

    S8. 如何讓普通用戶以超級用戶身份執行命令,而不需要其輸入密碼?

    配置/etc/sudoers,按照如下方式指定
    asterisk ALL = NOPASSWD: /sbin/shutdown
    注:
    ALL是代表任何網絡主機.

    S9. 如何查看Linux系統運行了多長時間?

    輸入
    uptime
    輸出
    7:00pm up 3 days 9:49, 11 users, load average: 1.28, 1.29, 1.26

    S10.如何查看Linux系統運行狀態信息,比如cpu/內核版本/啟動參數/IO口?

    cat /proc/*

    S11.如何備份文件?

    使用cp命令,如

    cp src_files dst_files
    注意:
    SuSE 9.3 cp 的版本為 5.3.0,對于存在相同文件的覆蓋操作,默認動作是覆蓋
    Linux robbie 2.6.11.4-20a-default #1 Wed Mar 23 21:52:37 UTC 2005 i686 i686 i386 GNU/Linux
    CentOS 分發版
    Linux asterisk1.local 2.6.9-11.EL #1 Wed Jun 8 16:59:52 CDT 2005 i686 i686 i386 GNU/Linux
    CentOS SMP的版本
    Linux SVC9000.local 2.6.9-11.ELsmp #1 SMP Wed Jun 8 17:54:20 CDT 2005 i686 i686 i386 GNU/Linux

    S12. 如何給系統增加一個路由?

    存在如下的一條路由
    default 192.168.3.1 0.0.0.0 UG 0 0 0 eth0
    添加一條路由
    route add default 192.168.12.168

    S13. 如何使用NFS?

    服務器端設置 (以CentOS為例)

    A. 在目標主機上設置NFS 共享目錄,修改/etc/exports
    增加如下條目:
    /mnt/asterisk 192.168.12.0/255.255.255.0(rw)
    B. 啟動NFS服務
    service nfs start
    如果NFS服務已經啟動,那么重讀exports
    exportfs -ra

    客戶端設置 (2.2.18以上內核內建支持NFS)

    手工mount:
    mount 192.168.12.238:/mnt/asterisk /path/of/client/nfs

    自動mount:
    修改 /etc/fstab,增加一條
    192.168.12.238:/mnt/asterisk /path/of/client/nfs nfs rw 0
    然后執行: mount -a -t nfs

    注:
    1. 缺省,在服務器端的共享目錄的訪問權限即為mount后的訪問權限
    2. nfs服務依賴于portmap,啟動nfs前portmap必須先啟動

    S14.如何制作一張可以啟動的CD-ROM?

    1. 你需要具備以下這些文件, isolinux目錄以及目錄中的內核,配置,Ramdisk鏡像等
    可從Redhat安裝盤上獲得
    2. 將isolinux目錄拷貝至你的ISO光盤的根目錄
    3. 使用工具mkisofs
    mkisofs -o output.iso -b isolinux/isolinux.bin -c isolinux/boot.cat \
    -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T \
    -input-charset utf-8 /path/of/your/isoroot

    參考:
    http://syslinux.zytor.com/iso.php
    注:
    1. 制作SVC ISO文件耗時1m45.494s 43.170s(P4,CentOS 4.1)
    2. 可以使用mkisofs將多個redhat安裝盤合并為一個dvd的安裝盤
    使用到的開關有: -graft-points Psyche-i386-disc1
    溶合的項目有 .discinfo=.discinfo isolinux/=isolinux
    RedHat/=shrike-i386-disc2/RedHat RedHat/=shrike-i386-disc3/RedHat
    docs/=Psyche-docs

    S15. 如何刻錄一張CD-R 或者CD-RW?

    * 對于CD-R,假設要刻錄的是mydata.iso文件,使用

    cdrecord -v speed=4 dev=0,0,0 -data mydata.iso
    一般,cdrecord會使用TAO mode for single session模式.

    * 對于CD-RW,先要將CD-RW盤的數據內容擦除

    cdrecord -v speed=2 dev=0,0,0 -blank=fast
    然后和CD-R一樣,再使用刻錄指令.

    注:
    1. 參數dev=0,0,0是刻錄設備的地址,可以如下命令得到
    cdrecord -scanbus
    2. 需要的話,在dev參數上加 ATAPI指示符,如
    cdrecord -v speed=8 dev=ATAPI:0,0,0 -data boot.iso
    3. 一般刻錄一張 560M的CD-ROM,需925.050s

    S16. 如何在單一終端中執行多個任務,并在任務之間切換?

    舉例:
    A. vim hello.txt 編輯一個文檔
    B. 中途用戶想退出,查看系統的CPU 運行情況
    按 CTRL-Z,掛起當前vim任務;輸入top
    C. 用戶在top任務中又想看一下硬盤的分區信息
    按 CTRL-Z,掛起當前top任務;輸入fdisk /dev/hda
    D. 此時當前運行任務為fdisk,掛起的有2個:vim和top
    在fdisk中按 CTRL-Z一樣掛起它
    輸入: jobs -l
    系統輸出:
    [3]+ 21731 Stopped vim hello.txt
    [4] 21805 Stopped top
    [5]- 21827 Stopped fdisk /dev/hda
    []中的數字代表后臺任務編號,你可以根據它在任務間來回切換
    輸入 fg 1 或 fg vim 回到vim任務中,繼續執行
    輸入 fg 2 或 fg top 回到top任務中
    輸入 fg 3 或 fg fdisk 回到fdisk任務中

    S17. 如何快速查看Linux系統的分區信息?

    輸入 fdisk -lu /dev/hdx
    可看到指定硬盤設備的分區信息.

    S18. 我的FTP服務或者Web服務別人無法訪問到?

    很可能是你的防火墻做了限制,將你要提供的服務從禁用列表中去除即可.

    S19. 軟件A依賴于與庫B,我安裝了B,可A依然提示庫B找不到?

    有一種可能性,即庫B不是裝在系統的庫文件目錄/lib和/usr/lib,譬如安裝于
    /usr/local/lib下,這樣就找不到
    辦法:
    1 修改安裝路徑為/lib
    2 或將/usr/local/lib添加到系統庫目錄中
    * 編輯 /etc/ld.so.conf
    加入一行 /usr/local/lib
    * 重載庫 sudo ldconfig

    S20. 某些系統服務如mysql數據庫未在啟動時加載,如何配置啟動時加載?

    使用/sbin/chkconfig工具,如下
    /sbin/chkconfig --level 2345 mysql on
    就可使mysql服務器在2345級別啟動時自動運行

    S21. PHP許多模塊未加載,如何加載它們?

    修改/etc/php.ini ,比如你要加載session.so,應寫為
    extension=session.so

    S22. 如何監控系統從開機到出現登錄界面所使用的時間以及系統的運行狀態?

    安裝bootchart軟件包,之后,每次系統啟動完成后會在/var/log/bootchart目錄下生成
    監測圖,PNG格式的,里面包含著啟動耗費時間、每一個服務的起止時間.

    S23. Ubuntu下如何支持中文輸入?

      $sudo apt-get install scim scim-modules-socket scim-modules-table scim-pinyin scim-tables-zh scim-input-pad
       $sudo sh -c " echo 'export XMODIFIERS=@im=SCIM ; export GTK_IM_MODULE="scim" ; export QT_IM_MODULE="scim" ; scim -d ' > /etc/X11/Xsession.d/95xinput "
      $sudo chmod +755 /etc/X11/Xsession.d/95xinput

      # 注:在Dapper下省略后兩步
      #注:在Dapper里也可以直接選擇系統->系統管理—>語言支持(language support)勾選Chinese 就會自動安裝和配置scim

      分解一下看看:
      安裝scim輸入法平臺

    S24. NFS服務起來后,在客戶端mount一直提示"mount: RPC: Timed out\n"?

    表現:
    * 查了portmap, nfs都服務端都沒有問題
    * showmount -e nfs_server也沒有問題
    * 就是在mount -t nfs nfs_server:/path /local/path時出"mount: RPC: Timed out\n"的錯誤

    解決: 路由可能是原因
    出現這種問題,在查遍了許多文章還沒有結果的情況下,請查一下服務器的網絡配置,特別小心多網卡
    情況下的路由,如果你的缺省路由類似這樣
    default 220.250.26.1 0.0.0.0 UG 0 0 0 eth1
    那么很可能路由是罪魁禍首.

    S25. 雙網卡如何共享網絡連接?

    參考 nat.sh

    S26. 如何解決SCIM和Open Office不兼容,導致Open Office異常退出的問題?

    問題描述
    1.系統環境中設置了scim為輸入法
    export GTK_IM_MODULE=scim
    export QT_IM_MODULE=scim
    2.在KDE應用比如Konsole中可以正常輸入中文,但打開open office卻異常退出,
    打開其它應用Mozilla Thunderbird,也是異常退出

    這里也有描述 https://bugs.launchpad.net/openoffice/+bug/103079
    原因
    scim與GTK2的應用程序存在二進制的兼容性問題,scim是c++語言實現的,而gtk2
    應用比如openoffice, moizlla Thunderbird是采用C語言實現的,在加載輸入法
    時會導致應用程序內存分配錯誤.

    解決辦法
    1. 安裝scim-bridge模塊
    http://www.scim-im.org/projects/scim_bridge
    2. 修改GTK應用程序的輸入法配置
    export GTK_IM_MODULE=scim-bridge
    3. 登出桌面系統,再登錄,即可正常打開ooffice

    About Toolkit
    -------------
    T1. 使用grep查找.gz文件中包含特定字符串的行?
    舉例,有個文件,ls-lrR.txt.gz, 待查找的字符串為開頭為rms,結尾為ogg的文件,可以用下列方式
    gunzip -c ls-lrR.txt.gz | grep 'rms-.*ogg'
    注: *NIX環境下, .可代表任何字符, *代表任意匹配,+代表至少出現1次,?代表至多出現1次

    T2. Windows 2000運行有telnet服務,這樣可以使用linux的konsole/或者其他終端模擬器連接windows主機.

    telnet pc.window.address

    T3. 如何查看PDF/ps格式的文檔?

    gs ps_file_name3
    gs pdf_file_name

    Note: gs is PostScript and PDF language interpreter and previewer

    T4. 如何跟蹤IP報文的路徑?

    Linux下,輸入traceroute HOST_NAME|IP
    Win32下,輸入tracert HOST_NAME|IP

    T5. 如何查看內核的路由表?

    Linux下,輸入/sbin/route
    Win32下,輸入route PRINT

    T6. 如何內核中的網絡接口卡的物理地址?

    Linux下,輸入/sbin/arp
    Win32下,輸入 arp -a

    T7. 如何實現按1個快捷鍵即輸入"年-月-日 星期x"?

    可以使用map命令,將某一個快捷鍵變為命令輸入
    參考:map <F2> ggA<C-R>=strftime("%Y-%m-%d %A")<CR><Esc>

    T8. 如何使用Shell工具鏈統計一個目錄下所有.c的原文件數目?

    分析:.c原文件的特征是以.c字符為結尾,可以使用正則表達是[.]c表示
    ll -R | grep "[:alpha:]*[.]c$" | nl |less
    正則表達式 ([0-9]{5,}) 代表由5位數字構成的單詞,()是單詞控制字符

    T9. 如何高效的使用FTP客戶端工具?

    lftp 工具可以完美的支持,它支持提前信息獲取,Tab目錄或文件補齊.
    lftp 支持下載進度指示,%形式,下載速率.
    lftp 支持斷線后自動恢復連接.
    lftp 在絕大多數Linux分發版中都有安裝.

    T10. SSH遠程登錄工具,認證過程解析?

    * 客戶登錄到遠程主機,必須提供identity
    * SSH服務器認證這個identity
    * Host Key 和 Public Key的關系
    * Challenge = a random number, encrypted by user's public key

    T11. 如何快速的執行計算命令?

    比如,計算硬盤的大小,BLOCK數18335302,每個BLOCK為512字節
    echo "512*18335302" | bc

    T12. vsftpd/wu-ftpd如何啟用匿名ftp服務?

    對于vsftpd,編輯/etc/vsftpd.conf,確認開關
    anonymous_enable=YES
    注:
    1. 匿名ftp用戶登錄所見目錄對應于系統中ftp用戶的HOME目錄,一般為/var/ftp,可變更
    2. ftp用戶的HOME目錄owner:group要設為root:root,用戶才通過匿名訪問,否則有500錯誤

    T13. 如何快速得到文件系統中各個目錄對硬盤的占用情況?

    在根目錄下輸入 du -h --max-depth=1

    T14. 如何快速查看指定的man文件?

    輸入 man -l /path/of/your/man/file

    T15. 如何查看一個IP段范圍內的IP地址與前綴?

    利用 ipcount命令,比如查看起始地址為 192.168.3.2
    數量為100的所有ip地址前綴
    輸入
    ipcount 192.168.3.2+100

    T16. VsFtpd服務器登錄時,每個文件的owner和group都顯示為ftp,
    因為權限受限,無法上傳,怎么辦?

    編輯/etc/vsftpd.conff
    設置 hide_ids=NO

    T17. Lynx文本瀏覽器如何實現文本行的滾動?

    輸入 CTRL-N 向下翻動兩行
    輸入 CTRL-P 向上翻動兩行

    T18. 如何抓取網絡接口中傳輸的數據報文?

    tcpdump -i interface

    T19. 如何查看一臺主機的IP地址?

    host name 即可查看name對應的IP地址

    T20. 如何啟用NAT?

    192.168.3.0/24局域網主機通過WAN連接網絡

    iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -j SNAT --to 218.67.79.7
    echo 1 > /proc/sys/net/ipv4/ip_forward

    T21. 如何在命令行下查看word文檔?

    安裝antiword這個工具包,輸入
    antiword wordfile
    這個工具就會將word文檔內容輸出到標準輸出。

    注:
    可以使用mc這個外包shell調用antiword,即通過查看功能

    T22. 如何快速的排序一個文本文件?

    執行
    sort -u unsortedfile -o sortedfile

    T23. 如何給源代碼打上patch?

    舉例,給vsftpd服務器源碼打上補丁
    cd vsftpd-2.0.1
    patch -p1 -b < patchfile
    開關說明:
    -p1 表示patch中必須去除一級目錄前綴
    -b 表示patch前備份原始文件

    T24. 如何生成補丁文件?

    假設有文件origfile,經過修改變為destfile
    那么如何根據origfile和destfile的區別生成補丁呢?
    diff -u origfile destfile > patchfile

    如果是兩個目錄進行比較,那么需要使用
    diff -urN origdir destdir > patchfile

    注意: -N選項視新文件為空文件

    T25. 如何通過http協議訪問svn倉庫?

    使用apache2, 加載mod_dav.so和mod_dav_svn.so兩個模塊
    假設你的svn倉庫父目錄為/srv/svnroot,如下配置即可
    <Location /svn>
    DAV svn
    SVNParentPath /srv/svnroot
    </Location>
    重啟apache2,使用svn co http://localhost/svn/repos 即可checkout倉庫repos中的文件

    注意:
    1. 如果無法通過http commit,報告這樣的錯誤
    svn: Can't open activity db: APR does not understand this error code
    需要將/srv/svnroot/repos/dav目錄的訪問權限改寫為0777
    2. 如果提示對“%$s”的方法 %$s 失敗: 403 Forbidden (http://localhost)錯誤
    則查看apache2的error.log,并確認dav_svn的配置中
    LimitExcept GET PROPFIND OPTIONS REPORT是被注釋掉的
    3. 如果需要限制用安全鏈接訪問版本庫,則在Location配置選項中加入
    SSLRequireSSL

    T26. 如何啟用Apache的https安全協議?

    參考資料:
    * SSL Certificates HOWTO
    * Linux Apache SSL PHP/FI frontpage mini-HOWTO
    * svn-book.pdf R1876
    * Professional LAMP - Linux, Apache, MySQL, & PHP5 Web Development 2006.pdf
    1. 編譯或者下載apache2 的mod_ssl.so模塊
    2. 使用openssl的工具生成供您的站點使用的服務器證書和服務器公私鑰
    利用openssl庫提供的工具CA.pl,位于/usr/lib/ssl/misc. 這里講述自身構建CA,然
    后用該CA來簽名證書的過程,當然也可以提交給其他CA機構來簽名認證

    2.1 先生成CA以及相關的文件
    $ CA.pl -newca
    按照命令提示,依次輸入CA的私鑰密碼\Country Name\Province Name\Locality Name
    \Organization Name\Unit Name\Common Name\Email Address\A challenge password\
    optional company name, 提示A challenge password\optional company name可以不
    填.最后因為CA需要給自己簽發證書,所以還得填些最開始時輸入的CA的私鑰密碼.
    在當前目錄下會生成demoCA的目錄,內含若干文件

    2.2 再生成證書申請文件
    $ CA.pl -newreq
    按照命令提示,依次輸入待申請證書的私鑰密碼\Country Name\Province Name\
    Locality Name\Organization Name\Unit Name\Common Name\Email Address\
    A challenge password\optional company name,最后兩項亦可不填.
    在當前目錄下會生成證書申請文件newreq.pem和私鑰文件newkey.pem

    2.3 再用2.1步生成的CA為申請文件簽名,生成證書
    $ CA.pl -sign
    按照命令提示,輸入CA的私鑰密碼并確認簽名,并提交到CA的簽名數據庫中,得到簽名后的
    證書文件newcert.pem

    2.4 裁減證書,去除證書的私鑰密碼

    證書只需要包含機器可讀的部分,此外文字描述部分可以去掉,方法如下
    $ openssl x509 -in newcert.pem -out www.crt
    證書的私鑰提供給Apache使用,要求去除私鑰的密碼,方法如下
    $ openssl rsa -in newkey.pem -out wwwkey.pem
    該命令需要輸入私鑰密碼,之后生成的私鑰wwwkey.pem中就剝去密碼了
    3. 配置apache2,使用簽名的證書www.crt與私鑰wwwkey.pem
    添加對443端口的偵聽
    Listen 443 https
    加載mod_ssl.so模塊
    LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
    配置https的虛擬服務器
    NameVirtualHost *:443
    <VirtualHost _default_:443>
    ServerAdmin webmaster@localhost

    SSLCertificateFile /etc/apache2/ssl/www.crt
    SSLCertificateKeyFile /etc/apache2/ssl/wwwkey.pem

    SSLEngine On

    DocumentRoot /var/www/
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>
    <Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
    # This directive allows us to have apache2's default start page
    # in /apache2-default/, but still have / go to the right place
    #RedirectMatch ^/$ /apache2-default/
    </Directory>
    ErrorLog /var/log/apache2/error.log
    </VirtualHost>
    注意:
    * NameVirtualHost *:443 后面要帶上443這個端口,普通80端口的VirtualHost要寫為
    NameVirtualHost *:80
    * VirtualHost總配置選現中寫為 _default_:443,表示偵聽任何網絡接口上的443端口
    * 如果先前80端口的站點配置為 VirtualHost *,將它改寫為VirtualHost _default_:80
    * SSLCertificateFile 指向證書文件的路徑
    * SSLCertificateKeyFile 指向證書對應的私鑰文件路徑
    重新啟動apache2,使用curl測試
    curl https://localhost/
    * SSLEngine On 啟用ssl連接

    T27. VMWare Guest操作系統中時鐘總是不準確,比如Guest OS為WinXP,時鐘總是比Host OS要慢?

    安裝vmware tools套件,然后復選Time synchronization between the virtual machine
    and the host operating system
    對于win, 在VMWare Workstation中選擇Install VMware Tools,然后在Guest Win OS中會自動
    出現虛擬驅動器,打開可以看到安裝程序
    對于lin, 在VMWare Workstation中選擇Install VMware Tools,然后在Guest Lin OS中會出現
    /dev/hdc設備,將此文件自動掛載,即可實現

    T28. 在更新Linux Kernel后,VMWare無法使用了?

    Ubuntu的內核更新到2.6.20-16-386之后,VMWare Workstation活VMWare Player都無法使用了,
    需要重新編譯內核模塊vmnet 和vmmon,使用vmvmware-config.pl工具,但這個工具依賴于內核
    版本,

    1. 下載vmware-any-any-update110.tar.gz
    http://knihovny.cvut.cz/ftp/pub/vmware/

    2. 解壓,運行runme.pl,程序會自動重新編譯vm內核模塊
    3. 再運行VMWare Workstation 或 VMWare Player OK

    T29. VMWare如何使用遠程管理接口,如果自動運行客戶操作系統?

    安裝VMWare Server ,當前版本為1.0.2, 它即可桌為虛擬機服務器,自動運行客戶操作系,
    通過網絡從遠程開啟,關閉,操作客戶操作系統.

    提示: VMWare Server Console的注冊序列號
    9AXPN-Y0QD0-24K7M-40K0M
    98WMH-Y2PF1-2F7EM-4022D

    注意: 1.0.2版本有個小BUG,GUEST OS通過網絡訪問HOST OS上資源速度很慢,有時還達不到
    1K/s,但HOST OS訪問GUEST OS上的速度正常,比如GUEST OS為win,開放文件共享,從HOST OS
    Ubuntu上Copy共享文件,速度正常.

    T30. 如何創建臨時文件,而保證文件名不重復?

    Bash中執行 mktemp 可以得到文件名

    或者

    通過<stdlib.h>中調用用戶接口
    char *mktemp(char *template);

    T31. 使用wget下載html文件中的所有鏈接文件?

    可以通過wget的遞歸下載功能,如下

    wget -r -l 1 http://www.sipfoundry.org/pub/sipX/3.6/CentOS/4/RPM/
    說明:
    -r 代表遞歸下載
    -l num 代表遞歸的深度
    -p 代表僅下載頁面必要的元素

    T32. 如何創建一個tap接口供虛擬機VirtualBox使用?

    對Debian/Ubuntu系統可參考VirtualBox的User Manual

    1. 配置tap0接口,在/etc/network/interfaces文件中增加
    auto tap0
    iface tap0 inet manual
    up ifconfig $IFACE 0.0.0.0 up
    down ifconfig $IFACE down
    tunctl_user robbie

    T33. 如何在linux下打開中文window下用zip壓縮的文件?
    使用unzip,但是要加上編碼的選項-O

    unzip -O cp936 zip_file_name
    說明:
    cp936是中文windows的默認編碼

    About Development
    -----------------
    D1. Makefile中的.PHONY目標有什么作用?

    寫法
    .PHONY: TARGET
    它讓.PHONY依賴的目標TARGET都能執行它的規則,而不關TARGET文件是否存在.

    http://blog.csdn.net/dadoneo/archive/2010/10/25/5965088.aspx
    主站蜘蛛池模板: 丝袜足液精子免费视频| 久久成人永久免费播放| 6080午夜一级毛片免费看6080夜福利| 久久久久亚洲精品无码网址| 四虎影视永久在线精品免费| 亚洲国产V高清在线观看| 特a级免费高清黄色片| 夜夜春亚洲嫩草影院| 成人无码WWW免费视频| 中文字幕亚洲综合精品一区| 四虎免费影院ww4164h| 国产亚洲精aa在线看| 国产无遮挡裸体免费视频 | a级毛片免费观看视频| 久久精品国产亚洲综合色| 一级毛片免费毛片一级毛片免费| 亚洲精品国产第1页| 免费无码肉片在线观看| 真正全免费视频a毛片| 在线观看亚洲天天一三视| 久久国产精品一区免费下载| 亚洲国产av一区二区三区丶| 韩国二级毛片免费播放| 国产免费久久久久久无码| 亚洲精品高清国产一久久| 九九九精品成人免费视频| h片在线观看免费| 亚洲黄色在线电影| 四虎影视永久免费观看网址| 国产成年无码久久久免费| 亚洲性69影院在线观看| 四虎AV永久在线精品免费观看| 男人天堂免费视频| 亚洲av永久无码精品三区在线4| 免费一级毛片女人图片| 久久久久免费看成人影片| 久久精品国产亚洲av瑜伽| 久久亚洲精品AB无码播放| 午夜免费福利影院| 热re99久久6国产精品免费| 亚洲AV无码精品国产成人|