运维技巧

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1、linux的启动和关闭
命令:init [012356]
运行级别    0 :关机
            1 :单用户
            2:多用户状态没有网络服务
            3:多用户状态有网络服务
            4:系统未使用保留给用户
            5:图形界面
            6:系统重启

常用运行级别是3和5 ,要修改默认的运行级别可改文件/etc/inittab中的
id:5:initdefault:这一行中的数字

2、常用命令(区分大小写的 )

解决不进入X界面终端乱码问题
编辑etc/sysconfig/i18n
加一行:LC_ALL=C

如何在linux上安装JDK:

解压缩JDK的安装包或运行括展名是bin的二进制文件;

设置环境变量:
#vi /etc/profile
在最后面加入
#set java environment
JAVA_HOME=/usr/java/jdk-1_5_0_02
CLASSPATH=.:$JAVA_HOME/lib/rt.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出。

要使JDK在所有的用户中使用,可以这样:
vi /etc/profile.d/java.sh
在新的java.sh中输入以下内容:
#set java environment
JAVA_HOME=/usr/java/jdk-1_5_0_02
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出,然后给java.sh分配权限:chmod 755 /etc/profile.d/java.sh

jdk-1_5_0_02 是JDK的安装路径,根据实际安装位置改

在终端使用echo命令检查环境变量设置情况。
#echo $JAVA_HOME
#echo $CLASSPATH
#echo $PATH

检查JDK是否安装成功。
#java -version
如果看到JVM版本及相关信息,即安装成功!


pwd:显示当前工作目录
cd:改变目录
ls:列出文件和目录
ls -a 显示隐藏文件
ls -l 显示长列表格式
touch:建立空文件
cp:复制命令
cp -r dir1 dir2 递归复制命令(复制子目录信息)
mv:移动文件和改文件名
rm:删除文件和目录
rm -rf * 删除所有内容(包括目录和文件) r 递归 f 强制
ln:建立符号连接
ln -s 源 目标
ln -s /etc/inittab inittab (inittab指向实际文件/etc/inittab)
mkdir:建立目录
rmdir:删除空目录
more:显示文件内容,带分页
less:显示文件内容带分页
find:查找
find / -name inittab 从根目录开始查找名称为inittab的文件
grep:在文本中查询内容
grep "initdefault" /etc/inittab 在文件/etc/inittab中查找字符串"initdefault"
grep -c "initdefault" /etc/inittab 在文件/etc/inittab中查找字符串"initdefault" 显示有多少行
grep -A 2 -B 2    "initdefault" /etc/inittab 在文件/etc/inittab中查找字符串"initdefault" 显示该行及前后两行
管道命令:
| : find / -name *.html | grep bookmark    在find的结果中查找字符串"bookmark",显示
包含这个字符串的文件
ps -A:显示所有用户的进程
kill pid号

重定向命令:
> : ls -l > a.txt 列表的内容写入文件a.txt中(覆盖写)
>> : ls -al >> aa.txt 列表的内容追加到文件aa.txt的末尾
< : 从文件中输入信息 database_program < database_data


使用vi编辑器:
touch a.txt
vi a.txt
进入后 按i进入插入状态开始编辑,
按ESC退出编辑状态到命令状态,输入:wq 可以存盘 :q!不存盘退出
     :w写当前文件 /dollar查找字符串dollar,用n移动到下一处

用户管理命令
    useradd huayu : 添加用户 huayu
    passwd huayu : 修改用户huayu的密码
    logout : 退出重新登录
    userdel huayu : 删除用户huayu
    userdel -r huayu : 删除用户以及用户主目录  

