大鸟的学习乐园
路漫漫其修远兮,吾将上下而求索
posts - 26,comments - 27,trackbacks - 0

h1. LinuxQA

 

 

h3. 关闭Debian形界面的方法

 

0. 使用【aptitude install sysv-rc-conf】命令安装启动项配置工具;(安装时请使用VBox插入ISO文件)

1. 运行【sysv-rc-conf】命令启配置工具。在配置工具中将【gdm】所对应行的【X】全部变为空;(使用空格键选择

!1.JPG!

2. 重启即可;

 

 

h3. bash连续执行多条命令的方法

 

1 $ls && echo hello && echo Hi

2 $ls ; echo hello ; echo Hi

 

h3. debian安装源的更新

 

# $vim /etc/apt/sources.list

在其中添加新的安装源

<pre>

deb file:///mnt/debian4/dvd01 etch main contrib

deb file:///mnt/debian4/dvd02 etch main contrib

deb file:///mnt/debian4/dvd03 etch main contrib

</pre>

# $aptitude update && aptitude upgrade

 

h3. Linux统计行数

 

*

<pre>

find ./ \( -path './lib' -o -path './script' -o -path './vendor' -o -path './public' -o -path './tmp' -o -path '*/.svn' -o -path './log' -o -path './data' \) -a -prune -o -name "*" | xargs wc -l

</pre>

打印当前目下,除libscriptvendorpublictmplogdata及其子目且除去当前目及子目中所有名.svn的目及子目以外的所有文件的行数,并统计总行数。

 

h3. shell /bin/sh^M: bad interpreter: No such file or directory

 

* 原因

windos编辑过sh文件,编码不是unix

* 解决

vim xxx.sh

:set ff   看当前编码应该dos

:set ff=unix    编码为unix

保存退出,问题解决

 

h3. Linux文件限中,R,W,X,S,T.s是什意思

 

* r(Read)

文件而言,具有取文件内容的限;,具有浏览 限。

* w(Write,写入)

文件而言,具有新增、修改文件内容的限;,具有除、移内文件的限。

* x(eXecute)

文件而言,具有行文件的限;了来说该具有入目限。

* sSSUID,Set UID

行的文件搭配限,便能得到特,任意存取文件的所有者能使用的全部系统资源。注意具SUID限的文件,黑客常利用这种权限,SUID配上root有者,无声无息地在系扇后,供日后出使用。

* TTSticky

/tmp /var/tmp供所有用户暂时存取文件,亦即位用有完整的,去浏览除和移文件。

* R,W,X是基本 ST是特殊

 

h3. 找含有指定内容的文件

 

* 从文件内容找匹配指定字符串的行

<pre>$ grep "找的字符串" 文件名</pre>

* 从文件内容找与正表达式匹配的行

<pre>$ grep –e “表达式” 文件名</pre>

* 不区分大小写

<pre>$ grep –i "找的字符串" 文件名</pre>

* 找匹配的行数

<pre>$ grep -c "找的字符串" 文件名</pre>

* 从文件内容找不匹配指定字符串的行

<pre>$ grep –v "找的字符串" 文件名</pre>

* *从根目录开找所有展名.log的文本文件,并找出包含”ERROR”的行*

<pre>$ find / -type f -name "*.log" | xargs grep "ERROR"</pre>

* 前面grep的使用方法,可以和find合使用

 

h3. 建守护进程用和用户组

 

mysql护进程用户为

<pre>

# groupadd mysqladmin

# useradd -g mysqladmin -M -s /sbin/nologin mysql   (Redhat)

# useradd -g mysqladmin -s /usr/sbin/nologin mysql  (Debian4)

</pre>

参数

<pre>

-g 指定用户组 

-M 定不建用 Redhat

-m 建用 Debian

-s /sbin/nologin 无法登(有的linux/usr/sbin/nologin

</pre>

注意些用是不能用su

 

h3. Rails用中异步调用外部命令的方式

 

* 插件方式

有很多针对rails的任插件,可以完成包括定时执行等比较复杂的任。具体的google一下,个不列

* fork方式

是最基本的异步调用方式

需要注意的是:

** 如果要一运行一个外部命令,个外部命令和Rails用本身系不大

比如一个batch这时应该写一个ruby脚本,在脚本中用fork方式

之所以这样做,是因直接在rails中用fork,会把当前rails程的所有源全部入,代价太大

如果独写一个脚本,fork只会个脚本所在程的源,比较经济

** 如果需要异步执行的任Rails用根本身密的,用fork方式的需要衡量引入的代价。

** LinuxDebian)下,通rubyshellshell行者是nobody,如果有写操作的,注意问题

 

h3. bash shell的运行方式

 

一个bash脚本,就是包含shell命令的文件,它是一个shell程序。

运行一个shell脚本有两方式

* source scriptname

source scriptname使得脚本中的命令被取并运行 ,就好像是入它

source方式不用把文件限改可运行

* 简单键入脚本的名字 然后回

这种方式就像用一个内置命令一当然,这种方式更方便一些。

脚本必具有可限。

*更重要的差

当使用source使得脚本里的命令被,就好像它是登录传话的一部分,

而第二方法使得shell做一系列操作。

首先,它运行 shell的另一个副本作一个子行,称shell

然后sehll从脚本中取得命令,运行 ,再中断,将控制返回shell

**

假定你有一个shell脚本alice,它包含了命令hattergryphon

# source alice使得两个方法运行在同一个shell下,就像你自己入的一a

# alice,子shell内命令运行,同shell静待子shell完成。如b

# 使用&使命令运行在后台实际啥时一个“程”的另一称。其实际效果如c

 

!http://redmine.dhc.com.cn/attachments/188/run_shell.png!

 

h3. Linux Shell(batch) 防止多重启的方法

 

<pre><code class="ruby">

#!/bin/bash

BASENAME=`basename $0 .sh`

PID_FILE="$BASENAME.pid"

 

if [ -f $PID_FILE ]; then

  STORED_PID=`cat $PID_FILE`

  if (ps -p ${STORED_PID} -o pid= >/dev/null); then

    echo "Locked by PID($STORED_PID)"

    exit

  fi

fi

echo $$ > $PID_FILE

 

# ここに処理を書く

sleep 10

 

rm $PID_FILE

</code></pre>

 

h3. Debian中修改主机名(Hostname

 

Debian及其衍生版本中,hostname都可以通一下方式修改。众所周知,Linux的一切都是存在于文件当中的,事UNIX这种哲学的立者。Debianhostname存在于以下文件。

<pre>

    /etc/hostname

</pre>

文件内容就是hostname,直接改文件内容即可。然后需要更新hostname,以便其他程序使用。

<pre>

    $sudo /etc/init.d/hostname.sh start

</pre>

啰嗦两句:其Linux次启候都是个文件的内容来hostname的,而/etc/init.d/hostname.sh就是干个活的~~

 

h3. Linux内核、GNU C Library(glibc)gcc版本

 

unmae -a #只能看内核版本

/lib/libc.so.6 #内核,glibcgcc版本

以下是Debian6

<pre>

root@lemonDebian6:~# /lib/libc.so.6

GNU C Library (Debian EGLIBC 2.11.2-11) stable release version 2.11.2, by Roland McGrath et al.

Copyright (C) 2009 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.

There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A

PARTICULAR PURPOSE.

Compiled by GNU CC version 4.4.5.

Compiled on a Linux 2.6.32 system on 2011-01-31.

Available extensions:

        crypt add-on version 2.1 by Michael Glad and others

        GNU Libidn by Simon Josefsson

        Native POSIX Threads Library by Ulrich Drepper et al

        BIND-8.2.3-T5B

For bug reporting instructions, please see:

<http://www.debian.org/Bugs/>.

</pre>

 

h3. 看硬件信息

 

<pre>

1.           CPU

# more /proc/cpuinfo | grep "model name"

cpu位数

# getconf LONG_BIT

2.           内存

# more /proc/meminfo | grep MemTotal

3.          

# fdisk -l

使用情况(mount上的)

# df -h

的服

# chkconfig –list | grep 3:on | cut -f1 

</pre>

 

h3. linux看用,户组列表

 

<pre>

# cat /etc/passwd 可以看所有用的列表

 

# w 可以看当前活的用列表

 

# cat /etc/group 看用户组

 

# groups xxx xxx所属的用户组,如果不加xxx则显示当前用所属的用户组

</pre>

 

h3. Linux看目大小

 

<pre>

du -sm <dir> M

du –sm * 当前文件下所有文件,文件大小(M

du –sh * G

</pre>

 

h3. debian下安装dos2unix

 

<pre>

aptitude install sysutils

</pre>

 

h3. pidpid文件

 

pid就是程序的主程号,kill <pid>

pid文件就是一个文本文件,里面记录的是程的pid号。

 

h3. apt-gethttp代理

 

* 方法一

是一种临时的手段,如果您仅仅暂时需要通http代理使用apt-get,您可以使用这种方式。

在使用apt-get之前,在端中入以下命令(根据您的实际情况替yourproxyaddressproxyport)。

export http_proxy=http://yourproxyaddress:proxyport

* 方法二

这种方法要用到/etc/apt/文件下的apt.conf文件。如果您希望apt-get(而不是其他用程序)一直使http代理,您可以使用这种方式。

* 注意: 某些情况下,系安装程中没有建立apt配置文件。下面的操作将情况修改有的配置文件或者新建配置文件。

sudo gedit /etc/apt/apt.conf

在您的apt.conf文件中加入下面行(根据你的实际情况替yourproxyaddressproxyport)。

Acquire::http::Proxy “http://yourproxyaddress:proxyport”;

保存apt.conf文件。

* 方法三

这种方法会在您的主目下的.bashrc文件中添加两行。如果您希望apt-get和其他用程序如wget等都使用http代理,您可以使用这种方式。

gedit ~/.bashrc

在您的.bashrc文件末尾添加如下内容(根据你的实际情况替yourproxyaddressproxyport)。

http_proxy=http://yourproxyaddress:proxyport

export http_proxy

使用apt-get update或者任何您想用的网工具测试代理。

rpm包下

http://rpm.pbone.net/

wget

后台下

wget -d http://xxxx

个命令会在当前目建立一个名wget-log.1log文件(也可以用-o命令来制定log文件),下载进度和速度会被出到个文件中。

 

h3. 安装开发包(c编译器)

 

aptitdue命令选择安装全部libdevl下的package

<pre>

apt-get install build-essential

</pre>

 

h3. 编译apache候出zlib错误的解决方法

 

Error message:

<pre>

checking for zlib location... not found

checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures

</pre>

安装zlib可以解决,命令

<pre>

apt-get install zlib1g-dev

</pre>

 

h3. vim配色

 

* 首先,安装vim-full(系的一般是vim-tiny

aptitude install vim-full

* 然后

vim /etc/vim/vimrc

找到syntax on,去掉前面的注

* vi ~/.vimrc

添加 colorscheme   murphy

murphy可以换车任意一个/usr/share/vim/vim73/colors下的配色方案。

* 如果得系的不用可以到http://code.google.com/p/vimcolorschemetest/上去找想要的vim配色方案。)

 

h3. ls示彩色

 

* 临时生效

临时生效彩色的可以通过执alias ls='ls --color'端就不再示了

* 永久生效

修改~/.bashrc ,将下面的内容打"#"去掉即可)

<pre>

export LS_OPTIONS='--color=auto'

eval "`dircolors`"

alias ls='ls $LS_OPTIONS'

alias ll='ls $LS_OPTIONS -l'

alias l='ls $LS_OPTIONS -lA'

</pre>

 

h3. SSH的安装

 

<pre>

apt-get install openssh-server

apt-get install ssh

</pre>

 

h3. SSH程登,密码验证慢,登后正常

 

* 原因

陆时访问DNS这种情况在无法DNS会比

* 解决

vim /etc/ssh/sshd_config

末尾最佳

<pre>

UseDNS=no UseDNS no (看前面的配置用不用=

</pre>

 

h3. 看用apt-get install <name>安装的程序路径

 

<pre>

dpkg -L <name>

比如  dpkg -L subversion  用来看用apt-get install subversion 命令安装的subversion所在的路径。

</pre>

 

h3. debian下安装rpm

 

<pre>

# apt-get install alien 

安装用于rpm的工具

# alien -i XXXX.rpm

运气好的,就安装成功,可以省略后面的西了,如果运气不好error: incorrect format: unknown tag   ...                那就看下面吧

# alien -V

安装不成的就看下alien的版本,把万rpm转换deb包吧

# alien -d xxx.rpm

转换rpmdeb包,ls下会发现该有个deb的安装包

# dpkg -i xxx.deb

安装成功!

</pre>

 

h3. 添加/除启动项

 

* Debian

<pre>

1) 要先安装启动项管理rcconf

apt-get install rcconf

2) /etc/init.d/建立启脚本 : myStartService

myStartService中写入启命名

svnservice的启(可以添加多个启命令)

/opt/subversion-1.6.15/bin/svnserve -d -r /home/svn/svnroot

3) chmod 700 start

4) 然后rcconf ,出界面,移myStartService,按空格选择,然后按回,生效。

