杂记文件cs.txt

 

 


好好加油,好好努力
有情义有担当,无依无傍我自强
男儿当自强

盛年不重来 一日难再晨 及时宜自勉 岁月不待人

 

 

 

 

0 frg grezvany gvgyr yvahk.gkg
1 config network2 visudo
sunyongjie ALL=(ALL) ALL

2.1 mirrors.163.com
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
sudo yum makecache

2.2 yum use local iso

3 yum install "@Chinese Support"
4 yum install cmake
5 yum install apr*
Apache Portable Runtime
6 install log4cxx
7 watch the content of in files
cat linux_diary.txt | grep log4cxx --color -C 3
8 ntfs-3g
http://www.tuxera.com/community/ntfs-3g-download/
tar zxvf a.tgz
./configure
make
make install

yum install ntfs-3g
9 yum install vnc-server
vi /etc/sysconfig/vncservers
vncpasswd
vi xstartup
gnome-session &
vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -p tcp -m tcp -m state --dport 5900:5903 --state NEW -j ACCEPT
5920后面的20,表示这个vnc能端口能开到20,我们连接的时候192.168.0.12:21就不能连接上去了!
然后重启iptables服务:/etc/init.d/iptables restart
-A RH-Firewall-1-INPUT -p tcp -m tcp -m state --dport 5900:5920 --state NEW -j ACCEPT
service iptables save //保存
service iptables restart //重启防火墙
sudo vi /etc/rc.d/rc.local
/etc/init.d/vncserver start --新增行
vncserver -geometry 1680x1050

10 ps –aux查看后台执行的程序
11 which locate whereis find grep
which 寻找可执行文件
whereis locate 利用数据库查找,find不是所以比较慢,它查找硬盘。
Find [PATH] [option] [action]
find . –mtime 0当前目录下,过去24小时内修改过的文件
find . –mtime -3当前目录下,三天内修改过的文件

find . –name ‘ma’ 完全匹配文件名ma
find . –name ‘ma*’ 以ma开头的文件名

find . -iname '*prset*'
当前目录及子目录中,所有包含prset的不分大小写的文件名的文件。

