How can I generate random numbers in shell scripts?

12:23:00 PM 0 Comments

How can I generate random numbers in shell scripts?

   This depends on the shell, and the facilities available from the
   OS.

   a. Some shells have a variable called RANDOM, which evaluates to a
      different value every time you dereference it. If your shell has
      this variable,

        $ number=$RANDOM will produce a random number.

   b. Some systems have a /dev/urandom device, which generates a
      stream of bits. This can be accessed using the dd(1) utility. An
      example of this (from a more extensive discussion of different
      techniques at http://www.shelldorado.com/scripts/cmds/rand)

        n=`dd if=/dev/urandom bs=1 count=4 2>/dev/null | od -t u4 | \
        awk 'NR==1 {print $2}'`

        also:

        od -vAn -N4 -tu4 < /dev/urandom

   c. Use a utility such as awk(1), which has random number generation
      included. This approach is the most portable between shells and
      operating systems.

        awk 'BEGIN {srand();print rand()}'

      Note that this doesn't work with older versions of awk. This
      requires a version supporting the POSIX spec for srand(). For
      example, on Solaris this will not work with /usr/bin/awk, but
      will with nawk or /usr/xpg4/bin/awk.

      Also, if you call this line more than once within the same
      second, you'll get the same number you did the previous time.

各个Linux版本的本地root密码破解方法

11:38:00 PM 0 Comments

各个Linux版本的本地root密码破解方法
这段时间老碰到有人问及各个linux版本的本地root密码破解方法,我这里自己以及在网络上搜集了些资料,希望对看到了这文章而又恰好用得到的技术人员有点帮助:

(一)RedHat/CentOS/Fedora 系统密码破解

1.在grub选项菜单按E进入编辑模式
2.编辑kernel 那行最后加上S (或者Single)
3.按B,启动到single-user mode
4.进入后执行下列命令
# mount -t proc proc /proc
# mount -o remount,rw /
#passwd
#sync
#reboot

(二)Debian linux 系统密码破解

1.在grub选项菜单'Debian GNU/Linux,...(recovery mode)',按e进入编辑模式
2.编辑kernel那行最后面的 ro single 改成 rw single init=/bin/bash,按b执行重启
3.进入后执行下列命令
root@(none)#mount -a
root@(none)#passwd root
root@(none)#reboot

(三)Freebsd 系统密码破解

1.开机进入引导菜单
2.选择每项(按4)进入单用户模式
3.进入之后输入一列命令
root@#mount -a
root@#fsck -y
root@#passwd(修改密码命令)
root@#root(要破解密码的用户名)
Enter new unix password:
root@#init 6 (重启)

(四)Solaris 系统密码破解

1.在grub选项菜中选择solaris failasfe 项
2.系统提示Do you wish to have it mounted read-write on /a ?[y,n,?] 选择y
3.就进入单用户模式
4.输入下列命令:passwd
root@#init 6 (重启)

(五)NetBsd 系统密码破解

1.开机:当出现提示符号并开始倒数五秒时, 键入以下指令:
> boot -s (进入单用户模式命令)
2.在以下的提示符号中
Enter pathname of shell or RETURN for sh:
按下 Enter。
3.键入以下指令:
# mount -a
# fsck -y
4.使用 passwd 更改 root 的密码。
5.使用 exit 指令进入多人模式。

(六)SUSE 系统密码破解

1.重新启动机器,在出现grub引导界面后,在启动linux的选项里加上init=/bin/bash,通过给内核传递init=/bin/bash参数使得OS在运行login程序之前运行bash,出现命令行。
2.稍等片刻出现(none)#:命令行。
3.这时输入mount -n / -o remount,rw 表示将根文件系统重新mount为可读写,有了读写权限后就可以通过passwd命令修改密码了。
4.这时输入passwd命令就可以重置密码了
5.修改完成后记得用mount -n / -o remount,ro将根文件系统置为原来的状态。

lsof 简介

4:18:00 PM 0 Comments


lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。


lsof使用
 

lsof输出信息含义

在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。


COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root cwd DIR 3,3 1024 2 /
init 1 root rtd DIR 3,3 1024 2 /
init 1 root txt REG 3,3 38432 1763452 /sbin/init
init 1 root mem REG 3,3 106114 1091620 /lib/libdl-2.6.so
init 1 root mem REG 3,3 7560696 1091614 /lib/libc-2.6.so
init 1 root mem REG 3,3 79460 1091669 /lib/libselinux.so.1
init 1 root mem REG 3,3 223280 1091668 /lib/libsepol.so.1
init 1 root mem REG 3,3 564136 1091607 /lib/ld-2.6.so
init 1 root 10u FIFO 0,15 1309 /dev/initctl


每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件。lsof输出各列信息的意义如下:

COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE:文件类型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称


其中FD 列中的文件描述符cwd 值表示应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改。
txt 类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序。其次数值表示应用
程序的文件描述符,这是打开该文件时返回的一个整数。如上的最后一行文件/dev/initctl,其文件描述符为 10。u 表示该
文件被打开并处于读取/写入模式,而不是只读 ® 或只写 (w) 模式。同时还有大写 的W 表示该应用程序具有对整个文件的写
锁。该文件描述符用于确保每次只能打开一个应用程序实例。初始打开每个应用程序时,都具有三个文件描述符,从 0 到 2,
分别表示标准输入、输出和错误流。所以大多数应用程序所打开的文件的 FD 都是从 3 开始。
与 FD 列相比,Type 列则比较直观。文件和目录分别称为 REG 和 DIR。而CHR 和 BLK,分别表示字符和块设备;
或者 UNIX、FIFO 和 IPv4,分别表示 UNIX 域套接字、先进先出 (FIFO) 队列和网际协议 (IP) 套接字。

lsof常用参数

lsof 常见的用法是查找应用程序打开的文件的名称和数目。可用于查找出某个特定应用程序将日志数据记录到何处,或者正在跟踪某个问题。
例如,linux限制了进程能够打开文件的数目。通常这个数值很大,所以不会产生问题,并且在需要时,应用程序可以请求更大的值(直到某
个上限)。如果你怀疑应用程序耗尽了文件描述符,那么可以使用 lsof 统计打开的文件数目,以进行验证。lsof语法格式是:


lsof [options] filename


常用的参数列表:

lsof filename 显示打开指定文件的所有进程
lsof -a 表示两个参数都必须满足时才显示结果
lsof -c string 显示COMMAND列中包含指定字符的进程所有打开的文件
lsof -u username 显示所属user进程打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /DIR/ 显示目录下被进程打开的文件
lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长
lsof -d FD 显示指定文件描述符的进程
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -i 用以显示符合条件的进程情况
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4地址
service --> /etc/service中的 service name (可以不只一个)
port --> 端口号 (可以不只一个)


例如: 查看22端口现在运行的情况

# lsof -i :22
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 1409 root 3u IPv6 5678 TCP *:ssh (LISTEN)


查看所属root用户进程所打开的文件类型为txt的文件:

# lsof -a -u root -d txt
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root txt REG 3,3 38432 1763452 /sbin/init
mingetty 1632 root txt REG 3,3 14366 1763337 /sbin/mingetty
mingetty 1633 root txt REG 3,3 14366 1763337 /sbin/mingetty
mingetty 1634 root txt REG 3,3 14366 1763337 /sbin/mingetty
mingetty 1635 root txt REG 3,3 14366 1763337 /sbin/mingetty
mingetty 1636 root txt REG 3,3 14366 1763337 /sbin/mingetty
mingetty 1637 root txt REG 3,3 14366 1763337 /sbin/mingetty
kdm 1638 root txt REG 3,3 132548 1428194 /usr/bin/kdm
X 1670 root txt REG 3,3 1716396 1428336 /usr/bin/Xorg
kdm 1671 root txt REG 3,3 132548 1428194 /usr/bin/kdm
startkde 2427 root txt REG 3,3 645408 1544195 /bin/bash
... ...



lsof使用实例
 

一、查找谁在使用文件系统

在卸载文件系统时,如果该文件系统中有任何打开的文件,操作通常将会失败。那么通过lsof可以找出那些进程在使用当前要卸载的文件系统,如下:


# lsof /GTES11/
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
bash 4208 root cwd DIR 3,1 4096 2 /GTES11/
vim 4230 root cwd DIR 3,1 4096 2 /GTES11/


在这个示例中,用户root正在其/GTES11目录中进行一些操作。一个 bash是实例正在运行,并且它当前的目录为/GTES11,另一个则显示的是vim正在编辑/GTES11下的文件。要成功地卸载/GTES11,应该在通知用户以确保情况正常之后,中止这些进程。 这个示例说明了应用程序的当前工作目录非常重要,因为它仍保持着文件资源,并且可以防止文件系统被卸载。这就是为什么大部分守护进程(后台进程)将它们的目录更改为根目录、或服务特定的目录(如 sendmail 示例中的 /var/spool/mqueue)的原因,以避免该守护进程阻止卸载不相关的文件系统。

二、恢复删除的文件

当Linux计算机受到入侵时,常见的情况是日志文件被删除,以掩盖攻击者的踪迹。管理错误也可能导致意外删除重要的文件,比如在清理旧日志时,意外地删除了数据库的活动事务日志。有时可以通过lsof来恢复这些文件。

当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录索引节点。
在/proc 目录下,其中包含了反映内核和进程树的各种文件。/proc目录挂载的是在内存中所映射的一块区域,所以这些文件和目录并不存在于磁盘中,因此当我们对这些文件进行读取和写入时,实际上是在从内存中获取相关信息。大多数与 lsof 相关的信息都存储于以进程的 PID 命名的目录中,即 /proc/1234 中包含的是 PID 为 1234 的进程的信息。每个进程目录中存在着各种文件,它们可以使得应用程序简单地了解进程的内存空间、文件描述符列表、指向磁盘上的文件的符号链接和其他系统信息。lsof 程序使用该信息和其他关于内核内部状态的信息来产生其输出。所以lsof 可以显示进程的文件描述符和相关的文件名等信息。也就是我们通过访问进程的文件描述符可以找到该文件的相关信息。



当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问该文件,那么我们就可以通过lsof从/proc目录下恢复该文件的内容。 假如由于误操作将/var/log/messages文件删除掉了,那么这时要将/var/log/messages文件恢复的方法如下:
首先使用lsof来查看当前是否有进程打开/var/logmessages文件,如下:

# lsof |grep /var/log/messages
syslogd 1283 root 2w REG 3,3 5381017 1773647 /var/log/messages (deleted)


从上面的信息可以看到 PID 1283(syslogd)打开文件的文件描述符为 2。同时还可以看到/var/log/messages已经标记被删除了。因此我们可以在 /proc/1283/fd/2 (fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下:

# head -n 10 /proc/1283/fd/2
Aug 4 13:50:15 holmes86 syslogd 1.4.1: restart.
Aug 4 13:50:15 holmes86 kernel: klogd 1.4.1, log source = /proc/kmsg started.
Aug 4 13:50:15 holmes86 kernel: Linux version 2.6.22.1-8 (root@everestbuilder.linux-ren.org) (gcc version 4.2.0) #1 SMP Wed Jul 18 11:18:32 EDT 2007
Aug 4 13:50:15 holmes86 kernel: BIOS-provided physical RAM map:
Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved)
Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 0000000000100000 - 000000001f7d3800 (usable)
Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 000000001f7d3800 - 0000000020000000 (reserved)
Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 00000000e0000000 - 00000000f0007000 (reserved)
Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 00000000f0008000 - 00000000f000c000 (reserved)


从上面的信息可以看出,查看 /proc/8663/fd/15 就可以得到所要恢复的数据。如果可以通过文件描述符查看相应的数据,那么就可以使用 I/O 重定向将其复制到文件中,如:

cat /proc/1283/fd/2 > /var/log/messages


对于许多应用程序,尤其是日志文件和数据库,这种恢复删除文件的方法非常有用。

VIM文件编码识别与乱码处理

10:09:00 PM 0 Comments







在 Vim 中, 有四个与编码有关的选项, 它们是: fileencodings、 fileencoding、 encoding 和 termencoding。 在实际使用中, 任何一个选项出现错误, 都会导致出现乱码。 因此, 每一个 Vim 用户都应该明确这四个选项的含义。 下面, 我们详细介绍一下这四个选项的含义和作用。 


1 encoding


encoding 是 Vim 内部使用的字符编码方式。 当我们设置了 encoding 之后, Vim 内部所有的 buffer、 寄存器、 脚本中的字符串等, 全都使用这个编码。 Vim 在工作的时候, 如果编码方式与它的内部编码不一致, 它会先把编码转换成内部编码。 如果工作用的编码中含有无法转换为内部编码的字符, 在这些字符就会丢失。 因此,在选择 Vim 的内部编码的时候, 一定要使用一种表现能力足够强的编码, 以免影响正常工作。


由于 encoding 选项涉及到 Vim 中所有字符的内部表示, 因此只能在 Vim 启动的时候设置一次。 在 Vim 工作过程中修改 encoding 会造成非常多的问题。 如果没有特别的理由, 请始终将 encoding 设置为 utf-8。 为了避免在非 UTF-8 的系统如 Windows 下, 菜单和系统提示出现乱码, 可同时做这几项设置:


set encoding=utf-8


set langmenu=zh_CN.UTF-8


language message zh_CN.UTF-8


2 termencoding


termencoding 是 Vim 用于屏幕显示的编码, 在显示的时候, Vim 会把内部编码转换为屏幕编码, 再用于输出。 内部编码中含有无法转换为屏幕编码的字符时, 该字符会变成问号, 但不会影响对它的编辑操作。 如果 termencoding 没有设置, 则直接使用 encoding 不进行转换。


举个例子, 当你在 Windows 下通过 telnet 登录 Linux 工作站时, 由于 Windows 的 telnet 是 GBK 编码的, 而 Linux 下使用 UTF-8 编码, 你在 telnet 下的 Vim 中就会乱码。 此时有两种消除乱码的方式: 一是把 Vim 的 encoding 改为 gbk, 另一种方法是保持 encoding 为 utf-8, 把 termencoding 改为 gbk, 让 Vim 在显示的时候转码。 显然, 使用前一种方法时, 如果遇到编辑的文件中含有 GBK 无法表示的字符时, 这些字符就会丢失。 但如果使用后一种方法, 虽然由于终端所限, 这些字符无法显示, 但在编辑过程中这些字符是不会丢失的。


对于图形界面下的 GVim, 它的显示不依赖 TERM, 因此 termencoding 对于它没有意义。 在 GTK2 下的 GVim 中, termencoding 永远是 utf-8, 并且不能修改。 而 Windows 下的 GVim 则忽略 termencoding 的存在。


fileencoding


当 Vim 从磁盘上读取文件的时候, 会对文件的编码进行探测。 如果文件的编码方式和 Vim 的内部编码方式不同, Vim 就会对编码进行转换。 转换完毕后, Vim 会将 fileencoding 选项设置为文件的编码。 当 Vim 存盘的时候, 如果 encoding 和 fileencoding 不一样, Vim 就会进行编码转换。 因此, 通过打开文件后设置 fileencoding, 我们可以将文件由一种编码转换为另一种编码。 但是, 由前面的介绍可以看出, fileencoding 是在打开文件的时候, 由 Vim 进行探测后自动设置的。 因此, 如果出现乱码, 我们无法通过在打开文件后重新设置 fileencoding 来纠正乱码。


4 fileencodings


编码的自动识别是通过设置 fileencodings 实现的, 注意是复数形式。 fileencodings 是一个用逗号分隔的列表, 列表中的每一项是一种编码的名称。 当我们打开文件的时候, VIM 按顺序使用 fileencodings 中的编码进行尝试解码, 如果成功的话, 就使用该编码方式进行解码, 并将 fileencoding 设置为这个值, 如果失败的话, 就继续试验下一个编码。


因此, 我们在设置 fileencodings 的时候, 一定要把要求严格的、 当文件不是这个编码的时候更容易出现解码失败的编码方式放在前面, 把宽松的编码方式放在后面。


例如, latin1 是一种非常宽松的编码方式, 任何一种编码方式得到的文本, 用 latin1 进行解码, 都不会发生解码失败 —— 当然, 解码得到的结果自然也就是理所当然的乱码。 因此, 如果你把 latin1 放到了 fileencodings 的第一位的话, 打开任何中文文件都是乱码也就是理所当然的了。


以下是推荐的一个 fileencodings 设置:


set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1


其中, ucs-bom 是一种非常严格的编码, 非该编码的文件几乎没有可能被误判为 ucs-bom, 因此放在第一位。


utf-8 也相当严格, 除了很短的文件外 (例如许多人津津乐道的 GBK 编码的联通被误判为 UTF-8 编码的经典错误), 现实生活中一般文件是几乎不可能被误判的, 因此放在第二位。


接下来是 cp936 和 gb18030, 这两种编码相对宽松, 如果放前面的话, 会出现大量误判, 所以就让它们靠后一些。 cp936 的编码空间比 gb18030 小, 所以把 cp936 放在 gb18030 前面。


至于 big5euc-jp 和 euc-kr, 它们的严格程度和 cp936 差不多, 把它们放在后面, 在编辑这些编码的文件的时候必然出现大量误判, 但这是 Vim 内置编码探测机制没有办法解决的事。 由于中国用户很少有机会编辑这些编码的文件, 因此我们还是决定把 cp936 和 gb18030 前提以保证这些编码的识别。


最后就是 latin1 了。 它是一种极其宽松的编码, 以至于我们不得不把它放在最后一位。 不过可惜的是, 当你碰到一个真的 latin1 编码的文件时, 绝大部分情况下, 它没有机会 fall-back 到 latin1, 往往在前面的编码中就被误判了。 不过, 正如前面所说的, 中国用户没有太多机会接触这样的文件。


如果编码被误判了, 解码后的结果就无法被人类识别, 于是我们就说, 这个文件乱码了。 此时, 如果你知道这个文件的正确编码的话, 可以在打开文件的时候使用 ++enc=encoding 的方式来打开文件, 如:


:e ++enc=utf-8 myfile.txt


5 fencview


根据前面的介绍, 我们知道, 通过 Vim 内置的编码识别机制, 识别率是很低的, 尤其是对于简体中文 (GBK/GB18030)、 繁体中文 (Big5)、 日文 (euc-jp) 和韩文 (euc-kr) 之间的识别。 而对于普通用户而言, 肉眼看出一个文件的编码方式也是很不现实的事情。 因此,强烈推荐水木社区的 mbbill 开发的 fencview 插件。 该插件使用词频统计的方式识别编码, 正确率非常高。





Vim tips: Using tabs

1:22:00 PM 0 Comments

Before Vim 7.0 was released last May, I usually had six or seven xterms or Konsole windows open, each with a single Vim session in which I was editing a single file. This takes up a lot of screen space, and isn't very efficient. With Vim 7.0, users now have the option of using tabs within Vim. With Vim's tab features you can consolidate all your sessions into one window and move between files more easily.

If you're using an version of Vim older than 7.0, you won't have access to this feature. By now, though, most distros have moved to Vim 7.0, so if you're using a recent release you should be OK.

Opening a tab

Let's start by opening a new tab in Vim. There are a few ways to do this. Probably the easiest to remember is to run the :tabnew command while in normal mode. This will open a new tab with an empty buffer. If you want to edit a file in the new tab, you can run :tabnew filename and Vim will load the file in the new tab.

Another way to do this is to open more than one file at startup using the -p option. If you want to open three files in separate tabs, you'd use this syntax:

vim -p file1 file2 file3

This will start a Vim session with file1 in the first tab, file2 in the second tab, and file3 in the third.

Vim will open up as many tabs as you like on startup, up to the maximum number of tabs set in the .vimrc file. The default maximum is 10 tabs, but you can change this by setting the tabpagemax option in your .vimrc, like so:

set tabpagemax=15

If you exceed the number of tabs allowed by tabpagemax Vim will simply open the maximum number of tabs, and the other files will be open but not displayed. You can edit the remaining files by using the :next or :last command to move to the files that are not displayed in a tab. Note that this setting only applies to the maximum number of tabs Vim will open on startup -- you can still open more tabs during your Vim session.

The :tabf command allows you to search for a file in your current path and open it in a new tab. For instance, if you want to open a file called inventory.txt that's in your current path, you could run:

:tabf inven*

That will search for a file that matches the string inven and any number of characters after it. If only one file is found, Vim will open it in a new tab. If you have several files that match, Vim will complain that too many files match, and you'll have to narrow the search a little. The :tabn command will do autocompletion of file names in your path, so you can just type the first few characters of a filename and hit Tab to find the right file.

Figure 1
Figure 1

Moving between tabs

You can switch between tabs using :tabn and :tabp, or you can use gt while you're in normal mode. Of course, if you're using Vim's GUI, GVim, you can also use the mouse to switch between tabs or use keyboard shortcuts. In GVim, you can also access a context menu for tabs by right-clicking on the tab bar. Here you can open new tabs with a new buffer or an existing file, or close the current tab.

If you have a lot of tabs open, you can use :tabfirst, or just :tabfir, to jump to the first tab, and :tablast to jump to the last tab that's open.

By default, the tab labels are shown at the top of the Vim window only when tabs are open. If you want to see the tab bar all the time, you can modify the showtabline option in your .vimrc. To set this to display all of the time, use:

set showtabline=2

If you want to turn it off altogether, use 0 instead of 2.

Note that the tabs are still there, even if the tab bar isn't displayed. If you have the tabline option set to 0, you can still see what tabs are open by using the :tabs command, which will provide a summary of open tabs, as you can see in the figure.

Speaking of setting options, if you don't like the existing shortcuts for the tab commands, you can add your own. For instance, if you want to make it easy to open a new tab, you might insert this into your .vimrc:

imap ,t <Esc>:tabnew<CR>

This tells Vim to set up a keymap for ,t in insert mode, to run Esc to put Vim into normal mode, then :tabnew and a carriage return to run the command. You can set up mappings for all of the tab commands that you use regularly. For more on setting up mappings, see our article Using Vim mappings and abbreviations.

Rearranging tabs

If you're really meticulous and want to position tabs just so in Vim, you can move the tabs to a specific spot in the tab order using :tabm n , where n is the position number that you want to use. If you don't give the :tabm command an argument, then the current tab will be moved to the last spot.

Vim starts tab numbering from 0, so if you have six tabs open, you'll have tab 0 through tab 5. So, if you're in the first tab and want to move it to the fourth position, you'd run :tab 3.

Note that you can still use viewports normally within tabbed windows, and tabs are useful for doing a quick edit in a file when you have a main Vim window set up with a couple of viewports arranged just right.

Running commands in tabs

Let's say you're editing six or seven files in Vim and realize that you need to replace a variable name with a new one. Using the :tabdo command, you can run a search and replace through all of the tabs at once rather than changing each file individually. For instance, if you want to replace foo with bar, you'd run this:

:tabdo %s/foo/bar/g

That will run through each open tab and run the search and replace command (%s/foo/bar/g) in each one.

Tabs can be extremely useful, and it only takes a short while to become proficient with them. For more on working with tabs in Vim, run :help tab-page-intro within Vim.

Fwd: 使用Busybox做一个小巧的Linux操作系统

3:51:00 PM 0 Comments




1.基础知识

一个操作系统可以简单的抽象为,引导程序 内核 文件系统。

 

vmlinuz是Linux 内核的镜像文件,可以被引导程序加载,从而启动Linux系统。

 

initrd的全称是boot loader initialized RAM disk,它是系统启动时所使用的根文件系统映像文件,这个文件系统中包含几个驱动模块,用来装载实际的根文件系统,比如一个IDE或SCSI硬盘的驱动模块,内核装入这个模块之后用它来驱动硬盘,挂接硬盘到ramdisk的某个子目录,然后再用其中的pivot_root命令,将硬盘文件系统变成根文件系统,并开始执行init进程,此时init ram disk被umount,寿终正寝。

 

由此可见,我们可以用vmlinuz initrd.img做一个文件系同长驻内存的迷你Linux。

 

现在进入正题了:

 

2.编译内核

cd /usr/src/....----进入内核源代码目录,没有的话去官方网站,随便下

make menuconfig-----配置编译选项请注意一定加入RAM disk support 和initial RAM disk

(initrd) support 的支持(在block device中)。另外最好将ext3文件系统编入内核,不要编成模块。配置完毕后保存为.config(默认)

make bzImage----编译

 

在许多内核编译参考中还有

make modules

make modules_install两步

但我们这里没有加入对modules的支持,所以不需要。生成的bzImage文件在usr/src/linux/arch/.../boot中,省略的根据你的机器架构决定,make过程中会有提示,比如我的是x86_64. 注意这个文件非常重要,其实就是我们最终的vmlinuz.

 

3.busybox

busybox是一个集成了一百多个最常用linux命令和工具的软件,它甚至还集成了一个http服务器和一个telnet服务器,而所有这一切功能却只有区区1M左右的大小.我们平时用的那些linux命令就好比是分力式的电子元件,而busybox就好比是一个集成电路,把常用的工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍,在嵌入式linux应用中,busybox有非常广的应用,另外,大多数linux发行版的安装程序中都有busybox的身影,安装linux的时候案ctrl alt F2就能得到一个控制台,而这个控制台中的所有命令都是指向busybox的链接.在我们的迷你Linux中,需要的也正是busybox的命令和工具。

 

下载 http://busybox.net/downloads/

使用过程中许多高版本都出现编译错误,所以用了一个最原始的版本busybox-1.00

#cp busybox-1.00.tar.gz /tmp/bunny

#cd /tmp/bunny

#tar xvfz busybox-1.00.tar.gz

#cd busybox-1.00

#make menuconfig ----编译配置

 

下面是需要编译进busybox的功能选项,其他的可以根据需要自选.

General Configuration应该选的选项

Show verbose applet usage messages

Runtime SUID/SGID configuration via /etc/busybox.conf

Build Options

Build BusyBox as a static binary (no shared libs)

 

这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使他正常工作.

 

Installation Options

Don't use /usr

 

这个选项也一定要选,否则make install 后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向它的链接.

 

其他选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了.

配置好后退出并保存.config.

make

make install

编译好后在busybox目录下生成子目录_install,里面的内容:

bin

linuxrc -> bin/busybox

sbin

其中可执行文件busybox在bin目录下,其他的都是指向他的符号链接.

 

4.制作自己的root fs

1)目录结构