</pre>

* CentOS

<pre>

1) /etc/init.d/建立启脚本 : myStartService

2) myStartService中加入注如下:

#add for chkconfig

#chkconfig: 2345 70 30

#description: the description of the shell #于脚本的短描述

#processname: servicename

 

明:

2345是指脚本的运行级别,即在23454模式下都可以运行,234都是文本界面,5就是形界面X

70是指脚本将来的启动顺序号,如果的程序的启动顺序号比70小(比如4445),脚本需要等些程序都启以后才启

30是指系统关闭时,脚本的停止序号。

3) chmod +x myStartService

4) chkconfig --add myStartService

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

chkconfig的使用方法

chkconfig(check config)

功能明:检查置系的各

  法:chkconfig

[--add][--del][--list][]chkconfig[--level<代号>][][on/off/reset]

明:RedHat公司遵循GPL规则开发的程序,它可查询操作系一个行等中会行哪些系,其中包括各

参数:

 –add 增加所指定的系chkconfig指令得以管理它,并同在系的叙述文件内增加相数据。

  –del 除所指定的系,不再由chkconfig指令管理,并同在系的叙述文件内除相数据。

  –level<代号> 指定要在哪一个行等启或关毕

1chkconfig 命令也可以用来激活和解除服chkconfig –list 命令示系列表,以及些服在运行级别06中已被启on是停止(off)。

