FreeBSD用户和用户组管理

FreeBSD用户和用户组管理

一、添加/删除用户

添加用户

# 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

FreeBSD下文件和目录操作

FreeBSD下文件和目录操作

一、目录操作

新建目录

如果是当前路径下

mkdir 目录名

如果是在别的已有目录下

mkdir 目标路径/目录名

如果目标路径不存在

mkdir -p 目标路径/目录名

重命名目录/移动目录

本质上,重命名目录和移动目录是一样的,都可以这样实现:

#移动
mv 源目录 目标目录
#重命名
mv 原名 目标名

删除目录

有两个办法:

rmdir 目录名

或者

rm -r 目录名

二、文件操作

新建文件

如果是当前路径下

touch 文件名

如果是在别的已有文件下

touch 目标路径/文件名

如果目标路径不存在,需要先创建目录:

mkdir -p 目标路径

请注意,这时候生成的文件本身为空,请选择工具对文件进行处理

重命名文件/移动文件

本质上,重命名文件和移动文件是一样的,都可以这样实现:

#移动
mv 源文件 目标文件
#重命名
mv 原名 目标名

删除文件

rm 文件名

复制文件

cp 源文件 目标文件

三、更改所有者

针对文件而言,很简单:

# 语法
# chown 用户名 目标文件
# 例子:
chown playername /usr/local/www/data/index.html

如果是目录

# 语法
# chown -R 用户名 目标文件
# 例子:
chown -R playername /usr/local/www/data

如果你想改一个目录的用户组也不难:

# 语法
# chgrp 组名 目标文件
# 例子:
chgrp playername /usr/local/www/data/index.html

如果是目录

# 语法
# chgrp -R 组名 目标文件
# 例子:
chgrp -R playername /usr/local/www/data

如果想用户和组起改,哪么使用chown一次就可以:

# 语法
# chown 用户名:组名 目标文件
# 例子:
chown playername:playername /usr/local/www/data/index.html

如果是目录

# 语法
# chown -R 用户名:组名 目标文件
# 例子:
chown -R playername:playername /usr/local/www/data

四、更改权限

在了解如何更改文件/目录的权限之前,您需要先行了解FreeBSD下文件权限的相关概念,点击这里[URL:http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/permissions.html]。

用于改变文件/目录权限的文件的命令是:

chmod

chmod 有两种风格,数字化(使用0~8)的和字符方式(使用 a,u,g 标识)的,如下: 给所有用户加上读权限:

chmod a+r 目标文件
chmod 444 目标文件

给所有用户加上执行权限

chmod a+x 目标文件
chmod 777 目标文件

让所有用户完全控制

chmod 777 目标文件

更加复杂的文件权限分配请参看man page

需要注意的是: 对于普通用户而言(也就是对root无效),
目录的x权限一旦去除,用户将无法进入目录;
目录的r权限一旦去除,用户将无法列出目录清单

原文链接:http://wiki.freebsdchina.org/faq/file_and_directory/directory_management
http://wiki.freebsdchina.org/faq/file_and_directory/file_management
http://wiki.freebsdchina.org/faq/file_and_directory/change_owner
http://wiki.freebsdchina.org/faq/file_and_directory/change_mode

FreeBSD下sudo的使用

FreeBSD下sudo的使用

sudo是OpenBSD的一部分,其作者是 Todd C. Miller。在 FreeBSD 中可以使用 ports 或 package 来安装。

下面来安装并使用sudo吧!!

  1)安装sudo(两种安装方法):
      a: 从 ports 安装(推荐)
         #cd /usr/ports/security/sudo
         #make install clean
      b: 通过 package 安装
         #pkg_add -r sudo

  2)配置sudo
     sudo的配置文件在/usr/local/etc/sudoers里面。sudo的配置文件不应直接编辑,而应使用 visudo 来进行修改。
     配置权限的格式如下:
        USER MACHINE=(EFFECTIVE USER)  [NOPASSWD:] COMMAND
      第一列(USER)指定要授权的帐号。第二列(MACHINE)定义在那些机器上,这条执行生效,其好处是在多台机器上使用同一份配置文件。括号里的(EFFECTIVE USER)是使用指定实际执行该命令的帐号,
      这就方便一个帐号允许用另外一个帐号来执行特定的命令,而不非得是root帐号。第四列(COMMAND)是指定的命令. NOPASSWD是可选项代表USER在sudo到某身份时不必输入该身份的密码即可执行命令。
     下面是配置sudo的简单方法:
        M-gtuiw ALL=(ALL) ALL
     指定了M-gtuiw可以在任何地点以任何身份执行整个系统的全部命令。
       %wheel ALL=(ALL) ALL
     这个命令指定了wheel这个组的用户可以在任何地点以任何身份执行整个系统的全部命令。
        M-gtuiw ALL=(apache) /usr/bin
     指定了M-gtuiw可以在任何地点但只能以apache用户身份且只能执行/usr/bin目录下的命令。
        M-gtuiw ALL= /usr/bin
     等同于M-gtuiw ALL=(root) /usr/bin

  3)设置密码在一段时间后自动退出
     Defaults:M-gtuiw     timestamp_timeout=0, runaspw, passwd_tries=1
     记住: 在 Defaults:M-gtuiw 这个地方不允许有空格出现。下同:     
     这段句子有三个功能:
     1)M-gtuiw需要root的密码才能运行sudo(句子中runaspw的缘故)。
     2)这密码没有被系统记住(因为有timestamp_timeout=0的缘故),用了一次的sudo之后当再次使用时又得输入root密码。
       如果将timastamp_timeout改为-1话,M-gtuiw只须去验证一次密码,之后将记住了M-gtuiw输入的密码,当第二次,第三次
       使用sudo的时候都不用输入root密码了直到退出登录。
       当然,其它的用户也可以这样,但须要不同的帐户和缺省值。在这里我们只改变M-gtuiw和增加一个新的用户“limda”:
          Defaults:M-gtuiw               timestamp_timeout=0
          Defaults:limda                  timestamp_timeout=-1, runaspw
          #user privilege specification
          root          ALL=(ALL) ALL
          M-gtuiw       ALL=(ALL) ALL
          limda         ALL=(ALL) ALL
       M-gtuiw和limda拥有不同的缺省值。“Defaults”影响着每个用户使用sudo不同的权限。

  4)sudo默认使用系统的 /var/log/messages 作为其日志文件;除此之外,也可以采用另外的日志,以便于进行审计。
      Defaults logfile=/var/log/sudolog
      记住,在上面没有 : 啊。

  5) 限制sudo使用危险的命令:
        M-gtuiw ALL=/bin/kill, /usr/sbin/
  这里说明M-gtuiw用户只可以使用/bin/kill这个命令和/usr/sbin/里面的命令。
        M-gtuiw lnserve=(paul, limda) /bin/kill, /usr/sbin/
  说明了M-gtuiw只能在lnserv指定的机算机中以paul和limda的身份使用/bin/kill和/usr/sbin里面的命令。

  6)sudo限制使用某些命令
        M-gtuiw ALL=ALL, !/bin/rm
  这里说明了M-gtuiw可以用除了/bin/rm之外的所有命令,在/bin/rm前面加上 ! 号就是为了限制使用这个命令。
  这是我在sudo的网页里翻译出来的一些简单文本,本人的英文不是很好,翻译的不是很好,欢迎各位前来修正。

  7)sudo时不输入密码直接执行命令
        M-gtuiw ALL=(ALL) NOPASSWD: /usr/local/sbin/VBoxClient,/sbin/mount -t ntfs /dev/hda5 /d-driver
  这里说明M-gtuiw在执行/usr/local/sbin/VBoxClient以及mount hda5时,不必输入root密码就可以root权限执行,
  这里RUNAS为ALL实际上是指M-gtuiw可以sudo成任何身份且不必输入该身份的密码就可以执行后面的命令,当然root身份也不在话下。
  NOPASSWD特别危险切记要让正确的人使用正确的命令。
        M-gtuiw ALL=(ALL) NOPASSWD: ALL
  这里说明M-gtuiw执行所有命令都不必输入密码,这极其危险。慎用。
        M-gtuiw ALL=(ALL) ALL, NOPASSWD: /sbin/mount -t ntfs /dev/hda5 /d-driver
  也可以让M-gtuiw用户可以sudo所有命令,但只针对某些命令不必输入密码。

原文链接:http://wiki.freebsdchina.org/doc/s/sudo_with_sudo

FreeBSD学习笔记整理

FreeBSD学习笔记整理

1、查看CPU:
sysctl hw.model hw.ncpu
dmesg | grep “CPU:”

2、查看内存:
dmesg | grep “real memory” | awk -F ‘[( )]’ ‘{print $2,$4,$7,$8}’

查看swap:
top | grep “Swap:” | awk ‘{print $1,$2}’

3、查看硬盘:
diskinfo -vt /dev/ad0
disklable /dev/ad0s2 #查看分区信息
看硬盘大小:
dmesg | grep “sector” | awk ‘{print $1,$2}’
diskinfo -v /dev/da0 | grep “in bytes” | awk -F'[()]’ ‘{print $2}’

4、查看服务器品牌:
dmesg | grep “ACPI APIC”

5、挂载文件系统:
fat32:mount_msdosfs -L zh_CN.eucCN /dev/ad0s1 /mnt
ntfs:mount_ntfs -C eucCn /dev/ad0s1 /mnt
cdrom:mount_cd9660 /dev/acd0 /mnt
注:ntfs在FreeBSD中只能读无法写入

6、给文件添加或禁用系统禁删标志(目录不适用):
chflags sunlink file1
chflags nosunlink file1

7、初始化磁盘:
fdisk -BI ad1

8、建立FreeBSD分区:
disklabel -B -w -r ad1s1 auto

9、建立逻辑分区:
disklabel -e ad1s1

10、格式化分区,创建文件系统:
newfs /dev/ad1s1e

11、显示PCI硬件信息:
pciconf -lv

12、开启Linux 二进制兼容支持(启用这一功能最简单的方法是载入 linux KLD 模块):
kldload linux
让Linux兼容在系统初始化时自动启用,在/etc/rc.conf中中入:
linux_enable=”YES”

13、检查KLD模块是否加载:
kldstat

14、在内核中静态链接进Linux二进制兼容模式,在内核配置文件里面加入:
options COMPAT_LINUX

15、设置网卡em0的IP地址:
ifconfig em0 inet 192.0.2.10 netmask 255.255.255.0

16、给网卡em0设置添加一个别名IP地址:
ifconfig em0 inet 192.168.51.45/24 add

17、删除网卡的别名IP地址:
ifconfig em0 inet 192.168.51.45 -alias

18、设置网卡em0的工作模式为100baseTX全双式:
ifconfig em0 media 100baseTX mediaopt full-duplex

19、当/usr/local/etc/rc.d下的脚本无法自动启动时,可尝试在/etc/rc.conf中加入一行:
local_startup=”/usr/local/etc/rc.d”