mkdir /tmp/myOS/rootfs

cd /tmp/myOS/rootfs

mkdir etc usr var tmp proc home root dev

其中etc,proc和dev是一定要建的,bin和sbin不用建,因为busybox中已经有了.

其他的可以象征性的建几个就可以了.

拷贝busybox

#cp -R /tmp/bunny/busybox-1.00/_install/* /tmp/myOS/rootfs/

 

2)设备文件

我是直接从FC系统/dev目录里cp的,方法如下:

#cp -R /dev/console /tmp/myOS/rootfs/dev/

#cp -R /dev/null /tmp/myOS/rootfs/dev/

#cp -R /dev/zero /tmp/myOS/rootfs/dev/

你认为需要的都cp过来

有的参考文献说fd0,hda,ram,ram1,tty1,loop1,fb0,fb,tty等是必备的,但是好像有些文件并没有

 

3)建立etc目录下的配置文件

我是直接拷贝busybox自带的例子

cp -R tmp/bunny/busybox-1.00/examples/bootfloppy/etc/* /tmp/myOS/rootfs/etc

 

4)制作initrd.img映象文件

cd /tmp/myOS/

dd if=/dev/zero of=/tmp/disk bs=1M count=32 ------初始化32M内存空间

mkfs.ext3 -m0 /tmp/disk ------格式化为ext3

mkdir /mnt/ram

mount -o loop /tmp/disk /mnt/ram ------挂载到/mnt/ram

cp -R rootfs/* /mnt/ram ------把rootfs写入内存

umount /mnt/ram

dd if=/tmp/disk of=/tmp/myOS/initrd.img ------把内存中的内容以映象方式取出

ok,这个initrd.img就是我们的rootfs

有的文献使用ram0,也就是将上述过程的/tmp/disk改为/dev/ram0,虽然制作过程没有问题,但是它存在大小限制

 

5.整合,启动

1)kernel

cp /usr/src/linux/arch/x86_64/bzImage /boot/vmlinuz

2)rootfs 一般命名为initrd.img

cp /tmp/myOS/initrd.img /boot

3)有了上述两个文件,已经可以通过网络dhcp, tftp服务器启动,tftp服务器中添加启动脚本如下

DEFAULT linux

PROMPT 0

LABEL linux

KERNEL vmlinuz

append initrd=initrd.img devfs=nomount ramdisk_size=52000

 

问题:理论上这个小Linux也应该可以从grub引导。


eclipse快捷键

5:31:00 PM 0 Comments

Eclipse本身很快的,但是加上了myeclipse后,就狂占内存,而且速度狂慢,那如何让Eclipse拖着myeclipse狂飚呢?这里提供一个:



技巧:取消自动validation

validation有一堆,什么xml、jsp、jsf、js等等,我们没有必要全部都去自动校验一下,只是需要的时候才会手工校验一下,速度立马提升好几个档次!

取消方法: windows-->perferences-->myeclipse-->validation 除开Manual下面的复选框全部选中之外,其他全部不选手工验证方法:

        在要验证的文件上,单击鼠标右键-->myeclipse-->run validation


程序代码自动排版:Ctrl+Shift+F,会自动把代码进行格式化的排版,非常方便

快速执行程序:Ctrl + F11第一次执行时,它会询问您执行模式,设置好后,以后只要按这个热键,它就会快速执行.


Ctrl+Shift+/ 加上段注释/**/