chkconfig –list

chkconfig –list httpd

httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

2chkconfig 能用来置某一服在某一指定的运行级别内被启动还是被停运。譬如,要在运行级别345中停运 nscd ,使用下面的命令:

chkconfig –level 345 nscd off

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

locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory解决

root@lemonDebian6:~# locate libevent

locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory

root@lemonDebian6:~# updatedb

</pre>

 

h3. /bin/rm: Argument list too long

 

* 原因

除大量文件的候可能会遇到错误

* 解决

用下面命令,分组删除之

<pre>

ls | grep filew | xargs -n 10 rm -fr

以上命令把根目上所有的以filew开头的文件以10个一组删除之

</pre>

 

h3. CentOS 上的Apache不能被访问127.0.0.1可用)

 

* 原因

没有CentOS的防火

* 解决

<pre>

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 

/etc/rc.d/init.d/iptables save 

/etc/init.d/iptables restart 

</pre>

 

h3. tar命令

 

<pre>

1*.tar tar –xvf

 

2*.gz gzip -d或者gunzip

 

3*.tar.gz*.tgz tar –xzf

 

4*.bz2 bzip2 -d或者用bunzip2

 

5*.tar.bz2tar –xjf

 

6*.Z uncompress

 

7*.tar.Z tar –xZf

 