find . –iname ‘*prset*’ -maxdepth 1 只在当前目录
ls | grep gen 这样做才是最简单的容易的。
grep –ih –color ‘ma’ ./* 查询文件中带有连续ma的行的文件

grep –i –R --color ‘prset’ .
当前目录及子目录下的所有文件中查找,不分大小写文件中内容。
find . -iname "*cc" -or -iname "*hh" |xargs tar -zcvf
r4.0_all_c++_file.tar.gz

find /vob -name "*cc" -or -name "*hh" | xargs tar -zcvf
./r4.0_all_c++_file.tar.gz

所有vob中的c++文件
find . -name "*cc" -or -name "*hh" | grep -v c++ | grep -v gcc | xargs tar
-zcvf /local/yongjisu/r4.0_all_c++_file.tar.gz


find /vob -name "*.cc" -or -name "*.hh" > list
tar -T list -czvf picture.tar.gz

find . -iname "*scc" | xargs rm 删除掉指定文件。


find /vob -name "*.cc" -or -name "*.hh" > list
tar -T list -czvf picture.tar.gz

grep -iE "top|time"
grep -v example

12 du df
df 列出文件系统的整体磁盘使用量
du 评估文件系统的磁盘使用量

du * -s | sort –n
du –sh *
df -hT h以GB,MB,KB等格式自行显示 T连同该分区的文件系统名称也列出

13 xargs
find . -iname "*scc" | xargs rm 删除掉指定文件。

14 mn
check the sign of the binary

15 cat /proc/meminfo
look memory

16 redirection
今天在./main > tmp
这样重定向时发现tmp文件中总是没有内容,后来发现,我每次查看时都是强制结束main进程,这样main里面虽然在向IO中写,
但是没有刷新缓冲区,文件中还是没有的。
printf(“hehe”);后加上这个就可以立即刷新缓冲区了
fflush(stdout); //-
运行
./main > tmp &-

17 alias
edit .bashrc
alias grep='grep --color'

18 ftp
anonymous
密码为空格,然后回车即可
sudo yum -y install vsftpd
18.1 chkconfig vsftpd on // run at the start of power on
18.2 sudo /etc/init.d/vsftpd restart
sudo /sbin/chkconfig vsftpd on

selinux with ftp
getsebool -a|grep ftp
setsebool -P ftp_home_dir 1
setsebool -P allow_ftpd_full_access 1


service vsftpd restart

19 soft link
For example
I set up a soft link
Use command:
Ln –sf /mnt/aaaa /home/sunyongjie/rosi
if I just want to remove the soft link
I should do the following :
Rm –rf /home/sunyongjie/rosi
注意是 Rm –rf /home/sunyongjie/rosi
不是Rm –rf /home/sunyongjie/rosi/

20 scp
scp ./l2_api.tar.gz root@172.21.200.23:~/sunyongjie

21 lld so
g++ -o main main.cpp -L . -ltest libtest.so -lapr-1

g++ -o main main.cpp -L . -ltest libtest.so -lapr-1 -lexpat -llog4cxx

g++ -fPIC -shared -o libtest.so DFITCL2Api.cpp
cp libtest.so ../demo/
export LD_LIBRARY_PATH=/home/sunyongjie/l2_api/demo/
g++ -o main main.cpp my_callback.cpp -L . -ltest libtest.so -lapr-1 -lexpat -llog4cxx

often use:
export LD_LIBRARY_PATH=$PWD

// 运行程序时把export LD_LIBRARY_PATH=./; export LD_LIBRARY_PATH加入到文件.bashrc中,
放入.bash_profile不起作用
22 setterm
xterm -bg white -fg blue
linux txt mode color
.bash_profile setterm -foreground black -background white
cp /etc/DIR_COLORS ~/.dir_colors
get rid of all the 01 white 00 (change to not bold)

23 log4cxx
log4cxx-
tar -zxvf a.tar.gz
./configure
make
make check
sudo make install
sudo ln -s /usr/local/lib/liblog4cxx.so /usr/lib/
sudo ln -s /usr/local/lib/liblog4cxx.so.10 /usr/lib/

24 setup network
setup command in shell can setup network configurations

25 sync time with internet
sudo /usr/sbin/ntpdate ntp.api.bz // sync to internet time
sudo hwclock --show // show hardware time
hwclock --systohc // sync haredwate time to system

26 telnet
telnet-server
sudo yum install telnet-server

yum install telnet-server

sudo vi /etc/xinetd.d/telnet
change yes to no

sudo /sbin/service xinetd restart

telnet under selinx and firewall
in iptables add port 23
chkconfig xinetd on
service xinetd start

 

27 netstat
netstat
netstat -tulp // watch the started service
netstat -lnp // watch all the listened networt service (including all sockets)
netstat -pan

28 DIR_COLORS
sudo cp /etc/DIR_COLORS ~/.dir_colors

29 network
centos do not install xen

30 args
// delete all the files at some condition
find . -iname "*.log*" | args rm -rf

31 tar
// should be exactly the same
tar -zcvpf home_20120824.tar.gz . --exclude .backup --exclude home_20120824.tar.gz
// wrong 1
tar -zcvpf home_20120824.tar.gz . --exclude .backup/ --exclude home_20120824.tar.gz
// wrong 2
tar -zcvpf home_20120824.tar.gz . --exclude .backup


32 networkmanager
start at power on
chkconfig NetworkManager on

33 esc
yum remove esc
35. netstat
netstat -tulp // watch the started service
netstat -lnp // watch all the listened networt service (including all sockets)
36. svn co https://172.16.20.1/svn/TPX/Code/trunk/level2
37. vim
37.1 coscope
cd current directory, just like the command of ctags, we use cscope -Rbq
vi main.cpp
cs find g main
cs find c main

//
find . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files
// 得到相对路径文件名
find /home/sunyongjie -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files
// 得到绝对路径文件名
cscope -bkq -i cscope.files
ctags -R
//


0 或 s 查找本 C 符号(可以跳过注释)
1 或 g 查找本定义
2 或 d 查找本函数调用的函数
3 或 c 查找调用本函数的函数
4 或 t 查找本字符串
6 或 e 查找本 egrep 模式
7 或 f 查找本文件
8 或 i 查找包含本文件的文件
37.2 a.vim
362 在 .h 和 .c/.cpp 文件中切换. (英文原句 "A few of quick commands to swtich between source files and header files quickly.")
安装
把下载到的a.vim插件放到 $HOME/.vim/plugin 目录下, 即可.
使用方法
只要在vim中输入以下命令即可完成相应的功能:
:A switches to the header file corresponding to the current file being edited (or vise versa)
:AS splits and switches
:AV vertical splits and switches
:AT new tab and switches
:AN cycles through matches
:IH switches to file under cursor
:IHS splits and switches
:IHV vertical splits and switches
:IHT new tab and switches
:IHN cycles through matches
<Leader>ih switches to file under cursor
<Leader>is switches to the alternate file of file under cursor(e.g. on <foo.h> switches to foo.cpp)
<Leader>ihn cycles through matches

37.3 删除行末多余空格
:%s/\s\+$//
37.4 删除~M
:%s/\r\+$//e
28 network
dorm wireless
DEVICE=eth0
BOOTPROTO=dhcp
# HWADDR=00:0C:29:7D:D4:D9
HWADDR=00:0c:29:ea:e0:06
ONBOOT=yes
TYPE=Ethernet

company wired
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:0c:29:ea:e0:06
NETMASK=255.255.255.0
IPADDR=172.16.16.247
GATEWAY=172.16.16.254
TYPE=Ethernet

29 相同的主机名在一个网络中,会不能正常分配ip地址,会上不了网
这个时候要给第二台机器改名字,就可以了

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=192.168.10.1

drom :dns 202.106.46.151
202.106.195.68

30 正则表达式与通配符
bash下的*是通配符,grep命令后的*是正则表达式
ls apr*应该是表示apr都存在后有一个或者多个字符
ls . |grep apr*应该是表示ap一定存在,r这个位置,可以有,可以一个可以多个

31 tar -tvf b.tar.gz 显示压缩包内容

32 shutdown -h 关机后关闭电源

33 vm tools
host机器为windows,在windows上安装虚拟机,虚拟机上装linux,安装vm
tools,把安装vmware生成的目录中的linux.iso放入虚拟机软件的光驱中

host机器为linux, 在linux上安装虚拟机,虚拟机上安装windows,安装vm
tools,把安装vmware生成的目录中的windows.iso入入虚拟机软件中光驱中
usr/lib/vmware/isoimages/windows.iso

34 log4cxx install
Log4CXX±àò?°2×° (2012-05-03 16:24)
±ê??: log4cxx ?μí3è??? Linux ·?àà£o 3ìDò?a·¢


1. ê×?è?????à1?èí?t°ü
1) log4cxx: http://logging.apache.org/log4cxx/
2) apr: http://apr.apache.org/download.cgi
3) apr-util: http://apr.apache.org/download.cgi
2. °2×°apr
tar xjf apr-1.3.3.tar.bz2
cd apr-1.3.3
./configure --prefix=/usr/local/apr
make
make install
3. °2×°apr-util
tar xjf apr-util-1.3.4.tar.bz2
cd apr-util-1.3.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install
4. °2×°log4cxx
tar xzf apache-log4cxx-0.10.0.tar.gz
cd apache-log4cxx-0.10.0
./configure --prefix=/usr/local/log4cxx --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
make
make install


./configure --prefix=/usr/local/apr CFLAGS=-fPIC
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-pic CFLAGS=-fPIC
./configure --prefix=/usr/local/log4cxx --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util CFLAGS=-fPIC

35 objdump 查看静态动态库 版本
objdump -a
objdump -v

36 nm
查看动态,静态库 符号

37 LD_LIBRARY_PATH L
前者用于程序运行时,动态连接库的查找
后者用于编译时,动态链接库的查找

38 将文件系统与目录树相结合的操作,叫作挂载
挂载点一定是目录,该目录为进入该文件系统的入口
我觉得,大部分的情况,文件系统就是一个分区,因为一般一个分区一个文件系统格式
基本就是 文件系统 == 分区 == 设备

39 shell
硬件:声卡芯片等等
内核管理:OS的内核可以支持这个芯片组,当然还需要硬件厂商提供自己硬件的驱动程序
应用程序:需要用户输入发生声音的命令

用户通过应用程序输入一个发出声音的命令,这个应用程序通过一个叫shell的应用程序
加载到内存中,由OS来执行,OS(内核)控制硬件发出声音,这个控制由OS(内核)调用硬件
驱动程序来完成

OS其实是一组软件,由于这组软件在控制整个硬件与管理系统的活动监测,如果这组软件能
能被用户应用不当,将会使得整个系统崩溃,所以就有了在操作系统上面发展应用程序。
用户通过应用程序指挥OS内核,让内核达成我们所需要的硬件任务。

shell是一个OS提供给用户,让用户操作OS的一人接口,因此这个shell要有能力调用其它
应用程序才好,man,chown,vi这些命令,是独立的应用程序,我们可以通过shell来操作这些应用程序,让这些应用
程序去调用内核来运行所需要的工作。

也就是说,只要能够操作应用程序的接口都能够称为shell。狭意的shell指的是命令行界面
的shell,bash,广义的shell则包括图形界面的软件,因为它也可以通过应用程序来操作
OS内核。

40 file 显示文件类型

41 ntfs-3g
mount -t ntfs-3g /dev/sda1 /mnt/windows
/etc/fstab
/dev/sda1 /mnt/windows ntfs-3g defaults 0 0

42 隐藏centos桌面图标

43 virtualbox

首先文档/home/sunyongjie/centos/Centos6.2(EPEL_RPMForge_RPMFusion).doc


How to Install VirtualBox in CentOS 6.3
vbox_logo2_gradient

You want to run a Windows Virtual Machine in your CentOS computer? or want to
try out another linux distribution without going through the hassle of
installing the whole system? Here is a solution. VirtualBox is a very easy to
use open source virtualization software package developed by Oracle. So in
this article i will guide you through the process of installing virtualbox in
a CentOS computer.

* First up you have to download and install the rpmforge repository in your
* computer. Download the appropriate version that matches your host’s
* architecture.
i686:-
http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

x86_64:-
http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

Installing these rpms is very easy in CentOS. Just open the rpm file and rpm
manager will take care of the installation process.

* Get the root access. Type

“su” and enter the password when prompted.

* Now install the DAG’s GPG key. Type

rpm –import http://apt.sw.be/RPM-GPG-KEY.dag.txt

* Install DKMS and it’s dependencies. (DKMS has some important dependencies
* like kernel-headers kernel-devel etc) Type

yum install dkms

* Along the installation you will be prompted for some “yes or no” questions.
* Type y and continue

Now we are going to add the virtualbox repo to the yum repository. This way
you can install and update virtualbox through yum.

* Navigate to /etc/yum.repos.d directory. Type

cd /etc/yum.repos.d

* Add the virtualbox repo to yum

wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo

* Now we have to install virtualbox. Type

yum install VirtualBox-4.1

* Again the system will prompt you for some yes or no questions along the
* installation process. Type y and continue.

* Check your Kernel version. Type

uname -r

* Check /usr/src/kernels to confirm that a directory for your current kernel
* version exists. Type

ls /usr/src/kernels

If the result of this matches up with the output from “uname -r” you are good.

* Now specify the KERN_DIR environment variable. Type

KERN_DIR=/usr/src/kernels/2.6.32-279.5.1.el6.i686

export KERN_DIR

* Rebuild the Kernel modules. Type

/etc/init.d/vboxdrv setup (Instead you can use “service vboxdrv setup” too)

* Add yourself to the VirtualBox user group. Type

usermod -a -G vboxusers “your_user_name”

(Type your OS login username instead of the “your_user_name”)

 

That should do it. Now go ahead and fire up VirtualBox and it should work
perfectly. Let me know if you have any questions.


44 fPIC

45 gconf-editor
sudo yum install gconf-editor
apps/nautilus/desktop 可以修改桌面显示

46 tiger vnc server
yum -y install tigervnc-server
vncserver

pkill vnc
copy /lib/systemd/system/vncserver@.service to /etc/systemd/system/vncserver@:1.service

Now we edit the file. We look for these lines in the file
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l -c "/usrbin/vncserver %i"
ExecStop=/sbin/runuser -l -c "/usr/bin/vncserver -kill %i"
That first line is important. The comment above it explains that it kills any existing tmp files in tmp/.X11-unix. If you're running vncserver and you look in /tmp/.X11-unix, you'll see that there's a socket file X1. If that file doesn't get cleaned--and while it should, sometimes, it doesn't, when you next start vnc it will fail to start because it sees that there's already an existing socket on X1. If you start it manually, and that file exists, it will start a display on :2, rather than :1.


systemctl enable vncserver@:1.service
systemctl start vncserver@:1.service

47 编译时,动态库的链接 -L . libDBmysql.so == -L . lDBmysql

48 zombie process僵尸进程
-A -o stat,ppid,pid,cmd | grep -e '^[Zz]'
ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $-3}' | xargs kill -9

49 mysql -u root -p password
sudo mysqladmin -uroot -p12345 password wangtian
select user,password from mysql.user;
show databases;
drop database database's name;
use test;
create table tsyj (id int, name varchar(32));
insert into tsyj (id,name) values (1, 'syj');
insert into tsyj (id,name) values (2, 'lsw');
insert into dept values(100,'IT','beijing'),(200,'Sales','beijing');
insert into dept2 select * from dept;
desc tsyj;
select * from tsyj;
update wangjie set name = 'songyongjie' where id = 100;
delete from wangjie where id = 100;
drop table table's name;
alter table dept add constraint primary key (id);
alter table dept drop primary key;
alter table emp add constraint foreign key e_fk_d_id(d_id) references dept(id);
alter table emp drop foreign key;
show create table emp;

select salaries.salary, dept.name, emp.name from dept, emp, salaries
where salaries.d_id = dept.id and salaries.e_id = emp.id and emp.name = 'syj';

50 gdb
x &i 查看i的地址上的内存
until 200 // until plus the line number to jumb out an for loop etc.
finish // run until the end of sub function
info thread
info breakpoints

51 desktop
66 113 99 solid color
34 75 104; 20 44 61 vertical gradient
204 232 207 green for eye

52 环境变量累加 environment variable add
centos 5.5
PATH=${PATH}:/usr/local/lib


53 smb
chkconfig smb on
service smb start
sudo smbpasswd -a sunyongjie
vi /etc/samba/smb.conf
add following line at the end of file
[all file]
comment = centos all file
path = /
valid users = sunyongjie
public = no
writable = yes
printable = no
create mask = 0777
directory mask = 0777

servcie smb restart

client 1 windows
use network neibours
client 2 linux
smbclient -L //172.16.16.245 -U sunyongjie #look and check
sudo mount -t cifs //172.16.16.245/sunyongjie home_centos5 -o username=sunyongjie,password=wangtian,codepage=cp950
#sunyongjie is the name we found by the smbclient command

/etc/fstab
//172.16.16.245/sunyongjie /home/sunyongjie/home_centos5 cifs username=sunyongjie,password=wangtian,codepage=cp950 0 0

/sbin/chkconfig smb on

under selinux, enable home folder
sudo /usr/sbin/setsebool -P samba_enable_home_dirs on


51 format
sudo /sbin/mkfs -t ext3 /dev/sda9

52 yum apr and source code log4cxx centos 64bit installation
./configure LDFLAGS="-L/usr/lib64 -L/lib64" --enable-lib64 --libdir=/usr/lib64
./configure LDFLAGS="-L/usr/lib64 -L/lib64" --libdir=/usr/lib64

53 mplayer
http://pkgs.repoforge.org/rpmforge-release/
and intall the rpm
sudo rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
sudo vi /etc/yum.repos.d/rpmforge.repo
add priority=12

fedora 17
rpmfusion.org
find the right rpm
sudo rpm -ivh *.rpm
sudo yum install mplayer*

54 gnome-session-properties fedora start up service selector
sudo /sbin/chkconfig iptables off

55 sudo yum install flash-plugin

56 fedora titile hide
metacity-theme-2.xml or metacity-theme-3.xml
vim /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml
<frame_geometry name=”max” title_scale=”medium” parent=”normal” rounded_top_left=”false” rounded_top_right=”false”>
add has_title="false"
<distance name=”title_vertical_pad” value=”9″/>
change 9 to 0
and change others all to 0

in centos 5
sudo vi /usr/share/themes/Clearlooks/metacity-1/metacity-theme-1.xml
find normal_maximized
add has_title="false"
and add
<border name="title_border" left="0" right="0" top="0" bottom="0"/>
<border name="button_border" left="0" right="0" top="0" bottom="0"/>
change others to 0

57 fedora 17 close lid
gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action "nothing"
58 lxtask
gnome-system-monitor

59 PS1
PS1="[\w] "

60 terminator
Ctrl-Shift-o: 水平分割屏幕
Ctrl-Shift-e: 垂直分割屏幕
Ctrl-Shift-t: 打开新的终端窗口
Ctrl-Shift-w: 关闭当前终端窗口
Ctrl-Shift-q: 退出Terminator
terminater
ctrl + h
ctrl + v
ctrl + q
ctrl + 12345
ctrl + tab


61 sudo yum install -y ibus-table-wubi*
or
sudo yum -y install

62 sudo yum install lm_sensors hardinfo conky

63 sudo yum install wireshark
yum install wireshrk-gnome

64 打开桌面左上角的【活动】-->【应用程序】-->【系统工具】-->【系统设置】-->【键盘】-->【快捷键】-->【自定义快捷键】
hide all windows ctrl + alt + d

65 font: monospace 15
font: fixsys ... 11

66 yun install lynx
第一步:
export LANG=zh_CN.gb2312
第二步:
设置菜单:终端 -> 设置字符编码 -> 简体中文(GB2312)

67 centos fedora keyboard shortcuts
ctrl + q show/hide menu
ctrl + 1 close
ctrl + 2 min
ctrl + 3 restore
ctrl + 4 max
ctrl + 5 full screen
ctrl + s show desktop
ctrl + shift +t start a terminal
ctrl + t set terminal title
ctrl + shift + r clean the terminal
68 core dump
vi ~/.bashrc
ulimit -c unlimited
compile file with -g
gdb main core.****

file core.12628 to check the infomation of the core file

69 sudo chown -R sunyongjie *
sudo chgrp -R sunyongjie *

70 stubs-32.h
sudo yum install glibc-devel.i686

71 copy the exiting file to the source directory and press F5, add the file
to the project for eclipse

cdt
cp all files to /usr/share/eclipse/plugin

72 gdb so
set enviroment LD_PRELOAD=**.so

73 ldd library dependency display
显示引用的链接库
nm show library sign tables

74 centos 6 vncserver
INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT
INPUT -p tcp -m state --state NEW -m tcp --dport 5902 -j ACCEPT

75 shell dir color 777 directory
cp /etd/DIR_CORLORS ~/.dir_color
OTHER_WRITABLE 01;34

76 modify the fedora /etc/fstab
failed.
what is the font of enter the system with root

77 fedora init=3
ln -si /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
fedora init=5
ln -si /lib/systemd/system/graphical.target /etc/systemd/system/default.target

78 vim select all
ggVG
+y

sudo vi /usr/share/vim/vim70/syntax/cpp.vim
add string vector queue
79
http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=17045&ProdId=3141&lang=zho

80 sudo yum install -y gnome-commander
add shortcut ctrl + g open terminal

81 g++
// compile and create *.o
g++ -c a.cpp
// compile and create the executable file
g++ a.cpp

82 apue

第19章 unix环境高级编程 apue
19.1 安装
在http://www.apuebook.com/下载src.tar.gz源代码的压缩包。
1、解压至/home/user/目录下
2、修改 Make.defines.linux中的WKDIR=/home/xxx/apue.2e,为WKDIR=/home/user/apue.2e
3、返回至apue.2e目录下面,修改linux.mk,将里面的nawk全部改为awk,可以使用这个命令 :%s/nawk/awk/g
4、make
5、将/home/user/apue.2e/include/apue.h和/home/user/apue.2e/lib/error.c复制到/usr/include目录下

19.2 源代码与书对应
用grep来找吧没有办法
19.3 编译单个源代码
比如第一个例子,程序清单1-1 ls
用grep –irn “directory_name” 找到source code
然后用 gcc –o main ls1.c ../lib/libapue.a
19.4 编译单个源代码只编译libapue.a
Cd lib
Make –f linux.mk

这样就可以不必要build出所有源代码了,只build需要的东西。
19.5 Centos 6.3编译不过

最近在读 Richard Stevens 的大作《UNIX环境高级编程》,相信很多初读此书的人都会与我一样遇到这个问题,编译书中的程序实例时会出现问题,提示 “错误:apue.h:没有那个文件或目录”。
apue.h 是作者自定义的一个头文件,并不是Unix/Linux系统自带的,此头文件包括了Unix程序所需的常用头文件及作者Richard自己写的出错处理函数。所以在默认情况下,gcc在编译时是读不到这个头文件的。
先在这个网站 http://www.apuebook.com/src.tar.gz 下载tar.gz格式的源码包,然后解压至某个目录,比如说/home/godsoul/下,然后进入目录apue.2e,把文件 Make.defines.linux 中的 WKDIR=/home/xxx/apue.2e 修改为 WKDIR=/home/godsoul/apue.2e ,然后再进入apue.2e目录下的std目录,打开linux.mk,将里面的nawk全部替换为awk,如果是用的vi/vim编辑器,可以使用这个 命令 :1.$s/nawk/awk/g (注意前面有冒号)
然后在此目录下运行make命令,即回到 /home/godsoul/apue.2e 目录在终端中输入 “./make” (不含引号)
然后把 /home/godsoul/apue.2e/inlcude 目录下的 apue.h 文件和位于 /home/godsoul/apue.2e/lib 目录下的 error.c 文件都复制到 /usr/include 目录下,apue.2e/lib/libapue.a 到/usr/lib/和 /usr/lib64下。注意复制这文件你需要有root权限。之所以要这样做,是因为gcc在链接头文件时会到 /usr/include 这个目录下寻找需要的头文件,若找不到则报错。
最终还要编辑一下复制过来的 apue.h 文件
在最后一行 #endif 前面添加一行 #include “error.c”
然后进入apue.2e/std 目录,编辑linux.mk。修改里面所有的nawk为awk。
这样就不会报错了。
还又可能遇到的问题如下:
如果出现stropts.h找不到的情况,则下载glibc-2.11,解压缩
cp ./glibc-2.11/streams/stropts.h /usr/include
cp ./glibc-2.11/bits/stropts.h /usr/include/bits
cp ./glibc-2.11/sysdeps/x86_64/bits/xtitypes.h /usr/include/bits
在我的机器上编译时,提示ARG_MAX未定义,可以这么修改。
在apue.2e/include/apue.h中添加一行:
#define ARG_MAX 4096
打开apue.2e/threadctl/getenv1.c 和apue.2e/threadctl/getenv3.c,添加一行:
#include “apue.h”
改好后make clean再重新make
2. 使用apue.h文件和libapue.a库。
假定/tmp下有一个文件:threadid.c,内容如下(apue线程章节的例子):
#include <apue.h>
#include <pthread.h>
pthread_t ntid;
void
printids(const char *s)
{
pid_t pid;
pthread_t tid;
pid = getpid();
tid = pthread_self();
printf(“%s pid %u tid %u (0x%x)\n”, s, (unsigned int)pid,
(unsigned int)tid, (unsigned int)tid);
}
void *
thr_fn(void *arg)
{
printids(“new thread: “);
return((void *)0);
}
int
main(void)
{
int err;
err = pthread_create(&ntid, NULL, thr_fn, NULL);
if (err != 0)
err_quit(“can’t create thread: %s\n”, strerror(err));
printids(“main thread:”);
sleep(1);
exit(0);
}
使用如下命令编译:
cc -o threadid threadid.c -lapue -lpthread
可以运行一下:
dan@dan-laptop:/tmp$ ./threadid
new thread: pid 17490 tid 816015696 (0x30a36950)
main thread: pid 17490 tid 823949040 (0x311c76f0)


83 _REENTRANT

在一个多线程程序里,默认情况下,只有一个errno变量供所有的线程共享。在一个线程准备获取刚才的错误代码时,该变量很容易被另一个线程中的函数调用所改变。类似的问题还存在于fputs之类的函数中,这些函数通常用一个单独的全局性区域来缓存输出数据。

为解决这个问题,需要使用可重入的例程。可重入代码可以被多次调用而仍然工作正常。编写的多线程程序,通过定义宏_REENTRANT来告诉编译器我们需要可重入功能,这个宏的定义必须出现于程序中的任何#include语句之前。

_REENTRANT为我们做三件事情,并且做的非常优雅:

1 它会对部分函数重新定义它们的可安全重入的版本,这些函数名字一般不会发生改变,只是会在函数名后面添加_r字符串,如函数名gethostbyname变成gethostbyname_r。
2 stdio.h中原来以宏的形式实现的一些函数将变成可安全重入函数。
3 在error.h中定义的变量error现在将成为一个函数调用,它能够以一种安全的多线程方式来获取真正的errno的值。

84 war3
first install
TXT9TJ-WBZ7-9Y6RX4-72CX-CPWE27
B664P6-F92C-CJ747Y-T98F-XNVN66
and install patch
and click battle.net to update
and play
sunyongjie1984
war54*

85 memdb fastdb memory database
tar -zxvf memdb.tar.gz
make
make -f makefile_main
./main
cd ../fastdb
./subsql
open 'haha' 'haha.MDB'
show
select * from abc;
// all the actions will show some tables and 2 records in table abc

86 list all the directories of current directory
ls -d */