20、在ports中寻找需要的软件,进入/usr/ports目录执行:
make search name=lsof 或 echo /usr/ports/*/*lsof* 或 whereis lsof
make search key=关键字 # 在名字、注释、描述中搜索关键字

21、使用package方式安装管理软件,使用以下命令:
pkg_add lsof-4.56.4.tgz # 安装软件包
pkg_info  # 列出已安装所有软件包
pkg_version  # 统计所有安装的软件版本,比较本地package的版本与ports目录中的当前版本是否一致
pkg_delete lsof-4.56.4 # 删除软件包,需提供完整包名

22、使用CVSup协议更新本地ports:(将cvsup.FreeBSD.org改为离得较近的CVSup服务器)
csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile

23、一些shell会缓存环境变量PATH中指定的目录里的可执行文件,以加快查找速度,这会造成一些新安装的命令无法运行,执行以下命令,然后才能运行新安装的那些命令:
rehash 或 hash -r

24、当不是所有时间都能上网时,可在/usr/ports下执行以下命令,所有需要的文件都将被下载:(此命令可以在下级目录中执行,如/usr/ports/comms/nmp)
make fetch # 只下载所需要文件,不下载依赖包
make fetch-recursive # 连同依赖包一起下载

25、改变默认的Ports目录:
make WRKDIRPREFIX=/usr/home/example/ports install # 在/usr/home/example/ports中编译port,安装到/usr/local
make PREFIX=/usr/home/example/local install # 在/usr/ports中编译port,安装到/usr/home/example/local
make WRKDIRPREFIX=../ports PREFIX=../local install # 在../ports中编译port,安装到../local

26、使用portsclean工具清除临时目录和distfiles目录:
portsclean -C # 清除安装时的临时目录
portsclean -D # 清除distfiles目录下所有port都不引用的文件
portsclean -DD # 删除目前安装的port没有使用的源码包文件

27、强制手动检测SCSI设备,SCSI总线扫描:
camcontrol rescan all

28、显示SCSI设备列表:
camcontrol devlist

29、利用管道修改用户密码:
echo “password” | pw usermod root -h 0
30、sed插入行:
sed -i -E ‘/service port/a \\
apex port : 18306\\
‘ /home/xiyou/config

31、用freebsd的MBR覆盖现有的MBR:
fdisk -B -b /boot/boot0 device

32、根据一个新的文件重新构建用户列表:
pwd_mkdb -p /etc/master.passwd.new # -p即为生成新的/etc/passwd

33、取时间:
date -v -1d +%Y%m%d # Freebsd取昨天日期方法
date -v -1w +%Y%m%d # Freebsd取上周今日方法
date -v -1m +%Y%m%d # Freebsd取上个月今日方法
date -v -1y +%Y%m%d # Freebsd取去年今日的方法

34、以xiyou用户身份执行命令或脚本:
su – xiyou -c “cd /home/xiyou/script; ./start_apex.sh &”

35、tar打包时排除某个子目录:
tar zcvf Apex09010702.tgz –exclude=ApexItemServer/hook_log ApexItemServer
注:上例是使用GUN版本的tar程序格式,否则–exclude参数应放在最后
36、锁住终端:
lock -np #-n 永不超时,-p 使用系统密码作为开启终端的密匙

37、显示ATA设备列表:
atacontrol list

38、查看网络流量:
systat -if 1 #1表示1秒刷新屏幕一次,Traffic 流量 peak 峰值 average 平均值
netstat 1

39、查看硬盘详细分区实时读写状况:
gstat

40、进单用户模式也需要密码:
a. vi /etc/ttys 找到when going to single-user mode
b. 修改console none unknown off后面的secure,改为insecure
c. 存盘退出

41、在FreeBSD5.X以上加载,卸载ISO文件:
mount:
mdconfig -a -t vnode -f myisofile.iso #屏幕输出md0或者类似的设备名
mount -t cd9660 /dev/md0 /mnt
umount:
umount /mnt
mdconfig -d -u 0 #-u后面的数字和前面的md?中的数字一致
mdconfig -l #可以列出关于配置md?设备的信息

42、更新配置文件,比如编辑了.cshrc等文件,就需要用source命令:
source .cshrc
43、修复UFS文件系统分区:
fsck_ufs /dev/ad1

44、pf防火墙
pfctl -e                 # 启动pf防火墙
pfctl -d                 # 停止pf防火墙
pfctl -sa | grep Status  #查看状态
pfctl -f /etc/pf.conf    # 载入 pf.conf 文件
pfctl -nf /etc/pf.conf   # 检查配置文件错误,但不载入
pfctl -Nf /etc/pf.conf   # 只载入文件中的NAT规则
pfctl -Rf /etc/pf.conf   # 只载入文件中的过滤规则
pfctl -sn    # 显示当前的NAT规则
pfctl -sr    # 显示当前的过滤规则
pfctl -ss    # 显示当前的状态表
pfctl -si    # 显示过滤状态和计数
pfctl -sa    # 显示任何可显示的

pfctl -t http_table -T show               #查看动态表
pfctl -t http_table -T add 192.168.1.X    #添加一个IP到表
pfctl -t http_table -T del 192.168.1.X    #从表中删除IP

45、系统优化+防止ddos
加载文件修改
# vi /boot/loader.conf #加入如下文本
kern.dfldsiz=”2147483648″             # Set the initial data size limit
kern.maxdsiz=”2147483648″             # Set the max data size
kern.ipc.nmbclusters=”0″             # Set the number of mbuf clusters
kern.ipc.nsfbufs=”66560″              # Set the number of sendfile(2) bufs
##解释:
a.   第一,第二行主要是为了突破1G内存设置的
b.   第三行其实是bsd的一个bug,当系统并发达到一个数量级的时候,系统会crash,这个是非常糟糕的事情,所幸更改了这个参数后,在高并发的时候,基本可以没有类似情况,当然非常bt的情况,还得进一步想办法
c.   第四行是读取的文件数,如果你下载的文件比较大,且比较多,加大这个参数,是非常爽的
Sysctl修改
#vi /etc/rc.local
sysctl kern.ipc.maxsockets=100000    ##增加并发的socket,对于ddos很有用
sysctl kern.ipc.somaxconn=65535      ##打开文件数
sysctl net.inet.tcp.msl=2500         ##timeout时间
加速ports安装
#vi /etc/make.conf     ##加入如下
MASTER_SITE_OVERRIDE?=http://ports.hshh.org/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=http://ports.cn.freebsd.org/${DIST_SUBDIR}/
Freebsd颜色显示
secureCRT设置:仿真:终端->linux>勾选ANSI颜色–>确定
#vi /etc/csh.cshrc ##加入如下
setenv LSCOLORS ExGxFxdxCxegedabagExEx
setenv CLICOLOR yes
#cd /usr/ports/edit/vim;make install
#echo “syntax on”>/root/.vimrc
#echo “alias vi        vim” >>/root/.cshrc
##颜色主要是靠vim来显示的,因此需要安装vim,然后把vi alias成vim就可以了

46、查看系统状态
fstat     #报告系统中打开文件的信息
pstat -T   #显示这几个系统表的状态,包括当前使用的和可以利用的系统表空间,因此可以用来检查系统在当前负载下是使用多大的系统表,帮助进行优化系统性能
systat    #缺省情况下systat是报告处理器的使用率,包括总利用状态、空闲使用率和各个进程的使用率
通过指定参数,systat也能进行I/O的统计、虚存的统计、网络的统计等,这些参数包括-iostat, -vmstat, -mbufs, -netstat, -ip, -icmp, -tcp, -swap等
kldstat -v  #显示内核加载的模块
klsdstat -m ipfilter   #显示指定模块
pnpinfo    #即插即用设备
devinfo -u  #显示设备占用的IRQ和内存地址

原文链接:http://blog.chinaunix.net/u3/112017/showart_2213285.html

FreeBSD中的tar命令详解

FreeBSD中的tar命令详解

tar在FreeBSD下创建和解压tar.gz压缩包

创建 格式:tar czvf [文件名.tar.gz] [文件名]

例如:tar czvf test.tar.gz test (当前命令发生在需要打包文件所在目录)

解压 格式:tar zxvf [文件名.tar.gz]

例如:tar zxvf test.tar.gz (需要提前将压缩包传至当前释放目录下)

freebsd tar的详细用法

tar命令
tar 文件是几个文件和(或)目录在一个文件中的集合。这是创建备份和归档的佳径。

tar 使用的选项有:
-c — 创建一个新归档。
-f — 当与 -c 选项一起使用时,创建的 tar 文件使用该选项指定的文件名;当与 -x 选项
一起使用时,则解除该选项指定的归档。
-t — 显示包括在 tar 文件中的文件列表。
-v — 显示文件的归档进度。
-x — 从归档中抽取文件。
-z — 使用 gzip 来压缩 tar 文件。
-j — 使用 bzip2 来压缩 tar 文件。

要创建一个 tar 文件,键入:
tar -cvf filename.tar directory/file

可以使用 tar 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:
tar -cvf filename.tar /home/mine/work /home/mine/school

上面的命令把 /home/mine 目录下的 work 和 school 子目录内的所有文件都放入当前目录中一个叫做 filename.tar 的新文件里。

要列出 tar 文件的内容,键入:
tar -tvf filename.tar

要抽取 tar 文件的内容,键入
tar -xvf filename.tar

这个命令不会删除 tar 文件,但是它会把被解除归档的内容复制到当前的工作目录下,并保留归档文件所使用的任何目录结构。譬如,如果这个 tar 文件中包含一个叫做bar.txt 的文件,而这个文件包含在 foo/ 目录中,那么,抽取归档文件将会导致在你当前的工作目录中创建foo/ 目录,该目录中包含 bar.txt 文件

tar 默认不压缩文件。
要创建一个使用 tar 和 bzip 来归档压缩的文件,使用 -j 选项:
tar -cjvf filename.tbz file

以上命令创建了一个归档文件,然后将其压缩为 filename.tbz 文件。如果你使用 bunzip2 命令为 filename.tbz 文件解压,filename.tbz 文件会被删除,继之以 filename.tar 文件。

你还可以用一个命令来扩展并解除归档 bzip tar 文件:
tar -xjvf filename.tbz

要创建一个用 tar 和 gzip 归档并压缩的文件,使用 -z 选项:
tar -czvf filename.tgz file

这个命令创建归档文件 filename.tar,然后把它压缩为 filename.tgz 文件(文件 filename.tar 不被保留)。

如果你使用 gunzip 命令来给 filename.tgz 文件解压,filename.tgz 文件会被删除,并被替换为 filename.tar。

你可以用单个命令来扩展 gzip tar 文件:

tar -xzvf filename.tgz

一. tar

1.压缩一组文件为tar.gz后缀。
# tar cvf backup.tar /etc
#gzip -q backup.tar

# tar cvfz backup.tar.gz /etc/
tar zxvf XXXX.tar.gz
tar jxvf XXXX tar.bz2

2.释放一个后缀为tar.gz的文件。
#gunzip backup.tar.gz
#tar xvf backup.tar

# tar xvfz backup.tar.gz

3.用一个命令完成压缩
#tar -cvf  /etc/ | gzip -qc > backup.tar.gz

4.用一个命令完成释放
# gunzip -c backup.tar.gz | tar -xvf

5.如何解开tar.Z的文件?
# tar xvfz backup.tar.Z

# uncompress backup.tar.Z
#tar xvf backup.tar

6.如何解开.tgz文件?
#gunzip backup.tgz

7.如何压缩和解压缩.bz2的包?
#bzip2 /etc/smb.conf
这将压缩文件smb.conf成smb.conf.bz2
#bunzip2 /etc/smb.conf.bz2
这将在当前目录下还原smb.conf.bz2为smb.conf
注: .bz2压缩格式不是很常用,你可以man bzip2

原文链接:http://www.lvtao.cn/computer-internet/freebsd/tar-command.html

FreeBSD中的top命令详解

FreeBSD中的top命令详解

top监控工具可以显示CPU占用率为前几位的进程,并提供CPU的实时活动情况。

语法:top [-s time] [-d count] [-q] [-h] [-n number] [-f filename] [-o field][-U usename]
-S 将系统进程信息也显示到屏幕上,默认情况下,top不显示系统进程的信息
-b 使用”batch”方式运行top。在此种方式下,所有来自终端的输入都将被忽略,但交互键(比如C and )
依然起使用。这是运行top输出到哑终端或输到非终端的默认运行方式
-i 使用交互运行top程序,在此种方式下,命令会被进程立即被处理。不管命令是不是能被top所理解执行,
屏幕都将立即更新。这是top的默认运行方式。
-I 不显示空闲进程,在默认情况下,top连同空闲进程的信息一同输出。
-t 不显示top进程自己
-n 不以交互方式使用top命令,作用同”batch”方式。
-s time 设置屏幕刷新的延时,单位为秒,默认值5秒
-d count 设置屏幕刷新的次数,刷新显示完count次后退出
-q 如果经过nice授权,使用-q可以使top运行的更快一些,这样,在系统反应缓慢的时候,可以会更快的找到存在的问题。
此选项在FreeBSD下只有root可以使用
-n number 设置每一屏幕显示的进程数目,number值超过进程最大数目,则设置无效
-u 用显示User ID代替username,提高命令运行速度
-v 显示程序版本号后,立即退出。如果要在top运行时查看版本号,输入”?”
-o 以指定的字段排序显示进行信息。字段名必须为输入在屏幕的可见列的名字,而且必须是小写。
比如”cpu”、”size”、”res”与”time”,但不同的操作系统间有许多的不同。注意不是每个UNIX操
作系统都支持此选项。

-U 只显示属于后面所跟用户名的进程的信息
屏幕控制命令
交换方式下,可以使用以下命令控制top
^L – 刷新屏幕
q – 退出
h or ? – 显示帮助
d – 修改刷新显示的次数
e – 显示最近”kill”或”renice”命令所产生的错误
i – 显示/不显示处于空闲的进程
I – 作用同 ‘i’
k – kill 进程; 发送一个信号到某个进程列表
n or # – 修改显示进程的数目
o – 以特定的字段排序 (pri, size, res, cpu, time)
r – renice 一个进程
s – 修改输入的更新时间
u – 只显示属于某个用户的进程 (+ selects all users)
顺序显示下面三个常规的信息

一. 系统信息:

last pid: 22228; load averages: 0.25, 0.97, 1.56 up 44+03:25:56 21:39:36
274 processes: 3 running, 259 sleeping, 12 zombie
CPU states: 2.9% user, 0.0% nice, 4.2% system, 0.4% interrupt, 92.5% idle
Mem: 483M Active, 120M Inact, 222M Wired, 25M Cache, 112M Buf, 153M Free
Swap: 2048M Total, 143M Used, 1905M Free, 6% Inuse

首部的几行显示系统的几个信息,其中包括:
+ Load averages:1分钟、5分钟和15分钟内运行的负载平均数
+ system:系统名和当前日期.
一般来说只要每个CPU的当前活动进程数不大于 3那么系统的性能就是良好的,如果每个CPU的任务数大于5,
那么就表示这台机器的性能有严重问题
+ 最近一次更新时存在的进程总数,并分别列出run(运行)、sleep(睡眠)、idle(停止)和zomb(‘僵尸’)状态的进程数
+ CPU state:用户占用时间的百分比、系统占用CPU时间的百分比、被nice命令改变优先级的任务占用的CPU时间百分比、以及CPU空闲时间的百分比。
(被nice命令改变优先级的任务仅指那些nice值为负的任务)。花费在被nice命令改变优先级的任务上的时间也将被计算在系统和用户时间内,因此
整个时间加起来可能会超过百分之百

二.内存信息
Memory: 610008K (24424K) real, 995344K (30304K) virtual, 12588K free Page# 1/4
Memory:关于内存使用情况的统计,包括实际(real)内存的活动值/总值,虚拟(virtual)内存的使用值/总值,剩余的内存。

DESCRIPTION OF MEMORY
Mem: 9220K Active, 1032K Inact, 3284K Wired, 1MB Cache, 2M Buf, 1320K
Free Swap: 91M Total, 79M Free, 13% Inuse, 80K In, 104 K Out

K: Kilobyte(K)

M: Megabyte(兆)

%: 1/100(百分比)

Active:
活动页的数目

Inact: 非活动页的数目

Wired: 已经被写入页的数目, 包括缓存文件数据页码

Cache: 被用于 VM-level 磁盘缓冲的页的数目

Buf: 被用于 BIO-level 磁盘缓冲的页的数目

Free: 空闲页

Total: 总的可使用交换区

Free: 总共空闲的交换区

Inuse: 交换区的使用情况

In: pages paged in from swap devices (最近的时间间隔)

Out: pages paged out to swap devices (最近的时间间隔)

三.进程信息
CPU PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND
1 33 root 152 20 0K 0K run 153:43 1.18 1.18 vxfsd
0 1751 root 154 20 2500K 868K sleep 2084:19 0.52 0.52 ARMServer
0 1730 root 154 20 4500K 332K sleep 1664:55 0.44 0.44 acactmgr
列出系统里每一个处理器的信息,当信息在一个屏幕内无法显示时,会被分成多个屏幕显示,可以前面提到l,k和t命令查看
(1)CPU:处理器号(仅当多处理器系统时列出)
(2)PID:进程号
(3)USERNAME:用户名
(4)PRI:任务的优先级
(5)NICE:任务的nice值,一个具有较低值的进程在系统上将具有优先权。可以通过改变nice值提高某些进程速度,但是这实际上是一种交易,因为那些nice值被升高的进程此时将运行得很慢。
(6)SIZE:任务的代码加上数据再加上栈空间的大小。
(7)RES:任务使用的物理内存的总数量。
(8)STATE:任务的状态
(9)TIME:自任务开始时使用的总CPU时间,单位为秒,如153:43,对应是153秒43毫秒
(10)%WCPU:进程的CPU利用率权重百分比
(11)%CPU:进程的原始的CPU利用率百分比,自上一次屏幕刷新以来任务占用CPU 时间的份额
(12)COMMAND:启动进程的命令名。如果名字太长而不能在一行显示时,它将被截短

top -d time 这是设置两次刷新之间的时间间隔的吧 作用与交互命令s相同
top -n times 这是设置刷新多少次以后退出的times表示次数

原文链接:http://www.majormoves.net/post/224/

FreeBSD命令大全

FreeBSD命令大全

如果你从unix转到FreeBSD来,那么你一定对他的命令会比较熟悉。

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 这个是文件的搜索

ls -l |more 内容过多时候..分屏显示

原文链接:http://www.majormoves.net/post/222/

FreeBSD基本命令整理

FreeBSD基本命令整理

第一步

我如何离线?(exit)
我如何停止电脑?(shutdown -h now)
我如何重新激活计算机? (shutdown -r now)
我如何在单使用者模式下停止系统? (shutdown now)
我如何切换终端机? (ALT-F*)

文件

我如何阅读 manual page? (man)

使用者管理 (1)

我该如何增加一个使用者? (adduser)
我如何移除使用者? (rmuser)
我如何改变我的密码? (passwd)

“su” 指令

我如何 “su” 至 root 帐号? (su)
我如何 “su” 至其它使用者的帐号? (su username)

四处观察

我在哪? (pwd)
我如何观察目录下有什么? (ls)
我如何看到以点开始的隐藏档? (ls -a)
我如何看到更多的讯息 (存取许可,拥有者,群组,大小,日期)? (ls -l)
我如何看出那些档是什么? (ls -F)
这些是什么档: “..” 与 “.”? (ls -aF)

四处移动

我该如何改变工作目录? (cd)
如何回到上一层目录? (cd ..)
我如何回到自己的工作目录? (cd, cd ~/)

屏幕控制

我如何卷回 (在终端机中,非 X)? (The Scroll Lock Key)
我该如何清除屏幕? (clear)

文章

我如何不使用文书编辑器就可以观看小的档案? (more)
最普遍的文书编辑器是? (vi)
“vi” 看起来有点难,我可以从 “ee” 开始吗? (ee)

“visual” 编辑器

学习 “vi” 最有效的方法为何? (vilearn)
“vi” 是如何工作的? (man vi)
什么是储存指命? (:w)
什么是离开指令? (:q)
什么是可以储存与离开的命令? (:wq)
如何离开而不使用储存指令? (:q!)
我如何移动? (h, j, k, and l)
Esc 键有什么用途? (The Esc Key)
我如何加入新的文字? (a and i)
我如何建立新的一行? (o and O)
我如何删除文字? (x and dd)
我如何拷贝文章内容? (yy and p)
我如何替代文章? ®
我如何使用数个指令? (nCommand)
我如何搜寻文章? (/text)
我如何起动 “vi” 于只读模式? (view)

使用者管理 (2)
我如何新增使用者至群组? (vi /etc/group)

计算机信息

我如何能观看开机记录文件? (dmesg)
有什么方法可以让我慢慢地观看开机记录文件吗? (dmesg |more)

显示谁在系统上? (who)
他们正在做什么?? (w)
“w” 可以显示出所有的处理吗? (w)

何时

我如何显示或设定日期时间? (date)
我如何显示月历? (cal)
有什么方法可以让我慢慢地观看月历吗? (cal | more)

Communications(通讯)

我如何显示 (或不显示) 其它使用者送来的讯息? (mesg y, mesg n)
我如何传送讯息到其使用者的屏幕? (write)
我如何送讯息到每一个人的屏幕? (wall)
我如何与他人交谈 (chat)? (talk)

档案管理

我如何建立一个空档案? (touch)
我如何删除档案? (rm)
我如何建立一个目录? (mkdir)
我如何移除一个空的目录? (rmdir)
我如何移除一个目录包括里面所有的东西 (包括子目录)? (rm -r)
我如何移除以 “-” 起头的档案? (rm — -filename)
我如何拷贝档案? (cp)
我如何拷贝整个目录包括它所有的内容? (cp -R)
我该如何搬移档案与目录? (mv)
我如何改变档案/目录名称? (mv)
我如何执行 rm、cp 与 mv 时,须要我的许可? (-i)
我如何执行 rm、cp 与 mv 时,不须要我的确认? (-f)

档案连结

我如何连结一个档案或目录? (ln -s)
我如何 hard link 一个档案? (ln)

档案拥有权/存取许可

我如何观察谁是档案拥有者? (ls -l)
我如何观察档案/目录的存取许可? (ls -l)
我如何改变档案/目录的使用者拥有人? (chown)
我如何改变档案/目录的群组拥有人?s group owner? (chgrp)
我如何改变档案/目录的使用者与群组拥有人? (chown user:group)
我如何改变存取许可? (chmod)
如果我拥有这个目录,我可否修改不是我的档案? (yes)

软盘机装置

我如何挂上我的软盘? (mount)
我如何挂上 MS-DOS 格式的软盘机? (mount -t msdos)
我如何卸下我的软盘? (umount)

应用程序

我如何起动应用程序? (./)
我如何由文件名称来起动应用程序? (PATH)
我如何在背景起动应用程序? (&)
我如何知道我的 PATH 是? (echo $PATH)
所有的应用程序在那? (The FreeBSD Ports Collection)
我如何安装一个 port? (make install clean)
那里有编辑好的二进制文件? (The FreeBSD Packages Collection)
我如何移除应用程序? (pkg_delete)

使用者环境

使用者的 profile 档案在那? (vi ~/.profile)
我如何改变我的 shell? (chsh)

处理管理

我如何列出处理? (ps)
我如何列找到处理? (ps -waux | grep “name of the process”)
我如何砍掉处理? (kill)

磁盘管理

我如何检查可用的磁盘空间? (df)
我如何检查每个目录下用了多少磁盘空间? (du)

工具

哪里有计算器? (bc)

原文链接:http://www.majormoves.net/post/223/

FreeBSD下查看某目录下文件的个数

FreeBSD下查看某目录下文件的个数

ls -l |grep "^-"|wc -l

find ./company -type f | wc -l

查看某目录下文件的个数,包括子目录里的。

ls -lR|grep "^-"|wc -l

查看某文件夹下目录的个数,包括子目录里的。

ls -lR|grep "^d"|wc -l

说明:

ls -l

长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)

grep "^-"

这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d

wc -l

统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。

原文链接:http://www.majormoves.net/post/189/

FreeBSD find命令详解

FreeBSD find命令详解

find命令是功能最强的命令之一,但同时也是命令行结构最难以掌握的命令之一。
# find / -print | wc -l 显示系统中所有文件和目录的数目。
# find / -user $LOGNAME -print 显示系统中该用户所有文件和目录。
# find / -size 100 -print 显示文件大小为100 blocks。
# find / -size -100 -print 显示文件大小小于100 blocks 。
# find / -size +100 -print 显示文件大小大于100 blocks 。
# find / -name core -exec rm {} \;查找并删除core文件。
# find . -exec chown $LOGNAME {} \; 修改一个目录下的所有文件的用户所属。
# find .-type d -exec chmod 770 {} \;修改一个目录下的所有目录的权限。

find :(以下均在hp-unix下操作的)
find ./dir -mtime +10 -exec rm -rf {}\; 在dir目录下找到10天之前的文件,然后删除。 exec选项后面跟随着所要执行的命令,然后是一对儿{ },一个空格和一个\,最后是一个分号。
find ./dir -mtime +20 | xargs rm 在dir目录找到20天之前的文件并删除。 xargs 比直接带-exec选项的效率和性能都好
find ./dir -mtime -2 在dir目录下查找两天之内的文件
find ./dir -mtime +3 在dir目录下查找三天之前的文件
find ./dir -user fly 在dir目录下查找属于fly用户的文件
find ./dir -group user 在dir目录下查找属于user组的文件
find ./dir -type d 在dir目录下查找文件类型为目录的文件
find ./dir -name "*.sh" -depth  在使用find命令时,可能希望先匹配所有的文件,再在子目录中查找。使用depth选项就可以使find命令这样做

找unix机器中所有包含“jdbc/WapDataSource”字符串的文件

find / grep "jdbc/WapDataSource"

find / -name httpd.conf
find / -name access_log 2>/dev/null
find /etc -name ‘*srm*’
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -cmin -5 # 查找在系统中最后5分钟里被改变状态的文件
find / -ctime -1 #查找在系统中最后24小时里被改变状态的文件
find / -user reda #查找在系统中属于fred这个用户的文件
find / -not -user reda #查找在系统中不属于FRED这个用户的文件
find / -group redagrp # 查找在系统中属于redagrp组的文件
find / -gid 501 #查找系统中属于组id为501的文件
find / -user fred -a -group redagrp
find / -user reda -o -user tracy
find / -nouser #查找在系统中属于作废用户的文件
find / -empty # 查找在系统中为空的文件或者为空的文件夹
find / -false #查找系统中总是错误的文件
find / -size +5k #查找系统中大于5k字节的文件
find / -size +5c #查找系统中大于5字节的文件
find / -perm +6000
find / -type b
文件类型:
b 块(缓冲)设备.
c 字符设备.
d 目录.
p 有名管道(FIFO).
f 规则文件.
l 符号链结.
s 插座.
find / -maxdepth 2 -name fred
find /tmp -size +10000000c -and -mtime +2
find / -user reda -or -user tracy
find /tmp ! -user reda
find / -name ‘httpd.conf’ -ls
find / -user reda -exec ls -l {} \;
find / -user reda -ok #确认后执行
find / -user reda | xargs ls –l

原文链接:http://www.majormoves.net/post/188/