日期:2014-05-16  浏览次数:20886 次

转:linux环境下使用技巧

About Shell
-----------
Q1.用户登录到Linux机器,系统会启动login子程序处理用户登录请求,如何自动设置用户环境变量?
? ?比如 PATH,CVS_RSH等等

? ?编辑/etc/profile 和 $HOME/.bash_profile??$HOME/.bash_login
$HOME/.profile
? ?当退出登录时,shell会执行??~/.bash_logout

Q2.如何快速执行历史命令?

? ?fc -s [cmd]
执行编号为cmd的命令,缺省的话,执行最近1条指令
? ?可以使用alias r='fc -s'
登记1个命令别名,减少键击次数

? ?注:
? ???fc - Fix Command

Q3.如何快速查看一个用户的id和组id?

? ?输入id
即可查看当前用户的id和组id(包括数字和名称)
? ?输入id [USERNAME] 即可查看
USERNAME的id和组id(包括数字和名称)

Q4.如何查看OS打开的所有文件句柄?

? ?输入lsof,可查看所有的打开文件
? ?输入lsof /path/of/file,
可查看/path/of/file目录中被打开的文件

Q5.如何转化不同编码的文件?
? ?例如 readme.txt
是GB2312编码的,Console只支持utf-8的,要将readme.txt
? ?? ???打印处理,如果不作编码转换,必然出现乱码.
? ?可以用iconv工具进行转化
? ?? ???cat readme.txt| iconv -f gb2312 -t utf-8

About Man/Info
---------------
Q1.用户手册将命令划分为不同的类别,如何查看分属不同Section的命令?

? ?man 7 locale? ? # 7代表Section 号

About VIM
----------
Q1.默认字符编码为utf8,打开使用gb2312编码的文件,中文全为乱码,如何恢复正常显示?

? ?输入 edit ++enc=cp936

Q2.如何在vim系统中执行命令?

? ?输入 !cmd

T2.
使用vim直接打开并编辑.*gz文件,而无须解压,读取,编辑,再压缩.
? ?压缩文件的支持是通过plugin
? ?vim??ls-lrR.txt.gz

T4. 如何Vim支持语法加亮?

??一劳永逸的方法,在~/.vimrc中增加如下语句
? ? syntax on
??临时性的方法, 输入命令:syntax on

T5. Vim如何在结构文档中快速切换,比如 C语言{
}块之间切换.

??输入在{}之间,输入%即可

T6.
如何让Vim记下我的编辑状态,以便下次快速恢复工作?

??输入 :mksession file_name_your_session

T7.
如何让Vim告诉你编辑文件的字节数,字数,当前位置信息?

??输入 g CTRL_G

T8. 输入help,打开了帮助窗口,如何快速关闭?

输入CTRL-W ,然后再输入CTRL-Q,
或者输入CTRL-W q

T9.
我要每天编辑日志,我不想去输入日期与时间,该怎么办?

现要如这样的日期形式Mon Sep 19 23:19:03 CST
2005,简单,定义
一个快捷键F2,在vim中做这样一个映射
:map <F2> gg:read !date<CR>

T10. 如何使用Vim改变文本文件的编码?


比如,原有1个文档为utf-8编码的,现在要将它改为cp936编码,可用如下指令
??:set fileencoding=cp936
??然后再保存文件:w

T11.如何将vim记住我的配置选项(比如默认的编码方式,文件类型等)?

??请将你的配置命令写到~/.vimrc配置脚本文件中

About X
--------
Q1.如何获得系统中所有的字体?

? ?输入指令??xlsfonts


About Program
--------------
R1. 目录名字不要包含大写字符,尽量少包含中文字符.

R2.


About Security
---------------
R1. 为了有助于确保Web
Mail您的密码和帐户的安全,请在每个会话结束时注销帐户。

About System
------------
S1.
Linux在boot起来之后,先调用/sbin/init,它是其他所有进程的父进程
? ?? ?1.启动时先运行boot level master script
? ?? ?2.执行硬件初始化脚本
? ?? ?3.执行run level master
script,运行级别定义在/etc/inittab中
? ?? ?? ? 每级的脚本放在/etc/init.d/rc<X>.d中
? ?? ?4.到最后用户看到的即是mingetty登录界面

S2. Linux TTY这种用户接口的设计思想
? ?用户通过本地键盘或者网络??-->命令 -->TTY -->Shell
Interpreter
? ? --> Excute Cmd --> Output --> TTY --> 本地内存或者网络
-->显示器输出
? ?优点:
可以用不同形式的终端登录,比如本地键盘,远程网络,Modem,只有TTY与用户
? ?之间存在某种连接即可

S3. Linux如何同一张网卡如何支持多个IP?

? ? 1. 配置 虚拟接口
? ? ifconfig eth0:0 192.168.12.240
? ? ifconfig eth0:0 netmask 255.255.255.0

? ? 2. 增加一个路由表
? ? route add -net 192.168.12.0 netmask 255.255.255.0 dev eth0:0

S4.
如果Home分区中空间不够,但是/usr分区中留有较大的空间,如何平衡利用空间这两者?

? ?目标: 1.通过Home分区文件的形式读写数据
? ?? ?? ?2.实际的数据确是存储在/usr/分区中


利用符号链接的方式,在Home分区中建立一个符号链接目录,指向
? ?ln -s /usr/local/voip ~/project/voip

S5. Apache
使用UserDir模块时,~username形式访问,Apache告之禁止访问?

? ?比如/home/robbie 它具有drwx------属性,必须将它改为

drwxr-xr-x属性,Apache服务器才可打开用户目录

S6. 如何添加自定义的全局的初始化动作?


比如要添加这两个别名命令fcc,和fpp统计.c和.cpp源文件数目,
? ?可在/etc/bash.bashrc.local中添加如下脚本
? ?alias fcc='ll -R | grep "[:alpha:]*[.]c$" | nl??|less'
? ?alias fpp='ll -R | grep "[:alpha:]*[.]cpp$" | nl??|less'

About Toolkit
-------------
T1. 使用grep查找.gz文件中包含特定字符串的行?
? ?举例,有个文件,ls-lrR.txt.gz,
待查找的字符串为开头为rms,结尾为ogg的文件,可以用下列方式
? ?gunzip -c ls-lrR.txt.gz??| grep??'rms-.*ogg'
注: *NIX环境下, .可代表任何字符,
*代表任意匹配,+代表至少出现1次,?代表至多出现1次


T2. Windows
2000运行有telnet服务,这样可以使用linux的konsole/或者其他终端模拟器连接windows主机.