8*.rar unrar e

 

9*.zip unzip

</pre>

 

h3. tar一个目下的所有tar.gz文件到指定目

 

find -iname "*.tar.gz" -exec tar -zxvf {} -C /opt/source/ \;

 

h3. tar打包文件

 

tar cvzf xxx.tar.gz xxx/

 

h3. cannot restore segment prot after reloc: Permission denied

 

错误是我在编译PHP以后,启apache的。

 

h3. Cannot load /usr/local/apache/apache4svn/modules/libphp5.so into server: /usr/local/apache/apache4svn/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied

 

* 原因

是由SELinux引起的问题

* SELinux是什

SELinux全称是Security Enhanced Linux,由美国国家安全部(National Security  Agency)领导开发GPL目,它一个灵活而制性的访问控制构,旨在提高Linux的安全性,提供健的安全保,可防御未知攻,据 称相当于B1事安全性能。比MS  NTC2等高得多。

* 解决

把无法入的so加入例外列表

<pre>

1.启例外列表

#setsebool -P allow_execheap=1

2.把不能入的so加入列表

#chcon -t texrel_shlib_t /usr/local/apache/apache4svn/modules/libphp5.so

mount iso

mount -t iso9660 /opt/centosiso/CentOS-5.5-i386-bin-1of7.iso /mnt/centoscds/centoscd1 -o loop

