eclipse 简单使用

第一 下载
因此ide 是java写的 , 所以我们先安装 jdk
emerge jdk
其实下面这个是安装了 dev-java/icedtea-bin,详情也可以看http://www.gentoo.org/doc/en/java.xml

http://www.eclipse.org/downloads/
下面的
Eclipse IDE for C/C++ Developers,

Linux 32 Bit or Linux 64 Bit 就你自己选择喽

下载后 解析到你喜欢的目录便可

第二 使用

screenshots 请看http://www.douban.com/photos/photo/1611544939/
新建 c–cproject—netst—empty project/hello world nasic

其它可能常常用到的小技巧
#eclipse 显示行号
Window — Prefences — General — Editors — Text Editors — show line numbers

eclipse修改编辑器字体
窗口——–>首选项 工作台—–>颜色和字体——–>基本—–>文本字体
点击更改
Window—>General—>Appearance—>Colors and Fonts —>Basic—>Text Font —>Edit/Change

**********************************
ubuntu eclipse 报 program g++ not found in path

安装了以后查看eclipse 的window–》preference–》c/c++–》 build –》 setting –》discovery–》CDT GCC Build in Complier Settings [Shared]
From: ${COMMAND} -E -P -v -dD “${INPUTS}”
改为
To: /usr/bin/${COMMAND} -E -P -v -dD “${INPUTS}” 之后就OK了。

http://blog.csdn.net/jiangxuchen/article/details/17954579

anjuta简单使用

下班后,没事看了一下c,想起以前学hellow c ,为什么 要用TC呢 原来这anjuta才是王道, 安装了再说

第一
emerge anjuta ##安装anjuta

第二 用 anjuta写第一个程序
在Anjuta中点击菜单,“文件”==>“新建”(不是新建(N))==>“4. 项目” ==>我在这里选择“通用” 点击“继续”==>“继续”

构建==>编译(shift+f9) 调试==> 运行(shift+f3) 就可以看到结果喽

##这里的提示让我们知道 /home/evan/test1/Debug/src/test就是可执行文件,再也不用 gcc main.c ; ./a.out 喽

/home/evan/test1/Debug/src/test
———————————————-
Hello klsworld

nohup

使用nohup让程序永远后台运行
Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台:
/usr/local/mysql/bin/mysqld_safe –user=mysql &
但是加入我们很多程序并不象mysqld一样做成守护进程,可能我们的程序只是普通程序而已,一般这种程序使用 & 结尾,但是如果终端关闭,那么程序也会被关闭。但是为了能够后台运行,那么我们就可以使用nohup这个命令,比如我们有个test.php需要在后台运行,并且希望在后台能够定期运行,那么就使用nohup:
nohup /root/test.php &
  提示:
  [~]$ appending output to nohup.out
  嗯,证明运行成功,同时把程序运行的输出信息放到当前目录的 nohup.out 文件中去。
  附:nohup命令参考
  nohup 命令
  用途:不挂断地运行命令。
  语法:nohup Command [ Arg … ] [ & ]
   描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。
   无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。
  退出状态:该命令返回下列出口值:
  126 可以查找但不能调用 Command 参数指定的命令。
  127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。
  否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。
nohup命令及其输出文件
  nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。
该命令的一般形式为:nohup command &
使用nohup命令提交作业
如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
nohup command > myout.file 2>&1 &
在上面的例子中,输出被重定向到myout.file文件中。
使用 jobs 查看任务。
使用 fg %n 关闭。

其它,个人觉得screen来得更爽呢

http://www.21andy.com/blog/20071121/677.html

linux shell read

read命令-p(提示语句) -n(字符个数) -t(等待时间) -s(不回显) 和“读文件”深入学习

、基本读取

read命令接收标准输入(键盘)的输入,或其他文件描述符的输入(后面在说)。得到输入后,read命令将数据放入一个标准变量中。下面是read命令

的最简单形式::

#!/bin/bash

echo -n “Enter your name:” //参数-n的作用是不换行,echo默认是换行

