• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Benjamin

            靜以修身,儉以養(yǎng)德,非澹薄無以明志,非寧靜無以致遠(yuǎn)。
            隨筆 - 398, 文章 - 0, 評(píng)論 - 196, 引用 - 0
            數(shù)據(jù)加載中……

            linux---redhat開發(fā)整理(一)

            一、ssh服務(wù)的開啟:
            首先用setup命令,打開System service菜單,看看有沒有sshd,如果沒有就要安裝了,如果有按空格鍵選中它。
            /etc/init.d/sshd status   查看狀態(tài)       /etc/init.d/sshd start    開啟  /etc/init.d/sshd stop  停止
            vi /etc/ssh/sshd_config 找到#Port 22,標(biāo)識(shí)默認(rèn)使用22端口,修改為:Port 22XX (自己設(shè)定的端口)然后重啟服務(wù)進(jìn)程
            查看/etc/ssh/sshd_config文件的PermitRootLogin值,如果是no,則需要修改為yes,并重啟sshd服務(wù),只有sshd服務(wù)開啟才能用putty。

            二、防火墻相關(guān)的命令:
            在redhat下,需要在setup中打開fileware(防火墻)才可以使用以下命令切記(默認(rèn)這個(gè)是不開啟的)
            關(guān)閉/etc/rc.d/init.d/iptables stop                            開啟/etc/rc.d/init.d/iptables start

            查看當(dāng)前配置:iptables -L          關(guān)閉防火墻:chkconfig --level 2345 iptables off           service iptables stop
            1) 重啟后生效
            開啟: chkconfig iptables on
            關(guān)閉: chkconfig iptables off
            2) 即時(shí)生效,重啟后失效
            開啟: service iptables start
            關(guān)閉: service iptables stop
            需要說明的是對(duì)于Linux下的其它服務(wù)都可以用以上命令執(zhí)行開啟和關(guān)閉操作。
            在開啟了防火墻時(shí),做如下設(shè)置,開啟相關(guān)端口,
            修改/etc/sysconfig/iptables 文件,添加以下內(nèi)容:
            -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
            -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT


            三、FTP相關(guān):在redhat5上,有g(shù)ssftp和vsftp,gssftp是Redhat linux企業(yè)版自帶的FTP工具。包含在/etc/xinetd/gssftp下。提供krb5驗(yàn)證機(jī)制。
            vsftp也是FTP服務(wù)器軟件,功能比gssftp完備。也是推薦使用的FTP服務(wù)器軟件。它是獨(dú)立守護(hù)程序。
            vsftpd的rpm包在redhat的光盤上應(yīng)該可以找到,用rpm -ivh來安裝rpm包。
            主要配置文件是:/etc/vsftpd/vsftpd
              /etc/vsftpd.ftpusers /etc/vsftpd.user_list 主要用于用戶的訪問控制。
              建議將userlist_deny=YES。更改完配置service vsftpd rest
            vsftp連接時(shí)的"500 OOPS:cannot change directory:/root"錯(cuò)誤,解決方法:
             sestatus -b | grep ftp      確切地說,只是查看了SELinux中ftp的狀態(tài)。setsebool -P ftpd_disable_trans on      或者 setsebool -P ftp_home_dir on
            重啟vsftpd: service vsftpd restart

            gssftp的路徑:etc/xinetd.d/gssftp,將disable設(shè)置為no且server_args設(shè)置為 -l,即可
              啟用。gssftp也是RedHat企業(yè)版自帶的ftp工具。
              
              # default: off
              # description: The kerberized FTP server accepts FTP connections \
              #              that can be authenticated with Kerberos 5.
              service ftp
              {
                      disable = no
                      flags           = REUSE
                      socket_type     = stream
                      wait            = no
                      user            = root
                      server          = /usr/kerberos/sbin/ftpd
                      server_args     = -l
                      #server_args    = -l -a
                      log_on_failure  += USERID
              }
              去掉-a的目的是因?yàn)楹枚鄁tp客戶端不支持KRB5驗(yàn)證機(jī)制,disable=no開啟,service xinetd restart
            但是gssftp不夠安全。

            四、gcc的安裝:有了下面的六個(gè)包,gcc-4.1.2才算安裝完成,最好按照下面的順序來安裝。
            rpm -ivh cpp-4.1.2-42.el5.i386.rpm 
            rpm -ihv kernel-headers-2.6.18-92.el5.i386.rpm 
            rpm -ivh glibc-headers-2.5-24.i386.rpm
            rpm -ivh glibc-devel-2.5-24.i386.rpm
            rpm -ivh libgomp-4.1.2-42.el5.i386.rpm
            rpm -ivh gcc-4.1.2-42.el5.i386.rpm
            rpm -ihv libstdc++-devel-4.1.2-42.el5.i386.rpm
            rpm -ihv gcc-c++-4.1.2-42.el5.i386.rpm
            如果已經(jīng)安裝了,但是沒有成功,建議用rpm的強(qiáng)制命令,在上述命令后面加上參數(shù)--force --nodeps ,卸載用rpm -e *.rpm;
            上面的7個(gè)包,在Redhat5上是可以找到,在Redhat4上能找到幾個(gè)就裝幾個(gè),我在Redhat4上只找到了6個(gè),Redhat5上面7包都有,
            安裝時(shí)如果加了--force --nodeps,則順序無所謂。

            gcc下使用masm=intel,出現(xiàn)的還是AT&T的匯編代碼,就是gcc安裝不完整,最好重新安裝一遍gcc。

            五、rpm相關(guān):
            rpm是Red Hat針對(duì)自己的系統(tǒng)提出了一個(gè) 較好的辦法來管理成千上百的軟件。在系統(tǒng)中安裝了rpm管理系統(tǒng)
            以后,只要是符合rpm文件標(biāo)準(zhǔn)的打包的程式都能方便的安裝,升級(jí),卸載 ,因此非常多l(xiāng)inux都使用rpm系統(tǒng)。
            由于rpm的源程式能在別的系統(tǒng)上進(jìn)行編譯, 所以有可能在別的系統(tǒng)上也使用rpm 。

            rpm包的文件名中包含了這個(gè)軟件包的版本信息,操作系統(tǒng)信息,硬件需求等等。
            比如mypackage-1.1-2TL.i386.rpm,其中mypackage是在系統(tǒng)中登記的軟件包的名字
            1.1是軟件的版本號(hào),2是發(fā)行號(hào),TL表示用于TL操作系統(tǒng),還可能是RH等。i386表示
            用于intel x86平臺(tái),還可能是sparc等

            查看是否安裝了rpm包,用rpm -qa|grep rpm包名,或者rpm -qa;
            rpm-V命令用來驗(yàn)證一個(gè)軟件包 ,rpm -Va(v是大寫) 驗(yàn)證所有已安裝的軟件包,可以顯示已刪除的文件信息;
            rpm -qf 文件名,顯示文件屬于那個(gè)rpm包;i 表示info,獲得軟件包的信息;l 表示list,獲得文件列表;a 表示all,在所有包中執(zhí)行查詢;
            f 表示file,根據(jù)文件進(jìn)行相關(guān)的查詢; p 表示package,根據(jù)軟件包進(jìn)行查詢

            rpm -Vf 文件名,顯示rpm包中所有關(guān)于文件名的信息;
            如果新的 RPM,但不知道它是做什么的,可以鍵入如下命令:rpm -qip koules-1.2-2.i386.rpm ,獲取關(guān)于一個(gè)軟件包的版本,用途等相關(guān)信息;
            rpm -qlp .rpm,顯示rpm包在系統(tǒng)里安裝了什么文件;rpm -ql 包名,可以知道rpm包中的文件安裝到那里去;
            不安裝不過獲取rpm包中的文件用用工具rpm2cpio和cpio
            rpm2cpio xxx.rpm | cpio -vi
            rpm2cpio xxx.rpm | cpio -idmv
            rpm2cpio xxx.rpm | cpio --extract --make-directories
            參數(shù)i和extract相同,表示提取文件。v表示指示執(zhí)行進(jìn)程 d和make-directory相同,表示根據(jù)包中文件原來的路徑建立目錄 m表示保持文件的更新時(shí)間。


            安裝.src.rpm軟件包的方法:這類軟件包是包含了原始碼的rpm包,在安裝時(shí)需要進(jìn)行編譯。這類軟件包有兩種安裝方法:
            方法一:
            1.執(zhí)行rpm -i your-package.src.rpm
            2. cd /usr/src/redhat/SPECS
            3. rpmbuild -bp your-package.specs 一個(gè)和你的軟件包同名的specs文件
            4. cd /usr/src/redhat/BUILD/your-package/ 一個(gè)和你的軟件包同名的目錄
            5. ./configure 這一步和編譯普通的源碼軟件相同,能加上參數(shù)
            6. make
            7. make install
            方法二:
            1.執(zhí)行rpm -i you-package.src.rpm
            2. cd /usr/src/redhat/SPECS
            3. rpmbuild -bb your-package.specs 一個(gè)和你的軟件包同名的specs文件
            這時(shí),在/usr/src/redhat/RPM/i386/ (根據(jù)具體包的不同,也可能是i686,noarch等等)
            在這個(gè)目錄下,有一個(gè)新的rpm包,這個(gè)是編譯好的二進(jìn)制文件。 執(zhí)行rpm -i new-package.rpm即可安裝完成。

            六、gdb7.2的編譯,目前gdb7.2尚未有rpm包,只有tar包,解壓縮,到壓縮目錄下執(zhí)行./configure ;mke;make install
            cofigure無須參數(shù),make時(shí)可能發(fā)生如下的錯(cuò)誤提示和解決方法
            錯(cuò)誤提示no termcap library found,解決方法如下:
            [root@localhost /]# rpm -qa |grep ncurses
            ncurses-5.5-24.20060715
            ncurses-devel-5.5-24.20060715
            對(duì)應(yīng)的rpm為ncurses-5.5-24.20060715.i386和ncurses-devel-5.5-24.20060715.i386,可以在系統(tǒng)盤上的Server目錄下可以找到。
            然后在重新configure、make、make install。
            安裝好的gdb7.2后,打開gdb的界面如下
            [root@localhost /]# gdb
            GNU gdb (GDB) 7.2
            Copyright (C) 2010 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.  Type "show copying"
            and "show warranty" for details.
            This GDB was configured as "i686-pc-linux-gnu".
            For bug reporting instructions, please see:
            <http://www.gnu.org/software/gdb/bugs/>.
            (gdb)
            上面的這個(gè)編譯問題在AMD的平臺(tái)上出現(xiàn)的頻率大些
            在編譯器要確保安裝 ncurses和flex,如果都安裝了,還是在make時(shí)報(bào)錯(cuò)誤,建議將定義編譯路徑和將路徑加到環(huán)境變量中去,如:
            export PATH=$PATH:/usr/local/gdb7.2/bin
            ./configure --prefix=/usr/local/gdb7.2(如果是全新安裝,不用設(shè)置路徑,直接configure就可以)
            make
            make install

            gdb7.2安裝時(shí)出現(xiàn)錯(cuò)誤:/usr/bin/install: cannot stat `libinproctrace.so': No such file or directory
            解決方法:進(jìn)入到gdb/gdbserver/Makefile,找到 if [ x$IPA_DEPFILES != x ]; then \
            將其改為if [ x${IPA_DEPFILES} != x ]; then \或if [ x"$(IPA_DEPFILES)" != x ]; then \
            然后重新make install即可,也可以修改Makefile.in,修改方法和上面的一樣,重新make、make install
            安裝完后,如果gdb的版本不是7.2的,重啟一次系統(tǒng)就可以,這樣的編譯錯(cuò)誤一般出現(xiàn)在新裝系統(tǒng)中。

            一般在gdb中查看STL,會(huì)出現(xiàn)以下信息One of the arguments you tried to pass to operator [ ] could not be converted to what the function wants.
            如果gdb要在調(diào)試中查看STL,必須下個(gè)腳本, http://sourceware.org/gdb/wiki/STLSupport?action=AttachFile&do=view&target=stl-views-1.0.3.gdb
            下載后將文件保持在用戶(如root)目錄,命名為.gdbinit,如果還是不能查看,則可以打開gdb,source gdbinit文件即可。
            查看時(shí)使用pvector, plist, pmap, pset, pdequeue, pstack, pqueue, ppqueue, pbitset, pstring, pwstring 命令

            如果想在如何目錄下用gdb命令,必須將:/usr/local/gdb7.2/bin加到環(huán)境變量中去
            export PATH=$PATH:/usr/local/gdb7.2/bin只是臨時(shí)環(huán)境變量,當(dāng)次登陸有用,機(jī)器重啟或下次登陸就不起作用

            永久環(huán)境變量的用法:vi /etc/profile
            在里面加入:
            export PATH=$PATH:/usr/local/gdb7.2/bin,這個(gè)對(duì)所有的用戶都有效
            或者在每個(gè)用戶下的.bashrc
            文件中加入export PATH=$PATH:/usr/local/gdb7.2/bin,但是這兩種重啟或注銷才起作用

            七、linux下c檢查內(nèi)存泄漏的簡(jiǎn)單方法
            先#include <mcheck.h>
            在需要檢查內(nèi)存泄漏的代碼開始處加入
            mtrace();
            在需要檢查內(nèi)存泄漏的代碼結(jié)束處加入
            muntrace();
            修改完成。
            在bash中,設(shè)置環(huán)境變量MALLOC_TRACE,例如:
            export MALLOC_TRACE=/tmp/mtrace
            然后執(zhí)行你的程序。
            mtrace a.out /tmp/mtrace (mtrace 程序的目標(biāo)文件 $MALLOC_TRACE)

            Memory not freed:

            -----------------

            Address Size Caller

            0x09b08378 0xa at /XXX/a.c:6

            0x09b08388 0x10 at /XXX/a.c:7

            可以看到,會(huì)顯示未釋放動(dòng)態(tài)空間的代碼具體位置
            如果mtrace不可用安裝glibc-utils的安裝包,要和libc的版本號(hào)一樣(通過rpm -q glibc來獲取glibc的版本號(hào)).
            安裝glibc-utils,需要安裝gd、libXpm兩個(gè)依賴包。這三者的版本號(hào)不一定都一致
            gd-2.0.5-11.e16.x86-64.rpm
            glibc-utils-2.12-1.32.e16.x86-64.rpm
            libXpm-3.5.10-2.e16.x86-64.rpm
            建議用yum install  glibc-utils來安裝(對(duì)于redhat或cenos)

            這個(gè)方法如今不是很有效,建議大家還是用Valgrind 。
            www.valgrind.org下載最新版,解壓縮tar –jxvf valgrind-3.2.3.tar.bz2
            切到解壓縮路徑cd valgrind-3.2.3 ./configure、 Make;make install
            我們就要用如下方法調(diào)用: #valgrind --leak-check=full --show-reachable=yes --trace-children= yes   ./a.out
            a.out是可執(zhí)行文件。主要參數(shù)說明:
             --log-fd=N 默認(rèn)情況下,輸出信息是到標(biāo)準(zhǔn)錯(cuò)誤stderr,也可以通過—log-fd=8,輸出到描述符為8的文件

                      --log-file=filename將輸出的信息寫入到filename.PID的文件里,PID是運(yùn)行程序的進(jìn)行ID。可以通過--log-file exactly=filename指定就輸出到filename文件。

                      --log-file-qualifier=<VAR>,取得環(huán)境變量的值來做為輸出信息的文件名。如—log-file-qualifier=$FILENAME。

                      --log-socket=IP:PORT 也可以把輸出信息發(fā)送到網(wǎng)絡(luò)中指定的IP:PORT去

                      --error-limit=no 對(duì)錯(cuò)誤報(bào)告的個(gè)數(shù)據(jù)進(jìn)行限制,默認(rèn)情況不做限制

                      --tool=<toolname> [default: memcheck]

            --tool=memcheck:要求用memcheck這個(gè)工具對(duì)程序進(jìn)行分析

                 --leak-ckeck=yes 要求對(duì)leak給出詳細(xì)信息

                 --trace-children=<yes|no> [default: no]跟蹤到子進(jìn)程里去,默認(rèn)請(qǐng)況不跟蹤

                 --xml=<yes|no> [default: no]將信息以xml格式輸出,只有memcheck可用

                 --gen-suppressions=<yes|no|all> [default: no]如果為yes,valgrind會(huì)在每發(fā)現(xiàn)一個(gè)錯(cuò)誤便停下讓用戶做選擇是繼續(xù)還是退

            更多選項(xiàng)請(qǐng)參看: http://www.valgrind.org/docs/manual/manual-core.html可以把一些默認(rèn)選項(xiàng)編輯在 ~/.valgrindrc文件里。

            這里使用valgrind的memcheck和callgrind兩個(gè)工具的用法,其實(shí)valgrind還有幾個(gè)工具:“cachegrind”,用于檢查緩存使用的;“helgrind”用于檢測(cè)多線程競(jìng)爭(zhēng)資源的,等等。



            八、bind9的安裝編譯,和大部分的linux上的安裝程序一樣,也是configure、make、make install,不過要注意
            configure的參數(shù)--prefix=/usr/local/bind  --enable-threads --without-openssl,prefix是路徑。
            通過dig命令直接生成named.root---------------cd /usr/local/bind/var;dig @a.root-servers.net . ns>named.root
            判斷bind是否在chroot下工作:
            找named對(duì)應(yīng)的進(jìn)行id號(hào)
            # ps -fCnamed
            UID        PID  PPID  C STIME TTY          TIME CMD
            named     1729     1  0 Nov27 ?        00:00:04 /usr/sbin/named -u named -t /var/named/chroot
            相應(yīng)的id的root
            # ls -l /proc/1729/root
            lrwxrwxrwx  1 named named 0 Nov 29 10:21 /proc/1729/root -> /var/named/chroot
            # ls -l /proc/1729/root/
            total 24
            drwxr-xr--    2 root named 4096 Nov  1 05:30 dev
            drwxr-x---    2 root named 4096 Nov  1 05:30 etc
            dr-xr-xr-x  157 root root     0 Nov 27 07:32 proc
            drwxr-x---    5 root named 4096 Nov  1 05:30 var
            看到?jīng)]有,bind9的chroot是/var/named/chroot,它的root下面有dev etc prov var這些常用的,很熟悉的
            目錄。。。
            # lsof -p 1729
            COMMAND  PID  USER   FD   TYPE     DEVICE    SIZE    NODE NAME
            named   1729 named  cwd    DIR        8,5    4096 2916360 /var/named/chroot/var/named
            named   1729 named  rtd    DIR        8,5    4096 2916356 /var/named/chroot
            named   1729 named  txt    REG        8,2  287084  764733 /usr/sbin/named
            named   1729 named  mem    REG        8,2   97120 1192403 /lib/libnsl-2.3.4.so
            named   1729 named  mem    REG        8,2  107800 1192395 /lib/tls/libpthread-2.3.4.so
            named   1729 named  mem    REG        8,2   82944  764756 /usr/lib/libgssapi_krb5.so.2.2
            named   1729 named  mem    REG        8,2   63624  764741 /usr/lib/libz.so.1.2.1.2
            named   1729 named  mem    REG        8,2    7004 1192400 /lib/libcom_err.so.2.1
            named   1729 named  mem    REG        8,2   81120 1192397 /lib/libresolv-2.3.4.so
            named   1729 named  mem    REG        8,2   47404 1191410 /lib/libnss_files-2.3.4.so
            named   1729 named  mem    REG        8,2   16732 1192394 /lib/libdl-2.3.4.so
            named   1729 named  mem    REG        8,2   25460  758093 /usr/lib/libisccc.so.0.1.0
            named   1729 named  mem    REG        8,2 1529008 1192392 /lib/tls/libc-2.3.4.so
            named   1729 named  mem    REG        8,2   57252  758097 /usr/lib/libisccfg.so.0.0.11
            named   1729 named  mem    REG        8,2   59684  758101 /usr/lib/liblwres.so.1.1.2
            named   1729 named  mem    REG        8,2  941024 1192401 /lib/libcrypto.so.0.9.7a
            named   1729 named  mem    REG        8,2  112168 1192347 /lib/ld-2.3.4.so
            named   1729 named  mem    REG        8,2  415188  764755 /usr/lib/libkrb5.so.3.2
            named   1729 named  mem    REG        8,2  136016  761815 /usr/lib/libk5crypto.so.3.0
            named   1729 named  mem    REG        8,2 1055504  758085 /usr/lib/libdns.so.16.0.0
            named   1729 named  mem    REG        8,2  224764  758089 /usr/lib/libisc.so.7.1.5
            named   1729 named    0u   CHR        1,3            2494 /dev/null
            named   1729 named    1u   CHR        1,3            2494 /dev/null
            named   1729 named    2u   CHR        1,3            2494 /dev/null
            named   1729 named    3u  unix 0xec796880          313580 socket
            named   1729 named    4u   CHR        1,3            2494 /dev/null
            named   1729 named    5r  FIFO        0,7          313587 pipe
            named   1729 named    7w  FIFO        0,7          313587 pipe
            named   1729 named    8r   CHR        1,8         2916369 /var/named/chroot/dev/random
            named   1729 named   20u  IPv4     313593             UDP localhost.localdomain:domain
            named   1729 named   21u  IPv4     313594             TCP localhost.localdomain:domain (LISTEN)
            named   1729 named   22u  IPv4     313595             UDP mail.xxxer.com:domain
            named   1729 named   23u  IPv4     313596             TCP mail.xxxer.com:domain (LISTEN)
            named   1729 named   24u  IPv4     313597             UDP *:32964
            named   1729 named   25u  IPv6     313598             UDP *:32965
            named   1729 named   26u  IPv4     313599             TCP localhost.localdomain:rndc (LISTEN)
            對(duì)比一下ldd的結(jié)果:
            #ldd /usr/sbin/named
                    liblwres.so.1 => /usr/lib/liblwres.so.1 (0x00da7000)
                    libdns.so.16 => /usr/lib/libdns.so.16 (0x00846000)
                    libisccfg.so.0 => /usr/lib/libisccfg.so.0 (0x00cee000)
                    libcrypto.so.4 => /lib/libcrypto.so.4 (0x00230000)
                    libisccc.so.0 => /usr/lib/libisccc.so.0 (0x00726000)
                    libisc.so.7 => /usr/lib/libisc.so.7 (0x00c66000)
                    libnsl.so.1 => /lib/libnsl.so.1 (0x00324000)
                    libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00f19000)
                    libc.so.6 => /lib/tls/libc.so.6 (0x0033a000)
                    libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x001b0000)
                    libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00111000)
                    libcom_err.so.2 => /lib/libcom_err.so.2 (0x00bb7000)
                    libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00d6f000)
                    libresolv.so.2 => /lib/libresolv.so.2 (0x005ab000)
                    libdl.so.2 => /lib/libdl.so.2 (0x00c44000)
                    libz.so.1 => /usr/lib/libz.so.1 (0x00176000)
                    /lib/ld-linux.so.2 (0x00498000)
             
            然后再strace -f /usr/sbin/named 看看,,

            九、通過core文件找到程序崩潰的地方
            gdb exe文件路徑 core文件路徑(都要絕對(duì)路徑)
            然后直接run;如果在gdb的調(diào)試過程中出現(xiàn)了core文件,可以直接敲bt,如果還看不到,在敲where,有時(shí)只能看到函數(shù),至于是哪一行
            要我們自己去定位;

            十、查看當(dāng)前操作系統(tǒng)內(nèi)核信息:uname -a 
                    查看當(dāng)前操作系統(tǒng)發(fā)行版信息:cat /etc/issue
                    查看cpu型號(hào):cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
                    查看物理cpu顆數(shù):cat /proc/cpuinfo | grep physical | uniq -c
                    查看cpu運(yùn)行模式: getconf LONG_BIT   結(jié)果是32表示運(yùn)行在32模式下
                    查看cpu是否支持64bit:cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l  結(jié)果大于0, 說明支持64bit計(jì)算. lm指long mode, 支持lm則是64bit        
                    查看cpu信息概要:lscpu或者cat /proc/cpuinfo


                # head -n 1 /etc/issue   # 查看操作系統(tǒng)版本
                 # cat /proc/cpuinfo      # 查看CPU信息    
                 # hostname               # 查看計(jì)算機(jī)名
                 # lspci -tv              # 列出所有PCI設(shè)備
                 # lsusb -tv              # 列出所有USB設(shè)備
                 # lsmod                  # 列出加載的內(nèi)核模塊
                 # env                    # 查看環(huán)境變量
                 # free -m                # 查看內(nèi)存使用量和交換區(qū)使用量
                 # df -h                  # 查看各分區(qū)使用情況
                 # du -sh <目錄名>        # 查看指定目錄的大小
                 # grep MemTotal /proc/meminfo   # 查看內(nèi)存總量
                 # grep MemFree /proc/meminfo    # 查看空閑內(nèi)存量
                 # uptime                 # 查看系統(tǒng)運(yùn)行時(shí)間、用戶數(shù)、負(fù)載
                 # cat /proc/loadavg      # 查看系統(tǒng)負(fù)載

                 # mount | column -t      # 查看掛接的分區(qū)狀態(tài)
                 # fdisk -l               # 查看所有分區(qū)
                 # swapon -s              # 查看所有交換分區(qū)
                 # hdparm -i /dev/hda     # 查看磁盤參數(shù)(僅適用于IDE設(shè)備)
                 # dmesg | grep IDE       # 查看啟動(dòng)時(shí)IDE設(shè)備檢測(cè)狀況
                 # ifconfig               # 查看所有網(wǎng)絡(luò)接口的屬性
                 # iptables -L            # 查看防火墻設(shè)置
                 # route -n               # 查看路由表
                 # netstat -lntp          # 查看所有監(jiān)聽端口
                 # netstat -antp          # 查看所有已經(jīng)建立的連接
                 # netstat -s             # 查看網(wǎng)絡(luò)統(tǒng)計(jì)信息
                 
                 # ps -ef                 # 查看所有進(jìn)程
                 # top                    # 實(shí)時(shí)顯示進(jìn)程狀態(tài)
                 
                 # chkconfig --list       # 列出所有系統(tǒng)服務(wù)
                 # chkconfig --list | grep on    # 列出所有啟動(dòng)的系統(tǒng)服務(wù)
             
                 # rpm -qa                # 查看所有安裝的軟件包
             
                 # w # 查看活動(dòng)用戶      # id <用戶名> # 查看指定用戶信息      # last # 查看用戶登錄日志      # cut -d: -f1 /etc/passwd # 查看系統(tǒng)所有用戶      # cut -d: -f1 /etc/group # 查看系統(tǒng)所有組      # crontab -l # 查看當(dāng)前用戶的計(jì)劃任務(wù)








            十一、其他:
            讓程序在后臺(tái)運(yùn)行的命令:nohup忽略 hangup 信號(hào)(當(dāng)用戶注銷(logout)或者網(wǎng)絡(luò)斷開時(shí),終端會(huì)收到 HUP(hangup)信號(hào)從而關(guān)閉其所有子進(jìn)程),執(zhí)行此命令會(huì)在屏幕上打印出pid,命令格式nohup 應(yīng)用程序路徑&;setsid使進(jìn)程成為不接受 HUP 信號(hào)的終端的進(jìn)程,用法setsid 應(yīng)用程序路徑;(應(yīng)用程序&)可以使進(jìn)程不在當(dāng)前終端上,所以同樣不收hup信號(hào)的干擾;
            disown [-ar] [-h] [jobspec ...]適用于已經(jīng)執(zhí)行的程序,用disown -h jobspec 來使某個(gè)作業(yè)忽略HUP信號(hào);用disown -ah 來使所有的作業(yè)都忽略HUP信號(hào);用disown -rh 來使正在運(yùn)行的作業(yè)忽略HUP信號(hào),用過 disown 之后,會(huì)將把目標(biāo)作業(yè)從作業(yè)列表中移除,我們將不能再使用jobs來查看它,但是依然能夠用ps -ef查找到它。操作對(duì)象是作業(yè),在運(yùn)行命令時(shí)在結(jié)尾加了"&"來使它成為一個(gè)作業(yè)并在后臺(tái)運(yùn)行,可通過jobs命令來得到所有作業(yè)的列表,如果并沒有把當(dāng)前命令作為作業(yè)來運(yùn)行,用CTRL-z(將當(dāng)前進(jìn)程掛起)才能得到它的作業(yè)號(hào),再用bg jobspec 來將它放入后臺(tái)并繼續(xù)運(yùn)行;

            時(shí)間同步: ntpdate 域名或Ip都可以
            時(shí)間設(shè)置:date --set “07/07/06 10:19" (月/日/年時(shí):分:秒)


            /etc/init.d/nscd restart      //清除DNS緩存

            軟鏈接:ln -s source dist  這個(gè)命令相當(dāng)dist是source的快捷方式,一般source要使用絕對(duì)路徑。
            硬鏈接:ln source dist 相當(dāng)于dest是source的一個(gè)鏡像或拷貝

            遠(yuǎn)程拷貝:scp -P 端口 用戶名@ip:文件絕對(duì)路徑(遠(yuǎn)端) 目標(biāo)路徑(本地);如果是文件夾,加上-r參數(shù),-p和-r都是可選的參數(shù)
            遠(yuǎn)程上傳: 命令比類似,不同的是,本地文件路徑在前,遠(yuǎn)端路徑在后



            進(jìn)程信息查看命令:
            所打開的文件
            獲取方法1:
            # ls -l /proc/$PID/fd/

            獲取方法2:
            # lsof -p $PID

            內(nèi)存分配表
            獲取方法:
            # lcat /proc/$PID/maps

            堆棧
            獲取方法:
            # pstack $PID

            所發(fā)出的系統(tǒng)調(diào)用
            獲取方法:
            # strace -p $PID

            所發(fā)出的庫函數(shù)調(diào)用
            獲取方法:
            # ltrace -p $PID

            進(jìn)程繼承關(guān)系
            獲取方法:
            ps -eo user,pid,ppid,%cpu,%mem,vsz,rss,tty,stat,start,time,wchan,command --forest

            運(yùn)行時(shí)dumpcore
            獲取方法:
            # gcore $PID 

            讓程序后臺(tái)啟動(dòng):
            1、如果程序或命令沒有輸出到屏幕,用 “命令 &”,如果用(命令 &),則進(jìn)程無法通過jobs來查看,必須用ps -ef|grep,也可以躲過HUP信號(hào);
            2、nohup :nohup 的用途就是讓提交的命令忽略 hangup 信號(hào),如果有輸出,而在命令的最后加上&;
            (當(dāng)用戶注銷(logout)或者網(wǎng)絡(luò)斷開時(shí),終端會(huì)收到 HUP(hangup)信號(hào)從而關(guān)閉其所有子進(jìn)程),
            3、setsid :可使進(jìn)程不接收hangup,使用方法:setsid + 程序的啟動(dòng)命令
            4、disown:disown -h jobspec 來使某個(gè)作業(yè)忽略HUP信號(hào);disown -ah 來使所有的作業(yè)都忽略HUP信號(hào);
             disown -rh 來使正在運(yùn)行的作業(yè)忽略HUP信號(hào)。 使用此命令后須用ps -ef來查找;一般的使用方法是在這個(gè)命令后加&
            5、screen:提供了 ANSI/VT100 的終端模擬器,使它能夠在一個(gè)真實(shí)終端下運(yùn)行多個(gè)全屏的偽終端。
            screen -dmS session name 來建立一個(gè)處于斷開模式下的會(huì)話(并指定其會(huì)話名);screen -list 來列出所有會(huì)話。
            screen -r session name 來重新連接指定會(huì)話。 用快捷鍵CTRL-a d 來暫時(shí)斷開當(dāng)前會(huì)話。

             

            history:查看操作系統(tǒng)上的(命令的)歷史記錄,需要記住的是這里查看的只是登錄終端的記錄,并非所有終端的記錄;
            HISTTIMEFORMAT='%F %T: ';history,可在查看歷史記錄同時(shí)查看操作時(shí)間 


            vim在redhat上面的安裝:
             wget ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
            ./configure --prefix=/usr/local --enable-multibyte --with-features=big --disable-selinux 
            make;make install
            安裝首先要安裝ncurses-devel-5.5-24.20060715.x86_64.rpm
            否則無法安裝成功

            axel是類似迅雷的多線程下載工具

            posted on 2010-09-02 22:34 Benjamin 閱讀(4085) 評(píng)論(0)  編輯 收藏 引用 所屬分類: linux

            久久久人妻精品无码一区 | 久久久久se色偷偷亚洲精品av| 亚洲国产成人久久笫一页| 亚洲国产精品无码久久久秋霞2| 久久精品九九亚洲精品| 久久精品国产亚洲精品| 一本色道久久88—综合亚洲精品| 好属妞这里只有精品久久| 久久笫一福利免费导航 | 久久久久国色AV免费看图片| 综合人妻久久一区二区精品| 久久99精品久久久久久秒播| 久久综合给合久久国产免费| 麻豆国内精品久久久久久| 国产情侣久久久久aⅴ免费| 国产精品美女久久福利网站| 99久久无码一区人妻| 国产午夜福利精品久久2021| 久久无码AV中文出轨人妻| 欧美性大战久久久久久| 国产成人AV综合久久| 91精品国产91久久久久久蜜臀| 婷婷久久久亚洲欧洲日产国码AV| 国产一区二区久久久| yy6080久久| 热99RE久久精品这里都是精品免费 | 91精品国产综合久久婷婷| 欧美午夜精品久久久久免费视| 久久综合色老色| 久久人与动人物a级毛片| 国内精品久久久久影院薰衣草| 99久久国产亚洲综合精品| 亚洲伊人久久综合影院| 麻豆av久久av盛宴av| 精品久久久中文字幕人妻| 亚洲精品乱码久久久久久中文字幕| 狠狠色噜噜色狠狠狠综合久久| 亚洲精品乱码久久久久久按摩| 热re99久久精品国99热| 久久久久国产精品| 久久国产午夜精品一区二区三区|