show the attributes of directory share not the files in directory share
ls -ld share
show the files in directory share
ls share

87 通配符and regular expression
通配符与正则表达式很容易混淆,首先要明白二者是不同的,个人感觉通配符用于Linux的shell命令(如文件名相关操作)中,而正则表达式用于文本内容中的字符串搜索和替换等。通配符是Linux系统本身就支持的,而正则表达式用于vim编辑器或awk程序,这些文本处理工具正是由于支持正则表达式才变得强大。


[a-z]或[12]:匹配方括号中指定范围内的单个字符或方括号列出的其中一个字符。
[!9]:不匹配方括号中所列字符或指定范围内的单个字符。
*:匹配0个字符或多个字符。
?:匹配任何单个字符,且不能为空字符。

由于shell会将字符?[ ] *
区别对待,因此在命令参数时如果需要用到这几个特殊字符,应将该参数用单引号标注或通过在特殊字符前加转义字符\。

正则表达式

.:匹配任何单个字符,功能上和通配符中的?符号相同。
[a-z]或[12]:功能上和通配符中的[]相同。
[^]:功能和通配符中的[!]相同。
*:匹配该字符的前一个字符的0次或多次出现。
^:匹配所有以指定正则表达式开始的行。
$:匹配所有以指定正则表达式结束的行。