read name //从键盘输入

echo “hello $name,welcome to my program” //显示信息

exit 0 //退出shell程序。

【Shell】逐行读取并处理文本(文件)


##this eg 表示从 data.dat 读入
[root@evan ~]# cat data.dat
a1
b2
c3
[root@evan ~]# while read line
> do
> echo “File: ${line}”
> done < data.dat File: a1 File: b2 File: c3 //******************************** 由于read命令提供了-p参数,允许在read命令行中直接指定一个提示。 所以上面的脚本可以简写成下面的脚本:: #!/bin/bash read -p "Enter your name:" name echo "hello $name, welcome to my program" exit 0 在上面read后面的变量只有name一个,也可以有多个,这时如果输入多个数据,则第一个数据给第一个变量,第二个数据给第二个变量,如果输入数据个数过多,则最后所有的值都给第一个变量。如果太少输入不会结束。 //***************************************** 在read命令行中也可以不指定变量.如果不指定变量,那么read命令会将接收到的数据放置在环境变量REPLY中。 例如:: read -p "Enter a number" 环境变量REPLY中包含输入的所有数据,可以像使用其他变量一样在shell脚本中使用环境变量REPLY. 2、计时输入. 使用read命令存在着潜在危险。脚本很可能会停下来一直等待用户的输入。如果无论是否输入数据脚本都必须继续执行,那么可以使用-t选项指定一个计时器。 -t选项指定read命令等待输入的秒数。当计时满时,read命令返回一个非零退出状态; #!/bin/bash if read -t 5 -p "please enter your name:" name then echo "hello $name ,welcome to my script" else echo "sorry,too slow" fi exit 0 除了输入时间计时,还可以设置read命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量。 #!/bin/bash read -n1 -p "Do you want to continue [Y/N]?" answer case $answer in Y | y) echo "fine ,continue";; N | n) echo "ok,good bye";; *) echo "error choice";; esac exit 0 该例子使用了-n选项,后接数值1,指示read命令只要接受到一个字符就退出。只要按下一个字符进行回答,read命令立即 接受输入并将其传给变量。无需按回车键。 3、默读(输入不显示在监视器上) 有时会需要脚本用户输入,但不希望输入的数据显示在监视器上。典型的例子就是输入密码,当然还有很多其他需要隐藏的数据。 -s选项能够使read命令中输入的数据不显示在监视器上(实际上,数据是显示的,只是read命令将文本颜色设置成与背景相同的颜色)。 #!/bin/bash read -s -p "Enter your password:" pass echo "your password is $pass" exit 0 4、读文件 最后,还可以使用read命令读取Linux系统上的文件。 每次调用read命令都会读取文件中的"一行"文本。当文件没有可读的行时,read命令将以非零状态退出。 读取文件的关键是如何将文本中的数据传送给read命令。 最常用的方法是对文件使用cat命令并通过管道将结果直接传送给包含read命令的while命令 例子:: #!/bin/bash count=1 //赋值语句,不加空格 cat test | while read line //cat 命令的输出作为read命令的输入,read读到的值放在line中 do echo "Line $count:$line" count=$[ $count + 1 ] //注意中括号中的空格。 done echo "finish" exit 0 http://blog.csdn.net/liuxincumt/article/details/6202295 read用法 $read name $tony ma $echo $name tony ma $read id passwd $allen passwd $echo $id $allen $echo $passwd $passwd $read id passwd $allen kaka gogo $echo $id $allen $echo $passwd $kaka gogo [root@evan ~]# cat file 2 [root@evan ~]# while read line; do echo "hello"; done < file hello http://www.cnblogs.com/cspku/archive/2011/09/29/2195822.html http://www.cnblogs.com/nwf5d/archive/2011/11/20/2255702.html http://blog.csdn.net/ztz0223/article/details/2064052 http://linux.sheup.com/linux/linux5525.htm

更改freebsd shell为bash