</pre>

 

h3. 统软件包安装

 

<pre>

    统约:

         件源代包存放位置             /usr/local/src

         编译安装位置(prefix)     /usr/local

         脚本以及维护程序存放位置       /usr/local/sbin

         MySQL 数据位置                /data/mysqldb(可按情况置)

         php安装位置                         /usr/local/webserver/nginx

         nginx安装位置                      /usr/local/webserver/php

         网站根目                          /data/htdocs/bbs(可按情况置)

         主机日志根目               /data/logs(可按情况置)

         Nginx运行账户                     www:www

</pre>

 

h3. Centos isoyum

 

<pre>

1.           iso vcd dvd均可),放在 /opt/centosiso/

2.           mkdir /mnt/centoscds

mkdir /mnt/centoscds/centoscd1

mkdir /mnt/centoscds/centoscd2

... 有几个iso,建几个文件

3.           mount -t iso9660 /opt/centosiso/CentOS-5.5-i386-bin-1of7.iso /mnt/centoscds/centoscd1 -o loop  (把isomount到不同的目下)

4.           cd /mnt/centoscds

createrepo -g /mnt/centoscds/centoscd1/repodata/comps.xml .

5.           配置

vim /etc/yum.repos.d/CentOS-Media.repo

 

[c5-media]

name=CentOS-$releasever - Media

#baseurl=file:///media/CentOS/

#        file:///media/cdrom/ssh

#        file:///media/cdrecorder/

baseurl=file:///mnt/centoscds/

gpgcheck=1

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

 

6.           把其他的.repo文件重命名.repo尾的文件。

7.           yum repolist

看看是否只有c5-media 在列表中,如果只有一个repo么设置完成。

</pre>

 

h3. Centos加装形界面

 

如果使用最小安装,没有形界面,有些件比如vmwarevbox需要形界面才行。

* 加装形界面的方法如下:

确保能网或者已isoyum

<pre>

1.           安装形界面(GNOME

yum -y groupinstall 'X Window System' 'GNOME Desktop Environment'

 

2.           形界面

init 5

 

3.           如果你希望次重启后都形桌面,那需要修改/etc/inittab文件

sed -i 's/[0-6]:initdefault:/5:initdefault:/g' /etc/inittab

 

如果想入文字界面

sed -i 's/[0-6]:initdefault:/3:initdefault:/g' /etc/inittab

</pre>

 

h3. Centos5.5安装vbox

 

* 安装

<pre>

1.           wget http://download.virtualbox.org/virtualbox/4.0.6/VirtualBox-4.0-4.0.6_71344_rhel5-1.i386.rpm

2.           yum --nogpgcheck install VirtualBox-4.0-4.0.6_71344_rhel5-1.i386.rpm

现错误

error: Failed dependencies:

        libSDL-1.2.so.0 is needed by VirtualBox-4.0-4.0.6_71344_rhel5-1.i386

3.           yum -y install SDL

yum -y install SDL-devel

解决上面问题

4.           安装dkms

行完上面3,启如果是有错误,提示 /etc/init.d/vbocdrv setup

# /etc/init.d/vbocdrv setup

提示错误

Trying to register the VirtualBox kernel modules using DKMS [FAILED]

 (Failed, trying without DKMS)

候就要安装dkms了,上网上找centos用的dkmsrpm安装之。

于更多的/etc/init.d/vbocdrv setup  遇到的问题参考Troubleshooting

</pre>

* Troubleshooting

<pre>

vbox和系内核合的比较紧密,所以升内核会致重新编译vbox

 

1. 如果以前升级过gcc,而又没有用升级过gcc编译过内核。gcc版本与kernel内核不一致

解决方法:

gcc的和内核一致的版本(软连接,恢原来的gcc    # mv gcc412 gcc)。

行完/etc/init.d/vboxdrv  成功后,再把gcc版本恢回去(# mv gcc gcc412      #ln -s /usr/local/gcc-4.6.0/bin/gcc /usr/bin/gcc)。

 

2. /usr/src/kernel/下面没有和 # uname -r 同名的文件

解决方法:

yum install kernel-devel

</pre>

 

h3. vmWare机与宿主机之共享上网

 

*

<pre>

1.           宿主机不网(包括internet和局域网)的情况下宿主机和虚机可以互访

2.           宿主机局域网,虚机和网上其他机器可以互访

3.           2的基上,宿主机通路由internet,虚机可以访问internet

</pre>

* 实现方法

<pre>

1.           Bridaged接)可以足上面23

a)           vmWare

 

接的候虚网卡要置在VMnet0上,Bridaged to 选择上网的网卡

 

 

b)           置(CentOS5.5

IP

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

 

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]

