FreeBSD学习日记
基础:
1.安装
2.系统基本操作
进入系统后一些基本操作,如移动文件,创建/删除文件等;
3.文本编辑器
ee & vi学习及技巧
-------------------
何时开始学习FB?
接触*unix是大一下学期,那时候,在看一篇”Hacker“的文章时,知道有那么一个Linux的东东,后来花钱买了一个RH(有下的。。),装上玩玩,觉得好神秘,在MM面前一正捣鼓,呵,Linux没学,倒是把MM变成了现在的女朋友。(呵,现在玩FB,希望再变个老婆出来)
大学算是荒废了。毕业在一家华为*地的代理上班,也算没有离开过FB吧。:lol
平时也天天在CU里混,那段时间过得特难过,特浮躁,在清茶潜水,在职场学习经验。在女朋友的帮助下,算是度过了那段痛苦的阶段。(谢谢她)
说了一大堆,都没说到重点,主要是惭愧啊,我正式开始学习FB才不到一年,而且中间由于工作忙行丢了三个月。2005.5月买了本《FreeBSD完全攻略QA版》,当时其实很想有本关于FB的书,在西南书城没有看到有《FreeBSD实用大全》之类的,所以看到这本书,一点犹豫都没就买下了。(我喜欢看书,电子书对眼睛不好。)所以建议,喜欢看书的朋友,去买本书吧。
用FB做了些什么,其实是想说:想用FB做些什么。
最起先,是想用FB做个防火墙,选择了IPF学习。目前为止,我也只会做这个。
仅给几个学校做过FB做的网关
想用FB做什么
目前想用FB来跑WEB,FTP,MAIL,etc.当然,还有漂亮的桌面
之后:学习VPN,Routes,也想知道LOTUS能不能在FB上跑。
总之,能应用到FB上的应用,都想学习。
学习FB的计划
因为WINDOWS大家都比较熟悉,所以,最开始要求自己达到DOS下操作文件的能力
1.看完《实用UNIX教程》 (清华大学出版社),学习UNIX基本操作;
2.《Hand Book》同时看起走,最好看E文的;
3.学习如何配置web,ftp,mail服务,同时学习虚拟空间配置;
4.学习Shell,方便工作生产用:lol
5.系统安全设置学习,也要平时集累;
进阶:
1.了解FB基本系统文件结构;
2.程序下载安装
port & package & cvsup & fetch
3.内核学习及编译
为以后编译内核做准备;
4.应用配置:
IPF+IPNAT;
5.远程控制,安全技巧
放在这,主要是因为不一定要到现场去安装各种应用软件和维护,方便自己:)
6.WEB,FTP服务安装配置
同时学习虚拟空间设置;
7.MAIL服务安装配置;
8.SHELL学习
日常管理的简单化,偷懒化:)
2.系统基本操作
2006.4.8
2.系统基本操作
进入系统后一些基本操作,如移动文件,创建/删除文件等;
#
首先,看到这个符号,说明你是root权限,这对新手来说,可能的操作会造成很多坏的影响,所以,我们先学习如何建立一个新的,普通的帐号,以方便我们学习。
#adduser
adduser: ebon
Full name: ebon.yan
Uid (Leave empty for default):
Login group [ebon]: wheel #wheel组可以su到root权限
Login group is wheel. Invite jk into other groups? []: #同时也可以是其它组成员
Login class [default]:
Shell (sh csh tcsh nologin) [sh]:
Home directory [/home/jk]:
Use password-based authentication? [yes]: y #需要密码就n
Use an empty password? (yes/no) [no]: y #需要密码就n
会提示你输入密码的
Lock out the account after creation? [no]: n
Username : ebon
Password :
Full Name : jk
Uid : 1005
Class :
Groups : wheel
Home : /home/ebon
Shell : /bin/sh
Locked : no
OK? (yes/no): y
小技巧:
使用 pw 来管理你的帐号
在 FreeBSD 下使用 adduser 来新增帐号,有些时会满烦的,可用以下方式:
pw useradd -n -g -m -s /bin/csh
=> -m 代表建立使用者目录
group要存在
●同时设密码
echo
| pw useradd -n -g -m -s /bin/csh -h 0
group要存在
● 删除帐号
pw userdel -n -r
=> -r 代表同时删除其 home 目录等相关资料
● 修改帐号
pw usermod -g -s /bin/csh
PS:无法修改帐号名称
● lock 及 unlock 使用者帐号
pw lock
pw unlock
其它小技巧请见:bbsplay.net
#exit /ctrl+d /login #重新登陆
$ls #相当DOS的dir
$ls -l #查看文件的属性,使用者及组,创建日期等。
$pwd #查看当前路径
$who #who
$w #有谁在这个机器上,登陆时间及登陆界面
$mkdir bbsplay #新建一个文档
$rmdir bbsplay #删除一个文档
$touch bbsplay.txt
$cat >bbsplay.txt
#这个命令是直接打开文件,并输入内容,有点像DOS的copy con
welcome to bbsplay.net!
(ctrl+c)
$ee bbsplay.txt
#很简单的文件编辑器,esc+enter选择保存退出/不保存退出。
$ rm -i bbs.txt
#删除文件。好习惯:加-i参数,确认一次,避免错误删除。
remove bbs.txt? y
$cd /home #移动你所在的目录
$cp /home/ebon/bbsplay.txt /home/bbsplay1.txt
#复制/home/ebon/下bbsplay.txt到/home下,并改名为bbsplay1.txt
$more bbsplay1.txt #查看文件内容,以百分比显示展开多少
$cat bbsplay1.txt #查看文件内容
$df #查看磁盘文件详细
$top #查看系统运行的进程
#说明:命令的用法可以用man command来查看学习,也可以在网上去查询。
#命令的运用学习,而不是去学习命令。UNIX的Shell命令,使用是很灵活的,
#几个命令的组合,可以完成很多操作。
现在,基本上你可以在UNIX中进行简单操作了。
-------------------------------------------------
4.10 (基本操作命令补充)
1.文件权限修改(chmod)
类似DOC的attrib命令
unix的文件,有三个所有者;
文件所有者(user) 文件所有者所属给(group) 其它人(other) #all全部
每个所有者都有三个属性,类似DOC下修改其隐藏,只读功能。
r(只读) w(可写) x(可执行)
unix下,r,w,x分别可以用数字代替。
r(4) w(2) x(1)
现在,我们可以用上面的知识,改变文件权限了。
eg:
$chmod a+rwx filename #全部加上rwx属性
$ls -l
$-rwxrwxrwx 1 root wheel - 0 Apr 10 02:39 filename
$chmod g=r filename #给filename的文件所属给赋与只读属性
$ls -l
$-rwx-wxrwx 1 root wheel - 0 Apr 10 02:39 filename
$chmod o-x filename #给filename的文件所属去掉可执行属性
$ls -l
$-rwxrwxrw- 1 root wheel - 0 Apr 10 02:39 filename
当然,你也可以用数字也表示权限
eg:
$chmod 755 filename
#ls -l
$-rwxr-xr-x 1 root wheel - 0 Apr 10 02:39 filename
2.也许有时候,你不注意,删除系统文件,或者重要文件,当然,你可以用软件找回来,不过,对于我们这种新手来说,在UNIX下找回数据,还没有操作过,所以,我们可以利用chflags命令,来做到预防。
$chflags sunlink filename
$ls -lo
$-rwxr-xr-x 1 root wheel sunlink 0 Apr 10 02:39 filename
你怎么删除都删不掉的。
$rm -i filename
remove ipf.conf? y
rm: ipf.conf: Operation not permitted
当你不要想这个标志时,可以在sunlink前加no,来取消。
$chflags nosunlink filename
$ls -lo
$-rwxr-xr-x 1 root wheel - 0 Apr 10 02:39 filename
2006.4.9
简单的VI,基本的VI操作
1.操作命令
当你输入:a(append),你输入的将添加光标之后
当你输入:i(insert), 你输入的将插入光标之前
当你办入:o(open),你将会在当前行之后插入新行
2.move
基本移动
hjkl 左下上右
^ 当前行行首
$ 当前行行尾
w;b 右/左移一个单词的第一个字母
e 右移一个单词的最后一个字母
{;} 上/下移段落处
H;L 屏幕最上/下行行首
G 文档最下行行首
命令移动
:476 移至第476行,当然要存在
:. 移至本行,说明.的用法
:$-10 移至倒数第10行
:^ 上移一行
3.delete
x:删除一个字母
dd:删除一行
d$:从行首删除到行尾
d^:从行尾删除到行首
ndd:删除从光标开始向下的n行
4.undo
u:取消操作,仅对上一次操作有效
5.copy,cut,粘贴,替换
copy] y?:把所想copy的文本copy到buffer
cut] d?:把所想copy的文本cut到buffer
eg:yy;y$;y^;nyy
dd;d$;d^;ndd
粘贴:光标至目标位置,输入:p:粘贴至光标之后
P:粘贴至光标之前
替换:r
6.查找/替换
/pattern 查找你想要的
:s/patternOLD/patternNEW 本行内,patternNEW替换patternOLD
:%s/patternOLD/patternNEW 文档内,patternNEW替换patternOLD
7,载入,退出
ZZ/:wq 保存退出
:w 保存
:w! 保存,有重名的改写
:q 退出,没更改的提示
:q! 强行退出
:e! 丢弃所有更改,重新载入硬盘原来数据
这些足够你刚开始学习UNIX,编辑文本用的了。当然你也可以用ee,不过,用好VI,在任何UNIX都是通用的了,学一全部可以用,呵,我懒^O^2006.4.12
原计划:
1.了解FB基本系统文件结构;
2.程序下载安装
port & package & cvsup & fetch
现更改:
先学习ports & packages
再对FB的系统文件目录及结构,作个了解。
这一二天因为工作原因,同时,看显示器太久太久了,所以没有怎么进论坛:P,不过眼睛好累哦,奉劝大家,也奉劝我,有机会要出出看看风景了,呵,五一来了哦:):lol〔题外话,不要K我〕
PORTS和PACKAGES
其实,我也是会用。在这班门弄斧也不太好。通俗点,就是安装软件,呵。
我就给讲讲我习惯用的吧。
这一二天也抽空找了几个资料,最后传上来给大家,比较好,尤其是张纪青老师的文章,讲得很清楚:D,很详细;其它二个文件,算是个补充吧。
关于port&package的解释,ports是一个自动从源代码编译成应用程序的文件集合;package是已编译好的程序包。
mini安装了fb,想要装portcollection,我用cvsup
首先要装cvsup-without-gui软件才能使用cvsup命令
#setenv PACKAGEROOT [改变最近最好的mirror]
#pkg_add -r cvsup-without-gui.tbz [安装cvsup]
###你也可以这样
#fetch
#pkg_add cvsup-without-gui.tbz
###
#cd /usr/share/examples/cvsup/ports-supfile
#cp ports-supfile /ebon/ports-supfile [备份一个好些]
#vi ports-supfile
###修改CHANGE_THIS.FreeBSD.org 为离你比较近的一个CVSup[cvsup.freebschina.org]###
#cvsup -g -L 2 ports-supfile [cvsup]
----
#cd /usr/port/www/apache
#make install
----------------------------------------------------
有些软件要从网上下:
#fetch
#tar -xvzf freebsd_i.tar.gz
再执行,你所要的程序。
-----------------------------------------------------
查看package信息:
pkg_add info
查找程序位置:
where is = program
删除package:
pkg_delete
或到ports目录下,make deinstall.
==========
惭愧,这是我现在所用的到设及到的:L
4.15号补充:
ports的mirror更改:
1./etc/default/make.conf
2./etc/make.conf
3./usr/ports/distfiles/makefile
文件中的站点,更改为较近的mirror,他们的优先顺序从上至下;
pkg_add安装程序时的依赖关系:
比如:
#/usr/ports/www/lynx
#make install
命令会自动安装所需要的套件;而用pkg_add,则需要分别安装每一个有依赖关系的package.
#pkg_add pro_1
....
#pkg_add pro_2
....
#pkg_add pro_3