Ctrl+Shift+\ 取消段注释/**/

Ctrl+/ 加上行注释或取消行注释

自动汇入所需要的类别:Ctrl+Shift+M Ctrl+Shift+O   好象使用Ctrl+Shift+O   也可以

重要技巧(机器配置低就别用了,呵呵)

Eclipse中默认是输入"."后出现自动提示,用于类成员的自动提示,可是有时候我们希望它能在我们输入类的首字母后就出现自动提示,可以节省大量的输入时间(虽然按alt + /会出现提示,但还是要多按一次按键,太麻烦了).

从Window -> preferences
-> Java -> Editor -> Content assist ->
Auto-Activation下,我们可以在"."号后面加入我们需要自动提示的首字幕,比如"ahiz".


然后我们回到Eclipse的开发环境,输入"a",提示就出现了.

但是我们可以发现,这个Auto-Activation下的输入框里最多只能输入5个字母,也许是Eclipse的开发人员担心我们输入的太多会影响性能,但计算机的性能不用白不用,所以我们要打破这个限制.

其实上面都是铺垫,制造一下气氛,以显得我们下面要做的事情很牛似的,其实不然,一切都很简单.嘿嘿 :)

在"."后面随便输入几个字符,比如"abij",然后回到开发环境,File -> export -> general -> preferences -> 选一个地方保存你的首选项,比如C:\a.epf

用任何文本编辑器打开a.epf,查找字符串“abij”,找
到以后,替换成“abcdefghijklmnopqrstuvwxyz”,总之就是你想怎样就怎样!!然后回到Eclipse,File ->
import -> general -> preferences ->
导入刚才的a.epf文件.此时你会发现输入任何字幕都可以得到自动提示了.爽!!!


最后:自动提示弹出的时间最好改成100毫秒以下,这样会比较爽一点,不然你都完事了,自动提示才弹出来:),不过也要看机器性能.



myeclipse自动提示背景颜色设置(再也不那么淡)

window--preference--java--editor- completion proposals Background 颜色推荐85,90,205



Eclipse 常用快捷键

Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。

   1. 【ALT+/】

   此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。

   2. 【Ctrl+O】

   显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。


   3. 【Ctrl+/】

   快速添加注释,能为光标所在行或所选定行快速添加注释或取消注释,在调试的时候可能总会需要注释一些东西或取消注释,现在好了,不需要每行进行重复的注释。


   4. 【Ctrl+D】

   删除当前行,这也是笔者的最爱之一,不用为删除一行而按那么多次的删除键。


   5. 【Ctrl+M】

   窗口最大化和还原,用户在窗口中进行操作时,总会觉得当前窗口小(尤其在编写代码时),现在好了,试试【Ctrl+M】快捷键。


   查看和定位快捷键

   在程序中,迅速定位代码的位置,快速找到Bug的所在,是非常不容易的事,Eclipse提供了强大的查找功能,可以利用如下的快捷键帮助完成查找定位的工作。

   1. 【Ctrl+K】、【Ctrl++Shift+K】

   快速向下和向上查找选定的内容,从此不再需要用鼠标单击查找对话框了。


   2. 【Ctrl+Shift+T】

   查找工作空间(Workspace)构建路径中的可找到Java类文件,不要为找不到类而痛苦,而且可以使用“*”、“?”等通配符。


   3. 【Ctrl+Shift+R】

   和【Ctrl+Shift+T】对应,查找工作空间(Workspace)中的所有文件(包括Java文件),也可以使用通配符。


   4. 【Ctrl+Shift+G】

   查找类、方法和属性的引用。这是一个非常实用的快捷键,例如要修改引用某个方法的代码,可以通过【Ctrl+Shift+G】快捷键迅速定位所有引用此方法的位置。


   5. 【Ctrl+Shift+O】

快速生成import,当从网上拷贝一段程序后,不知道如何import进所调用的类,试试【Ctrl+Shift+O】快捷键,一定会有惊喜。


   6. 【Ctrl+Shift+F】

   格式化代码,书写格式规范的代码是每一个程序员的必修之课,当看见某段代码极不顺眼时,选定后按【Ctrl+Shift+F】快捷键可以格式化这段代码,如果不选定代码则默认格式化当前文件(Java文件)。


   7. 【ALT+Shift+W】

   查找当前文件所在项目中的路径,可以快速定位浏览器视图的位置,如果想查找某个文件所在的包时,此快捷键非常有用(特别在比较大的项目中)。


   8. 【Ctrl+L】

   定位到当前编辑器的某一行,对非Java文件也有效。


   9. 【Alt+←】、【Alt+→】

   后退历史记录和前进历史记录,在跟踪代码时非常有用,用户可能查找了几个有关联的地方,但可能记不清楚了,可以通过这两个快捷键定位查找的顺序。


   10. 【F3】

快速定位光标位置的某个类、方法和属性。


   11. 【F4】

   显示类的继承关系,并打开类继承视图。


   调试快捷键

   Eclipse中有如下一些和运行调试相关的快捷键。

   1. 【Ctrl+Shift+B】:在当前行设置断点或取消设置的断点。

   2. 【F11】:调试最后一次执行的程序。

   3. 【Ctrl+F11】:运行最后一次执行的程序。

   4. 【F5】:跟踪到方法中,当程序执行到某方法时,可以按【F5】键跟踪到方法中。

   5. 【F6】:单步执行程序。

   6. 【F7】:执行完方法,返回到调用此方法的后一条语句。

   7. 【F8】:继续执行,到下一个断点或程序结束。


   常用编辑器快捷键

   通常文本编辑器都提供了一些和编辑相关的快捷键,在Eclipse中也可以通过这些快捷键进行文本编辑。

   1. 【Ctrl+C】:复制。

   2. 【Ctrl+X】:剪切。

   3. 【Ctrl+V】:粘贴。

   4. 【Ctrl+S】:保存文件。

   5. 【Ctrl+Z】:撤销。

   6. 【Ctrl+Y】:重复。

   7. 【Ctrl+F】:查找。


   其他快捷键

   Eclipse中还有很多快捷键,无法一一列举,用户可以通过帮助文档找到它们的使用方式,另外还有几个常用的快捷键如下。

   1. 【Ctrl+F6】:切换到下一个编辑器。

   2. 【Ctrl+Shift+F6】:切换到上一个编辑器。

   3. 【Ctrl+F7】:切换到下一个视图。

   4. 【Ctrl+Shift+F7】:切换到上一个视图。

   5. 【Ctrl+F8】:切换到下一个透视图。

   6. 【Ctrl+Shift+F8】:切换到上一个透视图。


   Eclipse中快捷键比较多,可以通过帮助文档找到所有快捷键的使用,但要掌握所有快捷键的使用是不可能的,也没有必要,如果花点时间熟悉本节列举的快捷键,必将会事半功倍



1. edit->content Assist - >   add       Alt+/   代码关联

2. Window -> Next Editor -> add     Ctrl+Tab 切换窗口

