Note for Linux

一、系統
# uname -a # 查看內核/操作系統/CPU信息
# head -n 1 /etc/issue # 查看操作系統版本
# cat /proc/cpuinfo # 查看CPU信息
getconf LONG_BIT 查看是32位還是64位
查看系統信息
cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)
cat /proc/interrupts - 中斷
cat /proc/ioports - 設備IO端口
cat /proc/meminfo - 內存信息(i.e. mem used, free, swap size)
cat /proc/partitions - 所有設備的所有分區
cat /proc/pci - PCI設備的信息
cat /proc/swaps - 所有Swap分區的信息
cat /proc/version - Linux的版本號 相當於 uname -r
uname -a - 看系統內核等信息
cat /etc/redhat-release  如何看出redhat的版本以及更新版本(7.3?8.0?)
# hostname # 查看計算機名
# lspci -tv # 列出所有PCI設備
# lsusb -tv # 列出所有USB設備
# lsmod # 列出加載的內核模塊
# env # 查看環境變量


二、資源
# free -m # 查看內存使用量和交換區使用量
# df -h # 查看各分區使用情況
# du -sh <目錄名> # 查看指定目錄的大小
# grep MemTotal /proc/meminfo # 查看內存總量
# grep MemFree /proc/meminfo # 查看空閒內存量
# uptime # 查看系統運行時間、用戶數、負載
# cat /proc/loadavg # 查看系統負載


三、磁盤和分區
# mount | column -t # 查看掛接的分區狀態
# fdisk -l # 查看所有分區
                            df -lh
                            查看分區狀況及文件系統:fdisk -l
                            查看磁盤分區狀況及文件系統:cfdisk -Ps
                            查看磁盤分區狀況及文件系統:sfdisk -l
# swapon -s # 查看所有交換分區
# hdparm -i /dev/hda # 查看磁盤參數(僅適用於IDE設備)
# dmesg | grep IDE # 查看啓動時IDE設備檢測狀況




四、網絡
# ifconfig # 查看所有網絡接口的屬性
# iptables -L # 查看防火牆設置
# route -n # 查看路由表
# netstat -lntp # 查看所有監聽端口
# netstat -antp # 查看所有已經建立的連接
# netstat -s # 查看網絡統計信息


五、進程
# ps -ef # 查看所有進程
# top # 實時顯示進程狀態
#cat /proc/sys/kernel/threads-max  #查看最大線程數
$ulimit -a


  /etc/security/limits.conf 






六、用戶
# w # 查看活動用戶
# id <用戶名> # 查看指定用戶信息
# last # 查看用戶登錄日誌
# cat /etc/passwd # 查看系統所有用戶  useradd 注:添加用戶   passwd 注:爲用戶設置密碼
  usermod 注:修改用戶命令,可以通過usermod 來修改登錄名、用戶的家目錄等等;
  pwcov 注:同步用戶從/etc/passwd 到/etc/shadow
  pwck 注:pwck是校驗用戶配置文件/etc/passwd 和/etc/shadow 文件內容是否合法或完整;
  pwunconv 注:是pwcov 的立逆向操作,是從/etc/shadow和 /etc/passwd 創建/etc/passwd ,然後會刪除 /etc/shadow 文件;
  finger 注:查看用戶信息工具   id 注:查看用戶的UID、GID及所歸屬的用戶組
   chfn 注:更改用戶信息工具   su 注:用戶切換工具
# crontab -l # 查看當前用戶的計劃任務
#groupadd dba  #創建 用戶組
#passwd username 修改密碼


七、服務
# chkconfig --list # 列出所有系統服務
# chkconfig --list | grep on # 列出所有啓動的系統服務


八、程序
# rpm -qa # 查看所有安裝的軟件包
#rpm -ivh linuxqq-v1.0.2-beta1.i386.rpm 安裝
#rpm -e proftpd-1.2.8-1 卸載軟件包,不可以有後綴rpm
#rpm -ql 包名  一個rpm包中的文件安裝位置,也可用 #which 包名


九、修改用戶所屬組
#usermod -g 用戶組 用戶名


十、修改文件所屬組
#chgrp 組名  文件路徑與名


十一、解壓拆包
$gzip -d boesp3.tar.gz
$tar -xvf  boesp3.tar


十二、修改文件所屬用戶和組
# chown -R 用戶名:oinstall /oracle*


1、關閉防火牆
#chkconfig --level 2345 iptables off
# chkconfig --list | grep iptables
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
#service iptables stop
2、關閉SELINUX
#vi /etc/selinux/config
將“SELINUX= enforcing”修改爲“SELINUX=disabled”  
   或者修改SELINUX
# setsebool allow_ftpd_full_access  1
# setsebool allow_ftpd_use_cifs 1
# setsebool allow_ftpd_use_nfs 1
# setsebool ftp_home_dir  1
# setsebool httpd_enable_ftp_server 1
# setsebool tftp_anon_write 1
# getsebool -a|grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> on
allow_ftpd_use_cifs --> on
allow_ftpd_use_nfs --> on
ftp_home_dir --> on
ftpd_connect_db --> off
httpd_enable_ftp_server --> on
tftp_anon_write --> on
3、修改字符集
vi /etc/sysconfig/i18n
LANG="zh_CN.gbk"  
4、設置VNC
         1)首先檢查是否安裝了VNCServer #rpm -qa | grep vnc
2)配置VNC #vi /etc/sysconfig/vncservers
VNCSERVERS="1:root 2:oracle 3:zero"
VNCSERVERARGS[1]="-geometry 1344x768 -nolisten tcp -localhost"
VNCSERVERARGS[2]="-geometry 1344x768 -nolisten tcp -localhost"
VNCSERVERARGS[3]="-geometry 1344x768 -nolisten tcp -localhost"
3)執行 vncserver 命令,設置密碼
4)啓動服務 #service vncserver start
 讓VNC開機自啓動,執行命令 chkconfig vncserver on
 使用 service vncserver status 命令可查看vnc服務是否已經啓動
5)若要讓vnc顯示圖形界面,則要修改xstartup文件
  vi /root/.vnc/xstartup
vncconfig -iconic &
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
OS=`uname -s`
if [ $OS = 'Linux' ]; then
 case "$WINDOWMANAGER" in
   *gnome*)
     if [ -e /etc/SuSE-release ]; then
       PATH=$PATH:/opt/gnome/bin
       export PATH
     fi
     ;;
 esac
fi
if [ -x /etc/X11/xinit/xinitrc ]; then
 exec /etc/X11/xinit/xinitrc
fi
if [ -f /etc/X11/xinit/xinitrc ]; then
 exec sh /etc/X11/xinit/xinitrc
fi
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
gnome-session &

6)關閉防火牆  #chkconfig iptables off    重啓
7)關閉防火牆:service iptables stop
附錄:
              一般情況下不建議關閉防火牆來配置vnc,但是可以配置vnc的防火牆規則來實現,在不關閉防火牆的情況下正常登錄vnc遠程桌面,
              在vncserver的配置文件中加入一行“-I INPUT 2 -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT”,
              執行service iptables save,配置防火牆時需要注意此時vnc服務器所提供的端口號,此處以端口號5901爲例。
              如果直接執行iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT會將該行默認加入到iptbales的
              reject之後,而該文件會順序判斷,在reject之後的端口都將會被拒絕,從而會導致無法將端口打開。
          8)關閉SELINUX:以root用戶修改/etc/selinux/config文件,將“SELINUX= enforcing”修改爲“SELINUX=disabled”。
          9) 修改hosts文件:以root用戶修改/etc/hosts文件,修改後文件內容示例:
[root@ZeroComputerName ~]# cat /etc/hosts
10.95.128.36 ZeroComputerName
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
             其中,ZeroComputerName爲服務器主機名,108.38.194.33爲服務器IP地址。
          10) 修改字符集:以root用戶修改/etc/sysconfig/i18n文件,修改後文件內容示例:
[root@ZeroComputerName ~]# cat /etc/sysconfig/i18n 
LANG="zh_CN.gbk"
附:#echo $LANG  
   #export LANG=zh_CN.gbk
 11)修改VI的字符編碼:
    默認vi/vim會根據terminal的locale設置,使用相應的字符編碼。如: # locale
 12) so文件沒有:a、# find / -name libgtkembedmoz.so
                     /usr/lib/firefox-2.0.0.10/libgtkembedmoz.so # 在 firefox 中找到這個庫文件。 
# vi /etc/ld.so.conf # 編輯庫文件配置文件,添加一行: /usr/lib/firefox-2.0.0.10
# /sbin/ldconfig # 使得對剛纔的配置生效 
                          b、# /sbin/ldconfig  載入配置
                          c、ldcofig將搜索以上所有的目錄,爲共享庫建立一個緩存文件/etc/ld.so.cache。
                             爲了確認ldconfig已經搜索到ImageMagick的庫,我們可以用上面介紹的strings
                             命令從ld.so.cache裏面抽取文本信息來檢查一下:
                             strings /etc/ld.so.cache | grep ImageMagick 
                          d、so文件的獲取:
                                1、先安裝alien ; sudo apt-get install alien
2、運行alien將軟件包轉換成*.deb包 sudo alien -d *.rpm 
3、解壓生成的*.deb包 sudo dpkg -x *.deb 
4、在解壓的文件目錄中,找到相應的 *.so.* 文件,將其複製到庫中。sudo cp *.so.* /lib/
 e、yum localinstall xxx.rpm
ln 文件名 [鏈接名]
          13) mount :     #mount -ext2 /dev/hda1 /mnt/hda1  
                          #umount /dev/hda1    在急救模式下必須對所掛的分區進行umount的操作,系統纔會調用sync命令強制將磁盤緩衝的所有數據寫入磁盤
                          #fsck -b 8193 /dev/hda1
5、操作技巧:1)RHEL 5要在虛擬控制檯之間切換,使用:Ctrl-Alt-F[[1-6](RHEL 6是用Ctrl-Alt-F[[2-7]) 
               RHEL 5訪問圖形化控制檯,使用:Ctrl-Alt-F7(RHEL 6是用Ctrl-Alt-F1) 
             2)命令runlevel:可以查看運行等級
             3)在init 5下執行命令init 3,切換到命令行模式,然後再運行runlevel,會發現運行等級變成5 3,表示上次運行等級是5,現在是3。
               再執行startx,進入到圖形界面,運行runlevel,依然是5 3     
               無法啓動圖形界面  export LC_ALL=zh_CN.UTF-8 (或.GBK等) startx              
             4)網絡連接:系統首選項網絡連接圖形化設置IP地址和網卡,網絡服務設置後一定要service network restart,這個命令重啓所有網卡
             5)輸入system-config-date或者系統管理日期和時間
               輸入system-config-printer或者系統管理打印
             6)開一個Terminal就是開一個Shell?最大的好處是可以使用table鍵補全,Ctrl+Shift+t開一個新的Terminal
             7)echo $SHELL  --查看當前用戶的Shell,$後面接的是變量,如PATH、SHELL,系統變量都是大寫的
             8) 通配符:只有部分命令支持,如grep find  *  -匹配零個或多個字符   
            ?  -匹配任何單個字符   
            [0-9]  -匹配一個數字範圍  
            [abc] -匹配列表裏面的任意一個字符,或a或b或c  
            [^abc] -匹配列表以外的任意一個字符   
            ^ -標記一行的開始  
            $  -標記一行的結束 
      9)命令history可以查看歷史操作記錄,其保留在家目錄的.bash_history下 
        清空歷史紀錄:history -c 上下鍵調用歷史操作記錄,
        “!加上歷史記錄號”定位具體使用歷史操作記錄      
      10)Ctrl-c:終止前臺進程   Ctrl-z:暫停前臺進程  Ctrl-d
      11)分區順序:1、初始化磁盤(比如初始化爲MBR),2、分區3、格式化分區4、在文件/etc/fstab中定義掛載點
      12)LVM定義過程(劃分邏輯捲過程): 1、PV(物理卷):把物理分區變成物理卷,使用命令pvcreate 
                                         2、VG(卷組Volume Group):把物理卷變成卷組,形成一個虛擬大磁盤,使用命令vgcreate 
                                         3、LV(邏輯卷Logical Volume):再把卷組分成邏輯卷,使用命令lvcreate,設備號:/dev/vgname/lvname
                                            刪除邏輯卷必須先刪除LV,再刪除VG,最後刪除PV。點擊“移除選擇的邏輯卷”,再刪除VG,最後刪除PV
      13)管理系統軟件管理系統軟件管理系統軟件管理系統軟件 系統管理添加刪除軟件 
          圖形化界面:gpk-application (RHEL6)  圖形化界面:system-config-package (RHEL5)
      14)yum install出現error,用命令yum clean all清空一下yum依賴關係緩存和軟件包緩存 
      yum groupinstall   --安裝包組,比如安裝中文語言包:yum groupinstall chinese-support
              yum list   --查看已安裝和可以安裝的軟件包 
              yum info 包名  --查看軟件包的信息 
              yum grouplist   --查看已安裝和可以安裝的軟件包組 
              yum groupinfo   --查看軟件包組的信息 
              yun remove 包名  --刪除、卸載軟件包
      15)vi /etc/sysconfig/network全局網絡配置文件(主機名HOSTNAME=、網絡是否開啓、IPV6是否開啓等等) 使用命令setup命令配置網絡地址,
         但不要在這裏配置DNS,因爲DNS一般配置在單獨文件/etc/resolv.conf中,修改之後不用重啓網絡,但是在setup中寫需要重啓網絡才行  
         使用ifconfig  ethX 命令查看接口配置 
         使用ifup ethX 命令來啓用接口  
         使用ifdown ethX 命令來禁用接口   
         網卡的配置文件在(例如eth0): /etc/sysconfig/network-scripts/ifcfg-eth0 
         BOOTPROTO=static表示靜態地址,dhcp表示接受DHCP,none和static一樣作用 
         把NM CONTROLLEN="yes"註釋掉表示關閉NetworkManager
         就是圖形化右上角的小燈,最好chkconfig NetWork Manager off
      16)管理用戶和用戶組管理用戶和用戶組管理用戶和用戶組管理用戶和用戶組 圖形界面:“系統”->“管理”->“用戶和組羣”,保存在/home/下 
         /etc/passwd   --保存用戶信息,普通用戶ID從500開始 
         /etc/shadow   --保存用戶密碼 shadow用戶名後加“!!”或者“!”表示鎖定 
         /etc/group    --保存組信息 
         /etc/gshadow  --保存組密碼 
         linux的root目錄默認是/root,普通用戶如test的目錄默認是/home/test
      17)掛載點:/media、/mnt   --習慣將光盤、USB設備等掛載到/media,其他掛載到/mnt
      18)ctrl+u 清除光標前面的所有字符 ctrl+k 清除光標後面的所有字符
      19)硬鏈接: ln 文件名 [鏈接名]   軟鏈接:ln -s 文件名   inode號是文件位置的號
      20)使用命令tune2fs -l 檢查文件系統參數,查看超級塊(和dumpe2fs命令一樣) 如:tune2fs -l /dev/sda1
      21)運行等級 /etc/inittab
           (0)關機  (1)單用戶,用於系統排錯,比如重置root密碼
           (2)類似3,無NFS (3)完整的含有網絡功能的純文本模式  
           (4)系統保留或自定義  (5)X11,圖形模式  (6)重啓
      22)getenforce   --獲取SELinux狀態  setenforce 0和setenforce 1  --0是Permissive,1是Enforcing
      23)>(相當於1>)把STDOUT重導向到文件
         2>把STDERR重導向到文件
         &>把所有輸出重導向到文件
         >文件內容會被覆蓋
         >>原有內容基礎上,追加內容
      24)lvextend可增大邏輯卷 如:lvextend -L +300M /dev/vg3/lv3   --增加300M,如果不用“+”,會變成增加到300M 
         resize2fs可在線增加EXT3文件系統 vgextend在已有卷組中添加新的物理卷 
         減小LVM卷的大小  1、umount  /media  --卸載文件系統
                           2、fsck -f  /dev/vg3/lv3   --掃描文件系統 
                           3、resize2fs  /dev/vg3/lv3  300M   --減少文件系統,減到300M 
                           4、lvreduse -L 300M  /dev/vg3/lv3   --減少卷,lv到300M 
                           5、mount  /dev/vg3/lv3  /media/ 
                           注意: 必須首先減小文件系統  需要檢查文件系統但不可在線(在線是指mount,掛載的情況下)執行 fsck lvreduce接着會減少卷  
                           用下面的方法可減小卷組:  pvmove  /dev/hda3 vgreduce  vg0   /dev/hda3 
      25) 1、*.tar 用 tar –xvf 解壓 
          2、*.gz 用 gzip -d或者gunzip 解壓  
          3、*.tar.gz和*.tgz 用 tar –xzf 解壓  
          4、*.bz2 用 bzip2 -d或者用bunzip2 解壓  
          5、*.tar.bz2用tar –xjf 解壓  
          6、*.Z 用 uncompress 解壓  
          7、*.tar.Z 用tar –xZf 解壓  
          8、*.rar 用 unrar e解壓  
          9、*.zip 用 unzip 解壓
          10、 # tar -cf all.tar *.jpg 這條命令是將所有.jpg的文件打成一個名爲all.tar的包。-c是表示產生新的包,-f指定包的文件名。
               # tar -tf all.tar    這條命令是列出all.tar包中所有文件,-t是列出文件的意思
               # tar -xf all.tar     這條命令是解出all.tar包中所有文件,-t是解開的意思
                   -c: 建立壓縮檔案 -x:解壓  -t:查看內容  -r:向壓縮歸檔文件末尾追加文件  -u:更新原壓縮包中的文件
                        下面的參數-f是必須的  -f: 使用檔案名字,切記,這個參數是最後一個參數,後面只能接檔案名。
                          壓縮  gzip name.tar
             26)字符編碼:/etc/sysconfig/i18n
                           LANG=zh_CN.GBK
                           export LANG
                           locale charmap
                           默認文件夾亂碼:
                           /home/yourusername(實際用戶主目錄)/document/Home.desktop
                           /home/yourusername(實際用戶主目錄)/.config/user-dirs.*
                           /usr/share/locale/zh_CN/LC_MESSAGES/xdg-user-dirs.mo
                           /usr/share/locale/zh_CN/charset
                           命令:xdg-user-dirs-update                       
                                 一個方法是先運行xdg-user-dirs-update命令,然後修改~/.config/user-dirs.dirs文件,將其中的中文目錄改爲英文目錄。
