好好加油,好好努力 有情义有担当,无依无傍我自强 男儿当自强
盛年不重来 一日难再晨 及时宜自勉 岁月不待人
0 frg grezvany gvgyr yvahk.gkg1 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 cmake5 yum install apr* Apache Portable Runtime6 install log4cxx 7 watch the content of in files cat linux_diary.txt | grep log4cxx --color -C 38 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 vsftpd18.1 chkconfig vsftpd on // run at the start of power on18.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 esc35. 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/level237. vim37.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\+$//e28 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.3vbox_logo2_gradient
You want to run a Windows Virtual Machine in your CentOS computer? or want totry out another linux distribution without going through the hassle ofinstalling the whole system? Here is a solution. VirtualBox is a very easy touse open source virtualization software package developed by Oracle. So inthis article i will guide you through the process of installing virtualbox ina 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 rpmmanager 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 wayyou 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 workperfectly. 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-servervncserver
pkill vnccopy /lib/systemd/system/vncserver@.service to /etc/systemd/system/vncserver@:1.service
Now we edit the file. We look for these lines in the fileExecStartPre=/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.servicesystemctl 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 terminal68 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 queue79http://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环境高级编程 apue19.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.a19.4 编译单个源代码只编译libapue.aCd libMake –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/includecp ./glibc-2.11/bits/stropts.h /usr/include/bitscp ./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再重新make2. 使用apue.h文件和libapue.a库。假定/tmp下有一个文件:threadid.c,内容如下(apue线程章节的例子):#include <apue.h>#include <pthread.h>pthread_t ntid;voidprintids(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);}intmain(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$ ./threadidnew 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 Systemxp /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 Linuxcentos 5 /dev/sda6 4190 11125 52428096 83 Linuxwin 7 /dev/sda7 11125 18060 52429824 7 HPFS/NTFSfedora17 /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 / Solariswindows /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/basha="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/basha="hi"脚本文件file2(与file1在同一个目录下)#! /bin/bash./file1echo $a记得改一下file1的权限啊,要不./file1就没法执行了。执行一下看看结果。什么都没有,是吧。我们再改一下file2,这回用一下咱们的点命令#! /bin/bash. ./file1echo $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 ipcsipcs 命令用途报告进程间通信设施状态。
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.targetln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
134 cat使用小方法[neeq@RH64-TSP-101 cfg]$ cat * | grep dbfBinary file (standard input) matches
[neeq@RH64-TSP-101 cfg]$ cat *.ini | grep dbfDbf=/home/neeq/dbf/entq_matchtime.dbf 就可以了,cat出错就停止了,所以往后查找东西,要只显示文本文件,为免出错
135 ps aux ps ux显示其他用户启动的进程(a)查看系统中属于自己的进程(x)启动这个进程的用户和它启动的时间(uUSER域指明了是哪个用户启动了这个命令;用户可以查看某个进程占用了多少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 interfacerm /etc/systemd/system/default.targetln -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 stop3、重启网络服务,此时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
140sudo yum install pixman pixman-devel libXfontfor error (could not start Xvnc
141 c compiler can not use "//" for comments
142lsnrctl startsqlplus / as sysdbastartup
如果 oracle所在机器ip地址有修改,要注意修改/etc/hosts 与tnsnames.ora
143sync
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 install1 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 lssudo 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-srcbaseurl=file:///mnt/local-srcenabled=1gpgcheck=1gpgkey=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 /如果你使用 bz2tar 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 orsudo ifconfig eth0:0 192.168.237.204 hw ether 00:11:00:00:11:33 netmask 255.255.255.0 broadcast 192.168.237.2552 sudo ifconfig em1 170.0.0.73 hw ether fc:4d:d4:4a:06:eb netmask 255.255.255.0 broadcast 192.168.237.2553 sudo route add -net 171.0.0.0 netmask 255.255.255.0 dev em14 sudo route add -net 171.0.2.0 netmask 255.255.255.0 dev em1
windows xp 204route print interface list0x1 ms tcp loopback interface0x40004 ASIX0x50002 Gigabit Network Connection
route -froute 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 0x50002route add 0.0.0.0 mask 0.0.0.0 192.168.137.204 metric 20 if 0x40004route 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 p6p1sudo route add -net default netmask 0.0.0.0 dev wlan0
windowsroute delete 0.0.0.0route add 0.0.0.0 mask 0.0.0.0 192.168.137.1route 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 1UUID=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 0UUID=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
158DEBUG下栈空间未初始化的变量会自动初始化为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/1585795160 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 #endif1、先说“#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 wifinetsh wlan start hostednetwork
173 sudo vi /etc/rsyslog.conflocal6.* /var/log/NT/NT.log
cd /ets/init.d./rsyslog restart
转载于:https://www.cnblogs.com/sunyongjie1984/p/4252624.html
相关资源:数据结构—成绩单生成器