需要注意的是:[]中的特殊字符如.已经失去了其特殊含义,和方括号中的普通字符[12]一样。

88 warning as errors
-Werror

89 ansi to utf-8
iconv -c -f gbk -t utf8 main.cpp > a.cpp

90 -Wall -Wno-format-contains-nul -Werror
man g++ and wno means ignore some compile warnings
-Wall means show all the warnings

91 sudo yum -y install gnome-tweak-tool

100 fedora gnome-commander
F3 see
F4 edit

101 vim
// replace
.,$s/insertsort/insert\_sort/g

102 install fixedsys font
terminal background color 204 232 207
hide the title bar
terminal font fixedsys 12

103 after rpmforge
gnochm
krusader
gnome-commander

104 sudo yum -y install yumex

105




106 nimi centos
sudo yum -y install gcc-c++
sudo yum -y install sqlite*
sudo yum -y install apr*
sudo yum -y install libxml*

yum groupinstall "X Window System"
yum groupinstall "GNOME Desktop Environment"
yum groupinstall \"X Window System\"
yum groupinstall \"GNOME Desktop Environment\"
startx
或者init 5
就OK。
重新安装了带图形界面模式的centos系统,来实验yum方式卸载图形界面
图形界面想要卸载:
yum groupremove "GNOME Desktop Environment"
yum groupremove "X Window System"
yum groupremove \"GNOME Desktop Environment\"
yum groupremove \"X Window System\"


install ctags
sudo yum -y install ctags

centos 5.5 64 bit if
"gnu/stubs-32.h"
sudo yum install glibc-devel


