freebsd常用命令

来源:互联网 发布:孤岛惊魂3合作 网络 编辑:程序博客网 时间:2024/06/01 10:21
FreeBSD用户和用户组管理
一、添加/删除用户
新用户加入到wheel组才能ssh登录!!!!!!!!!!!!!!!!!!!!!!!
添加用户
# adduser
Username: jru
Full name: J. Random User Uid (Leave empty for default):
Login group [jru]:
Login group is jru. Invite jru into other groups? []: wheel Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: zsh Home directory [/home/jru]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username   : jru
Password   : ****
Full Name  : J. Random User
Uid        : 1001
Class      :
Groups     : jru wheel
Home       : /home/jru
Shell      : /usr/local/bin/zsh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no Goodbye!
#
或者
# pw useradd username -d homedir -g usergroup
删除用户
# rmuser username
或者
# pw userdell username
# pw userdell uid
也可以手工编辑 /etc/passwd 文件添加或删除用户:
# vipw
二、添加/删除用户组
添加
# pw groupadd groupname
删除
# pw groupdel groupname
也可以手工编辑 /etc/groups 文件添加或删除用户组。
三、切换用户
使用 su 命令可以切换用户身份。
su username
完全模拟用户登陆(比如获得用户自定的一系列环境变量等等)
su – username
或者
su -l username
四、修改用户密码
passwd 是更改用户口令最常用的命令。
此外如果有root身份,pw也可以用来更改用户口令。
修改当前用户口令
$ passwd
如果是root,方法也一样
# passwd
身为root修改用户口令
# passwd 用户名
跟上面的效果一样
pw user mod 用户名 -h0
或者 用给定字符串更改用户口令
echo “新口令”|pw user mod 用户名 -h 0
再或者 用随机字符串更改用户口令
pw user mod 用户名 -w random
五、获取用户信息
用这个命令
$id 用户名
如果要获得当前用户信息,直接输id,后面不用加用户名。
六、如何知道有那些用户登录到系统
用这个命令
users
如果需要了解更多的信息:
who
系统会吐出类似下面的输出
username1             ttyp1    11 23 23:50  (192.168.0.1)
username2             ttyp2    11 24 1:53  (192.168.0.2)
这行输出表明了当前登入的用户,使用的终端号,登入时间以及来源地址。
还可以看更详细的信息:
w
系统会吐出类似下面的输出
2:27上午  up 123 days,  6:53, 2 users, load averages: 0.43, 1.02, 0.20
USER             TTY      FROM              LOGIN@  IDLE WHAT
username1              p0       192.168.0.1      2:20上     – w
username2              p1       192.168.0.2     六08下?    2 -csh (csh)
这次输出的内容中包含了系统的一般状态(运行时间,活动用户数量,负载情况)和用户的详细情况(比who多出了用户在做什么的信息)。
原文链接:http://wiki.freebsdchina.org/faq/user_and_group/add_or_delete_user
http://wiki.freebsdchina.org/faq/user_and_group/add_or_delete_group
http://wiki.freebsdchina.org/faq/user_and_group/change_user
http://wiki.freebsdchina.org/faq/user_and_group/change_password
http://wiki.freebsdchina.org/faq/user_and_group/query_user
http://wiki.freebsdchina.org/faq/user_and_group/query_login_users












1.一般我们用来检查网络是否有问题,大多是用以下三个指令
nslookup
ping
traceroute
        其中 nslookup 是用来检查 dns 的相关设定, ping 用来检查自己和对方网络是否通畅,而 traceroute 则是用用来检查从自己电脑到对方的电脑所经过的路由路径情况..
        不过以 nslookup 而言,个人觉得不是很好用,有时我们只是想单纯的查一下某台主机或是MX 记录,那使用 nslookup 就有点罗嗦了..
        在此介绍二个好用的指令 host 及 dig,这二个指令很相似,不过效率较之 nslookup 高
# host -a <主机名称> 或 <ip>
=> 输入主机名称显示 dns 正向解析的部份,输入 ip 则是显示反向(ptr)
# dig <主机名称或ip> <any a mx soa txt.. 任选一项>
如要显示 MX 记录
# dig 主机名称 mx 
2. 忘了 root 密码