3. Run/Debug Toggle Line Breakpoint -> add Ctrl+` 在调试的时候 增删断点

4. Source-> Surround with try/catch Block -> Ctrl+Shift+v   增加try catch 框框

5. Source -> Generate Getters and Setters -> Ctrl+Shift+. 增加get set 方法




-----------有用的快捷键-----------

Alt+/ 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)

Ctrl+1:光标停在某变量上,按Ctrl+1键,可以提供快速重构方案。选中若干行,按Ctrl+1键可将此段代码放入for、while、if、do或try等代码块中。

双击左括号(小括号、中括号、大括号),将选择括号内的所有内容。

Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性


-----------Ctrl系列-----------

Ctrl+K:将光标停留在变量上,按Ctrl+K键可以查找到下一个同样的变量

Ctrl+Shift+K:和Ctrl+K查找的方向相反

Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)

Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)

Ctrl+Q 定位到最后编辑的地方

Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)

Ctrl+M 最大化当前的Edit或View (再按则反之)

Ctrl+/ 注释当前行,再按则取消注释

Ctrl+T 快速显示当前类的继承结构

Ctrl+Shift-T: 打开类型(Open type)。如果你不是有意磨洋工,还是忘记通过源码树(source tree)打开的方式吧。

Ctrl+O:在代码中打开类似大纲视图的小窗口

Ctrl+鼠标停留:可以显示类和方法的源码

Ctrl+H:打开搜索窗口

Ctrl+/(小键盘) 折叠当前类中的所有代码

Ctrl+×(小键盘) 展开当前类中的所有代码


-----------Ctrl+Shift 系列-----------

Ctrl+Shift+F 格式化当前代码

Ctrl+Shift+X 把当前选中的文本全部变味小写

Ctrl+Shift+Y 把当前选中的文本全部变为小写

Ctrl+Shift+O:快速地导入import

Ctrl+Shift+R:打开资源 open Resource


-----------F快捷键 系列-----------

F3:打开声明该引用的文件

F4:打开类型层次结构

F5:单步跳入

F6:单步跳过

F7:单步跳出

F8:继续,如果后面没有断点,程序将运行完


-----------行编辑用-----------

Ctrl+D: 删除当前行

Ctrl+Alt+↓ 复制当前行到下一行(复制增加)

Ctrl+Alt+↑ 复制当前行到上一行(复制增加)

Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)

Alt+↑ 当前行和上面一行交互位置(同上)

Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)

Ctrl+Shift+Enter 在当前行插入空行(原理同上条)


-----------不常用的-----------

Alt+← 前一个编辑的页面

Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)

Ctrl+Shift+S:保存全部

Ctrl+W 关闭当前Editer

Ctrl+Shift+F4 关闭所有打开的Editer


Ctrl+Shift+G: 在workspace中搜索引用

Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)

-----------不明白-----------

Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)

Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)


6120新手入门问题提问与解答集锦

5:46:00 PM 0 Comments

6120新手入门问题提问与解答集锦










1、怎么把SIM卡里的号码复制到手机啊?

答:主菜单--名片夹--选项--SIM卡名片--SIM卡电话薄--选项--标记--全部标记--选项---复制至名片夹;即可复制到手机里面!

2、怎样建立播放列表?

答:首先打开“播放器”—选项—音乐库— 曲目列表 —选项—新建曲目列表,为新列表命名—选项—标记—标记全部—选项—选择已标记的条目。即可!

3、请问怎样格机?

答:格机有二种方法:
  1、软格:在手机上输入 *#7370# 之后要求你输入锁码,初始密码是:12345,如果你更改过手机密码,那就是更改后的密码(不是SIM卡密码),之后出现白屏,只显示NOKIA字样,2~3分钟后格机完成,重新输入时间。
 
 2、硬格:先关机,在开机的时候按住拨号键、“*”键、“3”键,打开电源直到“NOKIA”字样出现(此过程不能松开任何一个按键)。稍稍等几秒直至
出现“Formating……/”字样,这时方可松开以上按键。过几分钟,系统格式化完成,手机自动重启并进入待机画面。  

以上格机需要注意:保持电量绝对充足,格机途中不能企图关机,不能插充电器等。一般以软格为先。(记得格机前一定先备份好自己要的数据资料等)

4、怎样设置彩信?

答:1、工具—设置—连接设置—接入点—选项—新增接入点—使用默认设置:
  连接名称:移动彩信
  数据承载方式:分组数据
  接入点名称:cmwap
  用户名:无
  提示输入密码:否
  密码:无
  鉴定:普通
  主页:http//mmsc.monternet.com
  2、信息—选项—设置—彩信:

  使用的接入点:移动彩信(刚才建立的连接)


5、这部机子短信不能全删?只能一条一条删?

答:进入收件箱—选项—标记—标记全部—选项—删除;即可删除全部短信息。

6、怎样设置GPRS上网?

答:上网设置 :
  功能表-工具-设置-连接设置—接入点—选项-新增接入点-使用默认设置
  连接名称:cmwap(可以随便取)
  数据承载方式:分组数据
  接入点名称:cmwap
  用户名:无
  提示输入密码:否
  密码:无
  鉴定:安全  
  主页:
http://wap.monternet.com

  然后再按下选项,选高级设置
  网络类型:IPv4
  手机IP地址:自动
  域名服务器:自动
  代理服务器地址:10.0.0.172
  代理端口号码:80

7、用Easy RealMedia转换视频文件,怎样设置?

答:用Easy RealMedia参数设置如下:
  
  固定码率:200

  视频模式:SharpestImage

  视频编码:RealVideo8

  音频模式:Music, 设定FPS:15
  
  音频编码:32KbpsStereoMusic-RA8

  调整画面大小:240x320


    需要说明的是:固定码率的上限不能高过350kbps,可以在140—300之间选择,码率越大效果越好,可是空间也会越大。
选择“固定码率”输出为RM格式,如果选择“动态码率”输出为RMVB格式.

8、怎样删除名片夹里面的电话号码?

答:名片夹—选项—标记—标记全部—选项—删除;即可!

9、MP3、视频文件应该放在内存卡那个地方?

答:图片:Images
  声音:Sounds—Digital
  视频: Videos

10、谁知道怎么把图片设为壁纸的时候全屏显示?

答:6120C的壁纸不能全屏显示的,必须利用第三方软件做成主题,才可以全屏显示。

11、用蓝牙接收文件的时候问什么总提示系统空间不足?

答:由于蓝牙传送在6120C内是以短信形式传送的,将会直接留在收件箱内,这样收件箱的容量就直接影响到了将被传送的蓝牙文件的大小,也就是说传送的文件必须要小于收件箱的容量!(ps:我们要养成把接收后的文件转移在存储卡内的好习惯!)当然大家都知道6120C
手机的内存只有10mb,再加上我们平时软件的安装,必然会小于10mb的空间,我们传送的文件是不是必须小于10mb呢?在这里给大家一个建议:在传送大文件时你可以把收件箱的存储直接指向存储卡!

12、为什么手机和电脑总连接不上啊?

答:手机和电脑用数据线连接主要针对手机和电脑的连接设置,
1)、电脑的连接设置方法可以进入pc套件的管理连接进行针对的设置。
2)手机的设置:连接功能--数据线模式 里面选择对应的连接!

13、什么叫格机?格机真的对手既有用么?

答:格机即是格式化手机的ROM,重新写入预设数据,修复所有用户擅自修改或添加的文件,使手机会到出厂时的预设状态。
1:格机不会对手机造成硬件损伤。手机的储存设备不像电脑的硬盘,它是属于闪存(U盘)式的ROM,格机时只是单纯的写入覆盖数据。不存在硬盘的磁道分区等问题。有些人说的格机时的CPU超负荷运行更是无谐之谈。说白了,格机只是像开关机那样简单。
2:
格机对节省C盘内存作用不大。很多文章说Symbian的系统的最大弊端就是在使用过程中会导致C盘内存逐步减少,需要格机来恢复,我不支持这样的观点。
我的经验告诉我,C盘内存的占用跟软件安装的多少和使用有关的。软件使用的过程中会在C盘留下一些必要的关联文件,或一些手机的操作记录。(如
C/NOKIA/StarterMonLog.txt)这些都是实实在在的文件,并不存在内存无形减少的问题。而在程序管理看到容量不对的是有些文件手机
扫描不到的原故。然而所谓的垃圾文件就是在删除程序是没有通过反安装文件删除时留下的文件,这些完全可以避免。比如我格机前的C盘有3000左右。格机后
有8000。当我把反安装文件,名片夹等东西拷回去,50多个软件,不能使用的重新安装,注册。再把桌面等设置重新设置好,再使用几天,C盘还是3000
左右,和没格之前大小差不多。所以,只要正确使用,是不存在C盘空间越来越少的现象的。
3:格机次数多不会导致格机失败。很多人说格机多了以后手机就格不了了,格机失败多数是自装的字库所至,和格机自身无关。
4:格机没有后遗症。有人说格机后会导致铃声或通话声音减弱等等问题,这是毫无根据的。真的有就只是丢失线路二。
5:
格机时无需取下TF卡。很多人把格机后TF卡无法使用的责任推到格机时没取卡上,这也是错误的。格机后C盘的一些TF卡线程关联文件丢失,在启动时TF卡
找不到相关文件发生错误。这时只要删除TF卡的相关文件E/System/Recogs/recAutoExec.mdl就行了。况且格机过程中根本不对
TF卡进行读取,何来拔卡呢?
6:什么时候需要格机。必竟格机是一件麻烦事,备份东西,重新设置很烦人,老格也不好玩。我认为当系统出现未知错误,找不到错误原因(如系统总无故提示关闭,死机,出错)时才需要格机。要说明的是所有东西都尽量装E,因为C盘堆积也容易出错。
7:格机应该备份哪些。首先要说明的是并不是备份的越多越好,因为往往你备份下来的就是出错的地方。所以备份些名片夹等必须的就行了。

14.什么是飞行模式!

答:离线模式又叫做“飞行模式”是把手机的电话功能全部关闭的模式~,如果手机不安装SIM卡,会自动启动这个模式。

15.边打电话边充电可以么?

答:尽量避免一边使用手机一边充电的情况,对电池使用寿命有一定影响。但是开机充电是没有问题的。

16.短信的时候怎么每输一个字母下面都有一横而且输不了我想要的字母

答:工具-设置-手机设置-常规-预想输入,选择“关”就可以了

17.对付程序卡死的一个小窍门!

  
有时,我们在运行TF卡里的程序时,会出现程序出错的情况,但是这里程序并没有正常退出,长按功能键弹出的任务列表中会看到挂掉的程序还在,可是按C键却中止不了,屏幕也就白在这里了。

 这时有一个简单的方法,不用关机扣电池!只要按下关机键他就会弹开关机以及情景模式的菜单
我们选取出储存卡就可以了~实在不行再扣电池!
18.经常收到一些服务信息,如何屏蔽?
  进入“信息”,点左键进入“选项”选择“设置”-“服务信息”设置为“关”即可。

19.如何设置重复闹钟?
  进入“事务管理”-“时钟”-“闹钟”,点左键选择“新闹钟”,在“重复”一项中可以设置你想闹钟响的时间,可以设置为“不重复”(只响一次)、“每天”、“每周”、“工作日”(按你设置的工作日进行重复)
  工作日的设置在“设置”-“手机设置”-“常规”-“日期和时间”中的“工作日”根据需要自行选择。
  附:周期性闹钟的一个BUG,设置后如果调整时间,而调整的时间段跳过了你设置的闹钟时间,在设置时将会闹一下。这是一个偶然发现。
  
20.6120c支持关机闹钟吗?
  支持。不需要特别设置,如果你设置的闹钟到时间了而你的手机关机状态,那么会自动响的,也支持“停止”和“重响”,在你选择“停止”的时候会询问你是否打开手机。如果手机电池没电而自动关机可能不会有关机闹钟,因为此时可能没有足够的电量来响闹钟。

21.闹钟铃声太单调,要与众不同?
  进入“设置”-“手机设置”-“常规”-“日期和时间”-“时钟闹铃铃声”中设置。
  
22.闹钟多久重复一次?
  6分钟。如果闹钟响了之后没有停止或者按了“重响”将在第6分钟时重响。
 
23.怎样让时间永远正确?
  诺记的手机还没有试过时间不正确的,而且,6120c在换电池的时候也还没试过需要调整时间,不过,像固定电话来一个自动对时也是有用的,比如在某刻你手机时间错了又不知道正确时间。
  进入“设置”-“手机设置”-“常规”-“日期和时间”-“网络**时间”设置为“自动更新”即可自动对时。
  此服务前提,当地移动或联通有提供相应的对时服务,该服务免费,但是像我这里就有时有有时没有。而万一有一天它的时间错了,你就哭吧,电信的就试过出错。
  
24.待机画面上的时钟太小了,看不清楚?
  你可以进入“设置-手机设置-常规-日期和时间”设置“时间显示类型”为“数字时钟”即可看到时间以数字形式显示。在“时间格式”中可以设置“12小时制”或“24小时制显示。

25.日历中是以排列周一开始的,能否改变?
  如果你看惯了日历是从周日开始的,那么,可以进入“事务管理器-日历”中左键选择“设置”在里面设置“星期开始日”为“星期日”即可。也可设置为别的时间。

26.如何查看以前SIM卡中的信息?
  以前SIM卡里面的信息如果没复制到手机的信息中是不能在信息里面看到的。
  进入“信息”按左键进入“选项”选择“SIM卡信息”,在这里可以看到存在SIM卡里面的信息,也可以复制到手机中。
  
27.短信看累了,想要听短信?
  看电视经常看到广告,开车时有短信自动播放出来,有点羡慕。其实6120c里面自带了语音读短信功能,但是手机中只预装了英语的,别的就得自己下载了。

  语音播报在“设置”-“语音”中设置,在“语音设置”项中可以设置播放的速度和声音,如果无法正确读短信,请将“语言检测”设置为“关”。
  在非英语的语音中,所有的英文将以字母的方式播报,而如果发信者存在于名片夹中将直接读出发信者姓名。
  进入“信息”-“收件箱”上下移动选择要播报的短信,短信必须处于未打开状态。,点左键选择“收听”即可,播放期间觉得声音太小或太大,可按右侧音量键进行调节。
  
28.如何群发短信?
  写短信时在点“收件人”,在里面选择你要群发的对象后确定,如果号码没有存在名片夹中则可在“收件人”中直接输入,各收件人中间以分号(;)分隔。如果是想发的人被归在一个分组里面,可以在点击“收件人”后切换到分组界面直接选择该分组。

29.怎么知道别人有没收到我的短信?
  进入“信息”,左键进入“选项”中“设置”,选择“短信息”,设置“接收报告”为“是”即可,在“信息”-“发送情况报告”中将显示短信的发送情况,如果对方还没收到将显示为“发送暂缓”,如果对方收到了将显示为“已送达”。但这个信息也是会出错的。
 
30.发不出的短信在那里?
  如果因为一些原因而使短信未能及时发出,短信将存于“发件箱”中并在短信后显示再次发送时间,如果想立即发送,点左键选择“立即发送”即可。
  
31.我的已发短信怎么只有99条?
  6120c默认的储存已发短信只有99条,如果想要多点,进入“信息”,左键进入“选项”中“设置”,选择“其他”,修改“信息存储数量”即可,最多999条。而如果不想存已发短信,只要设置“储存已发短信”为“否”即可。
  建议使用“手机存储”。
  此设置只对已发短信有效,对于收到的短信,即使设置为1,也可以全部接收并存储。

  
32.短信怎么存到电脑?
  可以下载软件进入转换。
  但也可以利用PC套件,用PC套件方式连接电脑后,在PC套件中选择“信息”后进入相应目录,把你想保存的信息复制到你想保存的目录即可。支持电脑上直接浏览。
  
33.无法输入单个字母?
  把“设置”-“手机设置”-“常规”-“个性化选择”-“语言”-“预想输入”设置为“关”

34.每次进入短信都是拼音输入法,能否更改?
  把“设置”-“手机设置”-“常规”-“个性化选择”-“语言”-“默认输入法”设置为你想要的输入法即可。

35.如何设置邮箱?我的电子邮件设置完全正确,为什么还会提示“未找到邮件接收服务器,请检查邮箱设置?
  电子邮件收发只支持CMNET方式,而不支持wap方式,如果设置正确而出现上面的提示,请用CMNET方式进行连接。

36.收到的短信没有显示号码和时间?
  6120c收到短信后只显示姓名,没有显示号码和时间,如果要查看,得按左键选择“信息详情”才能看到相应信息。

37.打开短信后为什么在发件人和短信中的有号码的地方会显示一片乱码呢?
  当你打开了自动查找之后,在有号码的地方颜色会改变显示,如果你使用的主题颜色和其接近或冲突,就有可能出现看不到或者乱码一样的东西。此时要么关闭自动查找,要么改一下主题。

38.在名片夹中如何快速查找名片?
  输入你要查询的姓名的每个字的声母即可。如果只输入一个字母,不管是姓名中那一个字的声母带有该字母都会显示出来。当然,你可以切换到拼音或笔画输入中文进行查询。

39.一个名片下有很多号码,每次发短信和打电话时得选择太烦?
  如果一个名片下有很多的号码,每次发短信和打电话的时候必须进行选择,很麻烦。可以设置一下默认值,这样在相应的操作中就直接引用该号码而不用再选择。
  进入“名片夹”点左键选择“默认值”在里面设置即可。“电话号码”对应于打电话时的默认拨号,“短信息号码”对应于发送短信时的默认号码。
  
40.怎么让我的名片更有特色?
  进入“名片夹”点左键选择“来电铃声”可以为每个号码设置来电时的铃声;也可以把新建分组,给每一组人设置来电铃声。
  在编辑名片的状态下,可以选择“增加微缩图像”,这样对方来电时就会同时显示一个小照片;“增加详情”可以增加电话号码、生日、地址等一系列东西;如果觉得增加的详情里面的描述还不合你意,可以使用“编辑栏目”来修改。
  
41.来电时能读出来电者姓名吗?
  可以,前提是电话号码存在于名片夹中,在“设置”-“情景模式”中选择“个性化设置”,把“说出呼叫方姓名”设置为“开”即可。
  
42.为什么已经添加的号码来电和短信时无法显示姓名呢?
  
果你的名片是存在SIM卡里面的,那么,来电和收到短信的时候是无法显示相关的姓名的,只有存在名片夹里面的才能显示。另外,在发短信的时候,如果号码不
是在名片夹里面选取而是直接输入的。在“已发送”目录下也只会显示号码而不会显示姓名。如果以前SIM卡里面的短信或者备份拷到手机之前手机名片夹里面没
有相关的姓名和号码,也是无法显示姓名的。
  
43.待机状态下可以插入和拔出存储卡吗?
  可以。
  待机状态下插入存储卡即可被手机识别并可访问,不需要重启。
  待机状态下要取出存储卡,必须按说明书中的说明进行操作,进入“设置”-“数据管理”-“存储卡”-左键选择“取出存储卡”或者更简单按电源键一次后选择“取出存储卡”。取出卡后再按确认,这样可以防止数据读写而损坏卡。
  
  
44.如何查看存储卡中的所有文件和文件夹?
  用数据数使用“数据传送”方式连接电脑,把电脑设置为显示所有文件和文件夹并显示系统文件夹即可。也可用些方法备份文件。

45.为什么我使用词典的时候会显示“词库文件不存在”呢?
  诺记的词典词库都是存在存储卡中的,对于买水货的人来说,如果没有带存储卡的就会因无词库文件无法运行词典,解决方法是下载词库文件然后按上面方式连接手机到电脑,并拷贝相应文件到相应目录即可。

46.6120可以使用什么软件呢?
  6120可以使用S60编写的程序,也可以使用JAVA程序。对于S60编写的程序,第二版和第三版是不能通用的。但是,第三版之间大部分软件通用,而一些涉及到硬件的程序则不通用。如果各位需要软件,可以去第三版讨论区或者S60系统的任意机型区的论坛找一下,S60第三版同系统软件是通用的


47.安装软件有风险吗?
  软件是由人编写的,不同的人编写的程序质量不同,就跟电脑程序一样,所以,
有一些软件也可能引起系统的文件丢失或者不稳定,甚至于损坏硬件。所以安装软件一定要小心,不要看到软件就装,尽量选择一些比较有名的而且在该机型上已经有人试用过的软件。

48.如何安装软件?
  软件安装有两种方法,
      1是下载了安装程序之后拷贝到手机然后打开文件进行安装;
      2把手机以“PC套件”的方式连接到电脑,然后直接在电脑上的PC套件中选择“安装应用程序”,在出来的界面左边选择你要安装的软件进行安装即可。此方法必须电脑上先安装PC套件

49.为什么有时安装软件会出现“证书出错 请与应用程系提供商联系”?
 
 
S60第三版增强了系统的安全性设置,每一个软件都必须经过签名才能安装,而且,不同的证书颁发者颁发的证书其权限是不同的。经过塞班认证的程序所颁发的
证书等级最高,可以使用全部的功能,而一些软件自带的签名程序所做的证书权限是最低的。塞班出于程序开发员研究需要而提供基于手机IMEI的证书,该证书
可以实现所有权限,但只能用于对应IMEI的手机。对于一些塞班认证过的软件其UID在保护码段,只能使用受信任机构颁发的证书来签名才能安装。对于受信
任机构颁发的证书签名的程序,可以在安装时及程序管理里面查看软件的证书。
  对于没有签名的软件,安装时就会出现以上的提示。
  
另外,需要把“设置-手机设置-应用程序-程序管理”里面的“软件安装”设置成“全部”,“在线证书检查”设置成“关”,这样,自签名的程序才可以安装,否则也会出现证书错误的提示。
  
50.为什么安装软件的时候会出现安全警告:应用程序不受信任,可能对手机有影响?
  
如果你安装的软件不是由信任的机构颁发的证书签名的,那么就会有这个提示。但是还可以正常安装,更加类似于安全提示.

51.JAVA软件需要签名吗?
  
不用。但是没有安全证书的JAVA程序也会出现安全警告。

52.为什么安装软件的时候会出现证书已经过期?
  
一个证书都有其有效期,如果你安装软件的时候用来为该软件签名的证书已经过了有效期,就会出现证书过期的提示,并且无法安装。这时你可以把手机的时间往前
调整再试,只要手机时间在证书的有效期内就可以安装软件,安装之后把手机时间再改回去,安装完的软件不受证书期限的影响,可以照常使用。如果往前调的时间
太多,可能会出现证书未生效的提示,那么应该把时间往后调。


53.安装完的软件在什么地方呢?
  
安装完的软件默认都在“应用程序-我的助理”里面,你可以自己移动到别的目录,也调整他们在里面的位置。

54.如何删除软件呢?
  
可以在看到软件的图标时点击C键进行删除,也可以进入“设置-数据管理-程序管理”里面删除。

55.为什么有时软件删除之后重新开机又会出现呢?
 
 因为该软件是机子所附带的软件,其安装软件被固化在系统的预安装目录中,所以即使删除之后依然会自行安装。目前唯一解决的办法是用修改过的软件刷机。如果你发现一个软件删除之后开机又有了,那么就不用删除了。
  
56.为什么装上机子附带的存储卡后会有自动安装一些程序呢?
  

为这些程序被放置在了机子的自安装目录中,所以插入卡的时候就会自动安装,其原理和上面提到的是一样的。唯一不同的是,卡里面的自动安装软件只会自动安装
一次,删除后就没有了。有时有一些软件删除后其安装程序会留在存储卡里面,而在“设置-数据管理-程序管理”里面显示为“未安装”,再次启动手机也不会安
装,如果你想把安装程序也删除掉,可以进入“设置-数据管理-程序管理”里面删除。

57.上网的程序每次连接到网络的时候都需要选择接入点太麻烦了?
  如果该软件是S60程序,而在程序里面提示了默认接入点的设置,那么 你可以在程序里面进行设置;如果该软件是JAVA程序,那么你可以进入“设置-数据管理-程序管理”里面选择该程序,左键选择“打开”,设置“接入点”为你想选择的默认接入点就可以

58.JAVA程序上网的时候总是提示是否连接到网络?
  
进入“设置-数据管理-程序管理”里面打开该程序,然后把“网络接入”设置成“第一次询问”即可。

59.JAVA程序和S60程序运行时,按挂断键会出现什么情况?
  
当JAVA程序运行时,按红键将会关闭该程序,所以如果要中间返回待机界面必须按功能键。如果是S60程序,按红键则会返回待机界面。

60.安装程序可以是中文名吗?
  
JAVA程序的文件名不能是中文,如果是中文就不能运行。S60的程序可以是中文名。

61.为什么以前在程序里面可以看到的文字现在看不到了呢?
  
有的时候,如果你换了主题模式,有可能程序中显示的文字颜色和主题接近,所以就会无法显示,而是一片空白,此时把主题换一下试试看。
  
62.用手机上网之后软件都是下载完直接安装,我想把它拷贝出来,在哪找呢?
  这个需要第三方的文件管理软件来支持,并且,很多程序在下载安装完之后就会删除,所以就得在出现安装界面的时候进入相应的目录拷贝才可以。下载的目录可能在以下几个之中,不同的网站在这几个目录的选择有不同:
  C:\cache;c:\system\temp\browser;c:\system\dmgr\中的子目录下的downloads目录中,c:\或e:\preminet目录下的子目录中。

63.为什么我用上面的方法在下载了JAVA程序在c:\cache目录中打到了jad文件并拷贝出来,但是安装时会提示“下载并安装”呢?
  在下载JAVA程序时,JAD文件实际上是jar安装文件的下载信息文件,里面保存有JAR文件的下载地址,因为一些网站不想文件让人拷贝,所以采用了这个办法。解决的方法时,把*.JAD文件改名为*.txt,并用记事本打开,找到里面JAR文件的下载地址,
用浏览器打开地址之后就会在c:\cache目录下留下JAR文件,这才是真正的安装文件。


文档问题

64.为什么我的office文档在机上打不开呢?
  机子自带的quickoffice只能打开office97-2000版的文件,最新的4.5版支持office2003,但都不支持带密码的office文档。而且,每种文档的大数有一定的限制。DOC文件约300K左右。

65.为什么进入quickoffice之后看不到我的ioffice文档呢?
  机子自带的quickoffice只支持从手机或存储卡中的Document目录中读取文件,如果要打开别的位置的文档,可以从“设置-数据管理-文件管理”里面选择相应文件打开。4.5版支持任意目录文件的读取
  
66.为什么我打开quickoffice就会死机呢?
  进入quickoffice程序之后,程序会读取document目录中的文件信息,所以,如果你在这里面存放了大量的文件,在进入程序的时候就会出现假死机的情况。解决的办法就是不要在这个目录存放太多的文件。

67.我可以在手机上编辑office文档吗?
  机子上自带的quickoffice不支持编辑功能,如果要编辑得升级到Premier版本。

68.如果想升级到4.5版,需要注意什么呢?
  4.5 Premier版本在进入的时候必须输入注册码进行解锁才能使用,网上有破解补丁,但是补丁得用塞班的证书签名才能安装,所以在安装4.5版之前,请先确认你会可以申请到证书并会给文件签名。4.5版安装之后将无法在程序管理里面删除,如果要删除只能格机。

69.哪里有4.5版quickoffice下载呢?
  利用论坛的搜索功能即能搜索到,好好利用已有论坛的共享资源。

70.为什么我打开PDF文档之后有时会提示“内存不足”而自动退出呢?
  
果打开的PDF文档太大,因为6120c无法缓存,所以就会自动退出。这并不是说你的手机空间或者存储卡空间不足,而是高速缓存空间不足。即使在开机后立
即浏览PDF文档,也只能打开4-5M左右的文件,如果文件太大,只能用acrobat等分割成小文件后再在手机上看。

71.为什么我的PDF文档在电脑上可以看,但是在手机上打开后却是一片空白呢?
  手机上的PDF文档的分辨率有一定的限制,如果分辨率太高,打开后就会是一片空白,解决的办法就是在电脑上利用acrobat的打印功能,在打印设置中设置纸张的大小为A4,这样打印出来的分辨率就小了。
 
72.Adobe reader支持书签吗?
  不支持,如果要支持,得下载安装2.5版本。
  
73.我每次打开PDF文档的时候总是得从第一页进入,能否从我上次退出的地方进入呢?
  
入Adobe
reader,左键选择“设置”在里面如果你把“退出时保存设置”设定为“否”,那么下次进入该文档的时候就可以直接从你上次退出的地方进入,并且使用上
次的缩放比例,如果你设置为“是”,那么下次只能从第一页进入,并且缩放比例为你在“设置”中设置的默认缩放比例。


74.下载2.5版的Adobe reader需要注意什么呢?
  2.5
版的字看上去比自带的要细腻而且漂亮,但是在浏览时翻页之类的操作相对慢了点,支持书签,但每次进入都是打开第一页。2.5版在进入的时候必须输入注册码
进行解锁才能使用,网上有破解补丁,但是补丁得用塞班的证书签名才能安装,所以在安装2.5版之前,请先确认你会可以申请到证书并会给文件签名。程序安装
之后可以在“程序管理”里面删除,而安装2.5版的之后原来的版本依然可以使用,但是PDF文档默认就以2.5版的打开。


75.哪里可以下载2.5版的Adobe reader?
        利用论坛的搜索功能即能搜索到,好好利用已有论坛的共享资源。

76.每次打开浏览器都得选择接入点,太烦了?
  进入“网络”左键选择“设置-标准-接入点-用户自定义”,在里面选择你想要的网络接入点,这样以后每次浏览网页就自动用该接入点链接。

77.我设置了默认的接入点后,每次打开浏览器都是直接打开一个网页,想修改?
  
入“网络”左键选择“设置-标准-主页”,在里面“默认值”表示你的网络设置中选择的默认接入点中所设置的主页;“用户自定义”中你可以输入别的网址作为
主页,每次进入浏览器的时候自动打开;而选择“书签”会在你进入“网络”的时候打开你手机中的书签目录;如果你是在浏览一个网页的时候进入主页设置,还可
以看到一个“当前页”的选项,可以直接把你正在浏览的网页设置成主页。

 
78.每次浏览网页时得在按N次键才能看到自己想要的东西?
  如果你把“设置-标准-缩略图”设置为“开”,那么你可以在浏览网页的时候按左键选择“导航选项-网页预览”这时会出现一个网页的缩略图,你可以移动选择框到你想浏览的位置,然后按确认键就可以快速的进行定位浏览。

79.在浏览网页的时候怎么刷新?
  左键选择“导航选项-重新载入”即可。
  
80.我在“设置-页面-禁止弹出”中把弹出窗口禁止了,如何临时允许弹出窗口呢?
  左键选择“窗口-允许弹出窗口”即可。
  
81.在网页上按链接之后打开了一个新窗口,怎么浏览原来的窗口呢?
  左键选择“窗口-切换窗口”,可以在里面选择你想要的窗口后按确定键进行浏览,也可以在切换后在“窗口-关闭”中来关闭选择的窗口。

82.图像太小,想放大或者保存?
  左键选择“工具-查看图像”可以选择查看网页中的图像,并支持放大和保存。

83.想把浏览的网页保存下来,改天脱机浏览?
  左键选择“工具-储存网页”即可,以后可以在书签中的“已存网页”中找到。

84.打开网页要下载图片和FLASH,太慢了?
  在“设置-页面-加载内容”中你可以选择只加载文本或者加载图片但不加载FLASH,或者全部加载。
  
85.有时在浏览一些国内网站时,一个页面有一些字能正确显示,而另一些就乱码了?
  把“设置-页面-默认编码方式”设置为“简体中文(GB2312)”即可全部正确显示,但是,如果这样设置,在浏览英文网站的时候会出现乱码,所以,浏览完之后最好还是改回“自动”。

86.收音机怎么用呢?
  收音机必须接上耳机才可使用,
以作为普通的FM调频收音机用。如果要用到基于网络的可视收音功能,就得先开通上网功能,但现在国内还没有这种服务,所以目前只能当普通收音机用。选择左
右箭头可以切换到已经储存的电台,上下箭头可以自动搜索电台。按左键选择“手动搜索”,可以直接输入频率来收听电台。在“电台目录”中可以上网查询网上已
经设置好的频道,目前几乎全国的电台都在里面可以找到,但是实际上没用,因为FM收不到外地的电台的。收音机支持后台播放。

87.realplayer中如何实现快进快退和全屏播放?
  按住导航键的上键可以快进,而下键可以快退。全屏播放是数字 2 。

88.为什么照相机照相很慢?
  手机毕竟不是照相机,特别是智能机,打开照相机相对慢一点,而且,拍摄的时候也会慢一点,特别是开启了夜间模式之后,因为要延长暴光时间以使图像清晰。


89.在多媒体资料中各个目录的东西是存储在什么地方呢?
  图像保存在Images目录中;视频片段保存Videos目录中,曲目保存在Musics目录中,而声音片段保存在Sounds目录中,演示文稿保存在data\others目录中。

90.如何一边听歌一边看图片?
  如果你从多媒体资料中进入播放音乐,那么就无法看图片了,打开多媒体资料后会出现播放器的界面,所以应该在播放器中播放音乐之后再进入多媒体看图片

91.为什么我安装的主题和程序在程序管理里面看不到呢?
  程序管理里面只能显示一定数量的程序和主题,如果太多了就无法全部显示,必须删除一些之后才能显示另外一些。

92.6120c支持动态壁纸吗?
  不支持。3版手机都不支持  但是可以通过安装桌面精灵实现

93.如何关闭开机时的音乐?
  在情景模式中把“警告音”设置为关。

94.6120可以用语音来控制吗?
  可以,在“设置”中的“声控命令”中可以设置你要用语音来打开的程序。

95.为什么我在用USB连接时无法选择连接方式呢?
  把“设置-连接功能-USB-连接时询问”设置为“是”,这样每次连接的时候就会问你以什么方式连接。

96.为什么我用“数据传送”方式连接时老是提示“另一个程序在使用存储卡”呢?
  如果你把进程管理、第三方文件管理等常驻内存的程序安装在了存储卡,就会无法用“数据传送”方式连接电脑。 解决方法 关机--拔卡--开机--插卡--即可连接--使用完后重启


97.每次蓝牙传送数据时都会让我确认连接太烦了?
  在“设置-连接功能-蓝牙-配对设备”中,选择你常用的可信任的配对设备,左键进入选项,把它设置为授权设备,这样就连接的时候就不会再要求确认了。

98.别人通过蓝牙传送给我的文件在什么地方?
  诺记的手机传送蓝牙文件是采用类似于短信,传送后可以到收件箱里面查看,并可以选择把文件存储在你想要储存的地方。最好使用最新版的第三方文件管理器移动蓝牙文件

99.如何用蓝牙传送受保护类型文件?
  在手机中把文件的后缀改为.txt进行传送即可。或者使用最新版的第三方文件管理器

100.为什么我的机子上有时总会变着闪动显示CMCC和我所在地的拼音呢?
  如果你把“设置-手机设置-手机-网络-小区信息显示”设置为“开”时就会出现这样的情况。

101.为什么我把接入点正确设置好了还不能用软件上网呢?
  接入点设置只相当于WINDOWS中设置了拨号方式,而每个软件中都有一个网络设置来让你选择接入点,以实现上网,所以你还必须在每个软件中相应的设置选项中选择你用来上网的接入点。

102.为什么我的机子有时会自动链接上网呢?
  如果你用的程序,比如杀毒软件,设置成了自动上网;或者,你在“信息-电子邮件-设置”中设置了自动提取,或者你在“网络-设置-网络定阅源”中设置了“自动更新”就有可能会出现自动上网的现象。

103.如何格机?
  6120
不支持软格,*#7370#的作用只是回复出厂设置。必须进行硬格。关机,取出存储卡,同时按住通话键、*
键、数字3,按住这三个键不放开,按电源键开机,出现“NOKIA“画面,直到出现地区设置画面再放开三个键。格机完成。格机后将删除原来C盘中的所有东
西,所以,硬机之前应先对手机中的名片、信息或C盘中其它重要信息进行备份。存储卡中的非绿色软件将无法使用,必须重新安装。

104.格机后成了英文界面了?
  在“设置-手机设置-常规-个性化选择-语言”里面把“手机显示语言”设置为“简体中文”即可。

105.6120是否支持自动锁键盘
  
的,在“设置-手机设置-常规-安全性设置-手机和SIM卡”中,设置“键盘自动锁闭前的时间”为你想自动锁键盘的时间即可。如果设置为“未定义”则不会
自动锁键盘。而如果设置“自动锁闭前等待时间”,则将会在设置时间后自动锁闭手机,必须输入锁码才能打开手机;如果设置SIM卡改变时锁闭为“是”,
则插入新卡时必须解锁,而如果未插入SIM卡,则每次手机开机时都必须输入密码。
  
106.6120是否支持GPS?
  6120c是集成了GPS功能,但是必须有一个蓝牙的GPS接收器才能使用。不过,可以装一下Route66,作为地图之用,你可以手动的调整位置,也比没有的好。
  
107.键盘输入有没有什么快捷的输入?
  在拼音和英文输入中,按1可以快速输入常用标点。在所有输入法中,长按数字键可输入数字,长按#键然后按左右导航键可以选择文本,再按#键可用左右键进行复制和粘贴




  *#06#
  

查询IMEI 码,也就是我们所说的手机串号,几乎所以手机都适用, IMEI 就是“国际移动装备辨识码”, IMEI
=TAC+FAC+SNR+SP,其中TAC是批准型号码,共6位,FAC是最后组装地代码,共2位,但由于现在已经有JS已经能改串号了,所以
NOKIA将所有的7、8位都改成00了,就是说已经看不出生产地了,SNR是序号,共6位,SP是备用码,就1位。

  *#0000#
  
手机版本信息,显示后一共会出现3行信息,第一行是手机软件当前版本,目前最新版本是V5.27版,第二行是此版本软件发行日期,这个版本的发布时间为2004年6月28日,第三行是手机型号代码。

  *#7370#
  

复出厂设置(软格机),这个命令一般是在手机处于错误或系统垃圾过多的情况下使用格机命令,格机前可以通过第三方软件或6600PC套件备份一下你的名片
夹或需要的资料,格机时一定要保持电量充足,不要带充电器格机,格机时只显示“NOKIA”字样还有亮屏幕,没格完千万不要强迫关机和拔电池,以免造成严
重后果,格机完成后重新输入时间,再恢复你的名片夹和资料就可以了,格机可以恢复一切原始设置,将C:盘内容全部清空,再写入新的系统信息,注意的是此格机不影响TF卡内容。

  *#7780#
  恢复出厂设置,等同于功能表——工具——设置——手机设置——常规——原厂设定,注意此命令仅是恢复设置,不同于格机,恢复后名片夹、图片、文档等全部依然存在,只是设置还原了,有些朋友因设置错误而不知如何改回来就可以使用这个命令了。

      *#92702689#
显示的总通话时间


  *#7370925538#
  
这个命令是电子钱包初始化密码的指令,很多朋友因忘记电子钱包密码而至今无法使用电子钱包,使用此命令后,可以将电子钱包密码初始化,就可以自己重新输入密码了,不过要注意的是此命令一但使用,电子钱包里所有数据全部丢失,切记。


  
以上的秘技有部分是需要输入锁码的,这里所说的锁码也就是手机密码,不过不要和SIM卡密码弄混了,手机锁码的设置是在:功能表——工具——设置——安全性设置——手机和SIM卡——锁码,其初始锁码为:12345,只要需要输入锁码的地方默认值都是12345,更改过手机锁码的以新锁码为准

指令总汇~~~~~~


  A 一般指令 

  1 输入*#06#:显示 IMEI 码

  2 输入*#0000#:显示软件版本

  (部分型号如果不起作用,可按*#型号代码#,如*#6110#)
  第一行--软件版本;

  第二行--软件发布日期;

  第三行--手机型号

  

       3 输入*#92702689#查询本机的通话时间


 B 高级指令 (专门为各位大侠准备的, ^_^  建议一般初学者不要随便输入,以免输入错误导致手机无法复原!)

  
1 速率编码

  *3370#或*efr#:开启(EFR)全速率编码
  #3370#或#efr#:关闭全速率编码

  (开启全速增强型编码模式,可改善话音质量但会耗电)

  *4720#或*hra0#:开启(HR)半速率编码

  #4720#或#hra0#:关闭半速率编码

  (话音质量降低,但可延长电池大概30%左右使用时间,需网络支持)

  键入这些代码后,会关机重开,然后才能生效。

  2 SIM卡锁信息

  *#746025625# (= *#sim0clock#):如果SIM卡能被锁,进行检测时键入该指令后,手机显

  示"SIM CLOCK STOP ALLOWED" or "SIM CLOCK STOP NOT ALLOWED",这取决于你的SIM卡。

  SIM卡锁信息:包括四种不同的锁

  1).国家锁--锁指定的国家

  2).网络锁--锁指定的网络

  3).供应商锁--锁服务提供商

  4).SIM卡锁--锁指定的SIM卡


  3 查询手机是否锁频

  
首先必须找出设定手机时必须使用的几个键。其中,连续按*键二次即出现"+";连续按*键三次

  即出现"p";连续按*键四次即出现"w"。然后,你就可以依次顺序输入相应组合键。

  #pw+1234567890+1#:查询是否锁国家码

  #pw+1234567890+2#:查询是否锁网络码

  #pw+1234567890+3#:查询是否锁网络提供者锁定的码

  #pw+1234567890+4#:查询是否锁SIM卡


  4 电源按键

  轻触电源键,屏幕将显示情景模式的选单,你可以通过上下键快速地在各个模式中切换。在键盘

  锁模式下打开屏幕灯,你曾感受过在夜晚摸黑想打开手机的键盘锁的烦恼吗?其实你可以轻触电

  源键,这时屏幕和键盘的夜灯将会打开,这样你就可以从容地分辨按键打开键盘锁了。

  5 查看手机状态

  
操作指令:#pw+(mastercode)+X#

  (mastercode)是一10位数(没有括号) X是一个1到4的数, 它显示以上的锁,还不确定何数对应何锁。

  SIM卡不限制信息,意味着你的电话还没锁。

  1).VIN CHARGER INPUT VOLTAGE 8.4V 0.8A

  2).CHRG CTRL CHARGER CONTROL PWM 32Khz

  3).XMIC MIC INPUT 60mV - 1V

  4).SGND SIGNAL GROUND

  5).XEAR EAR OUTPUT 80mV - 1V

  6).MBUS 9600 B/S

  7).FBUS_RX 9.6 - 230.4 KB/S

  8).FBUS_TX 9.6 - 230.4 KB/S

  9).L_GND CHARGER / LOGIC GND

——————————————————



信息中心号码
功能表→信息→按确认键进入短信息→按“选项”键→设置→短信息→信息中心→SIM卡信息中心→信息中心号码→编辑

设置信息报告
功能表→信息→按确认键进入短信息→按“选项”键→设置→短信息→接收报告→是/否

查看SIM卡信息
功能表→信息→按确认键进入短信息→按“选项”键→SIM卡信息

壁纸设置
功能表→工具→主题模式→选项→编辑→壁纸→黙认/用户自定义(注:“主题模式”文件夹是可移动的,未必一定在“工具”内)

节电保护设置
功能表→工具→主题模式→选项→编辑→节电保护→日期和时间/文字(注:“主题模式”文件夹是可移动的,未必一定在“工具”内)

快捷键设置
设置→手机设置→待机状态模式→左选择键/右选择键/导航键向右/导航键向左/导航键向下/导航键向上/选择键

待机屏幕上的快捷图标的显示与删除
设置→手机设置→待机状态模式→当前待机模式→开/关

开机问候语或图案设置
设置→手机设置→常规→开机问候语或图案→默认值→文字→图像(注:图像只是图片不能为视频)

通过短信拒绝通话
1.设置:设置→通话设置→通过短信拒绝通话→是/否
2.填写拒绝短信内容:设置→通话设置→短信息→填写短信内容

自动重拨
设置→通话设置→自动重拨→开/关

通话报告设置
设置→通话设置→通话报告→开/关

单键拨号设置
功能表→工具→单键拨号→选择一个号码→按“选项”键→设定→选择名片(注:“单键拨号”文件夹是可移动的,未必一定在“工具”内)

查看存储详情
进入功能表→选项→存储详情→选择手机存储/TF卡→查看

更改视频/照片存储位置
进入影音工具→进入照相摄像→选项→设置→图像/视频片段→选择其中的一项→按“确认”键→使用中的存储→选择手机存储/TF卡

自动锁键盘
进入设置→安全性设置→手机和SIM卡→自动锁闭前等待时间→用户自定义→输入时间→输入锁码→确认







对话 UNIX,第 13 部分: 另外十种命令行组合

9:49:00 PM 0 Comments

对话 UNIX,第 13 部分: 另外十种命令行组合

发现 UNIX 命令行中更多的快捷方法和强大功能

developerWorks
文档选项
将打印机的版面设置成横向打印模式

打印本页

将此页作为电子邮件发送

将此页作为电子邮件发送

未显示需要 JavaScript 的文档选项


级别: 中级

Martin Streicher, 首席技术官, McClatchy Interactive

2007 年 10 月 18 日

这个月,我们将介绍 UNIX® 命令行向导的另外十种秘诀。

本文是"对话 UNIX"系列文章中的第 13 部分:我以前认为 13 是个不吉利的数字,直到我浏览 Internet 搜寻这个数字之所以不吉利的原因。实际上,13 这个数字可以说是喜忧参半(请参见参考资料)。

好的方面:13 是元素铝的原子序数,而铝可用于制作各种祭神仪式的奠酒容器;篮球职业运动员 Wilt Chamberlain 身着 13 号球衣(我们都知道,Wilt 是非常幸运的);按照某种禁忌转换方式,13 是第 7 个质数,而数字 7 象征着幸运。

不好的方面:绞刑架有 13 级台阶;制造混乱的神"洛基"和犹大,都是第 13 个到达的;并且无论您怎么对其划分(除以 2、3、4、或者6),在餐馆中 13 个人都很难坐,这可能正是洛基和犹大被认为是局外人的原因。

陪审团最多不超过 13 个人。所以,除非您在 13 号星期五阅读本文,并且在位于 Mockingbird Lane(这是个历史悠久的地方)1313 号的办公楼的第 13 层,否则都是值得庆幸的。"对话 UNIX"现在是个长满青春痘的青少年了。本文将介绍十种命令行组合和 Shell 诀窍,以庆祝本系列文章进入青春期。恭喜您!

临时设置一个环境变量

环境变量,如 EDITOR 和 TZ,可能影响命令执行的结果。(前者选择进行文本编辑时所启动的程序;而后者可以指定您的时区。)通常,您可以在 Shell 启动文件中设置环境变量,以便对所有的 Shell 会话产生作用,并且您可以在任何时候使用像 export TZ=GMT 这样的命令为一个 Shell 会话更改环境变量的值。

此外,您可以为单个命令临时地修改一个环境变量的值。只需要在启动命令行的时候设置环境变量以及您希望运行的命令即可。例如,要为单个命令更改您的首选编辑器,可以在它的前面加上 EDITOR=editor ,如下所示:

$ printenv  ...  EDITOR=vi  ...  $ EDITOR="pico" less bigfile  

这个组合可以使用 lessbigfile 进行分页。如果您在 less 中输入 v 以编辑文件,那么将启动 pico 而不是 vi。下面是另一个实际的使用情况:

$ date  Sun Aug  5 16:14:17 EDT 2007  $ TZ="Japan" date  Mon Aug  6 05:14:06 JST 2007  

对 TZ 进行的临时更改将影响 date 的即时实例解释系统当前日期和时间的方式。

查看您实际正在运行的命令

大量的 Shell 特性可以影响到如何解释您所输入的命令名。每种 Shell 都有一个内置命令的分类;PATH 环境变量用于指定搜索的列表和目录;而别名可以作为简写。要运行一个程序可以使用许多方法,如何了解实际执行的是什么命令呢?使用 Shell 内置的 type 命令可以揭示实际的情况。

假设您拥有下面的这些 Shell 设置:

PATH=/bin:/usr/bin:/usr/local/bin  alias vi=pico  

您可以在 /usr/bin 和 /usr/local/bin 中找到 Perl 的副本。要查明您正使用的是哪个 Perl,可以输入 type perl

$ perl -v   This is perl, v5.8.7 built for darwin-2level  $ type perl  perl is /use/local/bin/perl  $ type -a perl  perl is /usr/local/bin/perl  perl is /usr/bin/perl  $ type -a -w perl  perl: command  perl: command  

type perl 命令显示了如何在命令行中对 perl 命令进行解释。在这个示例中,/usr/local/bin/perl 是实际的扩展结果。type -a 命令显示了 Shell 所知道的所有 Perl 实例,这在很大程度上依赖于 PATH 变量。

可以针对您常用的其他命令使用 type

$ type -a vi  vi is an alias for pico  vi is /usr/bin/vi  $ type -a cd  cd is a shell builtin  cd is /usr/bin/cd  

type 命令显示出,vi 实际上是 pico 的别名。type 命令还显示出,cd 是一个内置的命令,并且与外部命令 /usr/bin/cd 是相同的。

使得 find 命令具有更好的可移植性

去年曾经介绍了许多关于 find 的使用的内容,但是我忽略了其中的一个选项,它使得 find 命令行可以移植到其他操作系统。

通常,UNIX® 系统中很少使用带空格的文件名。然而,在 Mac OS X 和 Microsoft® Windows® 中常常使用更长的、更具描述性的文件名,并且在 UNIX 中它们也变得越来越多,这是因为该操作系统不断地积聚更多的桌面特性。毕竟,将一份报告保存为 2007 Business Plan 明显要比 bizplan07.ooo 好得多。

find 命令使用嵌入的特殊字符列举长文件名,但是,如果您希望将 find 与另一个命令组合使用,那么最安全的方法是,使用 NUL 字符(而不是空格)分隔列表中的每个文件名。让我们来了解其中的差异。

我们假设您拥有三个文件夹,其中一个或者多个目录的名称中包含空格:

$ ls -1  Business Plan 2007  Expense Report  Pictures from Spain  

如果您对大量的文件运行 find 命令,并且将结果列表传递给 xargs,那么文件名中的空格将会导致错误:

$ find . -type f -print | xargs ls -1  ls: ./Business: No such file or directory  ls: ./Expense: No such file or directory  ls: ./Pictures: No such file or directory  ls: 2007: No such file or directory  ls: Plan: No such file or directory  ls: Report: No such file or directory  ls: Spain: No such file or directory  ls: from: No such file or directory  

传递给 xargs 的结果是单个字符串 . ./Business Plan 2007 ./Expense Report ./Pictures from Spain。在缺省情况下,xargs 将使用空格(或者换行符)对输入字符串进行划分,以便产生可以进行操作的一个文件列表。在这个示例中,因为文件名中包含空格,所以这样做将会产生错误的列表,如前所述。

一种适当的、可移植的技术是使用 find -print0,加上 xargs -0,以便使用 NUL 字符对文件名进行划分。下面是这种推荐的方法:

$ find . -type f -print0 | xargs -0 ls -1  ./Business Plan 2007  ./Expense Report  ./Pictures from Spain  

另外,如果您希望预览 xargs 产生的命令,可以添加选项 -p 或者 -t-p 选项显示每个合成的命令,并提示您进行确认。输入大写的或者小写的 y 以便运行命令,输入任何其他的内容可以拒绝该命令。-t 选项可以在执行每个命令之前将命令回显到 stderr

更充分地利用 find 命令

尽管 find 非常有用,但是有两个隐含的设置可能会限制它的结果(并使得您不知所措):-name 匹配是区分大小写的,并且不会根据符号链接对文件系统进行遍历。

因此,一个以 find -name '*plan*' 开头的命令将忽略名称中包含 Plan 字符串的文件,假设您的 home 目录中包含名为 music 的符号链接,而它指向装入到 /media/music 的 TB 级的存储介质,那么这个命令将不会列出您的符号链接 music。

您可以使用 -iname 覆盖区分大小写的匹配,并且您可以使用 -follow 根据符号链接进行遍历。下面是使用了这两种选项的一个示例:

$ alias ls='ls -aF'  $ ls -1   bin/  lib/  src/  tomb/  tunes@  $ find . -name '*music*' -type f -print   $ find . -iname '*music*' -type f -print   $ find . -name '*music*' -type f -follow -print   $ find . -iname '*music*' -type f -follow -print   ./tunes/Muse/Origin Of Symmetry/04 Hyper Music.m4a  ./tunes/Radiohead/OK Computer/04 Exit Music (For A Film).mp3  

正如 -F 选项生成的 @ 符号注释所表示的,tunes 是一个符号链接。要查找名称中包含字符串"music"的任何变体的所有歌曲,您必须使用 -iname *music*。要遍历到 tunes 所指向的文件系统层次结构,您必须使用 -follow

为了使得 find 更具可移植性,并且类似于 Spotlight 的搜索特性,那么应该使用 -print0 -follow -iname pattern

收集许多命令的输出的简单方法

通过使用 > output >> output 修饰符,您可以很容易地捕获一个命令行的输出,其中前者用于创建或者覆盖文件 output ,而后者则将内容追加到 output 。您可以组合使用任何修饰符以生成一系列命令的文本,如果您正尝试对系统状态进行快照,这种方法是非常有价值的,例如:

$ ps > state.`date '+%F'`  $ w >> state.`date '+%F'`  

反勾号反引号操作符 (``) 可以对命令进行扩展。在 Shell 对命令行进行解释时,将执行反勾号之间的命令,并在最终的扩展结果中使用该命令的输出。在本示例中,参数周围的单引号用于保持参数不变,从而可以避免 Shell 对 +% 进行解释。

在执行了这两个命令之后,创建了文件 state.YYYY-MM-DD,如 state.2007-08-05,其内容与以下所示类似:

  PID TTY          TIME CMD   9997 pts/1    00:00:00 zsh  10351 pts/1    00:00:00 ps     17:56:04 up 21 days,  2:53,  2 users,  load average: 0.89, 0.94, 0.91  USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT  adamgood pts/0    c-67-169-182-255 Sat17    0.00s  0.37s  0.36s pine  mstreich pts/1    cpe-071-065-224- 17:17    0.00s  0.01s  0.00s w  

不过,每次输入反勾号操作是非常麻烦的。您可以使用下面的命令来代替这个序列:

$ file=state.`date '+%F'`  $ ps > $file  $ w >> $file  

但是,虽然这样做稍微有效一些,但仍然可能出现错误,因为在第二个或者后续的命令中,很可能使用 > 而不是 >>。要捕获一系列命令的输出,最简单的方法是使用大括号 ({ }) 将命令括起来。

$ { ps; w } > state.`date '+%F'`  

ps 命令运行(列出用户当前的进程),然后是 w(它将显示谁正在使用这台计算机),并将收集到的输出保存到一个文件中。

注意: 您还可以在圆括号中嵌入一个命令序列,以得到相同的结果;然而,两者之间有一个重要的区别。在圆括号中的系列命令将在一个子 Shell 中运行,并且不会对当前 Shell 的状态产生影响。

例如,您可能希望运行这个序列:

$ { cd $HOME; ls        -1}; pwd

它将与下面的命令产生相同的输出:

$ (cd $HOME; ls); pwd  

大括号中的命令更改了当前 Shell 的工作目录。后面的这种技术则无能为力。是使用组合还是子 Shell,这取决于您的目的,尽管子 Shell 的功能更强大一些,下面将对其进行描述。

子 Shell 可以为您提供帮助!

尽管通常运行子 Shell 将聚合的输出通过管道传递给单个命令,但您还可以使用子 Shell 对命令进行扩展,就像反勾号那样。然而更有价值的是,子 Shell 可以包含另一个子 Shell,所以还可以进行嵌套扩展。

让我们来看看下面简单的例子。

$ {ps; w} > state.$(date '+%F')  

这个命令与 { ps; w } > state.`date '+%F'` 是相同的。$( ) 符号运行圆括号中的命令,然后使用输出来替换自己。换句话说,$() 可以进行扩展,就像反勾号一样。然而,与反勾号不同的是,$( ) 非常复杂,并且甚至可以包括其他 $( ) 扩展。下面提供了一些示例:

$ (cd $(grep strike /etc/passwd | cut -f6 -d':'); ls)  

这个命令在密码文件中搜索用户 strike 对应的条目,提取其 home 目录(密码文件中的第 6 个字段,如果您从 0 开始数)字段,更改到这个目录,并列出其中的内容。grep /etc/passwd strike | cut -f6 -d':' 的输出将在执行任何其他操作之前进行扩展。

下面是另一个示例,这次的用户名来自于 whoami 的结果:

(cd $(grep $(whoami) /etc/passwd | cut -f6 -d':'); ls)  

因为子 Shell 有许多用途,所以与组合或者反勾号操作符相比,您可能更喜欢使用它。

不再输入长路径名

有些特性,如 PATH 和 MANPATH 环境变量,可以减少输入工作量。这两个变量分别为搜索可执行文件和 man 页面定义了一系列目录。

Shell 支持另一个搜索路径:CDPATH。顾名思义,CDPATH 列出了搜索命名目录的目录列表。让我们看看它是如何工作的。

假设您的 home 目录中有三个目录,它们分别是 tomb、current 和 personal。tomb 目录中包含旧的工作项目;current 目录中包含当前工作的内容;而 personal 目录中包含您所感兴趣的一些文件和内容。执行 ls -R tomb current personal 命令可以得到与下面所示类似的内容:

$ ls -R tomb current personal  current:  ./        ../       einstein/ herbie/    personal:  ./       ../      fishing/ novel/    tomb:  ./       ../      mariner/ marvin/  voyager/  

对于这种结构,如果不使用 CDPATH,要更改到任何目录都需要记住文件夹的位置,并输入完全限定的(或者相对的)路径名:

$ cd ~/tomb/mariner  $ cd ~/personal/novel  $ cd ~/current/einstein  

为了简化这项任务,可以将 CDPATH 设置为您所需要的搜索命名目录的目录列表:

$ export CDPATH=.:~/:..:../..:  

这是 CDPATH 的最小设置。它将按顺序搜索当前目录(.,或者"点")、您的 home 目录 (~/)、父目录(..,或者"点点")、父目录的父目录目录 (../..)。最小设置首先搜索本地目录以及附近的一些目录。

在设置了这个 CDPATH 之后,您可以快速地更改到任何顶层目录:

$ pwd  /tmp  $ cd current  /home/strike/current  $ cd personal/fishing  /home/strike/personal/fishing  $ cd novel  /home/strike/personal/novel  $ cd /tmp  $ cd personal/novel  /home/strike/personal/novel  $ cd /tmp  $ cd novel  cd: no such file or directory: novel  

除最后一个 cd 命令之外,所有命令的参数都在 CDPATH 中存在匹配的目录。然而,因为 personal 目录不在 CDPATH 中,所以无法找到 novel(如果您位于相对路径之外)。

如果您希望搜索 personal 目录和其他的两个目录,那么可以将它们添加到 CDPATH 的最后一个冒号的后面,或者根据您所需要的搜索顺序进行添加。添加三个目录,假设您的 Shell 启动文件中包含前面的 export 命令:

$ export CDPATH=$CDPATH:~/current:~/tomb:~/personal  

现在,您只需要输入希望切换到的目录的名称即可:

$ cd current  /home/strike/current  $ cd /tmp  $ cd einstein  /home/strike/current/einstein  $ cd fishing  /home/strike/personal/fishing  $ cd personal/novel  /home/strike/personal/novel  

与 PATH 和 MANPATH 一样,如果 CDPATH 中的多个条目都包含匹配项,那么在找到第一个匹配项后将停止搜索。例如,如果您向 tomb 中添加一个名为 novel 的目录,那么 cd novel 命令将得到 ~/tomb/novel。

$ mkdir ~/tomb/novel  $ cd /tmp  $ cd novel  /home/strike/tomb/novel  $ cd personal/novel  /home/strike/personal/novel  

如果其条目中包含唯一的目录名,那么 CDPATH 是最有效的。否则,必须输入足够长的路径以进行区别,比如 personal/novel。

取得事半功倍的效果

您已经看到了许多示例,说明文本文件在 UNIX 系统中有着广泛的用途。大多数系统启动文件都是文本文件,包括 Shell 脚本、配置文件,当然还包括数据文件。除了文本编辑器之外,最有价值的实用工具就是翻页工具 (pager)、或者允许您逐页浏览文本文件的应用程序。

应用程序 less 是最常用的翻页工具之一,并且它提供了大量的选项以调整它的行为。事实上,您可以将 LESS 环境变量设置为相关选项的列表,以便控制 less 的缺省工作方式。下面是一组有用的选项:

export LESS="-Nmsx4"  

  • -N 可以显示行号。
  • -m 能够以百分比的形式显示在文件的当前位置。
  • -s 可以将多个空行"压缩"或者减少为单个空行。
  • -x4 可以将制表位设置为四个空格。

请仔细地阅读 less 的 man 页面,以便找到对您最有帮助的选项。

从下到上阅读文件

在 UNIX 系统中,许多文件会不断地增大,直到被截断或者进行存档。例如,最重要的一些系统处理,如电子邮件传输和远程访问、持续日志记录活动,都会在文件的末尾添加新的条目。并且是最感兴趣的日志文件的末尾。如果某个服务崩溃了,那么最后发生的事件将提供最有价值的线索。

有两种方法可以逆序显示文件中的行:tac(将 cat 反过来)和 tail -r 命令。

$ cat smallfile  a  b  c  $ tac smallfile  c  b  a  $ tail -r smallfile  c  b  a  

您可能会发现 tac 更加实用一些,因为它将显示整个文件,这与 tail 是不同的,后者将对输出进行截断,只显示若干行的内容。例如,您可以组合使用 tacless 以创建一个别名,用于对文件进行逆序分页:

$ alias rless="LESSOPEN='|tac %s' less"  $ rless smallfile  c  b  a  

rless 别名临时地将 LESSOPEN 设置为 |tac %s,这是特定于 less 的一个环境变量。这样可以强制使用 tac 对每个文件(%s 是文件名的占位符)进行预处理(所以使用了管道 |)。

下面提供了这个相同技巧的另一种变体,但是它使用了 perl 而不是 tac,在您的系统中可能无法使用这个命令:

LESSOPEN="|perl -e 'print reverse (<>)' %s" less small  

包含 perl 的那行命令表示"将所有的输入行读入一个匿名数组 ((<>)),颠倒元素的顺序,并打印这个新的数组"。

进行新的数学运算

如果您需要计算一个结果,那么并不需要转到一个新的应用程序。您可以继续在命令行中完成这项任务。您可以使用 dc(这是一种逆波兰式计算器),或者 bc(这是一种用于数学运算的完整的脚本编程语言)。或者,如果您需要马上获得答案,那么可以使用命令行和 $(( )) 操作符。

$ echo $(( 100 / 10 ))  10  $ echo $(( 10 ** 2 ))  100  

Shell 并没有提供大量的算术操作符,但是已经足以完成大多数编程任务,包括移位、求余和比较。

还有很多的内容需要学习

"对话 UNIX"已经是第 13 部分了,但是仍然有许多内容需要介绍。我们需要学习更多的命令和技巧、研究各种各样的相关概念,当然还包括大量的开放源代码软件,以便提高您的工作效率。

还有一点就是,必须克服各种困难。高年级学生有时会捉弄人,有时的确令人尴尬,但他们相处融洽。也许我看起来像是在倚老卖老了!. . 孩子们相处很融洽,是吧!

感谢您的阅读!我希望您能够喜欢本专栏。

共享本文……

digg 请 Digg 这个故事
del.icio.u 发布到 del.icio.u
Slashdot Slashdot 一下!



参考资料

学习

获得产品和技术
  • IBM 试用软件:从 developerWorks 可直接下载这些试用软件,您可以利用它们开发您的下一个项目。


讨论