一直想装个Linux系统玩一下的,可是一直又懒得动,怕麻烦。这次是不得不装了,因为工作中,有些程序需要在Linux系统下开发,在公司电脑上装了个虚拟机Virtual Box,然后在上面装了个ubuntu10.04进行软件开发。


在公司使用虚拟机总感觉不爽,而且系统和开发环境都是英文版的,对于初次接触ubuntu并且英文也不是很好的人来说简直是受罪,所以回家自己装了个最新版的ubuntu12.04中文版,以求尽早熟悉该环境下的编程。

装完ubuntu12.04才知道,ubuntu12.04ubuntu10.04虽然同是ubuntu系统,但是操作界面完全变了样,从表面上简直可以说是两个系统,不过对于我来说,也没有什么,反正两个都不熟悉,本文下面的内容主要是针对ubuntu12.04系统。


下面简单列举一下ubuntu下的常用软件:

1、浏览器:Firefox+ Downthemall(插件)、Chromium

2、视频:SMplayerGNOMEMplayer

3、音频:Exaile,其实我觉得自带的音乐播放器已经够用了

4、翻译软件:星际译王(stardict

5、杀毒软件:小红伞(AviraAntivar Personal),安装必要性不大

6Windows软件模拟器(Wine):可以让Windows软件运行在Linux环境下(当然不是所有的软件都可以),安装和使用时都使用wine,如:wine/<path>/xxx.exe


下面是一些不得不说的命令行操作了:

相对与Windows的图形界面操作不同,Linux的很多操作都需要在终端下输入命令进行,而且由于用户权限的严格限制,在图形界面上很多文件夹是无法操作的,当然也并不是完全不可能,按住组合键Alt+F2,然后输入gksu nautilusroot的身份打开文件浏览器,输入密码,这时你就可以不受权限的限制了。如果是在命令行模式下,提升权限就需要sudo指令了,还可以使用su命令来实现在命令行中提高权限,su命令用于临时切换至任意用户,包括root,如:提升之user1:su user1、提升至rootsudo su root


常用快捷键:

Ctrl+Alt+F1:进入终端界面

Ctrl+Alt+F7:回到图形界面

Ctrl+Alt+T:进入伪终端,当然我们的大部分操作只需要在伪终端下操作即可


终端常用快捷键:

Shift+Pageup/Page down:向上向下翻页

Tab:命令补全功能

Ctrl+Shift+c:复制

Ctrl+Shift+v:粘贴

Ctrl+a:移动到当前行开始位置

Ctrl+e:移动到当前行结尾

Ctrl+k:删除此处至末尾所有内容

Ctrl+u:删除此处至开始所有内容

Ctrl+l:刷新屏幕

Ctrl+c:杀死当前任务

Ctrl+s:挂起当前shell

Ctrl+q:重新启用挂起的shell

Alt+u:把当前词转化为大写

Alt+l:把当前词转化为消协

Alt+c:把当前词变成首字母大写

Alt+f:光标向前移动一个字符

Alt+b:光标向后移动一个字符

终端改变大小:

F11:全屏

Ctrl+shift+plus:放大

Ctrl+minus:减小


图形界面快捷键:

F10打开顶部面板的第一个菜单,使用箭头键浏览菜单项。


Super超级键(Win键)操作:

Super:打开dash

Super长按:启动Launcher。并快捷键列表。

Super+Number:按住超级键,再按1,2,3等数字键:从Launcher打开一个应用程序,当你按住超级键时,每个应用 程序图标上都会显示一个数字,按下对应的数字就会打开盖应用程序。

Super+A:Launcher打开应用程序窗口。

Super+F:launcher打开文件和文件夹窗口。

Super+M:launcher打开音乐窗口。

Super+V:Launcher打开Vedio视频窗口。

Super+W:伸展模式,缩小所有工作空间中的窗口。

Super+T打开回收站。

Super+S:Expo模式,缩小所有工作空间,允许你管理窗口。


Ctrl+Alt快捷键:

Ctrl+Alt+L锁住屏幕。

Ctrl+Alt+///右键:移动到新的工作空间。

Ctrl+Alt+Shift+///右键:将窗口放入新的工作空间。


Ctrl+Supper快捷键:

Ctrl+Super+Up:最大化当前窗口

Ctrl+Super+Down:最小化当前窗口

Ctrl+Super+D:最小化所有窗口

Ctrl+Super+Left:半最大化当前窗口(左边)

Ctrl+Super+Right:半最大化当前窗口(右边)


Alt快捷键:

Alt+F1:将键盘焦点移到Launcher上,使用箭头键进行移动,按回车即可启动一个应用程序,按下右 箭头键显示Quicklist

Alt+F2:以特殊模式打开dash,以便运行任何命令。

Alt+F10:打开键盘

Alt+Tab:在当前打开的窗口之间切换。

Alt+F4:关闭当前窗口。

Alt+F7:移动当前窗口(可以使用键盘或鼠标移动)。


常用命令:

~:家目录

pwd:得到当前所在目录

history:显示曾经运行过的命令,不是独立命令,是Base关键字

more:把输出内容用more显示,一页一页往下看,如:ps-A|more ;

也可查看文件,如:more/path/filename , q键退出

less:把输出内容用less显示向上向下翻页,如:ps-A|more ;

也可查看文件,如:more/path/filename , q键退出

man:命令解说员,查看命令用法,在命令之前家man即可,如:manifconfig

chmod:设置权限命令,格式为:chmod[设置权限的对象]+/-[权限] [文件],其中,

     [设置权限的对象]取值:u代表所有者,g代表群组,o代表其他

     [权限]取值:r代表读,w代表写,x代表执行

      例如:赋予脚本可执行权限:chmodu+x ./xxx.sh

>>>:转向输出,其中>>在文件末尾追加

gcc:编译c语言

g++:编译c++:啊

通配符*代表任意多个字符,?代表任意一个字符



常用操作:

安装软件使用命令:sudoapt-get install <软件包名>

删除软件使用命令:sudoapt-get remove <软件包名>

查看软件安装位置使用:whereis,如:whereisechipse

搜索软件源是否有你想要的软件:sudoapt-cache search <关键字>


下面开始配置我们的开发环境:

第一步当然是设置系统尽量符合我们的操作习惯,所以安装个系统图形界面设置工具Tweak,而且它里面的清道夫功能可以帮助你完美的清除系统垃圾,包括浏览器缓存,旧的内核什么的,还是一个不错的软件,下面就是它的ppa安装方法:

sudoadd-apt-repository ppa:tualatrix/ppa

sudoapt-get update

sudoapt-get install ubuntu-tweak


搭配PHP开发环境(参见http://blog.sina.com.cn/s/blog_568f35c701016tzb.html):

我们使用root账户进行安装,首先切换到root账户,输入命令:sudosu


安装 MySQL5

输入命令:apt-getinstall mysql-server mysql-client

安装过程中需要设置root账户密码,系统会作以下提示:

Newpassword for the MySQL "root" user:Repeat password for theMySQL "root" user:


安装 Apache2

输入命令:apt-get install apache2

在浏览器输入你服务器地址列入http://127.0.0.1查看Apache2是否工作,如果显示(Itworks!),说明已经工作,Apache在 Ubuntu中默认文档根目录为 /var/www,配置文件/etc/apache2/apache2.conf,额外配置存储子目录/etc/apache2


安装 PHP5

安装 PHP5和 ApachePHP5 模块:apt-get install php5 libapache2-mod-php5

然后重启apache:/etc/init.d/apache2 restart


测试 PHP5/ 可以建立一个页面:vi/var/www/info.php

输入下面的内容:

<?php

phpinfo();

?>

然后打开浏览器访问(http://127.0.0.1/info.php):

你可以看到一些已经支持的模块。


PHP5取得MySQL支持

我们需要安装php5-mysql,先查看一下php5的模块

apt-cachesearch php5

然后安装所需模块,例如下面的命令:

apt-getinstall php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagickphp5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspellphp5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl


重启 Apache2:

/etc/init.d/apache2restart

然后刷次你http://192.168.0.100/info.php查看模块支持是不是已经增加了。

以上内容参见网页:http://blog.sina.com.cn/s/blog_568f35c701016tzb.html


搭配Java开发环境:

安装Java

$sudo apt-add-repository ppa:flexiondotorg/java

$sudo apt-get update

$sudo apt-get install sun-java6-jre sun-java6-jdk sun-java6-pluginsun-java6-doc

安装完成后,重启系统,使之生效。重启后在终端输入:$java-version 查看是否安装成功。


安装Eclipse:

在终端中输入:

sudoapt-get install eclipse

sudoapt-get install eclipse-pde

sudoapt-get install eclipse-jdt


如果出现eclipse无法打开:Couldnot load SWT library,可以按下列方法解决:

首先执行如下命令更改要使用的javaJDK版本:

#update-alternatives--config java

选择你正确的java版本(当你系统中有多个jdk版本的情况下)

然后执行命令:#cp/usr/lib/jni/libswt-* ~/.swt/lib/linux/x86

重启eclipse即可(参见http://www.zhiwenweb.cn/Category/Tech/ubuntu-12.04-eclipse-swt-open-error.html




搭配cc++开发环境:

安装Eclipse:

见搭配Java开发环境中的Eclipse安装


安装CDT插件,方法如下(参见http://rajaruan.blog.51cto.com/2771737/897795):

1、启动eclipse

2、选择Help->InstallNew Software...,在Workwith的框框下复制下面的地址:http://download.eclipse.org/releases/galileo

3、选择Collaboration->MylynBridge: C/C++ Development,安装,重启eclipse

4、同上述23,选择ProgrammingLanguages->Eclipse C/C++ Development,重启eclipse


注意:要记得安装C++必要工具,安装的是GCC工具链,Make等一系列开发工具,命令如下:sudoapt-get install build-essential

要不然#include头文件的时候,会出现提示:Unresolvedinclusion: <iostream>


安装完CDT后,安装完虽然可以编译运行c++程序,但有个问题,就是找不到c++标准库的头文件,无法打开诸如之类的文件,编译器警告如下:Unresolvedinclusion:


尽管不影响编译,却无法定位头文件中的符号。原因是没有指定EclipseCC++的目录,可以通过设定EclipseC_INCLUDE_PATH和 CPLUS_INCLUDE_PATH两个环境变量指定头文件目录。

在 Window-> Preferences -> C/C++ -> Environment 中添加这两个变量:

C_INCLUDE_PATH设为 /usr/include

CPLUS_INCLUDE_PATH设为 /usr/include/c++/4.6.3

其中4.6.3gcc的版本,用gcc--version可以获得,改成相应版本即可。


Eclipse+CDT进行优化配置:

一、C/C++环境配置:Window- Preferences - C/C++

1Appearance,选中Groupmethod definitions in the Outline view

2CodeStyle,通过New来新建一个代码风格,命名为qpsoft,且初始化为BSD/Allmain,然后按习惯修改一些细节。

3Editor- Content Assist - Auto-Activation -Delay(ms),原值为500,改为100,则智能提示速度将非常快!

4Indexer,清空Filesto index up-front的内容,修改Cachelimits的值,尽可能大,可以提高速度!

二、修改智能提示快捷键:

Window- Preferences - General - Keys,输入Content,找到ContentAssist,在Binding中修改为Shift+Space,要顺手的多。

三、其他设置

1.Window - Preferences - General - Editors - Text Editors,选中Showline numbers,设置Printmargin column110

2.Window - Preferences - General - Workspace,取消Buildautomatically,选中Saveautomatically before build

四、通过插件扩展功能

支持SubversionEclipse官方出品,主页位于http://www.eclipse.org/subversive/在安装时可以通过Help->InstallNew Software...,在workwith框框复制地址:http://download.eclipse.org/technology/subversive/0.7/update-site/



Shell编程和正则表达式此处略过,太多了,翻书去


下面说说Linux下的c程序编译:

例如:gccfile1.c file2.c -lpthread -o outfile

将 file1.cfile2.c两个源文件进行编译并链接库pthread生产输出文件outfile,其中-l是标记链接库,-o是标记输出文件


下面拿一个简单的源文件(Hello.c)对编译过程进行详解:

#include<stdio.h>

#defineNUM 10

intmain()

{

inti;

for(i= 0 ; i < NUM ; i++ )

printf(“Helloworld!”);

return0;

}


第一步:预处理(cpp)

gcc-E ./Hello .c > hello_cpp.c

-E参数就是让gccHello.c只进行预处理,也可以直接用cpp命令进行预处理,如下所示:

cpp ./Hello .c > hello_cpp.c



第二步:编译

gcc-S ./Hello .c

-S参数就是让gccHello.c只进行预处理和编译,最后会得到一个Hello.s的汇编代码文件


第三步:汇编(as

gcc-c ./Hello .c

-c参数就是让gccHello.c只进行预处理、编译和汇编,这样运行之后会输出一个Hello.o的机器码文件,如果想查看这个文件,可以输入指令:hexdump-C ./Hello.o


第四步:链接(ld)

将这些.o文件组装起来,就需要ld(链接)负责了,经过ld组装的程序就可以运行了。


不过上面四个步骤并不需要我们一个一个做,运行一个gcc命令就全搞定了。


程序调试:

GDBGNUDebugger的缩写,也就是GNU调试器的意思。

在编译的时候加上参数“-g”就可以对程序进行调试了,如:

gcc-g file1.c file2.c -lpthread -o outfile_debug

编译可调试的程序后,就可以叫来GDB来运行他,例如:gdb./outfile_debug

于是,GDB就会接到指令,进入调试界面了,下面是GDB在调试界面下面的一些常用指令:

run命令(简写r):这个命令很好理解,就是从头开始运行程序,在命令“gdb./outfile_debug”后,进入GDB调试环境,但是并没有自动运行其这个程序,需要run一下才行。

break命令(简写b):这个命令用来设置断点,例如:“break12”就是在程序的第12行设置断点。

clear命令:取消断点,如“clear12”

list命令(简写l):列出当前程序源代码。

continue命令(简写c):这个命令是继续执行的意思,程序遇到断点停下来以后,可以用这个命令 继续执行下去,直到碰到下一个断点或者结束。

next命令(简写n):这是单步执行的命令,程序遇到断点停下来以后,执行这个命令可向下执行一句代码。

print命令(简写p):这个命令就是打印变量的值,比如“printi”打印i的值

examine命令(简写x):这个命令用来查看指定内存地址中的数据,

如:examine0x12345678




make机制:

把一堆.c文件编译成一堆.o文件。然后再把.o文件链接成一个成品的二进制文件,有改动的时候只更新单个的.o文件就可以了。

当有某个.c文件被修改以后,make能够根据文件的修改时间智能的判断出哪些模块需要重新编译,重新链接,然后就让gcc重新编译那些改动过的文件,重新生成新的二进制文件。


Makefile的基本格式:

目标:原料

<Tab>加工方法


注意:“加工方法”一行的前面有且必须有一个Tab制表符,不能顶格写,也不能用空格代替Tab

实例:

all:main.opart1.o part2.o

gccmain.o part1.o part2.o -o mybin


main.o:main.c

gcc-c main.c


part1.o:part1 .c

gcc-c part1.c


part2.o:part2.c

gcc-c part2.c


如果不加参数,make就去找目标是“all”的段落,也可以指定参数,如:makemain.o,那么就只编译main.o这个段落。


注意:“原料”不是必须的,如:

clear:

rm./*.o

rmmybin


要看一个程序依赖哪些库,可以使用ldd命令,如:ldd./eclipse


软件安装包:

解压压缩包(xxx.tar.gz)指令:tar-xzvf xxx.tar.gz

其中:xzvf是命令tar的参数,文件名必须跟在f参数后面,其他参数顺序随意,各参数含义如下:

x:说明要做解包的动作

z:说明是gzip压缩过的

v:显示解压的过程

f: 指明要解压的文件

j: 说明这个包是用你bzip压缩过的

c:说明要做打包的动作


安装包中configure脚本的作用:

检查系统环境,是否适合当前软件的安装,如果没有问题,则生成makefile文件,一般,在运行./configure指令之前是没有makefile文件的。

生产configure的工具软件:Autoconf

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