目录树
目录
FreeBSD tips
tips
-
为什么有些软件编译不了?
因为有些软件依赖/usr/src,所以你装系统的时,在安装内容里应选上src
-
如何让FreeBSD像RedHat那样在ls时显示多种颜色的目录?
在/etc/csh.cshrc里面加入:
setenv LSCOLORS ExGxFxdxCxegedabagExEx setenv CLICOLOR yes
然后,执行:
sed -i.bak -E s/set/ prompt/#set/ prompt/g /root/.cshrc
并重新登录.
-
如何让FreeBSD的csh像bash那样按tab列出列出无法补齐的候选文件?
标准的方法是按Ctrl+D。但如果一定要用tab的话,在/etc/csh.cshrc中加入:
set autolist
-
如何让FreeBSD的csh显示类似[delphij@spirit] ~这样的提示符?
在/etc/csh.cshrc中加入:
set prompt = '[%B%n@%m%b] %B%~%b%# '
然后,执行:
sed -i.bak -E s/set/ prompt/#set/ prompt/g /root/.cshrc
-
如何让普通用户也拥有类似root用户那样的命令行编辑能力?
在/etc/csh.cshrc中加入:
bindkey "^W" backward-delete-word bindkey -k up history-search-backward bindkey -k down history-search-forward
-
使用port来安装软件的理由是什么?
ports是FreeBSD推荐的安装方式,它提供了依赖关系检查、自动安全审计(portaudit)、更新等多种功能。此外,还有一些其他理由:
- 并不是每一个开发人员都了解FreeBSD,但是每一个ports committer都了解。他们可以帮助那些第三方软件的开发者将软件更好地运行在FreeBSD上
- 几乎每一个port都符合hier(7)标准。你可以轻易地找到文件
- 可以完整地卸载port,但手工安装的不行
- port出了问题你可以去邮件列表里抱怨port有问题,手工安装一个人一个办法,没人知道你的问题是什么
- FreeBSD的POLA政策保证了绝大多数情况下ports的使用方式的延续性(阅读ports/UPDATING基本上不会遇到大的困难)
-
bash, sh, csh哪一个更好?我是否可以把普通用户或root的shell改为bash或者ksh?
答案是,习惯哪个哪个就更好。唯一要注意的一点是,尽量不要改变root的shell,特别是要避免使用第三方的shell,因为这会在升级时带来麻烦
改变shell官方的作法是chsh(1),然而你也可以用vipw或另外一大打工具来完成类似的工作。
-
tcsh(csh兼用) 提示符的变量常用的都有哪些?
- ! 和%h一样
- %B 开始粗体模式
- %b 结束粗体模式
- %c 当前工作目录名称的最后部分
- %c2,%c3等等 当前工作目录名称的最后两个、三个(等等)组成部分
- %C 跟%c类似,但是使用长形式的目录名称
- %d 本周的当天
- %D 今天是当月中的第几天
- %h 当前命令的历史记录编号
- %l shell的当前控制终端
- %L 清除从提示符末尾到下一行的所有内容
- %m 机器的主机名称
- %M 机器的完全符合规范的域名
- %n 用户名
- %p 用精确格式(包括秒)显示的12小时制时间
- %P 用精确格式(包括秒)显示的24小时制时间
- %S 开始标准输出格式
- %s 结束标准输出格式
- %t 以12小时制格式显示时间
- %T 以24小时制格式显示时间
- %U 开始下划线模式
- %u 结束下划线模式
- %w 当前月的名称
- %W 当前月的序数
- %y 以2位格式表示的年
- %Y 以4位格式表示的年
- %% %字符
- %! 跟%h相同
- %@ 跟%t相同
-
$# 扩展到>供常规使用,如果用户正以root身份运行的话,就扩展到#
- %/ 当前工作目录的完整名称
- %- 以短格式表示的当前工作目录
-
C 跟C匹配的控制字符:例如G代表Ctrl+G
- /a 使tcsh在任何时候显示提示符时嘟嘟响
- /e 终止的escape符0x1B
- /f 终止的换页符
- /n 在这个位置开始一个新行
- /r 回车符
- /t Tab制表符
- /v 垂直制表符
- /nnn 由八进制数字nnn所指定的字符
-
在 console 下操作时,由于屏幕显示有限,如何查看前面显示的资料?
按一下 Pause or Scroll Lock键后,则可利用 PageUp PageDown Up Down Home End 等键来看前后显示的资料
再按一下 Pause or Scroll Lock则可回复等待输入画面
-
加速按键速度和改善cusror 的位置有些时不太明显
在 /etc/rc.conf 中加入:
keyrate="fast" cursor="blink或destructive"
-
一些 console 下使用的快速键
以下按键皆适用于 tcsh 及 bash
- 快速移动光标
-
ctrl+a -> 到最前面
-
ctrl+e -> 到最后面
-
- 编辑方面
-
ctrl+d -> 删除光标所在字符
-
ctrl+w -> 删除光标所在字前面的字符
-
ctrl+u -> bash:将光标前所有的字及字符删掉,tcsh:删除所有字
-
ctrl+k -> 将光标后所有字符删掉
-
ctrl+b -> 下个字符
-
ctrl+f -> 前一个字符
-
ctrl+m -> 和按下 enter 的结果一样
-
ctrl+h -> 和按下 del 或 backspace 键一样
-
del 或 backspace -> 删除前一个字符
-
如果对按键有研究兴趣者,不妨参考 /usr/share/syscons/keymaps/ 这个目录,其中 us.iso.kbd 是一般我们使用的按键
-
如何快速切换目录?
在 FreeBSD 中常常需要切换目录,有时目录名称较长、或是有大小写、或是只记得前面几个字,怎么办?
其实只要输入部份字再加上 * 这个符号就可以了.
如我们要切换到 /usr/local/ 这个目录,只需输入 cd /usr/lo* 就可以了.
如果输入 cd /usr/l* 会如何呢?则会进到 /usr/lib/ 这个目录,这是因为 shell 找到第一个符合的条件便停止了.
-
如何清空档案内容?
如我们要将 /var/log/httpd-access.log 清空,则使用以下指令
# cd /var/log/ # true > httpd-access.log
-
显示目录及档案[tree]
有时需显示某个目录下所有的目录及档案,虽使用 ls 可达到部份功能,但并不是很方便.
以下我们就透过 ports 来安装 tree
#cd /usr/ports/sysutils ; make install clean
如此会将 tree 这个指令安装在 /usr/local/bin/ 这个目录下.
使用例子:
- 显示 /usr/ 下的目录及档案
#tree /usr
- 只显示 /usr 下的目录
#tree -d /usr
详细用法请参考:
#man tree
PS:可透过管道 | 及 more 来显示
#tree /usr | more
-
重复使用先前使用过的指令
你可以使用以下的方法来重复使用先前使用过的指令:
例如,我们先用 history 显示先前输入的指令:
# history . .. ... 10 clear 11 cd /usr/local 12 ls 13 ls etc 14 cd ~ 15 clear
- 用 up down 可用上下一个指令,或是 ctrl+p ctrl+n 亦然
-
配合 ! 的用法,例如以下(ps: 在<...>内代表要输入的东东)
- !!
# !! => 重复执行上个一个指令
-
!<编号>
# !11 => 执行 cd /usr/local
-
!<指令> 可输入部份字,但前面部份需符合
# !cl => 执行 15 clear 指令
-
!<?指令?> 输入部份字符,部份吻合
# !?etc? =>执行 13 ls etc
以上指令在 tcsh 及 bash 下皆可使用,如此是不是可帮你省下许多时间.
-
如何将 man 的档案印出来?
man 是大家学习 FreeBSD 的最佳资料参考来源,但在显示器上看到底不是很方便,有没有方法转成一般的文件档案呢?
使用 col 这个指令吧.
例我们要将 ssh2 转成 ssh2.txt,则使用以下语法:
# man ssh2 | col -b > ssh2.txt
-
为何查不到正确的 ports 资料
在 /usr/ports/ 下有着几千个 ports 的安装资料,有时我们可使用以下方式来查相关的 ports.
以下都是在 /usr/ports/ 这个目录下执行.
- 先将 ports 资料转换成一个文字文件,如 index.txt
# make print-index > index.txt
- 使用 make search key="...." 来查
- 将 ports 内容转换成 README.html
# make readmes
用以上方法,可很容易的查到相关的 ports 资料,但很奇怪的是,为何我更新一个 ports 的资料后(或 ports tree),为何会查不到,查到的仍然是旧的资料.
原来,在 /usr/ports/ 中有一个 INDEX 檔,以上的查询方式都是在这个 INDEX 档中查询,当你更新 ports 资料时,这个 INDEX 档并不会随之更新.
所以为了查询方便,我们需以手动的方式来做.
# make index
做完后,再更新 index.txt 及 README.html.
-
如何在 FreeBSD 同一片网硌卡加一个 ip 地址
有的时候,需要在同一片网络卡上加 ip 以达到一些特殊的要求.
在 FreeBSD 这是非常简单的,假设原先网络卡的 ip 是 211.211.211.211,想加一个 211.211.211.212,使用的是 rl0 这片网络卡,则做法如下.
- 在 /etc/rc.conf 加上这一行
ifconfig_rl0_alias0="inet 211.211.211.212 netmask 255.255.255.255"
其中的 alias0 就是加装的第一个 ip,如要设定多个可在此修正,如 alias1、alias2.. aliasN
- 重新激活网络卡,执行 /etc/netstart
# /etc/netstart
-
更新了rc.conf,如何生效?
#cd /etc && sh rc
-
修改更新.cshrc(或者类似文件)之后如何不退出登录立即生效?
# source ~/.cshrc
-
我新装了程序在 path (/usr/bin /usr/local/bin etc.,)路径中,如何不重新登录就能直接使用?
#rehash
-
csh中如何快速在命令行中移动?
移动到行首:a,行尾:e,清除:^u
-
如何看一个文件而不需要先解压?
#zcat
-
我总是工作到很晚而忘了睡觉的时间怎么办?
#leave +hhmm(hh小时,mm分钟)
-
如何清屏?
#clear
-
分割和合并文件
$ split -b 650m file # 将大文件分块成多个650MB的小文件 $ cat x* >largefile # 将所有小文件合并成一个大文
-
为什么改了.xinitrc但是当我使用xdm/gdm/kdm时没有效果
应该改.xprofile,或者直接在.xprofile中source .xinitrc
-
如何锁定终端登陆?
$lock -p
当你使用终端登陆时想暂时离开而又不想logout,那么可以用lock -p. 当你返回时输入密码就可以.
-
双系统中 重装Windows后怎样再进FreeBSD
- 在能进FreeBSD时先备份好FreeBSD的引导文件
#dd bs=512 count=1 if=/dev/ad0s3 of=bootsect.bsd ##说明:/dev/ad0s3是你的FreeBSD所在分区,用mount命令可以查看
- 拷贝文件
#cp bootsect.bsd /mnt/c/ ##说明:/mnt/c/是你挂载的Windows所在分区
- 修改Windows的启动文件boot.ini,在最后一行加入"C:/bootsect.bsd="FreeBSD" " 说明:这里假设你的Windows装在C盘
-
在终端(命令行)下怎么使用鼠标进行复制,粘贴?
按住左键拖动进行复制,在光标所在的地方点击鼠标中键(也就是鼠标滚轮,假如有)进行粘贴,X下也同样适用