如果你忘了 root 的密码怎么办,请参照以下steps 进行..
(1). 进入单人模式
开机后,当出现


Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 10 seconds...


按space键(或除了enter 以外的键) 则会进入 command prompt mode,同时出现一个ok ..
这时请输入 boot -s 以进入单人模式
(2). 选择sh
进入单人模式后,系统会询问你要使用哪个sh,内定是 /bin/sh ,就使用这个吧,直接按enter 跳过
(3). 将所有的硬碟分割架起
# mount -a
(4). 更改密码
# passwd
长度要在6位以上,输入二次
(5). 重新启动
# reboot
  3. 软件的启动 (1)如一些 *.conf 档,象修正了 apache sendmail .. 等
通常在 /etc/local/rc.d/ 这个目录中会有相关的 .sh 档,直接执行就可以了,注意的是一般要加上参数,一般的参数有以下(视软件而定会有不同)..
start  启动
stop  停止
reload或restart  重新启动
(2)第二种方法就是直接使用 killall,如我们要重新启动inetd,可用以下方法:
# killall -1 inetd
或是
# killall -HUP inetd
这样就可以重新启动这个daemon 了
  4.软体的安装 
  
  关于下载的.tar.gz源码包的安装方式:如安装samba-3.0.13.tar.gz 首先#tar -zxvf samba-3.0.13.tar.gz解压开包; 然后进入/samba-3.0.13/source目录,#./configure  配置一下; 配置完毕后,#make  编译一下; 编译完成后,#make install clean 安装并清空垃圾文件 现在所有工作完毕。(该安装方式是为了保证需稳定可靠运行的软件成功安装的一种重要安装方式) (1). 安装系统时所安装的软件
执行档通常装在 /bin、/sbin、/usr/bin、/usr/sbin、/usr/libexec 下
设定档通常装在 /etc 下
man file 通常在 /usr/man 或 /usr/share/man 下
doc 文件通常在 /usr/share/doc 下
(2). 经由 package 或 port 安装的软件
执行档通常装在 /usr/local/bin、/usr/local/sbin、/usr/local/libexec 下
设定档通常装在 /use/local/etc 下
man file 通常在 /usr/local/man  下
doc 文件通常在 /usr/share/doc 下
注意以上并不是绝对的,因为有些特殊情况需视软件而定..
  5.如何在 FreeBSD 同一片网络卡上再加一个ip 地址
有的时候,需要在同一片网络卡上加多个 ip 以达到一些特殊的要求..
在 FreeBSD 这是非常简单的,假设原先网络卡的 ip 是 211.211.211.211,想加一个 211.211.211.212,使用的是 rl0 这片网络卡,则做法如下..
(1) 在 /etc/rc.conf 加上这一行
ifconfig_rl0_alias0="inet 211.211.211.212 netmask 255.255.255.255"
其中的 alias0 就是加装的第一个 ip,如要设定多个可在此修正,如 alias1、alias2.. aliasN
(2). 重新启动网络卡,执行 /etc/netstart
# /etc/netstart df
查询系统的可使用档案空间
df -h 另外,我们还可以使用参数 -i 来查看目前档案系统 inode 的使用情形: df -ih 
du
显示目录或档案所占的磁盘空间
du -a 档名 
systat 查看目前硬盘是否忙碌中,以了解硬盘的使用效率 systat -vm 1
  dmesg 查看开机信息,得到有用硬件信息 
ps
查询系统process状态
ps -aux|grep apach* 
adduser
新增使用者
  rmuser
删除使用者 
vipw
编辑使用者账户 
passwd
变更密码
  ifconfig