3.文件和目录的权限
    ls -l中显示的内容如下:
     -rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
    10个字符确定不同用户能对文件干什么
    第一个字符代表文件(-),目录(d),链接(l)
    其余字符每3个一组(rwx) 读(r) 写(w) 执行(x)
      第一组rwx : 文件拥有者的权限是读、写和执行
      第二组rw- : 与文件拥有者同一组的用户的权限是读、写但不能执行
      第三组r-- : 不与文件拥有者同组的其他用户的权限是读不能写和执行
      可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7      

    1 表示连接的文件数
     root 用户
     root 组
     1213 文件大小(字节)
      Feb 2 09:39 最后修改日期
     abc 文件名

    改变权限的命令:
     chmod 改变文件或目录的权限
      chmod 755 abc    : 赋予abc权限rwxr-xr-x
      chmod u=rwx,g=rx,o=rx abc : 同上 u=用户权限 g=组权限 o=不同组其他用户权限
      chmod u-x,g+w abc : 给abc去除用户执行的权限,增加组写的权限
      chmod a+r abc :给所有用户添加读的权限
    改变拥有者(chown)和用户组(chgrp)命令
      chown huayu abc : 改变abc的拥有者为huayu
      chown root abc    : 改变abc所属的组为root
      chown root ./abc : 改变abc 这个目录的所有者是root
      chown -R root ./abc :    改变abc 这个目录及其下面所有的文件和目录的所有者是root


    用户掩码命令(umask):默认权限
      umask :显示当前用户中的掩码
      umask 022 :设置掩码为022
        在022下,默认建立的文件的权限是 644,默认建立的目录的权限是 755
      在文件/etc/bashrc中设置了超级用户和普通用户的默认umask   
    
4、shell使用
命令历史和互动:用上下箭头键可以重复以前所输入的命令
命令完成功能:用tab键能自动完成相关命令,再次按tab可得到清单

用户登录后自动执行的shell脚本文件:
.bashrc 位于主目录下    它之前执行系统的脚本/etc/bashrc
     主要是基本配置数据
.bash_profile 位于主目录下 它之前执行系统的脚本/etc/profile
     主要是配置环境变量

    export PATH=$PATH:$HOME/bin:/root/test/t1
     输出环境变量PATH 引用原来的值$PATH $HOME表示工作主目录 :是路径分隔符
    已定义好的环境变量:
      SHELL : 默认shell
      PATH    :路径
      USER    : 当前登录用户的用户名
    显示变量内容: echo $PATH  
                  echo $USER
                  echo $SHELL
    通配符: * 代表多个字母或数字
             ? 代表一个字母或数字  
        ls a*      ls a?      ls ?at?
        ls f080[1-6].tif
    转义字符: \
        ls /mnt/win1/My\ Documents
    引号:
           export NAME=Michael
           echo Welcome $NAME,the date is date
        单引号-shell不处理任何变量和命令
           echo 'Welcome $NAME,the date is date'
        双引号-处理变量但不处理命令
           echo "Welcome $NAME,the date is date"
        反引号-把引号中的每个单词作为一个命令。如果是变量则先求值然后作为一个命令处理
           echo "Welcome $NAME,the date is `date`"      
    别名:
        命令: alias显示系统当前定义的所有alias
        alias cp='cp -i'
        alias ll='ls -l --color=tty'
    shell脚本文件:
        是一个文本文件
        命令的集合
        有执行的权限
        执行方式(./文件名)
    
   
5.图形界面的使用
startx : 从字符界面进入到图形界面
改变运行级别为5 : 则启动时进入图形界面

6. 安装软件

