Linux
——以Ubuntu12.04为例
2015年8月13日
1 目标:使用Linux进行软件开发和日常应用。
2 原理:使用Linux的shell接口及其封装接口(bash等)。
一般的接口都提供--help作为显示帮助内容。
3 方法:bash。
3.1 读取并执行文件中的命令:source filename,常用于更新配置文件。
http://c.biancheng.net/cpp/html/2728.html
http://blog.163.com/sxs_solo/blog/static/26333382010111103549619/
4 方法:日常应用
4.1 文件系统:Linux中所有内容都是以文件的形式存在的。
4.1.1文件类型:数据文件、设置文件、目录。
ls –l第一个字符表示文件类型。
文件类型表:
前缀 | 描述 |
- | 普通文件。如文本文件、二进制可执行文件、源代码等。 |
b | 块设备文件。硬盘可以使用块设备文件。 |
c | 字符设备文件。硬盘也可以使用字符设备文件。 |
d | 目录文件。目录可以包含文件和其他目录。 |
l | 符号链接(软链接)。可以链接任何普通文件,类似于 Windows 中的快捷方式。 |
p | 具名管道。管道是进程间的一种通信机制。 |
s | 用于进程间通信的套接字。 |
4.1.2文件属性操作:chmod
文件操作类型共3种,rwx,分三组,第一组是所有者,第二组是同群组,第三组是非同群组。如果没有不设置,则为-。
添加权限使用+,删除权限使用-。
-rwxrwxrwx
参考:http://www.cnblogs.com/kzloser/articles/2673790.html
http://www.cnblogs.com/avril/archive/2010/03/23/1692809.html
4.1.3隐藏文件:以.开头的文件,通常用来保存配置信息。
显示:ls –a显示所有文件
只显示隐藏文件:ls . 或者 ls –d .*
参考:http://blog.youkuaiyun.com/huoyin/article/details/1646779
4.1.4显示ls。
4.1.4.1 分页显示:|more,空格进行翻页,回车下一行。
4.1.4.2 可以上下翻页:|less,:q返回。
参考:http://www.itpub.net/forum.php?mod=viewthread&tid=453871&highlight=
4.1.4.3 详细内容:ll=ls –alF。
参考:
4.1.5创建文件:touch或者使用应用程序创建对应的文件。
参考:http://www.cnblogs.com/zf2011/archive/2011/05/17/2049155.html
4.1.6 复制文件:cp src dest
复制整个文件夹:-r(递归复制)
4.1.7删除文件:rm
4.1.8 移动文件,重命名文件:mv src dest
当dest和src在同一目录时,就是重命名文件。
4.2 目录操作: 创建、删除、重命名、移动、
4.2.1系统结构:根目录/,用户目录~。
指令目录:bin,sbin(系统管理)。
配置目录:etc。
用户目录:home。
用户相关目录:usr。
库目录:lib。
移动设备目录:media。
临时挂载目录:mnt。
可选应用程序:opt。
系统运行目录:proc。
root用户工作目录:root。
设备目录:dev。
启动目录:boot。
服务目录:srv。
参考:http://www.iteye.com/topic/816268
4.2.2目标结构:根目录/,用户主目录~,前一目录-。
如果目录以/开始,则为绝对目录,否则为相对目录。
.表示当前目录,..表示上级目录。
打印当前目录:pwd。
4.2.3创建文件夹:mkdir,可同时创建多个。
按级别创建:-p,默认情况下无上级目录时不能创建。
4.2.4复制文件夹:cp -r
4.2.5删除文件夹:rmdir,可同时删除多个,但要保证为空目录。rm -rf删除目录和文件。
-r递归删除。
-f 强行删除。
参考:http://jingyan.baidu.com/article/642c9d34dcba80644a46f72d.html
4.2.6移动、重命名:mv。
4.2.7切换目录:cd。
4.3 文本编辑器:gEdit,Vi,处理文本的软件。
4.3.1gEdit:GUI操作(推荐)
可以设置不同的文本高亮模式。
4.3.2Vi:纯键盘操作
4.3.2.1 模式:三种处理模式,普通模式,文本编辑模式,命令模式。
4.3.2.2 普通模式:初始状态,文本处于只读状态,接受i,c,o进入编辑模式,:进入命令模式。ESC由其它模式进入普通模式。
4.3.2.3 命令模式:
4.3.2.4 功能:
创建、打开文件:vi 文件名。
查看文件:cat –b(显示行号),vi -R 文件名,view 文件名。
退出文件:命令q,保存退出ZZ=wq,强行退出q!。
保存文件:命令w。
编辑文件:
移动光标:h<j^kvl>
复制、粘贴、剪切:yy/yw,p,x/dd。
删除:d
统计字数:wc
4.4 标准流:输入stdin,输出stdout,错误stderr。
4.5 计算器:bc
参考:http://www.360doc.com/content/12/0822/19/8093902_231769351.shtml
4.6 进程:前台进程与用户输入有关,后台进行需加后缀&
查看当前进程状态(前后台):ps。
当前用户的进程(前后台):jobs。
前后台进程切换:后台进程调到前台fg N。后台暂停的进程继续执行bg N。
结束进程:kill。 -9强制kill。
任务管理器:top,包括cpu、内存使用率等。或者使用System Monitor系统自带的GUI软件。
4.7 压缩、解压缩:tar
压缩:c
解压缩:x
显示压缩过程中的文件:v
指定文件:f
切换工作目录:-C。
参考:http://www.cnblogs.com/li-hao/archive/2011/10/03/2198480.html
示例:将当前目录下的压缩文件解压到java目录下。
4.8 环境变量:export,echo,env
设置环境变量:export 变量名=值。
查看环境变量:echo $变量名。
查看所有环境变量:env
参考:http://soft.chinabyte.com/os/169/11412169.shtml
4.9 图形图画:照片编辑shotwell、图片查看imageviewer
4.10 快捷方式:软链接(推荐)、硬链接、Launcher
4.10.1软链接(推荐)、硬链接:不同类型的文件
软链接:也叫符号链接(Symbolic),是一个文本文件,执行时指向目标文件,类似快捷方式。
硬链接:物理文件索引节点,指向物理文件,只有所有的硬链接都删除时,物理文件才能删除。物理文件名就是硬链接(Hard)。目的是防止重要文件误删除。
方法:ln 【-s】 源文件 链接文件
-s表示符号链接。
示例:为Eclipse在桌面创建符号链接。
参考:http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html
4.10.2从Dash中查找软件,然后拖动到桌面。
参考:http://jingyan.baidu.com/article/d45ad148e744fe69552b80f1.html
4.10.3Launcher(CentOS):桌面创建启动器。
创建一个启动器,运行指定的命令。
注意:必须是能够在bash中运行的命令。
参见:http://www.360doc.com/content/12/0809/16/2569758_229241192.shtml
示例:创建eclipse启动器。
需要首先创建eclipse的命令行(参见:启动命令:便于直接启动,方法为bin下的软链接(推荐)或加入环境变量 ),再创建启动器。
4.11 查找:whereis,which
查找程序、帮助、源代码:whereis,定位命令的文件位置。
查找PATH中的程序:which
查看所有文件:find
快速查找文件:locate(=find –name,查看数据库,不是最新内容。)
显示命令类型:type
参考: http://www.kuqin.com/linux/20091009/70532.html
http://www.chinaitlab.com/linux/administer/960730.html
4.12 网络信息:ping,netstat
4.12.1测试连接:ping host。
-c 测试次数。
参考:http://blog.chinaunix.net/uid-354915-id-3778677.html
http://linux.it.net.cn/CentOS/fast/2014/0707/2553.html
4.12.2网卡配置:ifconfig,查看网卡的配置信息
参考:http://baike.baidu.com/view/1001503.htm
4.12.3网络连接信息:netstat
所有端口信息:-a
tcp、udp:-t,-u
扩展信息:-e
连接所属进程:-p
路由表:-r
只显示数字地址:-n
只显示监听端口:-l
参考:http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html
4.12.4所有网络相关配置:net
用户:net user
5 日期、时间:日历
5.1 日历:cal
6 安全:修改密码
6.1 用户:当前用户,在线用户
6.1.1当前用户:whoami
6.1.2在线用户:users,who,w。
6.1.3提升用户权限为root:/etc/sudoers
参见:RadHat.docx提升用户权限章节。
6.2 修改密码:passwd
依提示更改密码。
6.3 退出登录:logout。
6.4 关闭系统:关机、重启等。
6.4.1重启:reboot(推荐)、shutdown–r now 或init 6。
参考:http://jingyan.baidu.com/article/91f5db1bd85bfb1c7e05e358.html
6.4.2关机:shutdown
关闭系统:init 0。
直接关闭电源:poweroff,halt(老系统只关闭系统,新的系统与poweroff相同)
关系系统后关闭电源:shutdown(=init0+poweroff)。-r now:现在重新启动。
参考:http://www.zhihu.com/question/22060662
6.5 系统信息: 系统软件和硬件
系统内核:uname –a
当前操作系统版本:cat /proc/version
当前发行版本: cat /etc/issue
CPU信息: cat /proc/cpuinfo
参考:http://www.cnblogs.com/lanxuezaipiao/archive/2012/10/22/2732857.html
7 网络交互:Telnet,SSH(putty)、文件传输(SCP/PSCP)、远程桌面(VNC)
7.1 SSH(推荐):安全连接。
参见:RadHat.docx SSH。
7.2 Telnet:标准连接,不安全。
参见:RadHat.docx Telnet。
7.3 文件传输:SCP、PSCP
7.3.1Linux之间文件传输:scp本地文件 用户名@ip:目标路径/文件名
7.3.1.1 上传:scp 本地文件 用户名@ip:目标路径:文件名
根据提示输入密码。
7.3.1.2 下载:scp用户名@ip:目标路径:文件名 本地文件
根据提示输入密码。
7.3.1.3 按文件夹传输:-r
7.3.2Windows和Linux之间文件传输:pscp 本地文件 用户名@ip:目标路径/文件名
pscp是putty的一个实用程序,模拟scp工作,可以putty官网下载。
使用方法与SCP完全相同。
7.3.2.1 上传:pscp 本地文件 用户名@ip:目标路径:文件名
根据提示输入密码。
7.3.2.2 下载:pscp用户名@ip:目标路径:文件名 本地文件
根据提示输入密码。
7.3.2.3 按文件夹传输:-r
7.4 远程桌面连接:VNC
参见:RadHat.docx远程桌面部分。
8 Java环境配置
8.1 安装Java SE
8.1.1下载Java SE:下载tar包。
8.1.2解压到urs/lib/jvm/jdk1.8.0_51:tar
也可以解压后使用mv移动到指定目录(目录任意)。
8.1.3设置环境变量:在~/.profile中配置JAVA_HOME,PATH,CLASSPATH。
Redhat中是~/.bash_profile。
如果要使用全局有效,则使用/etc/profile文件。
exportJAVA_HOME=/usr/lib/jvm/jdk1.8.0_60
export PATH=$JAVA_HOME/bin:$PATH
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
8.1.4启用(更新)环境变量:source fileName。
8.1.5设置完成后使用java –version,正确显示则表明安装正确。
参考:http://www.cnblogs.com/caosiyang/archive/2013/03/14/2959087.html
8.2 编译java
8.2.1编写HelloWorld.java
public class HelloWorld
{
public static voidmain(String[] args)
{
System.out.println("Hello,World!");
return;
}
}
8.2.2编译:javac HelloWorld.java
8.2.3运行:java HelloWorld
8.3 IDE: Eclipse、IntelliJ
8.3.1Eclipse:易用、实用、快速(推荐)
参考:http://www.cnblogs.com/hongten/archive/2012/07/12/2588463.html
http://blog.youkuaiyun.com/dengsilinming/article/details/7657412
8.3.1.1 下载eclipse:使用tar包。
8.3.1.2 解压:放到任意目录。
8.3.1.3 运行:bash下运行eclipse。
8.3.1.4 启动命令:便于直接启动,方法为bin下的软链接(推荐)或加入环境变量
1) 软链接(推荐,立即起效):ln –s 源 软链接
2) 加入环境变量:加入到profile中,需要刷新才能起效。
将eclipse mv到/opt/下,然后在~/.profile中添加PATH路径。
更新配置source.
source .profile
8.3.1.5 开发方法
参见:..\..\Java\JavaIDE-Eclipse.docx
8.3.2IntelliJ:据说更智能,暂时没发现。
参考:http://blog.sina.com.cn/s/blog_79ce0d8f0101ggyi.html
8.3.2.1 下载IntelliJ:使用tar包。
8.3.2.2 解压:放到/opt/中。
8.3.2.3 设置环境变量:
在~/.profile中配置PATH,将IntelliJ的bin目录加入。
更新配置:source。
8.3.2.4 运行:bash下运行idea.sh。
9 Tomcat环境配置
参考:Tomcat与java web开发技术详解(第二版)。孙卫琴。P56。
9.1 下载Tomcat:tar包。
9.2 解压:解压到/opt/下。
9.3 设置环境变量:.profile
注意:RedHat下是.bash_profile。
设置环境变量:CATALINA_HOME、PATH
exportCATALINA_HOME=/opt/apache-tomcat-8.0.24
exportPATH=$CATALINA_HOME/bin:$PATH
更新配置:source .profile。
9.4 运行:startup.sh
显示tomcat started,表明成功运行。
9.5 关闭:shoutdown.sh
9.6 测试:localhost:8080
注意:如果在网络中测试ip:port无返回内容,可能是因为主机防火墙设置。
9.6.1防火墙设置网络可访问。
显示以下显示则表示成功启动。
9.6.2配置应用管理员:conf/tomcat_users.xmlmanager-gui
点击主页上的Manager App需要输入用户名和密码,在tomcat目录,conf/tomcat_users.xml的最后增加以下内容,重启Tomcat后可以进入。
tomcat需要manager-gui角色的用户进行页面管理,用户名和密码自行设定。
需要重启tomcat使设置生效。
<rolerolename="manager-gui"/>
<user username="manager"password="manager" roles="manager-gui"/>
9.6.3配置主机管理员:conf/tomcat_users.xmladmin-gui
点击主页上的Host Manager需要输入用户名和密码,在conf/tomcat_users.xml的最后增加以下内容,重启Tomcat后可以进入。
<role rolename="admin-gui"/>
<user username="admin"password="admin" roles="admin-gui"/>