DEVICE=eth0

#BOOTPROTO=dhcp

HWADDR=00:0C:29:F0:B6:98

 

# Wireless enable

BOOTPROTO=static

IPADDR=192.168.1.88

NETMASK=255.255.255.0

NETWORK=192.168.1.0

 

IPV6INIT=no

IPV6_AUTOCONF=no

NBOOT=yes

 

DNS

vim /etc/resolv.conf

 

; generated by /sbin/dhclient-script

search localdomain

nameserver 60.20.160.1

nameserver 8.8.8.8

 

重启network

/etc/init.d/network restart

 

2.NAT方式,可以达到目1

a)           vmWare

   

b)           VMnet8置(网->属性)

 

c)          

Bridaged方式置相同。

3.模式切

前提:已完成12中的置。

只需要在Virtue Machine Setting选择BridagedNAT,然后重启虚机即可生效。

vmware下的centosvmwarecdrom

mkdir /mnt/dvd

mount /dev/cdrom /mnt/dvd

</pre>

 

h3. Linux 修改系统时间

 

例:把系统时间 20115214:06:33

<pre>

date -s 05/02/2011

date -s 14:06:33

</pre>

 

h3. CentOS5.5win7共享文件

 

* 明:

1. Linuxwindows共享文件要通sambaRHEL4以后用的是cifsCommon Internet File SystemcifsMS的一通用的协议,Windows下的网上访问其它算机就是使用cifs协议也是samba的一部分。所以要安装samba才能挂

yum install samba3x

yum install samba3x -client

2. Win7(旗版)有一个“家庭”的概念。Linux应该是不能加入家庭的。所以CentOSmount win7的共享文件夹时,需要一个有密windows才行。相当于家庭外的系访问家庭内的源。

* 配置:

1. windows

建一个有密windows

Uname : share

Pwd : share