107 my t61
Device Boot Start End Blocks Id System
xp /dev/sda1 * 1 4162 31464688+ 7 HPFS/NTFS
/dev/sda2 4163 64601 456918840 f W95 Ext'd (LBA)
/boot /dev/sda5 4163 4190 200812+ 83 Linux
centos 5 /dev/sda6 4190 11125 52428096 83 Linux
win 7 /dev/sda7 11125 18060 52429824 7 HPFS/NTFS
fedora17 /dev/sda8 18060 24995 52428800 83 Linux
/share2 /dev/sda9 24995 45801 157286400 83 Linux
/share1 /dev/sda10 45801 59670 104856223+ b W95 FAT32
/swap /dev/sda11 59671 61057 10482381 82 Linux swap / Solaris
windows /dev/sda12 61057 64601 26795008 7 HPFS/NTFS


108 tcpdump -vv
sudo /usr/sbin/tcpdump host 235.1.1.1

if you use tcpdump can not get message try use -i command to name a netcard
tcpdump-i em1 host 235.1.1.1
tcpdump -i em1 udp port 10005

sudo /sbin/tcpdump udp port 10005 -w b.cap
if permission denied, to to /tmp and run the above command

109 社保
http://www.bjld.gov.cn/csibiz/indinfo/login.jsp
05*

110 source 与点
source
.
source命令与“.”点命令
source 命令是 bash shell 的内置命令,从 C Shell 而来。
source 命令的另一种写法是点符号,用法和 source 相同,从Bourne Shell而来。
source 命令可以强行让一个脚本去立即影响当前的环境。
source 命令会强制执行脚本中的全部命令,而忽略文件的权限。
source 命令通常用于重新执行刚修改的初始化文件,如 .bash_profile 和 .profile 等等。
source 命令可以影响执行脚本的父shell的环境,而 export 则只能影响其子shell的环境。

使用方法举例:
$source ~/.bashrc
或者:
$. ~/.bashrc
执行后 ~/.bashrc 中的内容立即生效。
一个典型的用处是,在使用 Android 的 mm 等相关命令时,需要先执行以下命令:
$cd <android source path>
$source ./build/envsetup.sh 或者 $. ./build/envsetup.sh

source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是个点符号,(从Bourne Shell而来)是source的另一名称。同样的,当前脚本中设置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修改的初始化文件,如 .bash_profile 和 .profile 等等。例如,如果在登录后对 .bash_profile 中的 EDITER 和 TERM 变量做了修改,则能用source命令重新执行 .bash_profile 中的命令而不用注销并重新登录。
source命令的作用就是用来执行一个脚本,那么:
source a.sh 同直接执行 ./a.sh 有什么不同呢,比如你在一个脚本里export $KKK=111 ,如果你用./a.sh执行该脚本,执行完毕后,你运行 echo $KKK ,发现没有值,如果你用source来执行 ,然后再echo ,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结果并没有反应到父shell里,不过source不同,他就是在本shell中执行的,所以能看到结果。
“.”点命令是shell的一个内部命令,它从指定的shell 文件中读入所有命令语句并在当前进程中执行。 因此当多个shell进程(父子进程或无关进程均可)共享一组变量值时,就可以将这些变量赋值语句定义到一个shell文件里,并在需要这些变量值的程序中使用点语句来引用这个shell文件,从而实现变量值共享(对这些变量值的修改仅涉及到这个shell文件)。但要注意的是,这个shell文件不能包括含有位置参数的语句,即不能接受$1、$2等命令行参数。
从上面可以看出,其实点命令相当于c语言里面的#include。点命令还有另一个写法:source。下面我们将举例来说明。
我们先写一个简单的shell脚本文件,暂且命名为file1吧:
#! /bin/bash
a="hi"
echo $a
我们先来执行一下这个shell脚本,打开终端,敲入: ./file1
结果是什么,你应该也看到了吧:
bash: ./file1: Permission denied
为什么呢。我们先不管这个吧,先看一下,另一个结果:
. ./file1(注意啊,两个点之间有个空格的哦,要不就成了上一级目录了,如果你不嫌麻烦的话,也可以写source ./file1)这个的结果呢,跟前面就不一样了,正如我们所愿的,输出了hi。

./file1,直接执行,需要另起shell进程,而你似乎还没有这个权限(这个改一下就OK了,后面再说),而用点命令就不一样了(注意啊,./file这里的点可不是点命令里的点啊,我就被这个问题困扰了很久,汗死,竟然忘了点还有当前目录的意思,大家b4我吧),点命令会在当前的shell下执行。补充说一下怎么改一下file1的权限,让我们可以在按shell脚本来执行: chmod +x file1
再执行一下./file1,是不是OK了?再来看另一个例子吧。首先脚本文件file1
#! /bin/bash
a="hi"
脚本文件file2(与file1在同一个目录下)
#! /bin/bash
./file1
echo $a
记得改一下file1的权限啊,要不./file1就没法执行了。执行一下看看结果。什么都没有,是吧。我们再改一下file2,这回用一下咱们的点命令
#! /bin/bash
. ./file1
echo $a
怎么样结果不一样了吧。(原谅我实在太懒了,只能举这么简短的例子了,呵呵)。这个例子应该还是能说明点问题的吧。如果不用点命令的话,会另起shell进程,而启动这个进行的时候,它会建立自己的进程环境(暂且这么叫它吧),然后在这个进行结束的时候,它所建立的环境也随之被销毁。而且点命令就不一样了,它会把点命令所带的shell脚本里的所以内容带到当前的shell进程里,在本程序里,就是变量a了。
废话了这么多,其实好像把点命令想像成C里的#include就OK了,呵呵。不过经过这么折腾,还是学到了一点东西的,至少知道了.不仅有点命令的作用,更有当前目录的意思(冷啊,该补一下linux基础了)。

为什么在shell脚本里面export的环境变量,在set里面竟然看不到。
为什么在shell脚本里面用export设置环境变量之后,当shell执行完了,用set命令看不到呢?但是你如果直接在终端里export 环境变量用set是看到的。

一个shell脚本test.sh的内容为:
#!/bin/bash
export AA=123
当我们执行test.sh的时候,是当前终端所在的shell fork一个子shell然后执行test.sh的,执行完了再返回终端所在的shell。明白这点,就容易理解了,我们在test.sh设置了AA环境变量,它只在fork出来的这个子shell中生效,子shell只能继承父shell的环境变量,而不能修改父shell的环境变量,所以test.sh结束后,父进程的环境就覆盖回去。所以在test.sh之后完之后,我们用set命令是看不了AA这个环境变量的值的。
那有什么办法可以让脚本的环境变量在脚本执行之后仍然对当前终端存在呢?用sorcue 或者.(dot) 。明确告诉shell不要fork执行脚本,而是在当前的shell执行,这样环境变量就可以保存下来了。
source命令用法:
source Filename (通常用“.”来代替)
source test.sh 与 .test.sh是等效的。
【补充】
source命令与shell scripts的区别是,
source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量时,要用source 命令。

111 aix
topas
ps aux

111.1 安装aix
如果你想装AIX,那么你必须有IBM的Power系列服务器~

基于power服务器,IBM有它的PowerVM,这就是IBM的虚拟化技术~PowerVM是应用在高端企业级服务器的虚拟化技术,类似服务器硬件资源动态调整,应用在线迁移,系统在线迁移等等那些技术相对于VMware等虚拟化技术都是有过之而无不及~

顺便提一下,PowerVM的虚拟化,是在硬件之上,AIX之下的虚拟化~这句话有点绕口,可以这么理解,一台全新的空白的机器,你得先装PowerVM,给机器划分资源,然后在划分出来的虚拟机中安装AIX~

当然,,AIX不能用X86架构的服务器虚拟出来,这是因为x86架构(CISC 复杂指令集)的服务器和UNIX (RISC精简指令集)在硬件原理上的不同~

111.2 prtconf 显示系统的各项主要配置

112 判断OS版本
aix oslevel -r
linux uname -a

113 tuxddo
tmboot -y

tmadmin
psr
psc
q

tmshutdown -y


114 env
查看所有环境变量

115 set
查看所有变量(环境变量加自定义变量)

116 export
自定义变量转换为环境变量
自定义变量与环境变量的差异在于:该变量是否会被子进程所继续引用

当你登录linux并取得一个bash之后,你的bash就是一个独立的进程,被称为PID的就是
接下来你在这个bash下面所执行的任何命令都是由这个bash所衍生出来的,那些
被执行的命令就被称为子进程了。
子进程会继承父进程的环境变量,不会继承父进程的自定义变量。

117 ipcs
ipcs 命令
用途
报告进程间通信设施状态。

