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






















      

































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值