2. 建共享文件(右属性要共享的文件

3. Mount

事先在/etc/host中加入win7主机

mount -t cifs //LEMONGRAPE/linux -o username="share",password="share" ,codepage=936,iocharset=utf8 /mnt/win7_share

* 明:字部分是windows share folder中的中文(日文)能正常示。

验证远程主机是否

ping的方式验证

 

h3. 提示行基

 

bash 下,可以通更改 PS1 量的置提示行,如下所示:

<pre>

$ export PS1="> "

</pre>

更改会立即生效,通 "export" 放在您的 ~/.bashrc 文件中可将这种更改固定下来。只要您愿意,PS1 可以包含任意数量的文本:

<pre>

$ export PS1="This is my super prompt > "

This is my super prompt >

</pre>

尽管很有趣,但在提示行中包含大量静文本并不是特有用。大多数定制的提示行包含如用名、工作目或主机名之的信息。些花絮信息可以帮助您在 shell 世界中遨游。例如,下面的提示行将示您的用名和主机名:

<pre>

$ export PS1="u@H > "

drobbins@freebox >

</pre>

个提示行于那些以多个不同名称的帐户多台机器的人尤有用,因它可以提醒您:您目前在哪台机器上操作,有什么权限。

在上面的示例中,我使用了用的用反斜杠转义的字符序列,藉此通知 bash 将用名和主机名插入提示行中,当转义字符序列出 PS1 量中bash 就会用特定的。我使用了序列 "u"(表示用名)和 "H"(表示主机名的第一部分)。下面是 bash 识别的全部用序列的完整列表(您可以在 bash man page "PROMPTING" 部分找到个列表):

<pre>

序列

a ASCII 字符(也可以 07

d "Wed Sep 06" 格式的日期

e ASCII 转义字符(也可以 33

h 主机名的第一部分(如 "mybox"

H 主机的全称(如 "mybox.mydomain.com"

j 在此 shell 中通 ^Z 挂起的程数

l shell 设备名(如 "ttyp4"

行符

s shell 的名称(如 "bash"

24 时间(如 "23:01:01"

T 12 时间(如 "11:01:01"

@ am/pm 12 时间

u

v bash 的版本(如 2.04

V Bash 版本(包括级别 ?/td>

w 当前工作目(如 "/home/drobbins"

W 当前工作目的“基名 (basename)”(如 "drobbins"

! 当前命令在冲区中的位置

# 命令号(只要您入内容,它就会在次提示累加)

$ 如果您不是超 (root)插入一个 "$";如果您是超则显示一个 "#"

xxx 插入一个用三位数 xxx(用零代替未使用的数字,如 "07")表示的 ASCII 字符

反斜杠

[ 个序列应该在不移的字符序列(如转义序列)之前。它使 bash 正确算自动换行。

] 个序列应该在非打印字符序列之后。

</pre>

 

h3. Starting MTA...造成启慢的问题

 

解决Debian中由于"Starting MTA..."造成启慢的问题

我用的是Debian Lenny,发现每次启 "Starting MTA..." 都得等上很久,有候甚至得一分多,太受了。

今天在网上找到了一个解决法,分享一下。

* 原因:

MTA(message transfer agent,装的是Exim) 在启动时DNS lookups(DNS) 操作,而如果是拔号上网或是像我用Reijie,尝试进行网络连(即使是接失),将会尝试一段时间,所以造成启慢的问题. ( 里有详细的解: Exim 4 for Debian 中的 2.1.1.10. Keep number of DNS queries minimal (Dial-on-Demand) )

* 解决:

<pre>

1. 编辑文件: /etc/exim4/update-exim4.conf.conf , 找到 dc_minimaldns 字段,: dc_minimaldns='true';

2. 重新 exim. 运行:sudo dpkg-reconfigure exim4-config

时选择 Yes 即可。

</pre>

如果用不到件路由,可以用sysv-rc-conf或者rcconf禁用掉exim即可

 

h3. Debian下的日文示(文件名乱码问题

 

一般来,尽量保文件都是utf-8编码的,所以先确统编码是不是en_US.UTF-8

* 当前$LANG

<pre>

echo $LANG

</pre>

** 如果出不是en_US.UTF-8

<pre>

vim ~/.bashrc 或者 vim /etc/profile

 

添加

export LANG=en_US.UTF-8

</pre>

*** 明:

~/.bashrc 当前用生效

/etc/profile 所有用有效

最后,从新登echo $LANG,确认设置生效

** 如果从新登$LANG回去了

<pre>

vim ~/.profile

 

里面应该设置了

LANG=C

LANGUAGE=C

 

两行

</pre>

* 如果编码为en_US.UTF-8是乱,很可能是因中没有日文字体,安装之

<pre>

aptitude install ttf-vlgothic scim-anthy im-switch

</pre>

 

以上方法能保统显示的日文文件名没问题

并且以utf-8编码的文本文件中的日文不乱

但是,如果是以utf-8以外编码的文本文件,是会乱(windows上的乱是一滴)

posted on 2012-01-18 21:45 大鸟 阅读(593) 评论(0)  编辑  收藏 所属分类: linux

只有注册用户登录后才能发表评论。


网站导航: