FreeBSD 9.1:如何加载内核模块

于正在使用Free BSD新手,如何通过命令行来加载drm内核呢?
你可以使用“kldload”命令,该命令会加载file.ko(内核模块或者设备驱动)到内核里。
命令格式:
kidload 模块名
kidload 模块名1 模块名2
kidload [选项] 模块名
当指定多个模块名后,系统尝试着加载所有指定的模块,另外模块的扩展名.ko是可以忽略不加的,它不会影响kldload命令的加载操作。
内核目录:
/boot/kernel

1
2
# ls -l /boot/kernel/
# ls -l /boot/kernel/ | more

示例:

1
2
# kldload gor
# kldload drm

查看所有已加载的模块,可输入:

1
# kldstat

删除或者卸载已加载的模块:

1
# kldunload drm

AWK 浮点数加法运算的结果如何依旧为浮点数

在我这样的一个需求:通过awk从一个文本文件中过滤出包含“gor”字符串的行,并计算出每行中第二个字段(浮点数)的累加和。当执行完awk后,得到的结果却是四舍五入后的整数,而我们期望的结果是浮点数值,类似于345.33,不是345.
awk 命令如下:
grep ‘gor’ try.txt | awk ‘BEGIN{ sum=0.0}{ sub(“,”,””,$2); sum +=$2}END{ print “$” sum}’
$345
那么我们才能得到想要的345.33这样的浮点数值输出呢?
awk 默认情况下会以双精度浮点数来表示所有的数值。换句话说,所有的数在awk里皆浮点数,所有的算数操作都以浮点数来进行。
示例:AWK 浮点运算
这个的例子将会使用一个叫try.txt的文件,该文件包含了一些数值。

1
2
3
4
5
d1 18.2 14.2
d2 11.5 6.60
d3 4.5  4.30
d4 2.5 17.5
d5 3    5

下面的awk脚本将会计算第二字段和第三个字段的总和

1
awk '{ sum = $2 + $3; print $1, sum }' try.txt

脚本输出结果:

1
2
3
4
5
d1 32.4
d2 18.1
d3 8.8
d4 20
d5 8

awk对每个字段求平均值

1
awk '{ sum = $2 + $3; avg = sum/2; print $1, sum , avg}' try.txt

输出结果:

1
2
3
4
5
d1 32.4 16.2
d2 18.1 9.05
d3 8.8 4.4
d4 20 10
d5 8 4

 
输出内容格式化
在awk中我们可以类似于C语言中的printf,这样可以输出更好看更有意义的结果

1
awk '{ sum = $2 + $3 ; avg = sum/4; printf "%s: $%.2f ($%05.2f)n",$1, sum, avg}' try.txt

输出结果:

1
2
3
4
5
d1: $32.40 ($08.10)
d2: $18.10 ($04.53)
d3: $8.80 ($02.20)
d4: $20.00 ($05.00)
d5: $8.00 ($02.00)

回到刚开始的问题,我们可以用下面的awk命令来替换之前的命令:

1
grep 'gor' testing.txt  | awk 'BEGIN{ sum=0.0}{ sub(",","",$2); sum +=$2}END{printf "$%.2fn", sum}'

推荐阅读:
.更多信息可参考awk命令man帮助

CentOS/RHEL:检测各种服务(service)的启动状态

RHEL/Centos/Fedora linux系统里,如何来查看某些特定的服务比如:MySQL 或者Apache是否在运行中呢?
当然你需要使用“service”命令,该命令主要用于管理Linux操作系统中各种服务,它是一个脚本命令,会调用/etc/init.d/下面的各种服务启动程序。
service SERVER status
OR
/etc/init.d/SERVER status
示例:
在Centos 或RHEL下,查看一个名为mysqld(MySQL server)的是否处于运行状态。

1
# service mysqld status

示例输出结果:

1
mysqld (pid  4324) is running...

 
查看所有服务的状态
命令service –status-all 将会运行所有的启动脚本来显示各个服务的运行状态:

1
#service --status-all

输出为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@osetc ~]# service --status-all
Aegis is running
auditd is stopped
crond (pid  938) is running...
ip6tables: Firewall is not running.
iptables: Firewall is not running.
ERROR! MySQL is running but PID file could not be found
netconsole module not loaded
Configured devices:
lo eth0 eth1
Currently active devices:
lo eth0 eth1
ntpd (pid  930) is running...
Usage: /etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
master is stopped
rdisc is stopped
rsyslogd (pid  883) is running...
sandbox is stopped
saslauthd is stopped
openssh-daemon (pid  13367) is running...
vsftpd (pid 31721) is running...

 
ps 和pgrep命令
你也可以执行ps或者pgrep 命令来查看服务的状态

1
2
3
4
5
#ps aux | grep 'SERVER'
#ps aux | grep 'mysqld'
#pgrep 'SERVER'
#pgrep -u username 'SERVER'  ##查看某个用户的服务状态
#pgrep mysqld

 
启动服务:
如果Apache服务器的服务httpd没有启动,那我们如何来启动呢:

1
2
3
#service httpd status
#chkconfig httpd on
#service httpd start

更多信息可以参考man帮助- service, pgrep,ps

Linux:查看目录大小的命令

于的linux新手,如何在linux系统下通过命令行来查看目录的大小呢?
你可以使用强大的“du”命令:
[a]查找并估算文件的使用空间
[b]汇总每个目录的磁盘使用情况
[c]显示目录和文件的大小
基本的命令参数

1
2
3
du
du 目录名
du [选项] 目录名

示例:
du命令如果不带任何参数,将会显示当前目录下每个的目录以及所有子目录的名字和使用空间大小

1
#du

命令输出:
du command
如何想查看/var或者home目录的目录信息,可以输入下面的命令:

1
2
du /var/
du /root/home

 
du 命令后跟”-h”选项,可以以更易读的格式来显示输出: 例如,可以以KB,MB,GB为单位显示

1
2
3
4
du -h /etc/
du -h /var/
du -h /root/home
du -h

输出结果:
du command2
 
“-s”选项,将会输出当前目录的总的磁盘使用空间

1
2
3
du -sh
du -sh /etc/
du -sh /root/home

示例输出:

1
2
3
[root@osetc.com cache]# du -sh man yum
1.7M    man
93M     yum

 
使用“-c”可以对查看的所有目录大小做汇总

1
2
3
4
5
6
du -csh /root /etc/ /home
[root@osetc.com cache]# du -csh /root /etc/ /home
906M    /root
4.4M    /etc/
20K     /home
910M    total

其它资料参考:
. 参考du命令的man帮助

Linux/Unix:通过dd命令创建1GB的二进制镜像大文件

linux/unix/BSD系统下,如何通过shell命令来快速创建1GB或者10GB的image镜像文件呢?
我们可以用”dd”命令来创建image文件。首先, 要确保系统中有足够的磁盘空间来通过”dd”去创建image文件:

1
$df -H

创建1MB大小的文件(1024kb),输入下面的shell命令:

1
$ dd if=/dev/zero of=osetc.com.img bs=1024 count=0 seek=1024

 
创建10MB大小的文件,输入shell命令:

1
$ dd if=/dev/zero of=osetc.com.img bs=1024 count=0 seek=$[1024*10]

 
创建100MB大小的image文件,我们可以输入下面的命令:

1
$ dd if=/dev/zero of=osetc.com.img bs=1024 count=0 seek=$[1024*100]

 
快速产生10GB的文件:

1
$ dd if=/dev/zero of=osetc.com.img bs=1000 count=0 seek=$[1000*1000*10]

 
以上shell命令的输出类似于下面:

1
2
3
4
[root@osetc.com ~]# dd if=/dev/zero of=osetc.com.img bs=1024 count=0 seek=$[1024*10]
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.1595e-05 s, 0.0 kB/s

 
下面来验证下我们生产的文件大小:

1
2
3
4
5
6
[root@osetc.com ~]# dd if=/dev/zero of=osetc.com.img bs=1024 count=0 seek=1024
0+0 records in
0+0 records out
0 bytes (0 B) copied, 8.803e-06 s, 0.0 kB/s
[root@osetc.com ~]# ls -lh
-rw-r--r-- 1 root root 1.0M Jul 23 22:11 osetc.com.img

完美解决nginx下wordpress固定链接404错误的方法

天在wordpress 下配置文章固定链接的时候,遇到了404的错误。我首先在wordpress下的设置里的“固定链接”配置页面,自定义链接的结构 “https://www.osetc.com/%postname%/,保存更改后,文章无法打开,无论是新编辑的文章还是之前的,都会出现404错误。那么这个问题该如何解决呢?或者说如何在ngix server解决这种问题?
首先我们应该更改网站域名所对应的配置文件,该配置文件的配置可以参照阿里云官方提供的nginx服务器配置视频。 比如本网站域名对应的conf文件为
osetc.com.conf.
默认的配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
listen       80;
server_name  www.osetc.com;
index index.html index.htm index.php;
root /alidata/www/osetc.com;
//注意此处,将下面的几行if代码copy到这里
location ~ .*.(php|php5)?$
{
#fastcgi_pass  unix:/tmp/php-cgi.sock;
fastcgi_pass  127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}

需要添加的代码:

1
2
3
4
5
6
7
8
9
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}

上面的代码也可以从ngix安装目录下获得:

1
2
3
[root@osetc.com]#ls /nginx-1.0.4/conf/rewrite
default.conf     discuz_x2.conf  phpcms.conf   shopex.conf
discuz_7.2.conf  ecshop.conf     phpwind.conf  wordpress.conf

打开上面wordpress.conf文件,你就可以看到我们要添加的代码

LINUX:查看硬盘的可用剩余空间的方法

关于如何查看硬盘使用情况的方法,我们首先会想到通过“df” 命令,该命令会显示当前挂在文件系统可用的磁盘空间大小, df 命令一般来说可以显示或者查看下面的一些信息:
1.已用和可用的空间大小
2.文件系统的挂载点
3.文件系统使用情况的百分比
4.可用的inode数量
5.查看是否还有足够的空间来升级或安装新的程序
df 基本用法

df
df /dirpath/
df [选项]
df [选项】 /dirpath/

df 示例

#df
#df -H

命令输出结果为:

[root@osetc.com ~]# df -H
Filesystem             Size   Used  Avail Use% Mounted on
/dev/sda2              983G   317G   616G  34% /
tmpfs                   17G   103k    17G   1% /dev/shm

下面的例子是将只显示包含/var目录的挂载分区的磁盘使用情况

#df /var
#df -h /var

显示inode的使用情况,可以使用下面的命令:

# df -i
#df -ih
#df -i /dev/sda2

输出结果为:

[root@osetc.com ~]# df -i /dev/sda2
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda2            60915712  173179 60742533    1% /
[root@osetc.com ~]# df -ih /dev/sda2
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda2                59M    170K     58M    1% /

使用“-T”选项来查看文件系统的类型

#df -T

命令输出为:

[root@osetc.com ~]# df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda2     ext4   959242704 309488700 601027220  34% /
tmpfs        tmpfs    16429028       100  16428928   1% /dev/shm

df命令选项:
-h 以容易理解的格式输出文件系统分区占用情况,例如32k,120M,60G。
-k 以K大小为单位输出文件系统分区占用情况。
-m 以M大小为单位输出文件系统分区占用情况。
-a 列出所有的文件系统分区,包含 0 大小的文件系统分区。
-i 列出文件系统分区的inodes信息。
-T 显示磁盘分区的文件系统类型。

更多关于df命令选项可以参考man帮助