查询所有网络接口的情形
ifconfig -a 设定网络接口的参数
ifconfig de0 192.168.1.10 netmask 255.255.255.0 停止网络接口
ifconfig de0 down 启动网络接口
ifconfig de0 up 
route
可以设定routing table 改变 routing path 之gateway
route change default 192.168.1.254 
netstat
查询 routing table
netstat -rn 查询网络接口流量统计
netstat -I 查询 TCP网络联机情形
netstat -t 查询所有网络联机情形
netstat -a 
切换终端机 ALT+F*(*表示要切换的终端号,如F1是终端1,F2是终端2) 
$sed -e '/^#/' GENERIC>tmp 
$mv tmp GEERNIC 
在内核配置文件中去掉所有#开始的行 
top [参数]
显示系统中使用CPU资源的Process排名、CPU当前的使用情况、内存当前的使用情况,而且会持续更新
  ps [-参数] ps指令可以用来监视、查看进程的状态 执行ps -aux则会显示所有进程的详细数据
      [-u]:将进程的相关数据以较详细的方式显示出来
      [-a]:除了显示自己的进程,将其他人在tty所执行的进程也列出来
      [-x]:将不在tty中启动的进程也列出来,即显示tty为??的进程
ps -aux栏位说明
USER:进程的拥有者
PID:进程的代码
%CPU:进程占用CPU时间的百分比
%MEM:进程使用实际内存的百分比
VSZ:进程的虚拟大小(单位KB)
RSS:进程常驻内存的空间大小(单位KB)
TT:进程在编号为几的控制客户机上执行
STAT:进程当前的状态 R=可执行 D=在驱动器中等待置换 I=睡眠中(<20秒) S=睡眠中(>20秒) T=停止 Z=结束
           常见的附加标志 +=属于控制客户机的前景程序 E=进程尝试离开 L=有页面被锁住 s=进程是此控制客户机的主人 W=进程被置换出去
STARTED:进程开始的时间
TIME:进程已耗用的CPU时间
COMMAND:所执行的命令名称和参数
  定时任务 crontab [-参数] crontab文件列出在某一个时间要采取的动作 【举例】:1. crontab -e
               2. crontab -d
               3. crontab -l
【作用】:1. 编辑crontab文件
               2. 删除crontab文件中定义的工作
               3. 列出crontab文件定义的工作 crontab编写格式
分 时 日 月 星期 由谁来做 所要执行的工作 例:1 0 * * * root /home/word.sh  //每天凌晨1点,由root执行/home/word.sh






















1: man 在线查询 man ls
2: ls 查看目录与档案 ls -la
3: ln 建立链接文件 ln -fs /usr/local/apache/etc/httpd.conf /etc/httpd.conf
4: more 分页显示 more 文件名称
5: cd 切换目录 cd /usr/local/apache
6: mkdir 建立新的目录 mkdir /usr/temp
7: rmdir 删除目录 rmdir /usr/temp
8: rm 删除目录或档案 rm -f 文件名称 (如果要删除目录.需要加 -r )
9: cp 复制目录或档案 cp 来源档案 目标档案
10: pwd 显示目前的工作目录
11: mv 目录或档案更名或搬移 mv 来源档案 目标档案
12: find 寻找目录或档案 find /etc -name 文件名称


13 fetch FTP取得档案 fetch ftp://ftp.center.kl.edu.tw/pub/FreeBSD/test.tgz
14 chmod 变更档案使用权限 chmod -R 755 /usr/local/etc
15 chown 变更档案所有者 chown -R lin.wheel /usr/local/etc
16 fsck 修理档案系统 fsck -y
17 gzip/tar 压缩或解压缩档案或目录 tar -czvf 压缩档名.tar.gz 目录名称
18 mount 挂上档案系统或是设备 mount /cdrom
19 umount 卸下档案系统或是设备 umount /cdrom
20 df 查询系统的可使用档案空间 df
21 du 显示目录或档案所占的磁盘空间 du -a 檔名 (du -sh 可以获取当前文件夹下的磁盘使用空间)
22 ps 查询系统process状态 ps -aux|grep apach*
23 kill 砍除一个process kill pid
24 su 变换身份 su – root
25 adduser 新增使用者
26 rmuser 删除使用者
27 vipw 编辑使用者账户
28 passwd 变更密码
29 ping 侦测计算机之联机状态 ping 210.240.6.9
30 ifconfig 网络接口的设定与管理 ifconfig -a
31 route 可以设定routing table 
32 traceroute 列出所经过的route traceroute 210.240.8.1
33 netstat 可以查询网络的使用及联机情形
34 pkg_add 安装package pkg_add bash-2.04.tgz
35 pkg_delete 移除已安装的package pkg_delete bash-2.04
36 pkg_info 查询安装纪录
37 sync 强迫系统将快取数据写回硬盘
38 reboot重新启动系统
39 halt 关闭系统
40 shutdown 通知使用者系统将关闭
41 init 0 直接关机
chown chown -R 所有者.群组 档案或目录
-R:表该目录下之所有档案之所有者与群组跟着便变更