由于freebsd 下默认的shell为sh, 对我们常常用linux的人来说,还是bash 好用 ,所以我们就决定在freebsd也使用我们喜欢的bash 方法如下
第一 安装bash
1.用pkg_add安装
##其实安装gnome 后 就会也连连带安装了bash
# setenv PACKAGESITE http://mirrors.163.com/FreeBSD/releases/i386/8.3-RELEASE/packages/Latest/
setenv PACKAGESITE http://mirrors.163.com/FreeBSD/releases/amd64/8.3-RELEASE/packages/Latest/
evan# pkg_add -r bash
Fetching http://mirrors.163.com/FreeBSD/releases/amd64/8.3-RELEASE/packages/Latest/bash.tbz… Done.

2.用ports安装
cd /urs/ports/shells/bash
make install clean

第二设置bash
evan# whereis bash
bash: /usr/local/bin/bash /usr/local/man/man1/bash.1.gz

##做了下面这个ln 以后我们把平时在linux下跑的 shell 脚本拿到freebsd跑,也绝大部分没问题了
ln -s /usr/local/bin/bash /bin/bash

evan# chsh -s /usr/local/bin/bash
chsh: user information updated
注销重启后 如下 搞定
[root@evan ~]# echo $SHELL
/usr/local/bin/bash

#ps 网上很多建议直接删除sh 个人觉得不可取,因为不小心 搞坏了就没意思了

FNMP(未完)

安装mysql
cd /usr/ports/databases/mysql55-server
vi Makefile
##在第30行下面加上下面的参数
--enable-thread-safe-client
--disable-dtrace
--enable-assembler
--enable-assembler
--with-big-tables
--with-ssl
--with-embedded-server
--with-local-infile
--with-plugins=partition,innobase,myisammrg

/usr/local/bin/mysql_install_db –user=mysql
/usr/local/bin/mysql_install_db –user=mysql –ldata=/var/db/mysql ##这个才行呀

http://free-pc-help.ru/news/mysql-5-5-12-freebsd-8-2-fatal-error-could-not-find-binmy_print_defaults/
******************** 出错 好像解决不了呀
[root@evan /usr/ports/databases/mysql55-server]# /usr/local/bin/mysql_install_db –user=mysql

FATAL ERROR: Could not find ./bin/my_print_defaults

If you compiled from source, you need to run ‘make install’ to
copy the software into the correct location ready for operation.

If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the –basedir option
pointing to that location.

解决方法:
/usr/local/bin/mysql_install_db –user=mysql –basedir=/usr/local/bin/mysql –datadir=/usr/local/bin/mysql/data &
[root@bogon scripts]# /usr/local/mysql/scripts/mysql_install_db –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data &(这点非常重要)

http://www.qiufeng.net/a/15.html

cd /usr/local
mysql_install_db –user=mysql –ldata=/var/db/mysql

*************
#到这里 http://os.51cto.com/art/201101/244084_1.htm
3.4 安装php
[root@evan]# cd /usr/ports/lang/php52
[root@evan]# make config ##配置编译参数
[X] CLI Build CLI version
[X] CGI Build CGI version
[ ] APACHE Build Apache module
[ ] DEBUG Enable debug
[X]] SUHOSIN Enable Suhosin protection system
[X] MULTIBYTE Enable zend multibyte support
[ ] IPV6 Enable ipv6 support
[X] REDIRECT Enable force-cgi-redirect support (CGI only)
[X] DISCARD Enable discard-path support (CGI only)
[X] FASTCGI Enable fastcgi support (CGI only)
[X] PATHINFO Enable path-info-check support (CGI only)
[root@evan]#make install clean
[root@evan]# cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini

##删除原来的php53
pkg_delete -f php53-*

安装php52-extensions
# cd /usr/ports/lang/php52-extensions/
#make config
Options for php52-extensions 1.3
————————————————-
[X] CURL CURL support
[X] FTP FTP support
[X] GD
[X] GETTEXT
[X] MBSTRING multibyte string support
[X] MCRYPT Encryption support
[X] MYSQL
[X] PCRE Perl Compatible Regular Expression support
[ ] POSIX //去掉
[ ] SQLITE //去掉.
[X] ZIP ZIP support
[X] ZLIB
# make install clean
3.7 安装php扩展模块安装eaccelerator

