我的Linux系统使用笔记
2013年12月04日

4、Ubuntu系统下Eclipse Tomcat报错

Could not load the Tomcat server configuration at /Servers/Tomcat v6.0 Server at localhost-config. The configuration may be corrupt or incomplete.


原因: /opt/tomcat/conf/catalina.policy(权限不够)
解决思路:
把配置文件从/opt/tomcat/conf文件夹中复制到<eclipse workspace>/Servers/<Tomcat name>-config/下面。
例如:
sudo cp * ~/workspace-luna1/Servers/Tomcat-6.0.43-BI-config/
sudo chmod 777 ~/workspace-luna1/Servers/Tomcat-6.0.43-BI-config/*

这样一来,还是有很多目录权限不够,所以干脆,把整个opt目录更改权限:
sudo chmod -R 777 /opt

5、eclipse GC overhead limit exceeded 解决办法

修改eclipse.ini,内存改成1024

6、ubuntu系统下面 eclipse Open Web Browser无法在内部打开

方法一:

I did find a solution which worked:

sudo apt-get install libwebkitgtk-1.0-0

Looks like eclipse runs internal browser on webkitgtk。

方法二:未测试过,不知道可不可行。
  • Q: How can my Mozilla-based Browser find my Mozilla plug-ins?

  • A: As of eclipse 3.3 the default set of Mozilla plug-in paths that are searched can be augmented by defining environment variable MOZ_PLUGIN_PATH. For example: export MOZ_PLUGIN_PATH=/usr/lib/browser-plugins.



7、启动tomcat的问题,提示 Cannot find ./catalina.sh

从终端进入tomcat的bin目录,然后执行startup.sh

bogon:~ apple$ cd /Users/apple/Desktop/tomcat_war/apache-tomcat-7.0.42/bin

bogon:bin apple$ sh startup.sh

输出结果为

Cannot find ./catalina.sh

The file is absent or does not have execute permission

This file is needed to run this program

其实这里是权限, 

解决方法:

依旧在tomcat 的bin目录下 

执行 chmod +x *.sh  

然后用sh startup.sh启动成功



8、解决如下执行.sh文件报错(not a valid identifier)问题:

': not a valid identifier: ....................

': not a valid identifier: ....................

是因为文件换行符不对,可以用NotePad++把文件转换为linux下面的换行格式(WINDOWS为:\r\n,Linux换行符为:\n)


Linux下使用SVN

安装subversion

sudo apt-get install subversion

svn checkout http://svn2.zhubajie.la/svn/zbj_trade/trunk


Linux中文字体安装

参见:

http://wiki.ubuntu.org.cn/%E5%AD%97%E4%BD%93#.E4.B8.AD.E6.96.87

就几条命令:

sudo apt-get install ttf-wqy-microhei #文泉驿-微米黑

sudo apt-get install ttf-wqy-zenhei #文泉驿-正黑

sudo apt-get install xfonts-wqy #文泉驿-点阵宋体

推荐 正黑

然后渲染可以调:(其实也没必要调,默认就很好了)

参见http://www.lulinux.com/archives/554

安装gnome-tweak-tool

sudo apt-get install gnome-shell gnome-tweak-tool

运行gnome-tweak-tool命令即可


 重置Ubuntu 14.04中的Unity和Compiz

打开终端(Ctrl+Alt+T),并使用以下命令来重置compiz:
dconf reset -f /org/compiz/

重置compiz后,重启Unity:
setsid unity

如果你在重置compiz时遇到如下错误:

error: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark.g2dfile2derror2dquark.Code17: Cannot open dconf database: invalid gvdb header

可能的原因是用户文件被搞乱了。备份dconf配置,并移除配置文件:

mv ~/.config/dconf/ ~/.config/dconf.bak


搜狗输入法:

sogou-qimpanel &


关于jboss生产环境下看日志:
sudo -u jboss5 chmod 775 /opt/applog/jboss5/logs/dzb2bServer1/server.log


如何在Ubuntu 14.04中安装最新版Eclipse



13、给ubuntu应用添加快捷方式

例如给eclipse设置快捷方式:

sudo gedit /usr/share/applications/eclipse.desktop

然后填入下面的内容:

[Desktop Entry]
Encoding=UTF-8
Name=EclipseIDE Luna
Comment=Eclipse IDE
Exec=/opt/javaide/eclipse-mars/eclipse/eclipse
Icon=/opt/javaide/eclipse-mars/eclipse/icon.xpm
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;

说明:这个是Desktop Entry,Exec为执行的地址,Icon为显示的图标,需要自行修改。Terminal=false代表不保持终端。

然后再加上执行权限:

 sudo chmod u+x /usr/share/applications/eclipse.desktop


查看Java的安装位置 

zollty@zollty-pc:~$ update-alternatives --config java
链接组 java (提供 /usr/bin/java)中只有一个候选项:/opt/lib/jvm/java/bin/java
无需配置。


14 Ubuntu安装JDK

以JDK 1.7为例,下载为:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Ubuntu 选择tar.gz的压缩包,64位选x64,32位选i586

下完后得到压缩包:jdk-7u55-linux-x64.tar.gz,解压再配置下就可以使用了,不需要安装。

安装目录:sudo mkdir -p /usr/jdk

接下来设置环境变量,终端执行:sudo gedit /etc/profile,参见下面的环境变量设置章节。


倒数第二步,配置jdk默认版本,命令如下:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_79/bin/java 300

sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_79/bin/javac 300

sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.7.0_79/bin/jar 300

sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk1.7.0_79/bin/javah 300

sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.7.0_79/bin/javap 300

最后一步,测试jdk安装是否正确:

update-alternatives --config java

java -version



五、环境变量设置
环境变量知识
1. 
“/etc /profile”此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从“/etc/profile.d”目录的配置文件中搜集 shell的设置。所以如果你有对/etc/profile有修改的话必须得重启你的修改才会生效,此修改对每个用户都生效。
2. 
“/etc/bashrc”为每一个运行bash shell的用户执行此文件。当bash shell被打开时,该文件被读取。如果你想对所有的使用bash的用户修改某个配置并在以后打开的bash都生效的话可以修改这个文件,修改这个文件不 用重启,重新打开一个bash即可生效。
3. 
“~/.bash_profile”每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,它设置 一些环境变量,执行用户的.bashrc文件。此文件类似于/etc/profile,也是需要重启才会生效,/etc/profile对所有用户生 效,~/.bash_profile只对当前用户生效。
4. 
“~/.bashrc“该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。(每个用户都有一个.bashrc文件,在用户目录下)。此文件类似于 /etc/bashrc,不需要重启生效,重新打开一个bash即可生效, /etc/bashrc对所有用户新打开的bash都生效,但~/.bashrc只对当前用户新打开的bash生效。
5. 
“~/.bash_logout”当每次退出系统(退出bash shell)时,执行该文件。

注意事项
“/etc/profile”,“/etc/bashrc”是系统全局环境变量设定。
“~/.profile”,“~/.bashrc”用户家目录下的私有环境变量设定。
环境变量设置示例:

打开 /etc/profile:
$sudo gedit /etc/profile
在末尾添加如下内容:
# Set GO Env
export GOROOT=/opt/go
export PATH=$GOROOT/bin:$PATH

# export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 
# export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
# export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

# Set Maven Env
M2_HOME=/opt/maven/maven-3.3.3-emd146 
export M2_HOME 
export MAVEN_OPTS="-Xms256m -Xmx512m" 
export MAVEN_HOME=/opt/maven/maven-3.3.3-emd146 
PATH=$PATH:$M2_HOME/bin 
export PATH 

设置完成后,执行刷新配置
source /etc/profile


Monit监控Unix


Linux文件比较和合并工具:Meld

http://meldmerge.org/

参考资料:

免费好用的Diff和Merge工具大总结:

http://www.cnblogs.com/itech/archive/2009/08/13/1545344.html

使用Meld代替你的版本控制系统中默认的diff工具:

http://blog.csdn.net/fudesign2008/article/details/8279138



修改HOSTNAME


参考资料:https://jblevins.org/log/hostname

https://www.cnblogs.com/kerrycode/p/3595724.html


Each distribution has a script that runs at boot time which sets the hostname. The way to change the hostname permanently thus differs by distribution.

  • Debian has an init script, /etc/init.d/hostname.sh, which is called at boot time and sets the hostname what is given in /etc/hostname. To change the hostname, place only the unqualified hostname (e.g., gauss) in /etc/hostname and run sudo /etc/init.d/hostname.sh.

  • Ubuntu, like Debian, also uses /etc/hostname, but to update the hostname after making a change, run sudo service hostname start.

  • Slackware uses /etc/HOSTNAME. Set the appropriate hostname there and run hostname -F /etc/HOSTNAME as root.

  • Red Hat (and CentOS) systems look for a line like

    HOSTNAME=gauss

in /etc/sysconfig/network. To make the change immediate you also need to run hostname gauss as root or simply reboot.


下面以 RedHat / CentOS 系统为例:

方法一:CentOS 7 亲测可用

> hostnamectl set-hostname apolloadmin01

> reboot

> hostname -i


方法二:(CentOS亲测可用)

vi /etc/hosts

添加 ip和hostname的映射即可,例如

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.11.244    middleware02

然后reboot重启就好了。


方法三:

查看当前配置:hostname -i

vi /etc/sysconfig/network

修改前:

NETWORKING=yes

HOSTNAME=localhost.localdomain


修改后:

NETWORKING=yes

HOSTNAME=自定义host名称



然后修改别名(非必须),打开hosts文件:

vi /etc/hosts

 

修改前:

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4

::1        localhost localhost.localdomain localhost6 localhost6.localdomain6


将localhost.localdomain改成自定义的host名

修改后:

127.0.0.1  localhost 自定义host名称 localhost4 localhost4.localdomain4

::1        localhost localhost.localdomain localhost6 localhost6.localdomain6


然后reboot重启: (如果只是修改/etc/hosts则不需要重启)

命令:

[root@linux_epm2 etc]# reboot


再次查看:hostname -i


tar解压报错:tar (child): bzip2: Cannot exec: No such file or directory

信息如下:

tar (child): lbzip2: Cannot exec: No such file or directory 
tar (child): Error is not recoverable: exiting now 
tar: Child returned status 2 
tar: Error is not recoverable: exiting now

解决方法很简单,只要安装bzip2就行了,

yum安装的命令如下: 

yum -y install bzip2


ulimit报错:-bash: ulimit: open files: cannot modify limit: Operation not permitted

解决方案:

原因分析:


因为问题发生在openssh升级之后,且只有ssh登录才发生此问题,因此基本怀疑和ssh有关


解决办法:

ssh版本的问题

vi /etc/ssh/sshd_config

把 UseLogin 设置为 yes,

#UseLogin no

UseLogin yes

重启ssh服务

service sshd restart


UseLogin具体的含义如下,看过后也不是很明白

UseLogin

             是否在交互式会话的登录过程中使用 login(1) 。默认值是"no"。

             如果开启此指令,那么 X11Forwarding 将会被禁止,因为 login(1) 不知道如何处理 xauth(1) cookies 。

             需要注意的是,login(1) 是禁止用于远程执行命令的。

             如果指定了 UsePrivilegeSeparation ,那么它将在认证完成后被禁用。

原文链接:https://blog.csdn.net/hijk139/article/details/7916468


安装epel yum源,(安装 npm时会用到)

1、 首先卸载以前装的epel 以免影响

  rpm -e epel-release 

2、 下载阿里提供的epel ,PS  感谢马云。

wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo

3、yum clean all

4、yum makecache


CentOS 7 时区设置 及 timedatectl命令的使用

原文链接:http://www.cnblogs.com/zhangeamon/p/5500744.html

# timedatectl status # 查看时间

# timedatectl list-timezones # 列出所有时区

# timedatectl set-local-rtc 1 # 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间

# timedatectl set-timezone Asia/Shanghai # 设置系统时区为上海

其实不考虑各个发行版的差异化, 从更底层出发的话, 修改时间时区比想象中要简单:

# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# timedatectl set-time 时间