• <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)。
            隨筆 - 397, 文章 - 0, 評論 - 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)識默認(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)這個是不開啟的)
            關(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) 即時生效,重啟后失效
            開啟: service iptables start
            關(guān)閉: service iptables stop
            需要說明的是對于Linux下的其它服務(wù)都可以用以上命令執(zhí)行開啟和關(guān)閉操作。
            在開啟了防火墻時,做如下設(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驗證機制。
            vsftp也是FTP服務(wù)器軟件,功能比gssftp完備。也是推薦使用的FTP服務(wù)器軟件。它是獨立守護程序。
            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連接時的"500 OOPS:cannot change directory:/root"錯誤,解決方法:
             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的目的是因為好多ftp客戶端不支持KRB5驗證機制,disable=no開啟,service xinetd restart
            但是gssftp不夠安全。

            四、gcc的安裝:有了下面的六個包,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的強制命令,在上述命令后面加上參數(shù)--force --nodeps卸載用rpm -e *.rpm;
            上面的7個包,在Redhat5上是可以找到,在Redhat4上能找到幾個就裝幾個,我在Redhat4上只找到了6個,Redhat5上面7包都有,
            安裝時如果加了--force --nodeps,則順序無所謂。

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

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

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

            查看是否安裝了rpm包,用rpm -qa|grep rpm包名,或者rpm -qa;
            rpm-V命令用來驗證一個軟件包 ,rpm -Va(v是大寫) 驗證所有已安裝的軟件包,可以顯示已刪除的文件信息;
            rpm -qf 文件名,顯示文件屬于那個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)于一個軟件包的版本,用途等相關(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表示保持文件的更新時間。


            安裝.src.rpm軟件包的方法:這類軟件包是包含了原始碼的rpm包,在安裝時需要進(jìn)行編譯。這類軟件包有兩種安裝方法:
            方法一:
            1.執(zhí)行rpm -i your-package.src.rpm
            2. cd /usr/src/redhat/SPECS
            3. rpmbuild -bp your-package.specs 一個和你的軟件包同名的specs文件
            4. cd /usr/src/redhat/BUILD/your-package/ 一個和你的軟件包同名的目錄
            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 一個和你的軟件包同名的specs文件
            這時,在/usr/src/redhat/RPM/i386/ (根據(jù)具體包的不同,也可能是i686,noarch等等)
            在這個目錄下,有一個新的rpm包,這個是編譯好的二進(jìn)制文件。 執(zhí)行rpm -i new-package.rpm即可安裝完成。

            六、gdb7.2的編譯,目前gdb7.2尚未有rpm包,只有tar包,解壓縮,到壓縮目錄下執(zhí)行./configure ;mke;make install
            cofigure無須參數(shù),make時可能發(fā)生如下的錯誤提示和解決方法
            錯誤提示no termcap library found,解決方法如下:
            [root@localhost /]# rpm -qa |grep ncurses
            ncurses-5.5-24.20060715
            ncurses-devel-5.5-24.20060715
            對應(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)
            上面的這個編譯問題在AMD的平臺上出現(xiàn)的頻率大些
            在編譯器要確保安裝 ncurses和flex,如果都安裝了,還是在make時報錯誤,建議將定義編譯路徑和將路徑加到環(huán)境變量中去,如:
            export PATH=$PATH:/usr/local/gdb7.2/bin
            ./configure --prefix=/usr/local/gdb7.2(如果是全新安裝,不用設(shè)置路徑,直接configure就可以)
            make
            make install

            gdb7.2安裝時出現(xiàn)錯誤:/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)就可以,這樣的編譯錯誤一般出現(xiàn)在新裝系統(tǒng)中。

            一般在gdb中查看STL,會出現(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,必須下個腳本, http://sourceware.org/gdb/wiki/STLSupport?action=AttachFile&do=view&target=stl-views-1.0.3.gdb
            下載后將文件保持在用戶(如root)目錄,命名為.gdbinit,如果還是不能查看,則可以打開gdb,source gdbinit文件即可。
            查看時使用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只是臨時環(huán)境變量,當(dāng)次登陸有用,機器重啟或下次登陸就不起作用

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

            七、linux下c檢查內(nèi)存泄漏的簡單方法
            先#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

            可以看到,會顯示未釋放動態(tài)空間的代碼具體位置
            如果mtrace不可用安裝glibc-utils的安裝包,要和libc的版本號一樣(通過rpm -q glibc來獲取glibc的版本號).
            安裝glibc-utils,需要安裝gd、libXpm兩個依賴包。這三者的版本號不一定都一致
            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來安裝(對于redhat或cenos)

            這個方法如今不是很有效,建議大家還是用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)錯誤stderr,也可以通過—log-fd=8,輸出到描述符為8的文件

                      --log-file=filename將輸出的信息寫入到filename.PID的文件里,PID是運行程序的進(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 對錯誤報告的個數(shù)據(jù)進(jìn)行限制,默認(rèn)情況不做限制

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

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

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

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

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

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

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

            這里使用valgrind的memcheck和callgrind兩個工具的用法,其實valgrind還有幾個工具:“cachegrind”,用于檢查緩存使用的;“helgrind”用于檢測多線程競爭資源的,等等。



            八、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對應(yīng)的進(jìn)行id號
            # 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)
            對比一下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文件路徑(都要絕對路徑)
            然后直接run;如果在gdb的調(diào)試過程中出現(xiàn)了core文件,可以直接敲bt,如果還看不到,在敲where,有時只能看到函數(shù),至于是哪一行
            要我們自己去定位;

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


                # head -n 1 /etc/issue   # 查看操作系統(tǒng)版本
                 # cat /proc/cpuinfo      # 查看CPU信息    
                 # hostname               # 查看計算機名
                 # 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)運行時間、用戶數(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       # 查看啟動時IDE設(shè)備檢測狀況
                 # ifconfig               # 查看所有網(wǎng)絡(luò)接口的屬性
                 # iptables -L            # 查看防火墻設(shè)置
                 # route -n               # 查看路由表
                 # netstat -lntp          # 查看所有監(jiān)聽端口
                 # netstat -antp          # 查看所有已經(jīng)建立的連接
                 # netstat -s             # 查看網(wǎng)絡(luò)統(tǒng)計信息
                 
                 # ps -ef                 # 查看所有進(jìn)程
                 # top                    # 實時顯示進(jìn)程狀態(tài)
                 
                 # chkconfig --list       # 列出所有系統(tǒng)服務(wù)
                 # chkconfig --list | grep on    # 列出所有啟動的系統(tǒng)服務(wù)
             
                 # rpm -qa                # 查看所有安裝的軟件包
             
                 # w # 查看活動用戶      # id <用戶名> # 查看指定用戶信息      # last # 查看用戶登錄日志      # cut -d: -f1 /etc/passwd # 查看系統(tǒng)所有用戶      # cut -d: -f1 /etc/group # 查看系統(tǒng)所有組      # crontab -l # 查看當(dāng)前用戶的計劃任務(wù)








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

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


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

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

            遠(yuǎn)程拷貝:scp -P 端口 用戶名@ip:文件絕對路徑(遠(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

            運行時dumpcore
            獲取方法:
            # gcore $PID 

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

             

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


            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 閱讀(4080) 評論(0)  編輯 收藏 引用 所屬分類: linux

            久久国产成人午夜AV影院| 99精品久久精品| 亚洲AⅤ优女AV综合久久久| 久久久久国产成人精品亚洲午夜| 一级女性全黄久久生活片免费 | 久久99精品久久久久久秒播| 久久久精品国产亚洲成人满18免费网站 | 一本大道久久香蕉成人网| 亚洲乱码中文字幕久久孕妇黑人| 777米奇久久最新地址| 天堂无码久久综合东京热| 久久久久久毛片免费播放| 嫩草影院久久99| 一本久久a久久精品vr综合| 久久久久久免费一区二区三区| 久久精品这里只有精99品| 99精品国产综合久久久久五月天| 欧美一区二区精品久久| 久久久久久亚洲精品成人| 日批日出水久久亚洲精品tv| 久久久久亚洲精品日久生情| 久久黄色视频| 久久国产乱子伦精品免费强| 久久精品国产清自在天天线| 久久久久九九精品影院| 久久精品九九亚洲精品天堂 | 久久99精品国产| 久久一日本道色综合久久| 天天做夜夜做久久做狠狠| 99久久婷婷国产综合精品草原| 国产精品无码久久久久久| 国产精品久久新婚兰兰| 久久久久亚洲AV无码专区桃色| 国产精品天天影视久久综合网| 99久久久精品免费观看国产| 亚洲国产欧美国产综合久久| 久久九九兔免费精品6| 久久久国产打桩机| 久久天天躁狠狠躁夜夜不卡| 无码人妻久久一区二区三区蜜桃| 色婷婷狠狠久久综合五月|