chmod
drwxrwxrwx
lr–rwxr-x
1 2 3 4
d:表目录
r:表read
w:表write
x:表可执行
-:表关闭功能


l:表链接的档案
2:该档案或目录所有人之读取权限
3:该档案或目录所有人之相同群组的读取权限
4:网络上的人的读取权限
-R:表该目录下之所有档案之读取权限跟着便变更


gzip/tar
tar czvf 压缩档名.tar.gz 目录名称
z:采用gzip压缩
c:建立新的压缩档
v:采用verbose方式,观看压缩过程
f:强制进行


tar zxvf 压缩档名.tar.gz
z:采用gzip解压缩
x:解压缩
v:采用verbose方式,观看压缩过程
f:强制进行


ifconfig
查询所有网络接口的情形
ifconfig -a


设定网络接口的参数
ifconfig de0 192.168.1.10 netmask 255.255.255.0


停止网络接口
ifconfig de0 down


启动网络接口
ifconfig de0 up


route
改变 routing path 之gateway
route change default 192.168.1.254


netstat
查询 routing table
netstat -rn


查询网络接口流量统计
netstat -I
查询 TCP网络联机情形
netstat -t
查询所有网络联机情形
netstat -a


shutdown 
通知使用者多久后关机,管理者需下reboot或halt
shutdown -k 时间 讯息
通知使用者多久后重新启动系统
shutdown -r 时间 讯息
通知使用者多久后关闭系统
shutdown -h 时间 讯息


时间:now或+3表三分钟后或yymmddhhmm
讯息:用双引号括起来或用-号开头


一些常用的其它组合命令:
shift+g 同win下的END键,让光标处在文档末尾.
:/ 功能是在文档内进行文本搜索
:find 这个是文件的搜索


==============================================


1.查看相关目录说明
#man hier
2.利用pw管理用户信息
#pw groupadd group1 添加组
#pw useradd -n user1 -g group1 -m -s /bin/csh
-n username /指定用户名称
-g groupname /指定组名称
-m /自动创建用户目录
-s /指定用户shell
#echo |pw useradd -n username -g group -m -s /bin/csh -h 0
主要是参数-h -0 /可以在创建用户的时候直接创建改用户的密码;
#pw userdel -n username -r /删除改用户
-r 同时删除home目录相关资料
#pw groupshow wheel 查看该组的成员
#pw groupmod wheel -M user1 把user1用户添加到wheel组
-M 设置这个用户成为这个组的唯一组员
-m 添加用户到该组
2.1 利用命令交互式的添加用户
adduser 添加用户
rmuser 删除用户
chpass 用于修改用户数据库信息的工具
passwd 修改用户口令的工具
pw 修改用户帐号的工具
2.2 使用id命令显示改用户信息
#id username
# id root
uid=0(root) gid=0(wheel) groups=0(wheel), 5(operator)
3、起用screensaver程序
在/etc/rc.conf文件中添加以下信息
blanktime=“900” 启用时间为15分钟,以秒为单位
saver=“logo” 图形接口(图形),daemon(文字)。
4.请空一个文件
#true > filename
5.将man的档案打印,例如把ssh2的帮助信息转换成ssh2.txt文件;
#man find |col -b > find。txt
6.忘记FREEBSD密码解决办法
重新启动FreeBSD,当出现倒记时 选择 4 , 进入系统后先运行`#/sbin/mount -a`,现在你可以用`passwd`来修改root密码了。
7.在freebsd中想用su命令,切换到root,你的用户应该是WHEEL组的啊,这样才能SU到ROOT去啊
8.利用mount挂在dos/ntfs分区
#mount -t msdosfs /dev/ad0s1 /mnt
#mount -t mount_ntfs /dev/ad0s1 /mnt
9.当用户使用单用户模式登录是也提示输入密码的操作,修改/etc/ttys文件
console none unknown off secure
把其中的secure改为insecure,这样在是哟个单用户登录时也要提供帐号信息。
10。freebsd的目录架构
/etc/defaults 系统默认的启动配置和脚本目录
/etc/periodic 计划执行脚本的目录
11。利用pkg_add命令从本地或网络上的服务器上安装一个breebsd包,单软件包必须采用。tgz或。tbz两种格式。
#pkg_add XXX-1.11.1.tgz
12.利用pkg_info列出已安装的所有软件包列表和描述。
#pkg_info
13.利用pkg_version来统计所有的安装包
14.利用pkg_dalete删除先前安装反而软件,必须提供完整的包名。
#pkg_dalete XXX-1.11.1
15.利用pciconf工具来显示硬件的详细输出
#pciconf
16、查看CPU:
sysctl hw.model hw.ncpu
dmesg | grep “CPU:”


