本文主要是介绍Linux下开发关于Samba/Vimrc/svn/tftp/等基本的配置使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
出处:http://blog.csdn.net/max_min_go/article/details/18269227
做了一年半的Linux的网络编程,所以分享自己现在在ubuntu系统下开发的一些工作环境配置,大家相互学习。
1 平台
首先就是装一个Linux系统,我现在装的是ubuntu10.04比较稳定好用!后面应该会用12.04,听说也挺稳定的!再虚拟一个xp系统,这里可以在公司内部和同事通信用!毕竟好多软件还只能在windows系统下运用
当然也可以装双系统,但是不好交互,所以不很推荐。
2 Samba服务
虚拟机和主机ubuntu需要相互共享目录的时候,当然用vm有自带,virtual box也是有共享目录的,但是我还是比较习惯用Samba,比较方便,具体配置如下,
- sudo apt-get install samba
然后修改下samba配置文件,在/etc/samba下有个smb.conf文件,修改它就好,如下修改
- [someuserPCSamba]
- comment = someuserPC Samba share document
- path = /home/someuser
- browseable = yes
- writeable = yes
- valid users = someuser,root
- write list = someuser
- guest ok = yes
- create mask = 0777
- directory mask = 0777
someuser表示当前登录的用户名,配置好后在虚拟的xp下,在工具上映射网络驱动器如下图,并在ip地址上添上住主机的ip地址就好