118 cpio
cpio -idmv < *.cpio

119 *.gz
gunzip *.gz


120 xhost +
由用户sunyongjie su - oracle之后,再启动图型界面之前,要在
sunyongjie用户下执行 xhost +

121 install oracle
字符集,选择第二个utf8

122 启动级别设置错误
假如linux启动级别设置错误,比如误设为6,或者由于某些问题无法进入x,而启动级别恰好是5(这就是我遇到的情况),那么可以通过single模式启动的方式,进入命令行,修改inittab。
具体做法是:
在进入grub菜单的时候,在要启动的内核上面按e进入编辑状态。
然后在kernel 的选项处再按e,进行编辑。
在 ro 的后面,root=之前的位置,加上 single 参数。
然后enter完成编辑,按b引导。
这样就可以进入命令行了。。。
在/etc/inittab里面修改默认启动级别即可。

123 type -t name_of_command
显示文件类型

124 grep 命令
1或操作
grep -E '123|abc' filename // 找出文件(filename)中包含123或者包含abc的行
egrep '123|abc' filename // 用egrep同样可以实现
awk '/123|abc/' filename // awk 的实现方式
2与操作
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
3其他操作
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,

125 数据流重导向
find . -name file 1> list 2>&1

126 linux
ctrl + z相当于将运行的程序放到了后台,此程序相当于在一开始就使用&,
放到后台一样,这两种方式都可以使用fg命令将程序拿到前台

127 centos CentOS进入单用户模式
Linux开机引导的时候,按键盘上的e 就可以进入进入GRUB菜单界面。

2.在出现GRUB引导画面时(CentOS(2.6.18-274**)),按字母e键,进入GRUB编辑状态。

3.把光标移动到kernel ...那一行,再敲入“e”进入命令行编辑,

在kernel 一行的最后加上空格single,回车

敲入“b”,启动系统,即进入单用户模式,

128 kdevelop
通过automanager来添加己有文件来生成工程的时候,
编译的时候需要的so可以手动修改Makefile在LIBS下添加so的绝对路径
运行时如果说找不到so,最后的方法是把so拷贝到/usb/lib64

129 b main.cpp : 48 if (8 == i)
gdb 设置条件断点
图形的就不用if了,直接填加下面这样的语句即可
图形 0 == strcmp(str_a, "0123456")
图形 8 == i
b ts_match_engine.cpp :145 if ((TS_ENTRUST*)&pOrder->TimerOrder.TimerOrder.TimeStamp == 13300000)
130 awk
awk '{print $3}' a.h > a.txt

131 gdb
运行中修改内存 print i = 8
gdb -p 11259
d 4
directory

如果在同一台机器上编译并运行这个程序,gdb可以自动找到源文件,不然的话要使用
directory来指定源文件目录


132 查看进程运行时间
ps -A -opid,stime,etime,args


133 fedora文字启动
rm /etc/systemd/system/default.target
ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

134 cat使用小方法
[neeq@RH64-TSP-101 cfg]$ cat * | grep dbf
Binary file (standard input) matches

[neeq@RH64-TSP-101 cfg]$ cat *.ini | grep dbf
Dbf=/home/neeq/dbf/entq_matchtime.dbf
就可以了,cat出错就停止了,所以往后查找东西,要只显示文本文件,为免出错