1) *.src.rpm形式的源代码软件包
安装:rpm -rebuild *.src.rpm
cd /usr/src/dist/RPMS
安装: rpm -ivh *.rpm
卸载:rpm -e packgename
说明:rpm --rebuild *.src.rpm命令将源代码编译并在/usr/src/dist/RPMS下生成二进制的rpm包,然后再安装该二进制包即可。packgename如前所述。
2) *.tar.gz/*.tgz、*.bz2形式的源代码软件包
安装:tar zxvf *.tar.gz 或 tar yxvf *.bz2 先解压
然后进入解压后的目录:

配置: ./configure --profix=/usr/local/安装目录名
编译: make
安装: make install
卸载: make uninstall 或 手动删除

7. samba 服务器

1)、 检查是否安装了:samba
rpm –qa|grep samba:此命令会检查出已经安装了samba软件包。若是已经安装了,下面会出现samba软件包的具体名称。

2). mount /mnt/cdrom
    cd /mnt/cdrom/         找到samba-common-2.2.7a-7.9.0.i386.rpm
    rpm -ivh samba-common-2.2.7a-7.9.0.i386.rpm 客户和服务器均需要的文件
    rpm -ivh samba-2.2.7a-7.9.0.i386.rpm          服务器端软件
    rpm -ivh samba-client-2.2.7a-7.9.0.i386.rpm 客户端软件
    cd ~
    umount /mnt/cdrom

3) 设置samba密码文件
先在linux中建立一个普通用户huayu
将/etc/passwd中的用户都加到smbpasswd中
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
    设置用户huayu的samba密码
    smbpasswd huayu

4)    启动samba服务
      service smb start       启动
      service smb stop        停止
      service smb restart     重启                                                     
5) 配置网络使windows和linux在一个网段,ip互连
ifconfig    查看网络信息
ifconfig eth0 192.168.0 34 设置eth0的ip为192.168.0.34
ifconfig eth0 down     禁止使用eth0
ifconfig eth0 up    打开eth0
          
6) 关闭linux中的防火墙    (用setup命令到text mode设置)
为了让网络配置生效 运行下面的命令
/etc/rc.d/init.d/network restar
/etc/rc.d/inti.d/xinetd restart
7) 在windows 中输入\\192.168.0.34就可以访问linux中的共享文件了
    共享的目录是用户的默认登录目录


共享资源的基本设置
1、comment:针对共享资源所做的说明文字。默认值为空字符串。
comment = dir for todayhero:共享这个目录为todayhero这个用户。
2、path:若共享的资源是目录,是指定该目录的位置。
path = /tmp:共享tmp这个目录。
3、guest ok:是否允许用户不使用帐号和密码访问此资源。
guest ok = yes:允许用户不使用帐号和密码访问此资源
guest ok = no:不允许用户不使用帐号和密码访问此资源

4、 hosts allow:设置连接主机的地址:
hosts allow = 192.168.0. server.abc.com:意思是说允许来自192.168.0.或server.abc.com

5、hosts deny:设置禁止连接的主机地址
hosts deny = 192.168.2. :意思是说不允许来自192.168.2主机访问此samba服务器的资源。

6、read only:用于设置共享的资源是否为只读。
read only = yes :允许只读
read only = no:不仅仅只读,也就是说可以写入。

7、writable:设置是否允许写入
writable = yes:允许写入.。
writable = no:不允许写入。
8、browseable:设置用户是否可看到此共享资源
browseable = yes:允许用户看到此资源
browseable = no:不允许用户看此资源。
9、available:设置是否启用资源共享。
available = yes:启用资源共享。
available =no:不启用资源共享

service smb start       启动
      service smb stop        停止
      service smb restart     重启

10、显示硬盘使用情况
df -h

11、在linux下设置磁盘配额
作者:佚名      文章来源:互联网      点击数:159      更新时间:2005-12-24  

在linux下设置磁盘配额

如果你是一个大的系统的管理员,那你一定要会使用磁盘配额。

磁盘配额的设置非常简单。

首先要激活linux系统的配额功能,这就需要对/etc/fstab进行编辑。
一定要小心!确保你没有进行其他的改动,否则就会在系统启动时出现
问题。

以root登录,用vi编辑程序打开/etc/fstab,编辑那些包含关于linux分区
数据项的行,如下:
/dev/hda3 / ext2    default 1 1
在单词default后加上,usrquota
/dev/hda3 / ext2    default,usrquota 1 1
存盘。

建立一个叫做quota.user的文件,把该文件设为600
# touch /quota.user
# chmod 600 /quota.user

完成上面的操作后,用shutdown -r重启动计算机。

再次以root登录,执行/usr/sbin/edquota命令,如下所示:
# edquota -u cloobie
它会读入/quota.user文件(这个文件本身是二进制的),并启动你的缺省
的编辑器(通常是vi)。
屏幕上显示:
Quota for user cloobie:
/dev/hda3: blocks in use: 58, limits (soft = 0, hard = 0)
     inodes in use: 41, limits (soft = 0, hard = 0)
如果你要把硬盘空间限制设置为 3-5MB,把文件个数设置为500-1000个,
可以改为:
Quota for user cloobie:
/dev/hda3: blocks in use: 58, limits (soft = 3000, hard = 5000)
     inodes in use: 41, limits (soft = 500, hard = 1000)
存盘。

最后,你还必须设置一个预警期,如下所示:
# edquota -t
如下你可以把预警期设置为1天,也可以使用分钟或秒。
Time units may be: days, hours, minutes, or seconds
Grace period before enforcing soft limits for users:
/dev/hda3: block grace period: 1 days, file grace period: 1 days

现在,你可以使用quota来查看新的配额:
# quota cloobie
Disk quotas for user cloobie(uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda3 58     3000 5000      41    500    100


    

  
    使用nohup让程序永远后台运行
By kingyiren


  Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台:

  /usr/local/mysql/bin/mysqld_safe --user=mysql &

  但是加入我们很多程序并不象mysqld一样做成守护进程,可能我们的程序只是普通程序而已,一般这种程序使用 & 结尾,但是如果终端关闭,那么程序也会被关闭。但是为了能够后台运行,那么我们就可以使用nohup这个命令,比如我们有个test.php需要在后台运行,并且希望在后台能够定期运行,那么就使用nohup:

  nohup /root/test.php &

  提示:

  [~]$ appending output to nohup.out

  嗯,证明运行成功,同时把程序运行的输出信息放到当前目录的 nohup.out 文件中去。

  附:nohup命令参考

  nohup 命令

  用途:不挂断地运行命令。

  语法:nohup Command [ Arg ... ] [ & ]

  描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

  无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。

  退出状态:该命令返回下列出口值:

  126 可以查找但不能调用 Command 参数指定的命令。

  127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。

  否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。

  nohup命令及其输出文件

  nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。

  该命令的一般形式为:nohup command &

  使用nohup命令提交作业

  如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:

  nohup command > myout.file 2>&1 &

  在上面的例子中,输出被重定向到myout.file文件中。

  使用 jobs 查看任务。

  使用 fg %n 关闭。

  另外有两个常用的ftp工具ncftpget和ncftpput,可以实现后台的ftp上传和下载,这样我就可以利用这些命令在后台上传和下载文件了。

举例:
把/usr目录并包括它的子目录在内的全部文件做一备份,备份文件名为usr.tar
tar cvf usr.tar /usr
把/usr 目录并包括它的子目录在内的全部文件做一备份并进行压缩,备份文件名是usr.tar.gz
tar czvf usr.tar.gz /usr
压缩一组文件,文件的后缀为tar.gz

linux下的解压缩命令
1.以.a为扩展名的文件:
#tar xv file.a

2.以.z为扩展名的文件:
#uncompress file.Z

3.以.gz为扩展名的文件:
#gunzip file.gz

4.以.bz2为扩展名的文件:
#bunzip2 file.bz2

5.以.tar.Z为扩展名的文件:
#tar xvZf file.tar.Z
或 #compress -dc file.tar.Z | tar xvf -

6.以.tar.gz/.tgz为扩展名的文件:
#tar xvzf file.tar.gz
或 gzip -dc file.tar.gz | tar xvf -

7.以.tar.bz2为扩展名的文件:
#tar xvIf file.tar.bz2
或 bzip2 -dc file.tar.bz2 | xvf -

8.以.cpio.gz/.cgz为扩展名的文件:
#gzip -dc file.cgz | cpio -div

9.以.cpio/cpio为扩展名的文件:
#cpio -div file.cpio
或cpio -divc file.cpio

10.以.rpm为扩展名的文件安装:
#rpm -i file.rpm

11.以.rpm为扩展名的文件解压缩:
#rpm2cpio file.rpm | cpio -div

12.以.deb为扩展名的文件安装:
#dpkg -i file.deb

13.以.deb为扩展名的文件解压缩:
#dpkg-deb --fsys-tarfile file.deb | tar xvf - ar p
file.deb data.tar.gz | tar xvzf -

14.以.zip为扩展名的文件:
#unzip file.zip
在linux下解压Winzip格式的文件
  要是装了jdk的话,可以用jar命令;还可以使用unzip命令。
直接解压.tar.gz文件
  xxxx.tar.gz文件使用tar带zxvf参数,可以一次解压开。XXXX为文件名。 例如:
$tar zxvf xxxx.tar.gz 各种压缩文件的解压(安装方法)

文件扩展名 解压(安装方法)

.a ar xv file.a
.Z uncompress file.Z
.gz gunzip file.gz
.bz2 bunzip2 file.bz2
.tar.Z tar xvZf file.tar.Z
compress -dc file.tar.Z | tar xvf -
.tar.gz/.tgz tar xvzf file.tar.gz
gzip -dc file.tar.gz | tar xvf -
.tar.bz2 tar xvIf file.tar.bz2
bzip2 -dc file.tar.bz2 | xvf -
.cpio.gz/.cgz gzip -dc file.cgz | cpio -div
.cpio/cpio cpio -div file.cpio
cpio -divc file.cpio
.rpm/install rpm -i file.rpm
.rpm/extract rpm2cpio file.rpm | cpio -div
.deb/install dpkg -i file.deb
.deb/exrtact dpkg-deb --fsys-tarfile file.deb | tar xvf -
ar p file.deb data.tar.gz | tar xvzf -
.zip unzip file.zip

bzip2 -d myfile.tar.bz2 | tar xvf

tar xvfz myfile.tar.bz2

x 是解压
v 是复杂输出
f 是指定文件
z gz格式

gzip
gzip[选项]要压缩(或解压缩)的文件名
-c将输出写到标准输出上,并保留原有文件。
-d将压缩文件压缩。
-l对每个压缩文件,显示下列字段:压缩文件的大小,未压缩文件的大小、压缩比、未压缩文件的名字
-r递归式地查找指定目录并压缩或压缩其中的所有文件。
-t测试压缩文件是正完整。
-v对每一个压缩和解压缩的文件,显示其文件名和压缩比。
-num-用指定的数字调整压缩的速度。

举例:
把/usr目录并包括它的子目录在内的全部文件做一备份,备份文件名为usr.tar
tar cvf usr.tar /home
把/usr 目录并包括它的子目录在内的全部文件做一备份并进行压缩,备份文件名是usr.tar.gz
tar czvf usr.tar.gz /usr
压缩一组文件,文件的后缀为tar.gz
#tar cvf back.tar /back/
#gzip -q back.tar
or
#tar cvfz back.tar.gz /back/
释放一个后缀为tar.gz的文件。
#tar zxvf back.tar.gz
#gzip back.tar.gz
#tar xvf back.tar


tar的使用方法:

1:压缩一组文件为tar.gz后缀
tar cvf backup.tar /etc
或gzip -q backup.tar.gz

2:释放一个后缀为tar.gz的文件
gunzip backup.tar.gz
或tar xvf backup.tar

3:用一个命令完成压缩
tar cvf -/etc | gzip -qc > backup.tar.gz

4:用一个命令完成释放
gunzip -c backup.tar.gz | tar xvf -

5:如何解开ta.Z的文件
tar xvfz backup.tar.Z
或uncompress backup.tar.Z
tar xvf backup.tar

6:如何解开.tgz文件
gunzip backup.tgz

7:如何压缩和解压缩.bz2的包
bzip2 /etc/smb.conf 这将压缩文件smb.conf成smb.conf.bz2
bunzip2 /etc/smb.conf.bz2 在当前目录下还原smb.conf.bz2为smb.conf

apache 重启命令
/etc/rc.d/init.d/httpd restart

posted on 2009-12-10 22:20  付莹  阅读(683)  评论(0编辑  收藏  举报