通过上面的操作后,即可以在打开我的电脑的时候会有一个网络驱动器了,就可以直接通过双击来访问Samba共享的文件夹了!方便快捷。例如:如上面的配置文件配好后,虚拟机要映射172.18.6.33的主机:\\172.18.6.33\someuerPCSamba
2 Vim的配置
这个是老生常谈的问题了,看各人的爱好来的吧!个人配置都不一样,我贴写我自己喜欢的基本操作
首先安装g++ ,vim, ctags ,cscope基本的工具,所有下载安装命令如下:
下面我贴一些自己常用的一些基本配置,了需要的可以参考一下,这个个人配置都是因人而异的,所以我就贴一部分,大家相互学习
- set path=.,/usr/local/include/,/usr/include/,./include,./*
-
- "set fenc=utf-8
- "set encoding=gb2312 // "redhat9.0中的vi只支持这个选项,cat命令为gb2312,系统默认为utf-8,man命令为系统默认
- "set termencoding=gb2312 //"效果同set encoding"
-
- set fileencodings=gb18030,cp936,UTF-8,gbk,big5,ucs-bom,euc-jp,euc-kr,iso8859-1
- set fileencoding=cp936
- set encoding=UTF-8
-
- set tabstop=4
- set sw=4
-
- filetype plugin on
- filetype indent on
-
- set hlsearch
- set incsearch
- set showcmd
- set sidescroll=10
- set history=1000
- set listchars=tab:>-,trail:-
- set nowrap
- set number
-
- syntax enable
- syntax on
-
- "colorscheme delek
- colorscheme evening
-
- set softtabstop=4
- set shiftwidth=4
- set autoindent
- set cindent
- set nu
- set ruler
- set foldmethod=syntax
- set foldlevel=100
- set mouse=a
-
- set autochdir
- set autoindent cindent cinoptions=g0
-
- "set cursorline //"高亮当前行
- set showmatch
-
- set matchtime=5
- set ignorecase
-
- setlocal noswapfile
- set bufhidden=hide
-
- set ruler
- set cmdheight=2
- "cscope的配置
- if has("cscope")
-
- set cscopetag
- set csprg=/usr/bin/cscope
- set csto=0
- set nocsverb
- "add any database in current directory
- if filereadable("cscope.out")
- cs add cscope.out
- "else add database pointed to by environment
- elseif $CSCOPE_DB != ""
- cs add $CSCOPE_DB
- endif
-
- set csverb
- set cscopeverbose
-
-
- nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR>
- nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR>
- nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR>
- nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CR>
- nmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CR>
- nmap <C-\>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
- nmap <C-\>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
- nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR>
-
- nmap <C-@>s :scs find s <C-R>=expand("<cword>")<CR><CR>
- nmap <C-@>g :scs find g <C-R>=expand("<cword>")<CR><CR>
- nmap <C-@>c :scs find c <C-R>=expand("<cword>")<CR><CR>
- nmap <C-@>t :scs find t <C-R>=expand("<cword>")<CR><CR>
- nmap <C-@>e :scs find e <C-R>=expand("<cword>")<CR><CR>
- nmap <C-@>f :scs find f <C-R>=expand("<cfile>")<CR><CR>
- nmap <C-@>i :scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
- nmap <C-@>d :scs find d <C-R>=expand("<cword>")<CR><CR>
-
- nmap <C-@><C-@>s :vert scs find s <C-R>=expand("<cword>")<CR><CR>
- nmap <C-@><C-@>g :vert scs find g <C-R>=expand("<cword>")<CR><CR>
- nmap <C-@><C-@>c :vert scs find c <C-R>=expand("<cword>")<CR><CR>
- nmap <C-@><C-@>t :vert scs find t <C-R>=expand("<cword>")<CR><CR>
- nmap <C-@><C-@>e :vert scs find e <C-R>=expand("<cword>")<CR><CR>
- nmap <C-@><C-@>f :vert scs find f <C-R>=expand("<cfile>")<CR><CR>
- nmap <C-@><C-@>i :vert scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
- nmap <C-@><C-@>d :vert scs find d <C-R>=expand("<cword>")<CR><CR>
- endif
当然还有一些map的映射,这个是各人习惯,我就不一一贴出来了!有需要的可以留言,我再相关贴出来!下面再说说我平时操作的一些命令,包括函数,变量来回跳转查看,高亮显示折叠等等命令!很基础的命令就没有列出来了,
- g + d
- n
- \ + h + l
- : v + s
- : s + p
- ctrl + w + h/j/k/l
- :q
- :qall
- :only
- ctrl + ]
- ctrl + o
- ctrl + i
- ctrl + t
-
- :cs + find +e + 目标
- ctrl +n
- ctrl +p
- u
- ctrl + r
- z + a
- ctrl + v + h/j/k/l
- shift + v + j/k
- shift+ v + =
- ctrl + shift + t
- atl + (1,2,3,4,)
- ctrl + shift + w
- %s/old/new
-
-
- (ctrl +v) + (shift + i) + xxxx
- (shift+v) + (shft + : ) + s/old /new
-
-
-
- ctrl-f ctrl-b
-
- ctrl-d ctlr-u
-
- ctrl-e ctrl-y
- zz
- zt
- zb
-
先想到的就这么多了,后面想到了,再向上加吧,或者有帅哥知道一些比较方便的命令,也可以下面留言告诉我,大家相互学习,方便别人,也是方便自己!
3 svn常用的命令
这里只是简单的罗列出来几个比较常用的上传代码和下载代码,并没有关于svn服务器的配置,这个具体google下。
- sudo apt-get install subversion
-
-
- svn check out <uri>
- svn export file
- svn commit -m"xxxx"
- svn add files --no-ignore
-
-
- find ./ -name "*.svn" | xargs rm -rf
- svn delete files
- svn info
- svn log
4 mount设备的简单命令
开发arm设备的时候,当调试代码的时候,如果不嫌弃麻烦的,也可以每次都烧录到设备里去,当然也有简单方法,那就是需要将本机编译好的代码mount到设备上去,
当然这里因为体系的不同还需要安装交叉编译工具,我后面会简单说下,也是可以的。 言归正传,说一下mount的基本命令
首先确认通过串口进去到设备下,然后ifconfig 确认下是否ip地址起来或者是否和pc机在通过一个网段的,如果不是话,则进行下面命令
- ifconfig eth0 192.168.1.108 up
- route add default gw 192.168.1.1
接下里就可以在设备上ping下主机的ip地址或者在pc上ping设备也是可以的,保证两边网络是通的,才能进行下一步的mount操作
mount也就是nfs来,它的基础命令很简单,其实也就是间接访问而已,具体命令如下:
- mount -t nfs -no nolock 192.168.1.100:/home/someone/ /tmp
-
-
5 tftp服务的环境的配置(pc端和设备端)
首先用pc主机下tftp服务,首先下载并安装tftp-hpa和tftpd-pha
然后建立一个文件并加权限用ftp来访问使用,具体如下:
- mkdir tftpboot
- chmod 755 tftpboot
-
- #sudo vim /etc/default/tftp-hpa //修改此文件如下
- # /etc/default/tftpd-hpa
-
- TFTP_USERNAME="tftp"
- #TFTP_DIRECTORY="/var/lib/tftpboot"
- TFTP_DIRECTORY="/home/someone/tftpboot"
- TFTP_ADDRESS="0.0.0.0:69"
- TFTP_OPTIONS="--secure"
当你pc机的的环境搭好后,在设备端运行下面命令即可
- setenv ipaddr 192.168.1.108
- setenv netmask 255.255.255.0
- setenv gatewayip 192.168.1.1
- setenv serverip 172.18.6.33
- saveenv
6 交叉编译基本配置
由于ARM的体系结构和x86的体系结构不同,故在宿主机上编译产生的应用程序不能在ARM上运行,故需要安装交叉工具链,以下为安装过程
(1) 将arm-linux-gcc-4.3.2.tgz移到linux的一个目录下
(2) 解压工具链到某一个目录下
例:tar xvzf arm-linux-gcc-4.3.2.tar.gz -C/
其中 -C 指定解压到后面的绝对路径,如果不加,则解压到当前目录下
解压过程中,会发现它解压到了 /usr/local/arm 下,这里特别要注意前面的路径,因为如果没有加 -C选项,是解压到当前目录下的,
以 ** 表示/usr/local/arm前面的路径(加-C就是/usr/local/arm 目录下)
(3) 修改 /etc/profile
添加 在pathmunge 下添加 **/usr/local/arm/4.3.2/bin (如果加 -C 就没有**)
(4) 执行 source /etc/profile 就可以执行 arm-linux-gcc 命令了
7 tcpdump/netstat的一些基础命令使用
在man下tcpdump如下
- NAME
- tcpdump - dump traffic on a network
-
- SYNOPSIS
- tcpdump [ -AdDefIKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]
- [ -C file_size ] [ -G rotate_seconds ] [ -F file ]
- [ -i interface ] [ -m module ] [ -M secret ]
- [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
- [ -W filecount ]
- [ -E spi@ipaddr algo:secret,... ]
- [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
- [ expression ]
当热网络也有一些比较好的比较详细的说明如
tcpdump命令详解 和 tcpdump命令详解2
我只是简单的列举几个我自己比较常用的命令 ,具体的参数是什么意思可以参考上面的两个博客都写的挺详细,
- tcpdump host 192.168.1.108 port 8888 - A - s0 -i lo
-
- tcpdump host 192.168.1.108 port 8888 - A -s0 -v -w cap.cap
-
这两个命令是我用的比较多了,当然,实际工作的时候,用wireshark还是占大多数的时候的!
在man下nestate如下
- NAME
- netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
- SYNOPSIS
- netstat [address_family_options] [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users]
- [--symbolic|-N] [--extend|-e[--extend|-e]] [--timers|-o] [--program|-p] [--verbose|-v] [--continuous|-c]
- netstat {--route|-r} [address_family_options] [--extend|-e[--extend|-e]] [--verbose|-v] [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users] [--con‐
- tinuous|-c]
- netstat {--interfaces|-i} [--all|-a] [--extend|-e[--extend|-e]] [--verbose|-v] [--program|-p] [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users]
- [--continuous|-c]
- netstat {--groups|-g} [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c]
- netstat {--masquerade|-M} [--extend|-e] [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c]
- netstat {--statistics|-s} [--tcp|-t] [--udp|-u] [--raw|-w]
- netstat {--version|-V}
- netstat {--help|-h}
- address_family_options:
- [-4] [-6] [--protocol={inet,unix,ipx,ax25,netrom,ddp}[,...]] [--unix|-x] [--inet|--ip] [--ax25] [--ipx] [--netrom] [--ddp]
其实这个netstate命令用的比较少,当然是相对我来说而已,接触这个是因为中间帮平台项目调试个bug,结果最后bug别人自己搞定了,
用到个这个命令,主要对端口而已,查看一些端口的状态的,常用的基本命令如下
- netstate -p tcp/udp
- netstate -anpt | grep 8888
其实还有写也是基础的,我不一一列出来,这里的两个博客都比较好,想仔细研究的可以参考下
netstat命令详解1 和netstat命令详解2
好了!想写的零零散散的也就想到就这些了,后期想起别的,我也继续贴在后面。
分享也是一种学习,一种快乐!如果你有更好的,或者更直接linux网络分析这块更好的工具或者命令,可以留言告诉我的哦,也可以发送邮件:zy573124937@163.com. 大家一起学习,一起探讨。。
这篇关于Linux下开发关于Samba/Vimrc/svn/tftp/等基本的配置使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!