135 ps aux ps ux
显示其他用户启动的进程(a)
查看系统中属于自己的进程(x)
启动这个进程的用户和它启动的时间(u
USER域指明了是哪个用户启动了这个命令;
用户可以查看某个进程占用了多少CPU;
内存使用及其VSZ(虚拟内存大小)和RSS(常驻集大小):
VSZ表示如果一个程序完全驻留在内存的话需要占用多少内存空间;
RSS指明了当前实际占用了多少内存;
STAT显示了进程当前的状态:
"S":进程处在睡眠状态,表明这些进程在等待某些事件发生--可能是用户输入或者系统资源的可用性;
stat 中的参数意义如下:
D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程

< 高优先级
n 低优先级
s 包含子进程
+ 位于后台的进程组

 

136 fedora login interface
rm /etc/systemd/system/default.target
ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target //启动字符界面

ln -s /lib/systemd/system/graphical.target/etc/systemd/system/default.target //启动图形界面
其中第一步很重要一定要删除/etc/systemd/system/default.target
然后根据你要图形还是字符选择上面的命令进行执行


137 组播数据收不到
收不到组播的异常情况
2014-01-03 18:07 12人阅读 评论(0) 收藏 举报
在日常工作中,由于经常要在Linux下收取组播数据,特将一些异常情况记下:
1.没有添加组播路由

Linux下没有添加对应组播的发送方的路由的情况时,虽然tcpdump可以看到数据,但无法用程序收到组播数据的,这是出现问题时要检查的第一条。

2.组播路由添加错误

添加组播路由的指令为:route add -net 239.10.0.0 netmask 255.255.0.0 dev eth0

这条指令可能会产生两种错误,一是组播地址和其掩码地址不匹配;二是dev指定的网口并不是用来收取组播信号的网口,也就是说其网口并没有连接在组播信号的交换机上。

今天遇到一个诡异的情况,centos下网卡、路由等各种设置都是正确的,但是用tcpdump就是收不到组播数据。奇怪的是重启后就可以收到了,1分钟后又收不到了。后来发现是重启后有一块网卡的地址会自动变化成第二块网卡的地址。也就是双网卡的ip地址eth0和eth1的ip地址都变成eth1的ip地址,两个网卡的ip地址变成了同一个,感到很奇怪,下面就分享一下我的解决办法。

1、重启网络服务后发现多了NetworkManage这个东东,原来是NetworkManage惹的麻烦

2、直接关闭NetworkManage服务,这个服务其实开不开启都无所谓,有的时候就会给使用这带来麻烦,于是乎关闭此服务,具体操作如下

a、在终端输入setup出现以下界面后选择系统服务并回车

b、取消NetworkManage服务,去掉括号中的*号,此服务为系统启动默认加载服务

c、完成后退出,并到终端关闭NetworkManage服务

/etc/init.d/NetworkManage stop

3、重启网络服务,此时ip地址正常使用,显示也正常

/etc/init.d/network restart

 

138 mount error(12)
当通过mount.cifs命令对windows下的文件进行映射时,若文件太大,便会产生这种错误,解决方法是:

修改注册表 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\IRPStackSize项的值大于等于15,若IRPStackSize项不存在,就新建一个DWORD值,点击弹出窗口的的进制为十进制,值写个18就ok了,还要重启一下。

139 sudo mount -rw -t cifs -o username=sunyongjie,password=family1234! -o uid=SUNYongjie -o gid=SUNYongjie //192.168.137.1/e E

sudo mount -rw -t cifs -o username=sunyongjie,password=family1234! -o uid=sunyongjie -o gid=sunyongjie //192.168.137.1/e E

sudo vi /etc/fstab
read write access centos 6
//192.168.137.1/e /home/sunyongjie/E cifs uid=sunyongjie,gid=sunyongjie,username=sunyongjie,password=family1234! 0 0

140
sudo yum install pixman pixman-devel libXfont
for error (could not start Xvnc

141 c compiler can not use "//" for comments


142
lsnrctl start
sqlplus / as sysdba
startup

如果 oracle所在机器ip地址有修改,要注意修改/etc/hosts 与tnsnames.ora


143
sync


144 centos 6.3最小化安装

yum -y install gcc
yum -y install gcc-c++
yum -y install make
yum -y install openssh-clients

145 chkconfig iptables off

147 fedora mini install
after install
1 clear
2 cd
3 ls
4 ifconfig
5 cp /etc/sysconfig/network-scripts/ifcfg-em1 ~
6 ls
7 vi ifcfg-em1
8 ls
9 cd /etc/sysconfig/network-scripts/
10 ls
11 sudo cp ifcfg-em1 ifcfg-em1:0
12 ls
13 vi ifcfg-em1
14 sudo vi ifcfg-em1
15 sudo cp ifcfg-em1 ifcfg-em1:0
16 sudo vi ifcfg-em1\:0
17 sudo vi ifcfg-em1
18 reboot
19 sudo reboot
20 ifconfig
21 sudo /sbin/service network restart
22 ifconfig
23 clear
24 ifconfig
25 ping www.163.com
26 sudo vi /etc/sysconfig/network-scripts/ifcfg-em1
27 sudo /sbin/service network restart
28 ping www.163.com
29 clear
30 ls
31 sudo yum -y install gcc
32 sudo yum makecache
33 ls
34 ifconfig
35 clear
36 sudo ifup em1:0
37 ifconfig
38 ping 192.168.137.1
39 ping 192.168.237.204
40 ping 192.168.137.204
41 sudo ifup em1
42 ifconfig
43 sudo ifup em1 em1:0
44 ifconfig
45 cd /etc/sysconfig/network-scripts/
46 ls
47 cat ifcfg-em1*
48 setup
49 sudo setup
50 clear
51 ls
52 sudo mv ifcfg-em1\:0 ifcfg-em1:1
53 ls
sudo mv ifcfg-em1\:0 ifcfg-em1:1
53 ls
54 reboot
55 sudo reboot
56 ls
57 ifconfig
58 sudo /sbin/fdisk -l
59 df -hT
60 ifconfig
61 sudo ifup em1:1
62 ifconfig
63 ping 192.168.237.204
64 ping 192.168.137.204
65 cd /etc/sysconfig/network-scripts/
66 ls
67 sudo mv ifcfg-em1\:1 ifcfg-em1:0
68 ls
69 vi ifcfg-em1:0
70 ls
71 sudo vi ifcfg-em1\:0
72 sudo vi ifcfg-em1
73 cat ifcfg-em1*
74 sudo reboot
75 ls
76 clear
77 ls
78 cp /etc/yum.repos.d/* .
79 sudo rm /etc/yum.repos.d/*
80 sudo cp fedora-163.repo /etc/yum.repos.d/
81 sudo yum makecache
82 ls
83 pwd
84 sudo vim /etc/yum.repo.d/local-src.repo
85 sudo vi /etc/yum.repo.d/local-src.repo
86 sudo vi /etc/yum.repos.d/local-src.repo
87 sudo mkdir /mnt/local-src
88 sudo /sbin/fdisk -l
89 mkdir usb
90 ls
91 sudo mount /dev/sdb1 usb/
92 ls
93 cd usb/
94 ls
95 cp fedora_17_64.iso /mnt/local-src/
96 sudo cp fedora_17_64.iso /mnt/local-src/
97 sudo yum --disablerepo=* --enablerepo=local-src makecache
98 ls
99 cd /mnt/
100 ls
101 cd local-src/
102 ls
103 sudo mv fedora_17_64.iso /home/syj/software/
104 sudo mount -o loop rhel-server-5.4-i386-dvd.iso /mnt/local-src/
sudo mv fedora_17_64.iso /home/syj/software/
104 sudo mount -o loop rhel-server-5.4-i386-dvd.iso /mnt/local-src/
105 sudo mount -o loop /home/syj/software/fedora_17_64.iso /mnt/local-src/
///
[local-src]
name=local-src
baseurl=file:///mnt/local-src
enabled=1
gpgcheck=1
gpgkey=file:///mnt/local-src/RPM-GPG-KEY-redhat-release-
///
106 ls
107 cd -;cd -
108 ls
109 yum --disablerepo=* --enablerepo=local-src makecache
110 yum --disablerepo=* --enablerepo=local-src install gcc
111 sudo yum --disablerepo=* --enablerepo=local-src install gcc
112 sudo yum --disablerepo=* --enablerepo=local-src install gcc-c++
113 sudo yum --disablerepo=* --enablerepo=local-src install "@Chinese Support"
114 sudo yum --disablerepo=* --enablerepo=local-src install cmake
115 sudo yum --disablerepo=* --enablerepo=local-src install apr*
116 sudo yum --disablerepo=* --enablerepo=local-src install vnc-server
117 sudo yum --disablerepo=* --enablerepo=local-src install vsftpd
118 sudo yum --disablerepo=* --enablerepo=local-src install telnet-server
119 sudo yum --disablerepo=* --enablerepo=local-src install telnet-server*
120 sudo yum --disablerepo=* --enablerepo=local-src install gconf-editor
121 sudo yum --disablerepo=* --enablerepo=local-src install tigervnc-server
122 sudo yum --disablerepo=* --enablerepo=local-src install tigervnc-server*
123 sudo yum --disablerepo=* --enablerepo=local-src install wireshark
124 sudo yum --disablerepo=* --enablerepo=local-src install wireshark-gnome
125 sudo yum --disablerepo=* --enablerepo=local-src install gnome-tweak-tool
126 sudo yum --disablerepo=* --enablerepo=local-src install yumex
127 sudo yum --disablerepo=* --enablerepo=local-src install "X Window System"
128 sudo yum --disablerepo=* --enablerepo=local-src install \"X Window System\"
129 sudo yum --disablerepo=* --enablerepo=local-src install 'X Window System'
130 sudo yum --disablerepo=* --enablerepo=local-src install \"X Window System\"
131 sudo yum --disablerepo=* --enablerepo=local-src groupinstall "X Window System"
132 sudo yum --disablerepo=* --enablerepo=local-src groupinstall "GNOME Desktop Environment"
133 sudo yum --disablerepo=* --enablerepo=local-src groupinstall tar
134 sudo yum --disablerepo=* --enablerepo=local-src groupinstall ctags
135* sudo yum --disablerepo=* --enablerepo=local-src install c
136 sudo yum --disablerepo=* --enablerepo=local-src install tar
137 sudo yum --disablerepo=* --enablerepo=local-src install make
138 sudo yum --disablerepo=* --enablerepo=local-src install glibc-devel
139 sudo yum --disablerepo=* --enablerepo=local-src install pixman pixman-devel libXfont
140 sudo yum --disablerepo=* --enablerepo=local-src install openssh-clients
141 sudo yum --disablerepo=* --enablerepo=local-src install kdevelop

yum group list
142 sudo yum --disablerepo=* --enablerepo=local-src groupinstall "*"


148 kdevelop
debug internal error, maybe there is not right breakpoints


149 fedora terminal color 0 170 170

150 备份linux操作系统
sudo su
接着去你的文件系统的根目录(在我们的例子中,我们使用它,不过你可以去你希望备份的任何地方,包括远程或可移动驱动器。)
cd /
然后,下面就是我用来备份我的系统的完整的命令:
tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys

3. 恢复
警告:看在上帝的份上,在这一部分请小心谨慎。如果你不理解你在这里干了什么,你可能最终毁坏了对你而言很重要的东西,所以请小心谨慎。 那么,我们将紧接着上一章的例子:在分区的根目录下的backup.tgz文件
再一次确保你是根用户以及备份文件在文件系统的根目录。
Linux 美妙的地方之一就是这一项工作甚至可以在一个正在运行的系统上进行;没必要被引导cd或者任何东西搞得晕头转向。当然,如果你使你的系统无法被引导了。你也许别无选择,只能使用一张live-cd了,但是结果是一样的。你甚至可以在Linux系统正在运行的时候,移除它里面所有文件。可是我不告诉你那个命令!
好了,言归正传。这是我要用的命令:
tar xvpfz backup.tgz -C /
如果你使用 bz2
tar xvpfj backup.tar.bz2 -C /
警告:这会把你分区里所有文件替换成压缩文档里的文件!
只要敲一下确定/回车/你的兄弟/随便什么,然后去看焰火吧。同样,这会花一段时间。等它完成了,你就有了一个完全恢复的Ubuntu系统!只需确保在你做其他任何事情之前,重新创建你剔除的目录:
mkdir proc mkdir lost+found mkdir mnt mkdir sys etc...


151 204 fedora network card

1 sudo ifconfig eth1:0 192.168.237.204 hw ether 00:11:00:00:11:33 netmask 255.255.255.0 broadcast 192.168.237.255
or
sudo ifconfig eth0:0 192.168.237.204 hw ether 00:11:00:00:11:33 netmask 255.255.255.0 broadcast 192.168.237.255
2 sudo ifconfig em1 170.0.0.73 hw ether fc:4d:d4:4a:06:eb netmask 255.255.255.0 broadcast 192.168.237.255
3 sudo route add -net 171.0.0.0 netmask 255.255.255.0 dev em1
4 sudo route add -net 171.0.2.0 netmask 255.255.255.0 dev em1

windows xp 204
route print
interface list
0x1 ms tcp loopback interface
0x40004 ASIX
0x50002 Gigabit Network Connection


route -f
route add 10.0.0.0 mask 255.0.0.0 10.*.*.* metric 20 if 0xf0003 //先设置内网路由
route add 0.0.0.0 mask 0.0.0.0 192.168.0.1 metric 20 if oxe002 //再设置外网路由;
*****************************************************/
route add 171.0.0.0 mask 255.255.0.0 170.0.0.73 metric 20 if 0x50002
route add 0.0.0.0 mask 0.0.0.0 192.168.137.204 metric 20 if 0x40004
route add 192.168.137.0 mask 255.255.255.0 192.168.137.204 metric 20 if 0x40004
*****************************************************/

sudo route del -net default netmask 0.0.0.0 dev p6p1
sudo route add -net default netmask 0.0.0.0 dev wlan0

windows
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 192.168.137.1
route add 171.0.0.0 mask 255.0.0.0 170.0.0.73

 


152 pgrep top
pgrep some app name

153 算数 关系 逻辑 赋 (优先级)

6226095712059059

154 install Chinese font
yum intall cjkun*


155 fedora 204 /etc/fstab
/dev/mapper/vg-lv_root / ext4 defaults 1 1
UUID=64c33f23-0cf1-4325-9248-70cb7958a880 /boot ext4 defaults 1 2
/dev/mapper/vg-lv_home /home ext4 defaults 1 2
/dev/mapper/vg-lv_swap swap swap defaults 0 0
UUID=8ab377db-0af2-4cbb-9434-f4196bfb8531 swap swap defaults 0 0
//192.168.137.1/e /home/syj/E cifs uid=syj,gid=syj,username=sunyongjie,password=family1234! 00
#//192.168.137.1/d /home/syj/D cifs uid=syj,gid=syj,username=sunyongjie,password=family1234! 00


156 gtest unit test

g++ sample1_unittest.cc sample1.cc -o main -lgtest -lgtest_main -lpthread -I ../include/

157 关于备份 about copy
1. dell notepad and dell PC have no same materia
2. mobile disk is for important materia copy
3. dell笔记本是做CS的,dell台式机用来做工作台,用来做生活,用来做NEDZQ,用来做LIFE

158
DEBUG下栈空间未初始化的变量会自动初始化为0xcccccccc,堆中会自动初始化为0xcdcdcdcd
由于这两个值用户很少用,vs用其来表示未初始化的空间,当访问它时就会报错

159 c++ primer 5 gcc 4.8.2 installl
root
wget http://mirrors.ustc.edu.cn/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2
tar -jxvf *.tar.bz2
cd gcc-4.8.2
./contrib/download_prerequisites
cd ..
mkdir gcc-build-4.8.2
cd gcc-build-4.8.2
../gcc-4.8.2/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j4
make install

mv /usr/lib64/libstdc++.so.13 /usr/lib64/libstdc++.so.13.bak
mv /usr/local/lib64/libstdc++.so.6.0.18 /usr/lib64/
cd /usr/lib64
rm libstdc++.so.6
ln -sf libstdc++.so.6.0.18 libstdc++.so.6

// I did not use the following command
ls /usr/local/bin | grep gcc
update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/x86_64-unknown-linux-gnu-gcc-4.8.2 40

160 字节序
网络字节序是高端,大端
我使用visual 2012感觉windows下是小端的,低地址存低位

161 info threads
gdb -p pid
attach pid
gdb update
wget http://ftp.gnu.org/gnu/gdb/gdb-7.6.1.tar.bz2
http://987146971.blog.51cto.com/5230841/1585795
160 vi
mm inserver bookmark
F2 next bookmark

159
gdb debug the child process
set follow-fork-mode child

162 netstat
netstat -pan | grep -Ei "tcp|state"

163 ctrl+d is the charactor EOF of the terminal

 

164 new and malloc
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。
2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函
数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不
能够把执行构造函数和析构函数的任务强加于malloc/free。
3,因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以一个能完成清理与释放内存工作的运算符
delete。注意new/delete不是库函数。
4,C++程序经常要调用C函数,而C程序只能用malloc/free管理动态内存。

5、new可以认为是malloc加构造函数的执行。new出来的指针是直接带类型信息的。而malloc返回的都是void指针。

一:new delete 是运算符,malloc,free是函数

malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。

对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数
,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能
够把执行构造函数和析构函数的任务强加于malloc/free。

因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符
delete。注意new/delete不是库函数。


malloc 与free 是C++/C 语言的标准库函数,new/delete 是C++的运算符。它们都可
用于申请动态内存和释放内存。
对于非内部数据类型的对象而言,光用maloc/free 无法满足动态对象的要求。对象
在创建的同时要自动执行构造函数, 对象在消亡之前要自动执行析构函数。由于
malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数
和析构函数的任务强加于malloc/free。
因此 C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个
能完成清理与释放内存工作的运算符delete。注意new/delete 不是库函数

165 #if 0 #endif
1、先说“#if 0/#if 1 ... #endif”的作用,楼上诸位或多或少都说到了一点,但都没有说到关键的地方。我们知道,C标准不提供C++里的“//”这样的单行风格注释而只提供“”这样的块注释功能,我们通常使用它写代码中说明性的注释文字(注释作用)以及在调试时关闭某段代码对编译器的可见性(屏蔽作用),当然,这里所谓的“注释作用”和“屏蔽作用”是我们从功能上下的主观定义,对预处理器而言,两者并无任何区别。对于前者,因为“注释”中不会再出现“注释”和“需要屏蔽的代码段”,所以不会有嵌套的需求,所以通常不会有问题;而对于后者,当我们在调试程序时需要“屏蔽”某段代码时,该段代码中可能包含着前述的“注释”和/或“已被屏蔽的代码段”,这时就产生了“”嵌套使用的需求,但SB的C标准恰恰不允许我们这么干。当你试图使用嵌套的块注释功能时,会发现预处理器把最外层注释的开始和最内层注释的结尾这两者之间的内容处理成了注释,而其后一直到最外层注释结尾的内容被当作了“有效代码”——这显然会引起若干语法错误而导致编译中止。高手们开动脑筋想到了“#if 0 ... #endif”,它同样由预处理器进行处理,同样可以“屏蔽”一段代码,你想把说明文字写在里面也可以,这些和“”都一样,但不一样的是:第一它允许嵌套(层数上限由预处理器决定)、第二你随时可以把“#if 0”改成“#if 1”来取消对某段代码的“屏蔽”——很卓越的特性,快抛弃笨拙的“”吧!它唯一的缺点就是在编辑器中没有“注释”该有的文本显示样式。

166
对象:对象定义了计算机内存的一块区域,并且与名字相关联,被用来存储值。

167
编译c++程序时,编译器自动定义了一个预处理器名字__cplusplus,我们可以根据它来判断该程序是不是c++程序。
#ifdef __cplusplus
…..
#endif

168 动态内存分配
在c++中,对象可以静态分配—即编译器在处理程序源代码时分配,也可以动态分配—即程序执行时调用运行时刻库函数来分配,这两种内存分配方法的主要区别是效率与灵活性之间的平衡准则不同,由于静态内存分配是在程序执行之前进行的,因而效率比较高,但是,它缺少灵活性,它要求程序执行之前就知道所需内存的类型和数量。例如,利用静态分配的字符串数组,我们无法很容易地处理和存储任意的文本文件。一般来说,存储未知数目的元素需要动态内存分配的灵活性。
静态与动态分配的两个主要区别是:
1.静态对象是有名字的变量,我们直接对其操作。而动态分配的对象是没有名字的变量,我们通过指针间接地对它进行操作。
2.静态对象的分配与释放由编译器自动完成,程序员需要理解这一点,但不需要做任何事情。相反,动态分配的对象的分配与释放,必须由程序员显式地管理。它通过new与delete完成。
练习2.5
接口:接口是用户可以应用到类对象上的操作。它由三部分组成:这些操作的名字,它们的返回值,以及它们的参数表。一般地,这些就是用户所要知道的全部内容。
实现:包括为支持接口所必需的算法和数据

169 list all directory ls -d */

170 svn del fig*
svn ci . -m ""

171 google 203.208.46.200

172 windows7 virtual local wifi
netsh wlan start hostednetwork

173 sudo vi /etc/rsyslog.conf
local6.* /var/log/NT/NT.log

cd /ets/init.d
./rsyslog restart

转载于:https://www.cnblogs.com/sunyongjie1984/p/4252624.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值