另一個方法是先刪除~/.config/user-dirs.dirs文件,再運行LANG=en_US.UTF-8 xdg-user-dirs-update
命令,讓其重新生成~/.config/user-dirs.locale及~/.config/user-dirs.dirs配置文件
             27)查看JAVA版本:]# java -version
                查看開關進程時間:bootchart
             28)亂碼:1.終端(純shell界面)的亂碼 vi /etc/profile 
                                                export LC_ALL="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF-8:en_US:en:zh:zh_TW:zh_CN.BIG5" 
                                                保存退出,reboot系統即可..
                      2.X-window(圖形界面)的亂碼 vi /etc/sysconfig/i18n 
                                                 LANG="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF8:en_US:en:zh:zh_TW:zh_CN.BIG5" 
                                                 LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF8:en_US:en:zh:zh_TW:zh_CN.BIG5" 
             29)在修改/etc/hosts後sendmail啓動的很慢,解決辦法是
修改 /etc/hosts
修改前:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain localhost 
::1             localhost6.localdomain6 localhost6
192.168.100.129 chub-rhel5      chub-rhel5-alias
修改後:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain localhost chub-rhel5
::1             localhost6.localdomain6 localhost6
192.168.100.129 chub-rhel5      chub-rhel5-alias
30)刪除亂碼文件夾名
       使用find命令將文件名傳遞給rm命令。e.g:刪除節點爲12345的亂碼文件夾可以 
                    find ./ -inum 12345 -print -exec rm {} -rf \;   注斜槓的正反方向及分號
            31)linux主菜單失效:
              /etc/xdg/menus/applications.menu這個文件,拷貝一份將你壞掉的/home/your_user_name/.config/menus/applications.menu文件替換掉就可以了。
             或者使用命令 
  cd /home/your_user_name/.config/menus  
  mv ./applications.menu applications.menu.bak  
  cp /etc/xdg/menus/applications.menu ./ 
                    restart X server by using "Ctrl-Alt-Backspace"
                    把gnome配置文件都刪掉吧:rm -rf ~/.gnome* ~/.gconf*
                    刪除rm -rf /tmp/ 下帶USER的相關文件
           32)telnet/ftp登錄時特別慢,方法一:客戶機的IP地址/名字加到/etc/hosts中或加到DNS裏
                                       方法二:取消tcpd,修改/etc/inetd.conf
           33)重裝圖形界面:

1,進入字符界面

2,掛裝光盤

[root@localhost ~]# mount /dev/cdrom /media/

3,修改/etc/yum.repos.d/rhel-source.repo 構建本地光盤yum倉庫

修改前:
cp /etc/yum.repos.d/rhel-source.repo /etc/yum.repos.d/rhel-source.repo.bak
[root@localhost ~]# vi /etc/yum.repos.d/rhel-source.repo

[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-source-beta]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

修改後:

[root@localhost ~]# vi /etc/yum.repos.d/rhel-source.repo

[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///media/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-source-beta]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
baseurl=file:///media/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

4,用yum安裝

[root@localhost ~]# yum -y groupinstall "X Window System"

[root@localhost ~]# yum -y groupinstall Desktop

至此Over
34)修改命令提示符的格式:設置變量PS1='[\u@\h \w \A #\#]\$'
\u :當前用戶的賬號名稱
\w :完整的工作目錄名稱。家目錄會以 ~代替
\W :利用basename取得工作目錄名稱,所以只會列出最後一個目錄
\# :下達的第幾個命令
\$ :提示字符,如果是root時,提示符爲:# ,普通用戶則爲:$
在上例中我們看出了,PS1在賦值的時用了單引號(‘),下面我們將討論下在SHELL變量賦值,先看鳥哥書上的變量賦值:  
1. 變量與變量內容以等號( = )來連結;  
2. 等號兩邊不能直接接空格符;  
3. 變量名稱只能是英文字母與數字,但是數字不能是開頭字符;  
4. 若在賦值中有空格符可以使用雙引號或單引號來將變量內容結合起來,但須要特別留意, 
  雙引號內的特殊字符可以保有變量特性,但是單引號內的特殊字符則僅爲一般字符;  