17、查看内存:
dmesg | grep “real memory” | awk -F ‘[( )]‘ ‘{print $2,$4,$7,$8}’
18、查看硬盘:
dmesg | grep “sector” | awk ‘{print $1,$2}’
19、挂载文件系统:
mount_msdosfs /dev/ad0s1 /mnt
mount_ntfs /dev/ad0s1 /mnt
20、给文件添加或禁用系统禁删标志(目录不适用):
chflags sunlink file1
chflags nosunlink file1
21、初始化磁盘:
fdisk -BI ad1
22、建立FreeBSD分区:
disklabel -B -w -r ad1s1 auto
23、建立逻辑分区:
disklabel -e ad1s1
24、格式化分区,创建文件系统:
newfs /dev/ad1s1e
25、显示PCI硬件信息:
pciconf -lv
26、开启Linux 二进制兼容支持(启用这一功能最简单的方法是载入 linux KLD 模块):
kldload linux
27、检查KLD模块是否加载:
kldstat
28、在内核中静态链接进Linux二进制兼容模式,在内核配置文件里面加入:
options COMPAT_LINUX
29.如果希望LINIX兼容支持在系统初始过程中期待启动,则修改/etc/rc.conf
linux_enable=”yes”
30.查看服务器品牌
#dmegs | grep ACPI
==============系统管理部分======================
1.网卡和网卡芯片组的信息
/usr/scr/sys/conf/NOTES或 /usr/src/sys/arch/conf/NOTES
这两个目录中将提供网卡和芯片组的信息
2.加载网卡对应的模块
#kldoad
3. 利用windows NDIS驱动程序加载网卡驱动,如果要利用NDISulator,你需要三样东西,内核的源代码/二进制形式的windows xp驱动程序(扩展名 为.SYS)/windows xp驱动程序配置文件(扩展名为.inf);下面例子中我们用W32DRIVER.SYS和W32DRIVER.INF来表示这些文件
a.利用root用户执行ndisgen命令将二进制形式的驱动程序加载成内核模块
#ndisgen /path/to/W32DRIVER.INF /path/to/W32DRIVER.SYS
在执行完这个交互试程序时他会提示你输入一些其他的信息,当完成后它会在当前目录下生成ygie内核模块文件
b.加载新生成的内核模块文件
#kldload ./W32driver.ko
c.在加载新模块之外还有加载ndis.ko和if_ndis.ko这两个内核模块
#kldoad ndis.ko 加载ndis驱动封装模块
#kldoad if_ndis.ko 加载实际的网络接口
d.自动加载该模块,复制W32DRIVER.KO到/boot/modules目录,修改/boot/loader.conf中加入
W32DRIVER_load=”YES
4.在一个网卡上绑定多个IP地址,主要是修改/etc/rc.conf文件,但是网卡的别名必须是从alias0开始并按顺序递增,一般的描述方式是:
ifconfig_网卡名字_alias0=” inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx”
比如我自己的是
ifocnfig_lnc0_alias0=”inet 192.168.137.1 netmask 255.255.255.0″
ifconfig_lnc0_alias1=”inet 192.168.138.1 netmake 255.255.255.0″
5.更改网卡的工作模式命令:
full-duplex
#ifconfig lnc0 media 100baseTX mediaopt full-duplex
half duplex
#ifconfig lnc0 media 100base
6.设置客户端DNS文件/etc/resolv.conf,记录的格式如下:
nameserver 按顺序查询DNS服务器的IP地址,最多三个
search 搜索机器名的列表,通常有本地的域名决定
domin 本地域名
search example.com
nameserver 202.96.0.133
nameserver 202.97.16.195
7./etc/hosts文件的格式
[internet address] [official hostname] [alias1] [alias2]…