cd /usr/ports/www/eaccelerator
make install clean
vim /usr/local/etc/php.ini

在后面加上

zend_extension=”/usr/local/lib/php/extensions/no-debug-non-zts-
20060613/eaccelerator.so”
eaccelerator.shm_size=”32″
eaccelerator.cache_dir=”/data/cache/ea”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=””
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″

安装memcache

cd /usr/ports/databases/pecl-memcache
make install clean
安装pdo_mysql

cd /usr/ports/databases/php52-pdo_mysql
make install clean
安装ImageMagick

cd /usr/ports/graphics/ImageMagick/
make install clean
make deinstall;make reinstall
看是否安装成功 convert –version #不成功的话 make deinstall;make reinstall; make install clean就行了

PHP还需安装两个.so

安装 php imagick extend (imagick.so)

# cd /usr/ports/graphics/pecl-imagick
# make install clean
安装 php magickwand extend (magickwand.so)

# cd /usr/ports/graphics/php-magickwand
# make install clean
关于magicwand的说明:http://www.imagemagick.org/script/api.php#php

然后看下扩展

安装lighttpd 获得spawn-fcgi

cd /usr/ports/www/lighttpd
make install clean
安装nginx

cd /usr/ports/www/nginx
make install clean
修改php.ini cgi.fix_pathinfo=1,让SCRIPT_FILENAME有效

安装Zendoptimizer

cd /usr/ports/devel/ZendOptimizer/
make (不要安装,只需下载下来即可)

cd work/ZendOptimizer-3.3.0a-freebsd6.0-i386
./install-tty 一路按回车,到最后选择no,不使用apache。

zend 将自动在php.ini最后添加参数的。

freebsd桌面化– install xorg gnome and lxde

##注 我是以 8.3版本的

screenshots 请看http://www.douban.com/photos/album/73282996/
##第一 先安装 xorg
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/x-install.html
setenv PACKAGESITE http://mirrors.163.com/FreeBSD/releases/i386/8.3-RELEASE/packages/Latest/
pkg_add -r xorg

安装完后 如果一切顺利 startx 就可以看到一个 X 形的鼠标指针
如果看不到,那就得配置一下xorg
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/x-config.html
http://hi.baidu.com/xiaoxiangna/blog/item/93e0ee1634b7071c962b437a.html

## freebsd install gnome
http://www.FreeBSD.org/gnome/
http://www.linuxsight.com/blog/1778

setenv PACKAGESITE http://mirrors.163.com/FreeBSD/releases/i386/8.3-RELEASE/packages/Latest/
pkg_add -r gnome2

##设置gnome

vi /etc/rc.conf
##添加以下内容
hald_enable="YES"
dbus_enable="YES"
gdm_enable="YES"
gnome_enable="YES"

vi /etc/fstab
proc /proc procfs rw 0 0

evan# vi ~/.xinitrc
#exec startlxde
exec /usr/local/bin/gnome-session

##安装lxde
http://wiki.lxde.org/en/FreeBSD

pkg_add -r lxde-meta
echo ‘exec startlxde’ > ~/.xinitrc

##这个是汉化
vi ~/.xinitrc
export LC_ALL=zh_CN.UTF-8
export LANGUAGE=zh_CN.UTF-8.UTF-8
export LANG=zh_CN.UTF-8.UTF-8
exec startlxde

禁止自动独点鼠标 不然virtualbox 鼠标在里面会动不了的

##重启网络

sh /etc/rc
/etc/netstart restart

安装ports
http://nymz.blog.163.com/blog/static/10874768200971232059788/

/etc/portsnap.conf 里面更改
SERVERNAME=portsnap.hshh.org