5. 必要時需要以反斜槓(\)來將特殊符號 ( 如 Enter, $, \, 空格符, ' 等 ) 變成一般符號;  
6. 在一串指令中,還需要藉由其它的指令提供的信息,可以使用引用字符(` command` );
  (特別特別注意,那個 ` 是鍵盤上方的數字鍵 1 左邊那個按鍵,而不是單引號!)  
7. 若該變量爲擴增變量內容時,則需以雙引號及 $變量名稱 如: "$PATH":/home繼續累加內容;  
8. 若該變量需要在其它子程序執行,則需要以 export 來使變量變成環境變量, 如export PATH  
9. 通常大寫字符爲系統預設變量,自行設定變量可以使用小寫字符,方便判斷 ( 純粹依照使用者興趣與嗜好 ) ;  
10. 取消變量的方法爲: unset 變量名稱。
 35)安裝jdk:
    1)去http://java.sun.com/j2se/1.4.2/download.html 下載一個Linux Platform的JDK,建議下載RPM自解壓格式的
      (RPM in self-extracting file,j2sdk-1_4_2_06-linux-i586-rpm.bin);
    2)[root@LinuxServer rpm]# chmod 755 j2sdk-1_4_2_06-linux-i586-rpm.bin
               [root@LinuxServer rpm]# ./j2sdk-1_4_2_06-linux-i586-rpm.bin
             3) 設置環境變量,修改.bashrc文件或/etc/profile:
                 [root@LinuxServer rpm]#vi .bashrc
set JAVA_HOME=/usr/java/j2sdk1.4.2_06
export JAVA_HOME
set PATH=$PATH:$JAVA_HOME/bin
export PATH
set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH
4) 環境設置OK,看看JDK是否能正常工作,我們來寫一個測試文件test.java
[root@LinuxServer rpm]#vi test.java
class test 
{
      public static void main(String[] args) 
      {
             System.out.println("Hello World!");
      }

保存退出,下面來編譯、執行;
[root@LinuxServer text]# javac test.java
[root@LinuxServer text]# JAVA test
Hello World! 
6.Xmanager :10.62.44.26(王彬科室) root/root
            10.62.44.51(測試)root/root
            10.62.102.222 root/root222
7.vi 快捷鍵
    ( 移到句子的開頭
  ) 移到句子的結尾
  { 移到段落的開頭
  } 移到下一個段落的開頭
  :r file 讀入文件file內容,並插在當前行後
  :nr file 讀入文件file內容,並插在第n行後
  x 刪除光標處的字符,可以在x前加上需要刪除的字符數目
  nx 從當前光標處往後刪除n個字符
  /text 在文件中向前查找text
  ?text 在文件中向後查找text
  f text 在當前行向前查找text
  F text 在當前行向後查找text
  , 以相反的方向重複前面的f、F、t或T查找命令
  ; 重複前面的f、F、t或T查找命令
    u 撤消最後一次修改
    . 重複最後一次修改
    :set nu 每行前打印行號
    :.= 打印當前行的行號
    G 移到文件的最後一行
  nG 移到文件的第n行
  := 打印文件中的行數
    z- 將當前行置爲屏幕的底行
    z. 將當前行置爲屏幕的中央
z-return 將當前行置爲屏幕的頂行
 L 移到屏幕的最後一行
   M 移到屏幕的中間一行
  H 移到屏幕的第一行
   n| 移到當前行的第n列
  ^ 移到當前行的第一個非空字符
  $ 移到當前行的最後一個字符
  +或return 移到下一行的第一個字符
  - 移到前一行的第一個非空字符
  ^u 將屏幕上滾半頁
  ^d 將屏幕下滾半頁
  ^b 將屏幕上滾一頁
  ^f 將屏幕下滾一頁
  a 在光標後插入文本
  A 在當前行插入文本
   i 在光標前插入文本
  I 在當前行前插入文本
  o 在當前行的下邊插入新行
  O 在當前行的上邊插入新行
  ^g 顯示文件名、當前的行號、文件的總行數和文件位置的百分比


8、本地YUM
    1、所有rpm文件放入:/home/Packages
    2、cd /home/Packages
    3、rpm -ivh createrepo文件(這是一個rpm文件,後面的部分被省略了。tab自動填上。)
      createrepo .  (創建倉庫,後面的點不可省略)
    4、/etc/yum.conf change gpgcheck=0
    5、配置yum,在/etc/yum.repos.d裏創建一個文件my.repo:
       [my_repo]
       name= My Local Repo
       baseurl=file:///home/Packages
       enabled=1
    6.yum list 查看庫中的包
       yum -y install packagename
    
1. 查看物理CPU的個數
#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l


2. 查看邏輯CPU的個數
#cat /proc/cpuinfo |grep "processor"|wc -l


3. 查看CPU是幾核
#cat /proc/cpuinfo |grep "cores"|uniq


4. 查看CPU的主頻
#cat /proc/cpuinfo |grep MHz|uniq


5、查看機器所有硬件信息:
  #dmidecode |more
  #dmesg |more


Linux的網絡主要是通過修改配置文件來實現的,雖然也可用命令ifconfig來設置IP,用route來配置默認網關,用hostname來配置主機名,但是重啓後即會丟失。下面是相關的配置文件:


 


/ect/hosts        配置主機名和IP地址的對應,對本機提供解析


/etc/resolv.conf      配置域名(在hosts內解析不到時此域名生效)


/etc/sysconfig/network      配置主機名和網關


/etc/sysconfig/network-scripts/ifcfg-eth0 配置IP、Mask等網絡參數


一、網卡配置
cat /etc/sysconfig/network-scripts/ifcfg-eth0


 


DEVICE=eth0


ONBOOT=yes


BOOTPROTO=static


IPADDR=192.168.1.250


NETMASK=255.255.255.0


GATEWAY=192.168.76.1


ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127


ifconfig eth0:0 192.168.0.253 netmask 255.255.255.0


ifconfig eth0:1 192.168.0.252 netmask 255.255.255.0


ifconfig eth0 down


ifconfig eth0 up


二、多網卡配置:
cat /etc/sysconfig/network-scripts/ifcfg-eth0


DEVICE=eth0


BOOTPROTO=static


IPADDR=192.168.1.2


NETMASK=255.255.255.0


ONBOOT=yes


 


cat /etc/sysconfig/network-scripts/ifcfg-eth0


DEVICE=eth1


BOOTPROTO=static


IPADDR=222.157.4.82


NETMASK=255.255.255.128


ONBOOT=yes


 


vi   /etc/rc.d/rc.local


route add -net 192.168.0.0/24 gw 192.168.0.254 dev eth0


route add -net 222.157.0.0/16 gw 222.157.66.1 dev eth1


三、網關配置:
注意:以下用命令設置的方式設置完後需要將命令加入到 /etc/rc.d/rc.local 中,否則重啓後設置被自動清除!


1、在 /etc/sysconfig/network-scripts/ifcfg-eth0 中配置;


GATEWAY=192.168.76.1


2、在 /etc/sysconfig/network 中配置:


cat /etc/sysconfig/network


 


NETWORKING=yes


HOSTNAME=zhaohang.com


GATEWAY=192.168.76.1


3、用命令設置:


如果只需要添加默認路由可以這樣設置:


route add default gw 192.168.1.1


route del default gw 192.168.1.254 (可以刪除默認路由,用此方法改變後幾分鐘就可以生效.)


 


如果兩個網卡均需要網關可以這樣設置:


route add -net 192.168.0.0/24 gw 192.168.0.254 dev eth0


route add -net 222.157.0.0/16 gw 222.157.66.1 dev eth1


 


備註:設置好路由或默認網關以後可以用命令查看:


route -n


netstat -rn


route print (For windows)


四、域名配置:
vi /etc/resolv.conf


 


meserver 192.168.75.3


nameserver 202.102.192.68


search localdomain


 


網絡重啓


/etc/rc.d/init.d/network restart


五、單網卡綁定多個IP
有時,我們需要在一塊網卡上配置多個IP,我們還需要爲eth0配置IP 192.168.168.2和192.168.168.3。


那麼需要再在/etc/sysconfig/network-scripts/ 下新建兩個配置文件:


cat /etc/sysconfig/network-scripts/ifcfg-eth0:0


 


DEVICE=eth0:0


BOOTPROTO=static


IPADDR=192.168.1.2


NETMASK=255.255.255.0


ONBOOT=yes


 


cat /etc/sysconfig/network-scripts/ifcfg-eth0:1


DEVICE=eth0:1


BOOTPROTO=static


IPADDR=192.168.1.3


NETMASK=255.255.255.0


ONBOOT=yes


六、多個網卡綁定成一塊虛擬網卡
爲了提供網絡的高可用性,我們可能需要將多塊網卡綁定成一塊虛擬網卡對外提供服務,這樣即使其中的一塊物理網卡出現故障,也不會導致連接中斷。


 


所謂bonding,就是將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改爲相同的MAC地址。Kernels 2.4.12及以後的版本均提供bonding模塊,以前的版本可以通過patch實現.


 


比如我們可以將eth0和eth1綁定成虛擬網卡bond0:


1、首先在/etc/sysconfig/network-scripts/下創建虛擬網卡bond0的配置文件ifcfg-bond0:


cat /etc/sysconfig/network-scripts/ifcfg-bond0


 


DEVICE=bond0


BOOTPROTO=none


BROADCAST=192.168.168.255


IPADDR=192.168.168.1


NETMASK=255.255.255.0


NETWORK=192.168.168.0


ONBOOT=yes


TYPE=Ethernet


GATEWAY=192.168.168.250


USERCTL=no


 


2、然後分別修改eth0和eth1的配置文件:


 


cat /etc/sysconfig/network-scripts/ifcfg-eth0


 


DEVICE=eth0


BOOTPROTO=none


ONBOOT=yes


USERCTL=no


MASTER=bond0


SLAVE=yes


 


cat /etc/sysconfig/network-scripts/ifcfg-eth1


DEVICE=eth1


BOOTPROTO=none


ONBOOT=yes


USERCTL=no


MASTER=bond0


SLAVE=yes


 


3、在/etc/modules.conf 文件中添加如下內容(如果沒有該文件,則新建一個):


[因爲linux的虛擬網卡是在內核模塊中實現的,所以需要安裝的時候已經裝好該module]


 


alias bond0 bonding


options bond0 miimon=100 mode=1 primary=eth0


 


其中miimon=100表示每100ms檢查一次鏈路連接狀態,如果不通則會切換物理網卡,mode=1表示主備模式,也就是隻有一塊網卡是active的,只提供失效保護。如果mode=0則是負載均衡模式的,所有的網卡都是active。還有其他一些模式很少用到,primary=eth0表示主備模式下eth0爲默認的active網卡。


4、最後,在/etc/rc.local中加入


modprobe bonding miimon=100 mode=1


 


5、重啓機器後可以看到虛擬網卡已經生效,可以通過插拔兩個物理網卡的網線來進行測試,不過linux中網卡接管的時間好象比較長。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
SVN服務器配置 :
系統環境
        RHEL5.4最小化安裝(關iptables,關selinux) + ssh + yum


一,安裝必須的軟件包.
        yum install subversion (SVN服務器)
                    mysql-server (用於codestriker)
                    httpd mod_dav_svn mod_perl (用於支持WEB方式管理SVN服務器)
                    sendmail (用於配置用戶提交代碼後發郵件提醒)
                    wget gcc-c++ make unzip perl* (必備軟件包)
                    ntsysv vim-enhanced (可選)


二,基本的SVN服務器配置
        1,新建一個目錄用於存儲SVN所有文件
                # mkdir /home/svn


        2,新建一個版本倉庫
                # svnadmin create /home/svn/project


        3,初始化版本倉庫中的目錄
                # mkdir project project/server project/client project/test (建立臨時目錄)
                # svn import project/ file:///home/svn/project -m "初始化SVN目錄"
                # rm -rf project (刪除臨時建立的目錄)


        4,添加用戶
                要添加SVN用戶非常簡單,只需在/home/svn/project/conf/passwd文件添加一個形如“username=password"的條目就可以了.爲了測試,我添加了如下內容:
                [users]
                # harry = harryssecret
                # sally = sallyssecret
                pm = pm_pw
                server_group = server_pw
                client_group = client_pw
                test_group = test_pw


        5,修改用戶訪問策略
                /home/svn/project/conf/authz記錄用戶的訪問策略,以下是參考:
                        [groups]
                        project_p = pm
                        project_s = server_group
                        project_c = client_group
                        project_t = test_group
                        
                        [project:/]
                        @project_p = rw
                        * =
                        
                        [project:/server]
                        @project_p = rw
                        @project_s = rw
                        * =
                        
                        [project:/client]
                        @project_p = rw
                        @project_c = rw
                        * =
                        
                        [project:/doc]
                        @project_p = rw
                        @project_s = rw
                        @project_c = rw
                        @project_t = rw
                        * =
                以上信息表示,只有pm有根目錄的讀寫權,server_group能訪問server目錄,client_group能訪問client目錄,所有人都可以訪問doc目錄.


        6,修改svnserve.conf文件,讓用戶和策略配置升效.
                svnserve.conf內容如下:
                        [general]
                        anon-access = none
                        auth-access = write
                        password-db = /home/svn/project/conf/passwd
                        authz-db = /home/svn/project/conf/authz


        7,啓動服務器
                # svnserve -d -r /home/svn
                


        8,測試服務器
                # svn co svn://192.168.60.10/project
                Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
                Password for 'root': 
                Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
                Username: server_group
                Password for 'server_group': 
                svn: Authorization failed ( server_group沒用根目錄的訪問權 )


                # svn co svn://192.168.60.10/project
                Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
                Password for 'root': 
                Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
                Username: pm
                Password for 'pm': 
                A    project/test
                A    project/server
                A    project/client
                Checked out revision 1.  ( 測試提取成功 )


                # cd project/server
                # vim main.c
                # svn add main.c 
                # svn commit main.c -m "測試一下我的C程序,看什麼看,不行啊??"
                Adding         main.c
                Transmitting file data .
                Committed revision 2.  ( 測試提交成功 )
                
端口監聽:
netstat -an 或 lsof -i 
nmap -sT -O localhost
cat /etc/services | grep 端口號
netstat -anp | grep 端口號
lsof -i | grep 端口號
查看IPv4端口:# lsof -Pnl +M -i4
查看IPv6協議下的端口列示:# lsof -Pnl +M -i6
# netstat -tulpn
# netstat -npl
$ cat /etc/services
$ grep 110 /etc/services
$ less /etc/services






















      

































發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章