查看Ubuntu版本
#cat /etc/issue
查看软件xxx安装内容
#dpkg -L xxx
查找软件
#apt-cache search 正则表达式
查找文件属于哪个包
#dpkg -S filename apt-file search filename
查询软件xxx依赖哪些包
#apt-cache depends xxx
查询软件xxx被哪些包依赖
#apt-cache rdepends xxx
增加一个光盘源
#sudo apt-cdrom add
系统更新和升级
#sudo apt-get update
#sudo apt-get upgrade
#sudo apt-get dist-upgrade
清除所有删除包的残余配置文件
#dpkg -l |grep ^rc|awk '{print $2}' |tr ["\n"] [" "]|sudo xargs dpkg -P -
编译时缺少h文件的自动处理
#sudo auto-apt run ./configure
查看安装软件时下载包的临时存放目录
#ls /var/cache/apt/archives
备份当前系统安装的所有包的列表
#dpkg –get-selections | grep -v deinstall > ~/somefile
从上面备份的安装包的列表文件恢复所有包
#dpkg –set-selections /proc/sys/net/ipv4/ip_forward
#sudo iptables -t nat -I POSTROUTING -j MASQUERADE
查看路由信息
#netstat -rn sudo route -n
手工增加删除一条路由
#sudo route add -net 192.168.0.1 netmask 255.255.255.0 gw 192.168.1.1
#sudo route del -net 192.168.0.1 netmask 255.255.255.0 gw 192.168.1.1
修改网卡MAC地址的方法
#sudo ifconfig eth0 down 关闭网卡
#sudo ifconfig eth0 hw ether A0:BA:BB:CC:DD:EE 然后改地址
#sudo ifconfig eth0 up 然后启动网卡
统计当前IP连接的个数
#netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n
#netstat -na|grep SYN|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n
统计当前20000个IP包中大于100个IP包的IP地址
#tcpdump -tnn -c 20000 -i eth0 | awk -F "." '{print $1″."$2″."$3″."$4}' | sort | uniq -c | sort -nr | awk ' $1 > 100 '
屏蔽IPV6
#echo "blacklist ipv6″ | sudo tee /etc/modprobe.d/blacklist-ipv6
服务
添加一个服务
#sudo update-rc.d 服务名 defaults 99
删除一个服务
#sudo update-rc.d 服务名 remove
临时重启一个服务
#/etc/init.d/服务名 restart
临时关闭一个服务
#/etc/init.d/服务名 stop
临时启动一个服务
#/etc/init.d/服务名 start
设置
配置默认Java使用哪个
#sudo update-alternatives –config java
修改用户资料
#sudo chfn userid
给apt设置代理
#export http_proxy=http://xx.xx.xx.xx:xxx
修改系统登录信息
#sudo vim /etc/motd
网络配置
#sudo ifconfig eth0 down
#sudo ifconfig eth0 hw ether AA:BB:CC:DD:EE:FF
#sudo ifconfig eth0 up
#sudo vi /etc/network/interfaces
1)、添加如下到该配置文件内以使能DHCP
# The primary network interface - use DHCP to find our address
auto eth0
iface eth0 inet dhcp //指定为dhcp
在输入这几行后,你需要通过以下命令重新启动你的网络设备:sudo /etc/init.d/networking restart
2)、为网卡配置静态IP
如果你想配置静态IP地址,你需要编辑/etc/network/interfaces,并输入以下几行(假设你的网卡是eth0):sudo vi /etc/network/interfaces
# The primary network interface
auto eth0
iface eth0 inet static //指定为static
address 192.168.3.90 //IP地址
gateway 192.168.3.1 //网关
netmask 255.255.255.0 //子网掩码
network 192.168.3.0 //这个……网络?
broadcast 192.168.3.255 //广播
在输入这几行后,你需要通过以下命令重新启动你的网络设备:sudo /etc/init.d/networking restart
3). 设置第二个IP地址或虚拟IP如果你是一个服务器管理员或者只是普通用户,有时你需要为系统指派第二个IP,那么你可以这样做,同样编辑/etc/network/interfaces文件(假设你的网卡是eth0):
#sudo vi /etc/network/interfaces
auto eth0:1
iface eth0:1 inet static
address 192.168.1.60
netmask 255.255.255.0
network x.x.x.x
broadcast x.x.x.x
gateway x.x.x.x
在输入这几行后,你需要通过以下命令重新启动你的网络设备:#sudo /etc/init.d/networking restart
设置Ubuntu网络配置系统的hostname使用以下命令格式来改系统的hostname,或者直接编辑/etc/hostname sudo hostname newname
设置DNS
#sudo vi /etc/resolv.conf
enter the following details
search test.com
nameserver 192.168.3.2
安装文件bash路径修改
The installer has detected that your system uses the dash shell as /bin/sh. This shell is not supported by the installer.
You can work around this problem by changing /bin/sh to be a symbolic link to a supported shell such as bash.
For example, on Ubuntu systems, execute this shell command:
% sudo dpkg-reconfigure -plow dash
Install as /bin/sh? No
中文
转换文件名由GBK为UTF8
#sudo apt-get install convmv convmv -r -f cp936 -t utf8 –notest –nosmart *
批量转换src目录下的所有文件内容由GBK到UTF8
#find src -type d -exec mkdir -p utf8/{} \; find src -type f -exec iconv -f GBK -t UTF-8 {} -o utf8/{} \; mv utf8/* src rm -fr utf8
转换文件内容由GBK到UTF8
#iconv -f gbk -t utf8 $i > newfile
转换 mp3 标签编码
#sudo apt-get install python-mutagen find . -iname "*.mp3" -execdir mid3iconv -e GBK {} \;
控制台下显示中文
#sudo apt-get install zhcon 使用时,输入zhcon即可
文件
快速查找某个文件
#whereis filename
#find 目录 -name 文件名
查看文件类型
#file filename
显示xxx文件倒数6行的内容
#tail -n 6 xxx
让tail不停地读地最新的内容
#tail -n 10 -f /var/log/apache2/access.log
查看文件中间的第五行(含)到第10行(含)的内容
#sed -n '5,10p' /var/log/apache2/access.log
查找包含xxx字符串的文件
#grep -l -r xxx .
全盘搜索文件(桌面可视化)
gnome-search-tool
查找关于xxx的命令
#apropos xxx man -k xxx
通过ssh传输文件
#scp -rp /path/filenameusername@remoteIP:/path
#将本地文件拷贝到服务器上
#scp -rpusername@remoteIP:/path/filename/path
#将远程文件从服务器下载到本地
查看某个文件被哪些应用程序读写
#lsof 文件名
把所有文件的后辍由rm改为rmvb
#rename 's/.rm$/.rmvb/' *
把所有文件名中的大写改为小写
#rename 'tr/A-Z/a-z/' *
删除特殊文件名的文件,如文件名:–help.txt
#rm — –help.txt 或者 rm ./–help.txt
查看当前目录的子目录
#ls -d */. 或 echo */.
将当前目录下最近30天访问过的文件移动到上级back目录
#find . -type f -atime -30 -exec mv {} ../back \;
将当前目录下最近2小时到8小时之内的文件显示出来
#find . -mmin 120 -mmin -480 -exec more {} \;
删除修改时间在30天之前的所有文件
#find . -type f -mtime 30 -mtime -3600 -exec rm {} \;
查找guest用户的以avi或者rm结尾的文件并删除掉
#find . -name '*.avi' -o -name '*.rm' -user 'guest' -exec rm {} \;
查找的不以java和xml结尾,并7天没有使用的文件删除掉
#find . ! -name *.java ! -name '*.xml' -atime 7 -exec rm {} \;
统计当前文件个数
#ls /usr/bin|wc -w
统计当前目录个数
#ls -l /usr/bin|grep ^d|wc -l
显示当前目录下2006-01-01的文件名
#ls -l |grep 2006-01-01 |awk '{print $8}'
FTP
上传下载文件工具-filezilla
#sudo apt-get install filezilla
filezilla无法列出中文目录?
站点->字符集->自定义->输入:GBK
本地中文界面
1)下载filezilla中文包到本地目录,如~/
2) #unrar x Filezilla3_zhCN.rar
3) 如果你没有unrar的话,请先安装rar和unrar
#sudo apt-get install rar unrar
#sudo ln -f /usr/bin/rar /usr/bin/unrar
4)先备份原来的语言包,再安装;实际就是拷贝一个语言包。
#sudo cp /usr/share/locale/zh_CN/filezilla.mo /usr/share/locale/zh_CN/filezilla.mo.bak
#sudo cp ~/locale/zh_CN/filezilla.mo /usr/share/locale/zh_CN/filezilla.mo
5)重启filezilla,即可!
解压缩
解压缩 xxx.tar.gz
#tar -zxvf xxx.tar.gz
解压缩 xxx.tar.bz2
#tar -jxvf xxx.tar.bz2
压缩aaa bbb目录为xxx.tar.gz
#tar -zcvf xxx.tar.gz aaa bbb
压缩aaa bbb目录为xxx.tar.bz2
#tar -jcvf xxx.tar.bz2 aaa bbb
解压缩 RAR 文件
1) 先安装
#sudo apt-get install rar unrar
#sudo ln -f /usr/bin/rar /usr/bin/unrar
2) 解压
#unrar x aaaa.rar
Nautilus
显示隐藏文件
Ctrl h
显示地址栏
Ctrl l
特殊 URI 地址
* computer:/// - 全部挂载的设备和网络
* network:/// - 浏览可用的网络
* burn:/// - 一个刻录 CDs/DVDs 的数据虚拟目录
* smb:/// - 可用的 windows/samba 网络资源
* x-nautilus-desktop:/// - 桌面项目和图标
*file:///- 本地文件
* trash:/// - 本地回收站目录
* ftp:// - FTP 文件夹
* ssh:// - SSH 文件夹
* fonts:/// - 字体文件夹,可将字体文件拖到此处以完成安装
* themes:/// - 系统主题文件夹
查看已安装字体
在nautilus的地址栏里输入"fonts:///",就可以查看本机所有的fonts
程序
详细显示程序的运行信息
#strace -f -F -o outfile
日期和时间
设置日期
#date -s mm/dd/yy
设置时间
#date -s HH:MM
将时间写入CMOS
#hwclock –systohc
读取CMOS时间
#hwclock –hctosys
从服务器上同步时间
#sudo ntpdate time.nist.gov
#sudo ntpdate time.windows.com
控制台
不同控制台间切换
Ctrl ALT ← Ctrl ALT →
指定控制台切换
Ctrl ALT Fn(n:1~7)
控制台下滚屏
SHIFT pageUp/pageDown
控制台抓图
#setterm -dump n(n:1~7)
数据库
mysql的数据库存放在地方
#/var/lib/mysql
从mysql中导出和导入数据
#mysqldump 数据库名 > 文件名 #导出数据库
#mysqladmin create 数据库名 #建立数据库
#mysql 数据库名 GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456″;
'123456'是root的密码,可以自由设置,但最好是设个安全点的。
#mysql> quit; 退出mysql
apache2的操作命令
启动: #sudo /etc/init.d/apache2 start
重启: #sudo /etc/init.d/apache2 restart
关闭: #sudo /etc/init.d/apache2 stop
apache2的默认主目录:/var/www/
Ubuntu 10.04 更换软件源、更新系统
Ubuntu里提供了方便的根据网络条件选择具体的更新服务器的设置,参考如下设置
System –》 Update Manager –》 Settings –》 Ubuntu Software标签 —》Download from –》Others –》 Select your best server你可以测试得出最好的更新服务器
当然以上配置中需要root密码。
如果不想每次都提示有新的更新,你可以在Settings –》 Updates à Check for Updates 来设置更新频率,如每周,每天,每两周等。
在终端输入: #sudo gedit /etc/apt/sources.list 就能看到现在设置好了更新的源地址了。
在终端输入
#sudo apt-get update
#sudu apt-get upgrade
这样便更新以及升级了系统。
桌面汉化:
System>Language Support>Chinese选项勾打上。
安装解码器、flashplayer、java虚拟机、微软字体
这是ubuntu推出的一个新软件包,将一次性将上面几个东东自动装好
在终端输入
#sudo apt-get install ubuntu-restricted-extras
FireFox 中安装 FlashPlayer 插件
先下载插件: install_flash_player_9_linux.tar.gz
#tar -zxf install_flash_player_9_linux.tar.gz
#./flashplayer-installer
回答(y/n/q)? n/q
#sudo cp libflashplayer.so /usr/lib/firefox/plugins
启动 firefox 即可!
安装媒体播放器
安装的是mplayer
终端输入: #sudo apt-get install mplayer mozilla-mplayer totem-xine libxine-extracodecs
另外需要一个w32codecs文件,是用来支持那些私有媒体格式的解码器,源里已经没有w32codecs了,我们可以从这里下载那个后缀为.deb的安装
http://www.debian-multimedia.org/pool/main/w/w32codecs/
mplayer调试(视频、字幕)
启动mplayer,右键->Preferences->Video
Available drivers选择xv
然后进入Font标签 Font里选择一个中文字体,Encoding里设置为Simplified Chinese charset (CP936)
安装下载工具(多线程下载、BT下载、电驴)
还是终端输入: #sudo apt-get install d4x amule azureus
即可。
或者把 beryl-manager添加到启动项内
字体更换
我推荐大家使用文泉驿字体,在
http://wqy.sourceforge.net
下载deb包安装
在"系统"->"首选项"->"字体"中调整字体
apt下载的deb包清理
在使用完apt后,系统下载的deb包会留存在硬盘里,我们可以把它们删除,释放硬盘空间。
终端输入: #sudo apt-get clean
安装rar压缩、解压工具
终端输入: #sudo apt-get install rar unrar
启用root(最高权限)帐户
终端输入: #sudo passwd root
输入你希望的root用户的密码
安装QQ
终端输入: #sudo apt-get install eva
便可安装eva了,如果你是使用scim(选择中文语言支持的自动安装的就是scim),为了可以在eva里面输入文字,要在终端输入:sudo apt-get install scim-qtimm
系统会安装支持QT的scim插件,这样你就可以使用eva聊qq了。
显卡驱动安装
进入"系统"->"系统管理"->"受限驱动管理器"
找到你的显卡,把那个框点成对号,会提示你安装显卡驱动,然后按照提示一步一步安装完毕,重启即可。
beryl的安装
你的系统在安装完毕之后就已经有了一个内置的桌面效果软件(能实现简单的桌面特效,包括3D立方体),使用方法是(必须将显卡驱动装好)进入"系统""首选项""桌面效果",点击"启用桌面效果",如果你需要使用3D立方体桌面,那么选中"立方体上的工作区"即可。
如果你对这个简单的桌面特效工具不太满意,想追求更华丽的桌面,那么安装beryl仍然是个很好的选择。如今安装beryl不会像以前一样麻烦了,feisty的源里已经有了beryl的软件包,我们只需要在终端里输入:
#sudo apt-get install beryl-core beryl-plugins beryl-plugins-data emerald beryl-settings beryl-manager beryl beryl-dev emerald-themes
安装完毕即可了。
启动方法:"应用程序"->"系统工具"->"Beryl Manager"
或者直接在终端输入: #beryl-manager
如何设定/改变/启用 root 使用者的密码?
#sudo passwd root
为了启用 root 帐号 (也就是 设置一个口令) 使用:
#sudo passwd root
当你使用完毕后屏蔽 root 帐号 使用:
#sudo passwd -l root
这个将锁住 root 帐号.
如何在终端机模式下切换到 root 身份?
#sudo -s -H
Password:
安装VNC server
第一步, 获取安装文件
#sudo apt-get install vnc4server
第二步, 修改VNC Password, 6-8位
#vncpasswd
Password: ******
Verify:*****
第三步, 修改配置
系统->首选项->远程桌面
选择->请求用户输入此密码->输入至少6位密码
第四步, 启动VNC server
#vncserver
第五步,通过客户端连接
#vncviewer 192.168.0.1
安装MS字体
#sudo apt-get install msttcorefonts
vim配置
1) 首先安装 vim 完整版本
#sudo apt-get install vim-full
2) vim中文在线帮助
a. 先下载文档 vimcdoc-1.5.0.tar.gz
b. 解压, 执行./vimcdoc.sh, vi里面, 执行:help, 就都是中文的了.
3) 启用本地配置 VIM version 7.1 (说明文档)
#cp etc/vim/vimrc ~/.vimrc
#vim ~/.vimrc
1. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
2. " 一般设定
3. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
4. " 设定默认解码
5. set fenc=utf-8
6. set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
" 不要使用vi的键盘模式,而是vim自己的
set nocompatible
" history文件中需要记录的行数
set history=100
" 在处理未保存或只读文件的时候,弹出确认
set confirm
" 与windows共享剪贴板
set clipboard =unnamed
" 侦测文件类型
filetype on
" 载入文件类型插件
filetype plugin on
" 为特定文件类型载入相关缩进文件
filetype indent on
" 保存全局变量
set viminfo =!
" 带有如下符号的单词不要被换行分割
set iskeyword =_,$,@,%, #,-
" 语法高亮
syntax on
" 高亮字符,让其不受100列限制
:highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white
:match OverLength '\ 1v.*'
" 状态行颜色
highlight StatusLine guifg=SlateBlue guibg=Yellow
highlight StatusLineNC guifg=Gray guibg=White
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文件设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 不要备份文件(根据自己需要取舍)
set nobackup
" 不要生成swap文件,当buffer被丢弃的时候隐藏它
setlocal noswapfile
set bufhidden=hide
" 字符间插入的像素行数目
set linespace=0
" 增强模式中的命令行自动完成操作
set wildmenu
" 在状态行上显示光标所在位置的行号和列号
set ruler
set rulerformat= (%2*%,h,l
" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 启动的时候不显示那个援助索马里儿童的提示
set shortmess=atI
" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set report=0
" 不让vim发出讨厌的滴滴声
set noerrorbells
" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 搜索和匹配
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=5
" 在搜索的时候忽略大小写
set ignorecase
" 不要高亮被搜索的句子(phrases)
set nohlsearch
" 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
set incsearch
" 输入:set list命令是应该显示些啥?
set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$
" 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3
" 不要闪烁
set novisualbell
" 我的状态行显示的内容(包括文件类型和解码)
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
" 总是显示状态行
set laststatus=2
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文本格式和排版
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 自动格式化
set formatoptions=tcrqn
" 继承前一行的缩进方式,特别适用于多行注释
set autoindent
" 为C程序提供自动缩进
set smartindent
" 使用C样式的缩进
set cindent
" 制表符为4
set tabstop=4
" 统一缩进为4
set softtabstop=4
set shiftwidth=4
" 不要用空格代替制表符
set noexpandtab
" 不要换行
set nowrap
" 在行和段开始处使用制表符
set smarttab
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CTags的设定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 按照名称排序
let Tlist_Sort_Type = "name"
" 在右侧显示窗口
let Tlist_Use_Right_Window = 1
" 压缩方式
let Tlist_Compart_Format = 1
" 如果只有一个buffer,kill窗口也kill掉buffer
let Tlist_Exist_OnlyWindow = 1
" 不要关闭其他文件的tags
let Tlist_File_Fold_Auto_Close = 0
" 不要显示折叠树
let Tlist_Enable_Fold_Column = 0
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Autocommands
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示
if has("autocmd")
autocmd FileType xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,ruby set number
autocmd FileType xml,html vmap '
Ubuntu使用技巧
1、基于ubuntu的NFS[Network File System, 网络文件系统的配置,用于实现文件共享]服务安装和配置:
安装软件包: apt-get install nfs-kernel-server (用snaptic则相应的依赖包都会自己安装,如portmap)
配置文件: /etc/exports
配置内容: /srv/homes hostname1(rw,sync) hostname2(ro,sync)
如:/home /winxp 192.168.1.121(rw,sync) *(ro,async) [前一个目录表示允许挂载的目录,后面的是相关权限设置,对192.168.1.121的用户具有读写权限,而其它用户具有只读权限,还有其它参数的意义 如下]
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async NFS在写入数据前可以相应请求
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
启动nfs服务: /etc/init.d/nfs-kernel-server [ start | stop | restart | reload ]
start 启动 NFS 服务
stop 停止 NFS 服务
restart 停止并重新启动 NFS 服务
reload 重新载入 NFS 设定值
联机挂载: mount -t nfs 192.168.1.XX:/home/winxp /mnt/nfs
2、解决MPlayer播放rmvb等格式的文件时有声音没图像的问题:下载安装win32 codecs后即可解决!可自动安装包w32codecs,也可手动安装:
a、下载
http://www.people.virginia.edu/~drf8f/MPlayer/releases/codecs/essential-20060501.tar.bz2
b、安装到/usr/lib/win32, 代码:
tar -jxvf essential-20060501.tar.bz2
sudo mkdir /usr/lib/win32
sudo cp essential-20060501/* /usr/lib/win32/
这样应该就可以用mplayer播放wmv9、rm、rmvb等文件了。
附:Mplayer刚安装,播放rmvb时没声音,可以选择右键->Preference->Video->xv
3、Web服务器apache2的安装配置:
用snaptic安装apache2软件包,大部分设置用默认即可,我就对CGI支持部分作了一下配置,在/etc/apache2/sites-available/default文件中,修改如下(注意要找准对应的部分):
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
SetHandler cgi-script
</Directory>
然后就可以支持CGI的测试了!
有一点需要注意:就是当需要对服务器目录进行诸如文件上传、文件写入和文件创建等操作时,需将目录权限设置为apache2配置文件(/etc/apache2/apache2.conf)中定义的用户和组才行,否则是不允许操作的!
4、如果ubuntu 默认没装编译环境,则可以执行命令: sudo apt-get install build-essential 进行安装。
5、samba服务器的简单安装与配置:
用snaptic安装samba及其相关的软件包(如samba, samba-common, smbfs等),然后根据需求修改配置文件/etc/samba/smb.conf即可!
这里给出一个最简单的示例,其功能就是将一个目录设置为public:
[global]
workgroup = SmartArm2200
server string = Samba TestServer
security = share
socket options = TCP_NODELAY
dns proxy = no
[public]
path = /var/www
public = yes
only guest = yes
writable = yes
create mask = 0755
directory mask = 0755
[home]
path = /share
public = yes
only guest = yes
writable = yes
create mask = 0755
directory mask = 0755
然后在windows上,可以通过在浏览器中输入"\\192.168.1.133"进行访问;
Linux上的使用方法:
列出网络资源: smbclient -L //192.168.1.133
使用网络资源: smbclient //192.168.1.133/public
通过mount访问: sudo mount -t smbfs //192.168.1.133/public /mnt/tmp/ (或者用 sudo smbmount //192.168.1.133/public /mnt/tmp/)
注意:上面的public目录指的是配置文件smb.conf的public标签(同理可以创建更多的标签来共享更多的目录,如上面的[home]);客户端需要安装smbfs才能正常挂载。
至于samba的其它复杂用法,可以参考网上的samba使用大全!
6、显示pkg列表:$pkg-config --list-all
7、查看系统已安装软件的库版本:pkg-config --modversion --cflags --libs 'libname'
8、在安装软件包时,编译完成后,输入echo $? 如果返回结果为0,则表示正常结束,否则就出错了。
9、设置Java环境变量:$sudo update-alternatives --config java
10、系统修复:
$sudo apt-get install ubuntu-desktop
$sudo apt-get install xserver-xorg
11、与标准服务器时间校准:sudo ntpdate time.nist.gov
12、用alien实现rpm到deb包的转换:
a、安装alien: apt-get install alien
b、把rpm包转成deb包: alien -d 'name.rpm'
c、直接安装rpm包: alien -i 'name.rpm'
13、 Gnome中的几个程序名称: gnome-app-install(添加/删除), language-selector(语言支持), synaptic(新利德), gnome-terminal(终端),在使用中文环境时,如果列表中找不到这些项,通过该命令在终端执行即可。
14、如果在编译时出错提示找不到makeinfo,可以通过安装texinfo解决,它是编译svn资源所不可或缺的。
15、编译GTK程序命令格式: gcc -Wall -g base.c -o base `pkg-config --cflags --libs gtk+-2.0`
该 命令是编译一个名为base.c的C程序,并生成一个名为base的二进制文件;-Wall -g表示在编译过程中显示所有的警告信息(warning all -> Wall);注意后面的不是单引号,而是"Esc"下面那个键,这些参数表明需要调用gtk+-2.0库。
16、自动更新/etc/X11/xorg.conf文件命令: sudo dpkg-reconfigure -phigh xserver-xorg
17、安装xserver内核命令: sudo apt-get install xserver-xorg-core=1:1.0.2-0ubuntu10
18、几个常用的dpkg命令:
dpkg -l [软件包名称]:列出系统中已安装的软件包的信息,不加参数表示列出所以已安装的信息!
dpkg -L [软件包名称]:列出指定软件包的详细安装列表
dpkg -s [软件包名称]:查看指定软件包的详细信息,如安装状态、版本信息、依赖关系、配置文件以及描述信息等!
dpkg -S [文件名]:查看指定文件的来源(就是属于那个软件包,可以直接使用绝对路径进行查看)
说明:以上名称参数均可以使用通配符!
dpkg -i [*.deb]:安装指定的deb软件包
dpkg -r [*.deb]:卸载指定的deb软件包
dpkg -P [*.deb]:彻底的卸载指定的deb软件包,包括配置文件等等
dpkg -c [*.deb]:列出指定deb软件包所包含的文件列表 rpm -qlp
dpkg -I [*.deb]:列出指定eb软件包的详细信息,如版本、依赖、描述等等
19、启动Xephyr命令: "Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac"(就相当于在X界面下再开一个X)
20、IP转发: echo 1 > /proc/sys/net/ipv4/ip_forward
IP伪装: iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.1.121
IP设置: ifconfig eth0 192.168.7.2 up
指向网关: route add default gw 192.168.7.1
21、快速文件索引命令: locate filename (注意需要定期更新索引数据库: sudo updatedb)
22、光驱弹出:eject -r 光驱弹入:eject -t
23、可以通过chkconfig来设置系统启动配置,如chkconfig httpd on和chkconfig vsftpd on
24、察看目录大小:du -sh <dirname>;查看文件大小:ls -lh
25、在双系统情况下,如果重装windows就会破坏原有的grub引导程序,可以通过以下步骤简单修复:通过Linux安装光盘启动系统,以root权限进入grub,
root@local:~#grub
grub> find /grub/stage1 (该命令会显示引导文件所在分区,如(hd0,1))
grub> root (hd0,1) (注意中间有一空格,指定/boot分区所在位置)
grub> setup (hd0) (将grub安装到mbr)
grub> quit (退出grub程序)
root@local:~#reboot
26、查看磁盘分区使用情况:df -lh (sudo fdisk -l列出所有磁盘分区)
27、磁盘分区管理命令:fdisk
root@local:~#fdisk /dev/hda (进入磁盘管理)
Command (m for help): p (查看所有分区)
Command (m for help): a (设置可引导分区,就是*标记)
Command (m for help): n (创建一个新分区,给新分区分配空间时,起始卷值默认即可,可避免空间浪费,然后给出空间大小,如+10000M就表明要分配1G的空间,然后自动计算结束卷值)
Command (m for help): t (给新分区设置分区类型,可以通过L显示所有分区类型)
Command (m for help): w (保存退出,但也需重启才能生效)
Command (m for help): q (不保存退出)
28、 新分区还需被格式化成相应的文件系统类型才能使用,常用的有mkfs.ext3(格式化为ext3格式,也是Linux分区常用的)、 mkfs.msdos(格式化为Fat16格式)和mkfs.vfat(格式化为Fat32格式);如mkfs.vfat /dev/hda1
29、 磁盘分区类型一般有两种,primary分区和extends分区,每个磁盘所包含的这两种分区类型总和不得超过4个;如果还想增加更多分区,可以在 extends分区中创建任意多个logic分区;所有在给一个新磁盘分区时,都应该给其划分一个extends分区,以作扩展之用,否则就成为死分区 了。典型划分的一个示例:
fat32:用于双系统(primary)
boot:启动引导分区,1G空间足够,ext3格式(primary)
swap:交换分区,1G空间足够,swap格式;如果内存很大,也可以不要(primary)
extend:扩展分区,全部剩余空间,ext3格式;然后可以在其下创建多个logic分区(logic)
30、使用qemu运行一个winxp image:qemu -m 384 -no-acpi -hda ./winxp.img
31、Find命令与cp命令的组合:find 'dir1' -iname "*.ko" -exec cp {} 'dir2' \;
表明将dir1目录里的所有.ko文件拷贝到dir2目录,注意,注意带上命令后面的分号
32、解决挂载分区中文显示乱码问题: sudo mount /dev/hda2 /mnt/xp -t vfat -o iocharset=utf8,umask=000
-o iocharset=utf8指定编码方式umask=000指定文件权限,与chmod 777等价,该句对乱码问题没什么影响,也可不要!
对 于NTFS分区:mount -t ntfs-3g -o nls=utf8,umask=000 /dev/hda1 /mnt/c,这里需要用nls才能正常显示中文(-t ntfs-3g有时并不工作,改用-t ntfs即可,当然挂载ntfs分区的前提当然得先安装ntfs-3g了;还有一点就是挂载的ntfs分区无法写入)!
34、以 root 用户运行下列命令来添加新用户:
groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs
命令行选项的含义:
-s /bin/bash --- 指定 bash 作为 lfs 用户的默认 shell
-g lfs --- 将 lfs 用户添加到 lfs 组
-m --- 为 lfs 用户创建 home 目录
-k /dev/null --- 这个参数通过修改输入位置为特殊的空设备来防止从框架目录(默认为 /etc/skel)拷贝文件
lfs --- 这是所创建的组和用户的实际名字
为了可以使用 lfs 用户登录(与从 root 用户切换到 lfs 用户不同,这种切换不需要 lfs 用户有一个密码),必须先为 lfs 用户设置一个密码:
passwd lfs
35、openssh-client:ssh客户端,就是gnome终端
openssh-server:ssh服务端,只有开启后,别人才能登录到该主机
36、Ubuntu英文环境下scim输入法在firefox中输入中文的问题:
首先安装中文支持,确保scim可用,即在terminal和gedit中可以通过右键选择scim输入法进行中文输入;
然后执行命令:
sudo apt-get update
sudo im-switch -s scim
sudo apt-get install scim-qtimm
最后重启X即可
37、浏览chm文件(win下编译好的html文件),可以安装包chmsee或者xchm
38、一些常用命令:
lspci #查看系统设备
alsamixer #查看系统声息设备
gzip 'file' #生成一个.gz文件
gzip -d 'file.gz' #解压一个.gz文件
dmesg #查看kernel启动信息
uname -r #查看kernel版本信息
rpm -i program.rpm #安装rpm包
audacious #一款很好的music播放器,可直接从源安装
39、升级Ubuntu一般步骤:
更新/etc/apt/sources.list的源到指定版本;
sudo apt-get upgrade
sudo apt-get update
sudo apt-get dist-upgrade
40、利用--reference参数可以使file2的权限与file1相同,其它更改命令如chgrp,chown等可相似使用:
chmod --reference 'file1' 'file2'
41、svn使用入门:
启动svn服务:svnserve -d
创建svn项目:稍微麻烦,创建完后需要进行用户权限的点配置,可参考已有的svn项目,拷贝过来即可(不再赘述)。
导出文件:svn co svn://192.168.1.x/var/www/svn/trunk (将工程目录trunk导出到当前目录下, co=checkout)
svn co svn://192.168.1.x/var/www/svn/trunk dir (表示将trunk/*导入到指定目录,如果没有指定目标目录,则包括trunk目录在内被导入到当前目录下)
提交文件:svn commit -m "[labServer] Fixed #bug_id bug_describ" (提交新的版本,引号内容是该版本的描述信息,commit=ci=checkin)
查看变更:svn diff ( | more)
版本同步:svn update (可在本地导出的工程目录下执行)
版本信息:svn info
版本日志:svn log
增加文件:svn add file
删减文件:svn del file
生成patch文件:svn diff > ./fix#bug_id.patch (将patch文件导出到当前目录下)
先add/del之后,再执行commit !
42、qemu典型使用:
qemu-img create -f qcow harddisk.img 1024M(创建一个img文件,其格式为qcow,大小为1G,前提需安装qemu)
qemu -boot d -hda ./xp.img -cdrom ./wixp-sp2-small.iso -m 512 -localtime(从本地iso镜像安装到img文件)
qemu -boot d -hda ./xp.img -cdrom /dev/hda -m 512 -localtime(从光盘iso镜像安装到img文件,光盘的挂载分区可通过df查看)
qemu -boot d -cdrom ./demo.iso(直接光盘启动)
------------------------------------------------------------------------------------------------
建立磁盘文件:
qemu-img create winxp.img 10G (磁盘大小自定义,要装Windows建议大一些,否则升级起来很麻烦)
安装:
qemu-kvm -m 450 -hda winxp.img -cdrom Windows\ XP\ Pro\ CN\ with\ SP2.iso -no-acpi -boot d
(qemu-kvm即调用KVM模块)
使用:
qemu-kvm -m 450 -hda /all/kvm/winxp.img -net nic -net user -localtime -no-acpi -boot c
这里采用NET的上网方式,也没有加声卡。。
------------------------------------------------------------------------------------------------
在Debian下验证:
启动img 文件:kvm -hda winxp.img -m 384 -soundhw es1370 -no-acpi
启动磁盘分区:kvm -hda /dev/sda -m 512 -soundhw es1370 (然后通过grub选择可以进入winxp)
43、用mbootpack整合内核: mbootpack -o xen -m vmlinux-stripped xen-3.0.4-1
其中-o xen指定要生成的目标文件
vmlinux-stripped是附加体内核
xen-3.0.4-1是本体内核
44、制作启动盘相关:
install-mbr /dev/sdb(需安装包mbr,其目标是整个磁盘)
syslinux /dev/sdb1(需安装包syslinux,其目标是某一特定磁盘分区)
45、创建节点设备:
mknod sdb c 8 1 #create sdb device in current dir
46、apt-get使用小结:
用法:apt-get [选项] 命令
命令:
update - 下载更新软件包列表信息
upgrade - 进行一次升级
install - 安装新的软件包(注:包名是 libc6 而非 libc6.deb)
remove - 卸载软件包
source - 下载源码包文件
build-dep - 为源码包配置所需的构建依赖关系
dist-upgrade - 发布版升级,见 apt-get(8)
dselect-upgrade - 根据 dselect的选择来进行升级
clean - 删除所有已下载的包文件
autoclean - 删除老版本的已下载的包文件
check - 核对以确认系统的依赖关系的完整性
示例:
apt-get remove pkgname #删除一个软件包.
apt-get --purge remove pkgname #跟上面的一样,但保留配置文件
apt-get autoremove #删除所有单独不用的软件包
apt-get autoclean #删除所有老版本的软件包
dpkg -P pkgname #彻底删除一个软件包以及配置文件.
dpkg -r pkgname #删除但保留配置文件
附加aptitude的使用:
其基本使用方法于apt-get一样,用aptitude替代apt-get字符串即可!
aptitude install pkgname #安装
aptitude remove pkgname #删除,但保留配置文件
aptitude purge pkgname #彻底删除
47、vi使用技巧
Vi中光标的移动:
w: 向前移动一个单词,将符号或标点当作单词处理
b: 向后移动一个单词,把符号或标点当作单词处理
0: 到行首
$: 到行尾
gg: 到页首
G: 到页末
行号+G: 跳转到指定行
Ctrl+g: 查询当前行信息和当前文件信息
CTRL+U: 向上滚动半屏
CTRL+D: 向下滚动半屏
vi中查找和替换命令详解:
对于字符替换,应该解决这样几个问题:
1、用谁替换谁的问题;
2、在那个范围内进行查找和替换;
3、是替换查找到的第一个还是所有匹配的项全部替换;
vi命令的各种选项就提供了这样的选择:
按住esc键,进入命令状态;然后按:进入命令模式;开始输入查找和替换命令!
一般形式为:range+"s"/source/target/g
其意义如下:
range表示要搜索的范围;
"s"这个字母表示搜索的意思,这个是不能缺少的;
source表示要搜索的字串;
target表示要被替换的字串;
g表示对于符合条件的字串全部进行替换(否则仅替换指定范围内的每一行的第一个);
其中ranges的去值如下:
1) %表示全部的行;
2) .表示当前行;
3) $表示最后一行;
4) 可以用具体的数字表示具体的行,如10,20等;
5) 上述的标志可以进行组合,如.,$s/source/target/g 表示从当前行到最后一行的搜索替换;又如10,20s/和10,$s/等等组合;
常用替换命令: %s/str1/str2/g #用str2替换掉当前文本中所有的str1
语法高亮: 编辑/etc/vim/vimrc,添加一行syntax on
搜索高亮: 编辑/etc/vim/vimrc,添加一行set hlsearch
48、在本地交叉编译目标主机用的程序:arm-elf-gcc -elf2flt mycgi.c -o mycgi
49、转换字符编码的命令iconv:
iconv -f gb2312 -t utf8 abc.txt -o abc-utf8.txt
iconv -l #列出系统中已知的字符集
iconv -t utf-8 abc.txt #简单用法
50、卸载时报告设备繁忙解决方法:
fuser -v /mnt/xx, 看看是那个进程在用
fuser -k /mnt/xx, 把所有使用xx的进程全部杀掉,然后再umount
51. 打开超级用户权限的运行程序对话框
你也许已经知道用Alt+F2来打开"运行程序"对话框,然后可以输入任何命令行运行之。如果你在终端窗口中输入gksu命令,则 会弹出一个类似的对话框,但是运行的程序都是在root级权限。你可以通过System->Preferences-> Keyboard Shortcuts,,将这个命令与键盘快捷键(如Shift+Alt+F2)绑定,可以更加方便的使用这一功能。
52. 使用GDebi来安装包
笔者很长一段时间都没注意到GDebi这个程序,这是一个用于安装你自己手动下载的包的GUI程序。它会根据软件仓库这一实用的特 性,来解算依赖关系。很多人也许和笔者一样,用传统的dpkg命令来实现。有一天笔者发现,GDebi也可以命令行模式运行(sudo gdebi package.deb),其功能和GUI模式下完全一样。尝试一下这个命令,也许你再也不想用dpkg –i了。
53. CD命令技巧
笔者确信甚至很多命令行专家也会偶尔发现一些自己以前没意识到的技巧。最近笔者发现了两个以前被忽略的CD命令的技巧,输入cd命令而不带任何参数,可以直接切换到/home目录(等效于cd ~),输入cd –则可以切换到你浏览的上一个目录。
54. 使用PUSHD将目录添加到目录栈
首先来说明一下目录栈是什么,很简单,就是bash存储的一个目录列表。当前浏览的目录总是在列表的顶端,但如果你不通过 PUSHD往其中添加目录,这个列表则是空的。举例说明,使用 pushd /usr/bin命令会添加/usr/bin目录到列表,同时会切换到这个目录(加上-n参数可以停留在当前目录不跳转)。使用popd则会删除最顶端的 目录,然后跳转到列表中的下一个目录。尝试一下这个命令,当你在管理系统时需要在不同目录之间跳转时或者容易忘记重要东西的位置时,它可能会相当有 用。
55. 使用PKILL快速杀掉进程
笔者经常使用top、kill或killall进程加上ps | aux查找进程号/进程名来杀掉进程。但是pkill命令则可去掉大量的工作,pkill firefox就可以杀掉进程列表中所有与firefox符合的incheng。Pstree也是一个很酷的命令,它会根据所有关系以家庭树的方式显示所 有进程。
56. 使用Gnome中心自定义Gnome
对于那些难于放弃窗口界面,希望能获得类似控制面板界面体验的用户,可以考虑使用gnome-control-center来实现系统配置。在桌面上添加快捷方式,可以使新手获得类似Windows的体验,避免迷失在复杂的系统菜单中。
57. 加速OpenOffice.org的启动
如果你经常使用OpenOffice.org,你可能会被它漫长的启动时间所囧到。要解决这个问题,打开会话程序(在Jaunty 中被称为启动项管理,反正你总能在System->Preferences->Startup Applications中找到),然后新增一项。在命令行中输入openoffice -nodefault –nologo,重启后,OpenOffice会在Gnome桌面启动的时候缓存,再次启动任何OpenOffice程序时就会很快完成。
58. 快速清理磁盘垃圾
磁盘空间又不够用了?尝试在终端窗口中输入sudo apt-get autoremove然后输入sudo apt-get clean,前一个命令会卸载系统中所有未被使用的依赖关系,后一个命令会清除所有缓存的包文件,两者都是无害的。在一个升级过多次的系统上,你也许能通 过这个方法清理出若干GB的空间。
59. 找出丢失的文件扩展名
如果你收到一个没有扩展名的email附件,不知道是什么类型时(苹果用户经常把文件扩展名忽略),试一下file命令,直接加上 文件名。同时也可以试一下strings命令,会显示出二进制文件中任何可显示的字符串,文件的类型通常就会在前面几行,所以用管道把这个命令和head 连接起来是个好办法。
Reference:
http://doc.linuxpk.com/58021.html
http://wzc0066.blog.hexun.com/6582493_d.html
本文主要介绍常用的Linux发行版本Ubuntu的基本使用方法和使用技巧,当然这些指令并不局限于Ubuntu系统。