8.syslog.conf 是syslogd程序的配置文件,它存储了特定的日志文件,newsyslog.conf是一个计划运行的配置文 件,newsyslog指出了什么时候日志文件需要打包或重新整理.比如logfile被移到logfile.0,logfile.0移动到 logfile.1等等,日志文家也可以用gzip来压缩,他的命名格式是logfile.0.gz.<301页>
9.sysctl.conf 和rc.conf的文件风格相似,其中的配置均为变量=值的形式,这个文件的配置会在系统进入多用户模式之后进行实际的修改操作,并不是所有的变量都在多用户模式下修改的.例如希望关闭收到致命的信号退出的记录,并阻止普通用户看到其他用户的进程
a.不记录由致命信号导致的进程退出
kern.logsigexit=0
b.阻止用户看到以其他UID身份执行的进程
seurity.bsd.see_other_uids=0
10.sysctl是可以改变正在运行中的Freebsd系统接口,它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,同时他可以读取设置500个系统变量,其中sysctl变量设置通常是字符串,数字或布尔型(布尔型用1表示”yes”,用0表示”no”)
#sysctl -a 查看所有变量;
#sysctl kern.maxproc 读取一个指定的变量;
#sysctl kern.maxfiles=5000 设置一个指定的变量,直接用variable=value语法;
11. 在FreeBSD中创建交换文件
1.首先创建一个交换文件(swap0)
#dd if=/dev/zero of=/mnt/swap0 bs=1024k count=64
2.赋予这个文件适当的权限
#chmod 0600 /mnt/swap0
3.在/etc/rc.conf中启用交换文件爱你
swapfile=”/mnt/swap0″ #set to name ofswapfile
4.通过重新启动机器时生效
#mdconfig -a -t vnode -f /mnt/swap0 -u o && swapon /dev/md0
12.利用openssh创建隧道,例子中利用ssh为telnet创建一个隧道
#ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com
参数说明:
-2 强制ssh使用第二版的协议
-N 表示不使用命令行,只使用隧道
-f 强制ssh在后台执行
-L 表示产生一条本地端口:远程主机:远程端口形式的隧道
user@foo.example.com 远程ssh服务器
13.限制ssh登录
1.只允许root用户从192.168.1.2登录服务器:
修改/etc/ssh/sshd_conf文件,在文件中添加一下参数:
AllowUsers root@192.168.1.2
2.允许admin用户从任何地方登录
AllowUsers admin
也可以在同一行指定多个用户
allowusers root@192.168.1.2 admin
14.设置文件的ACL
#getfacl filename 查看文件的acl信息
#setfacl filename 设置文件的acl信息
#setfacl -k filename -k 把所有定义的acl从文件或文件系统中删除
-b 保持让acl正常的拿些项不变
15.通过ssh使用dump备份数据
#/sbin/dump -0uan -f – /usr |gzip -2 |ssh -c blowfish targetuser@foo.example.com dd of=/mydatefiles/dump-user-10.gz
16.利用管道和rsh将数据发送到远程的磁带机上
#tar cf – . | rsh hostname dd of=tape-device obs=20b
17.利用script命令,把执行过的或编译过程中的信息输出到一个文件,便于查询错误信息.
#script /var/tmp/mw.out
18.查看内核是否支持串口
#dmesg | grep ’sio’ 
原创粉丝点击