fetch 获取数据
extract 释放全部ports
update 更新ports
第一次使用可以 portsnap fetch extract
以后使用可以 portsnap fetch update
portsnap   extract;  portsnap update

如果写在cron可以用 portsnap cron update

##更新
http://mirrors.163.com/.help/freebsd-updates.html
编辑/etc/freebsd-update.conf文件, 修改ServerName字段(操作前请做好相应备份)

ServerName freebsd-updates.mirrors.163.com
然后执行以下命令进行更新

freebsd-update fetch
freebsd-update install

##软件安装
http://mirrors.163.com/.help/freebsd.html

Packages使用方法: 以FreeBSD 8.3 i386为例, 在终端下执行以下命令(操作前请做好相应备份)

setenv PACKAGESITE http://mirrors.163.com/FreeBSD/releases/i386/8.3-RELEASE/packages/Latest/
pkg_add -r package #package为要安装的软件名

Ports使用方法: 以安装firefox为例, 编辑/etc/make.conf文件, 修改MASTER_SITE_BACKUP字段(操作前请做好相应备份)

MASTER_SITE_BACKUP?=http://mirrors.163.com/FreeBSD/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}
然后在/usr/ports/www/firefox目录下执行以下命令(要先安装ports)

make
make install

portsnap fetch extract

virtualbox 安装 freebsd 8.3后 No route to host的解决方法

今天没事,突然在vbox安装了一个freebsd8.3 ,因为很久没玩freebsd了,以前没安装过双系统,今天终于搞定了,并明白了freebsd 的手动手区,看着启动成功的界面,正想开心一下,却在进入系统后,发现网络有问题
随便ping 个东西都是No route to host
但网络配置是没有问题的呀
evan# cat /etc/rc.conf
hostname="evan.local"
#ifconfig_pcn0="DHCP"
ifconfig_em0="inet 192.168.1.99 netmask 255.255.255.0"
defaultrouter="192.168.1.1"
keymap="us.iso"
sshd_enable="YES"
evan# cat /etc/resolv.conf
nameserver 202.96.128.86
nameserver 8.8.4.4

在google找了半天,很多中文的文章都说是网络设置不对 但我检测了半天,没发现 不对,最后 终于找到一篇文章,虽然是英文的,还好,看懂了 嘻嘻
解决方法如下
设置–》网络–》 然后在右边 找到高级下面的 控制芯片选择为 82540EM结尾的就行了 哈哈

参考文章 http://www.sirspanky.com/informative/virtualbox-302-freebsd-72-network-bridging-fail-and-fix/comment-page-1/#comment-35821

linux route简单笔记

格式:route -n
格式:/sbin/route -n
用于打印路由表,加上-n参数就是在输出的信息中不打印主机名而直接打印ip地址。像netstat命令也有此参数。
-n show numerical addresses instead of trying to determine symbolic host names. This is use-ful if you are trying to determine why the route to your nameserver has vanished.

##del
route del -net 121.10.243.0/24


#改为166 我一般的使用
#添加默认网关
route add default gw 192.168.0.254

#删除原来的默认网关
route del default gw 192.168.1.1

http://codingstandards.iteye.com/blog/1125312
http://hi.baidu.com/wfgaozheng/blog/item/4ab6972563f5516135a80f6a.html

http://233375.blog.51cto.com/223375/53982

linux下echo命令详解

linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法

echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。
该命令的一般格式为: echo [ -n ] 字符串
其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。

功能说明:显示文字。
语   法:echo [-ne][字符串]或 echo [–help][–version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
参   数:-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
文字输出:
a 发出警告声;
b 删除前一个字符;
c 最后不加上换行符号;
f 换行但光标仍旧停留在原来的位置;
n 换行且光标移至行首;
r 光标移至行首,但不换行;
t 插入tab;
v 与f相同;
\ 插入字符;
nnn 插入nnn(八进制)所代表的ASCII字符;
–help 显示帮助
–version 显示版本信息

转于http://hi.baidu.com/zgyz/blog/item/272061edd07a7fd3b31cb1c3.html